Files

44 lines
8.0 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="529px" preserveAspectRatio="none" style="width:475px;height:529px;" version="1.1" viewBox="0 0 475 529" width="475px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="305" x="89" y="12.8281">A2 STRUCTURE — mutex, owner, wait list and resource</text><!--MD5=[a15aec3e997c0b90fdfa616e6e255e24]
entity mutex--><rect fill="#EDF6FA" height="69.0323" style="stroke: #2C7794; stroke-width: 1.5;" width="145" x="6" y="171.5941"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="16" y="194.4222">01 Mutex</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="16" y="210.7663">QueueDefinition</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="16" y="227.1104">uxQueueType = mutex</text><!--MD5=[cce3472c5646352849134f9dadeb1b6a]
entity low--><rect fill="#EDF6FA" height="69.0323" style="stroke: #2C7794; stroke-width: 1.5;" width="144" x="124.5" y="318.6241"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="134.5" y="341.4522">02 LowTask</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="80" x="134.5" y="357.7963">base priority 1</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="124" x="134.5" y="374.1404">effective priority 1 → 3</text><!--MD5=[14d0722cf5b909ee93912fd030bf9990]
entity high--><rect fill="#EDF6FA" height="69.0323" style="stroke: #2C7794; stroke-width: 1.5;" width="118" x="172.5" y="24.5541"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="182.5" y="47.3822">03 HighTask</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="182.5" y="63.7263">priority 3</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="182.5" y="80.0704">blocked on mutex</text><!--MD5=[67463a8a93d235c1b9ef492366a72a88]
entity medium--><rect fill="#EDF6FA" height="69.0323" style="stroke: #2C7794; stroke-width: 1.5;" width="132" x="185.5" y="171.5941"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="89" x="195.5" y="194.4222">04 MediumTask</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="195.5" y="210.7663">priority 2</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="195.5" y="227.1104">Ready, not executed</text><!--MD5=[9c9f7c63b55d39a846ab63348ec12139]
entity resource--><rect fill="#EDF6FA" height="52.6882" style="stroke: #2C7794; stroke-width: 1.5;" width="124" x="228.5" y="465.6541"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="238.5" y="488.4822">05 protected value</text><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="30" x="238.5" y="504.8263">1 → 2</text><!--MD5=[158e2903b1020e11f99bcb9ea11d8868]
link low to mutex--><path d="M124.1,329.8641 C104.98,320.3241 86.61,306.9941 75.5,288.6241 C68.13,276.4341 67.02,261.2341 68.38,247.2741 " fill="none" id="low-&gt;mutex" style="stroke: #8095A1; stroke-width: 1.0;"/><polygon fill="#8095A1" points="68.98,242.4641,63.9065,250.9057,68.3668,247.4264,71.8461,251.8867,68.98,242.4641" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="29" x="76.5" y="284.4522">owns</text><!--MD5=[8d649ca47fa06143feec8f30a0ad6d1f]
link mutex to low--><path d="M106.17,241.1141 C123.77,262.7541 146.62,290.8341 164.93,313.3441 " fill="none" id="mutex-&gt;low" style="stroke: #8095A1; stroke-width: 1.0;"/><polygon fill="#8095A1" points="168.05,317.1741,165.462,307.6714,164.89,313.2992,159.2622,312.7273,168.05,317.1741" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="145.56" y="284.4522">inherits 3</text><!--MD5=[0cda02ad73f7217ff83b08c55d25c68b]
link high to mutex--><path d="M195.63,94.0741 C172.61,115.9041 142.67,144.2741 118.83,166.8741 " fill="none" id="high-&gt;mutex" style="stroke: #8095A1; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#8095A1" points="115.25,170.2741,124.532,166.9811,118.8771,166.8326,119.0256,161.1777,115.25,170.2741" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="165.16" y="137.4222">waits forever</text><!--MD5=[dcb993e83586dad779f044de8c3c68b5]
link medium to low--><path d="M238.6,241.1141 C230.5,262.4741 220.02,290.1241 211.54,312.4941 " fill="none" id="medium-&gt;low" style="stroke: #8095A1; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#8095A1" points="209.85,316.9341,216.7999,309.9557,211.6353,312.2637,209.3273,307.0991,209.85,316.9341" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="99" x="228.29" y="284.4522">cannot preempt 3</text><!--MD5=[3a9e305dea604aa08f760e06e749e231]
link low to resource--><path d="M219.74,387.9741 C234.87,410.0041 254.47,438.5441 269.2,459.9941 " fill="none" id="low-&gt;resource" style="stroke: #8095A1; stroke-width: 1.0;"/><polygon fill="#8095A1" points="271.98,464.0341,270.1774,454.3516,269.1474,459.9139,263.5851,458.8839,271.98,464.0341" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="88" x="252.92" y="431.4822">guarded write 1</text><!--MD5=[1010f4c599cbe540e9eb0f4a1139d543]
link high to resource--><path d="M274.65,93.9941 C296.71,113.9941 321.57,141.2941 334.5,171.5941 C380.63,279.7141 396.21,327.7841 349.5,435.6541 C345.43,445.0441 338.9,453.5741 331.64,460.9741 " fill="none" id="high-&gt;resource" style="stroke: #8095A1; stroke-width: 1.0;"/><polygon fill="#8095A1" points="328.12,464.3741,337.3615,460.9689,331.7052,460.8889,331.7852,455.2326,328.12,464.3741" style="stroke: #8095A1; stroke-width: 1.0;"/><text fill="#000000" font-family="Monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="88" x="375.57" y="284.4522">guarded write 2</text><!--MD5=[f0e877ce0d9c10f109572c3cca054c6b]
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 12
skinparam ArrowColor #8095a1
skinparam rectangleBorderColor #2c7794
skinparam rectangleBackgroundColor #edf6fa
title A2 STRUCTURE — mutex, owner, wait list and resource
rectangle "01 Mutex\nQueueDefinition\nuxQueueType = mutex" as mutex
rectangle "02 LowTask\nbase priority 1\neffective priority 1 → 3" as low
rectangle "03 HighTask\npriority 3\nblocked on mutex" as high
rectangle "04 MediumTask\npriority 2\nReady, not executed" as medium
rectangle "05 protected value\n1 → 2" as resource
low - -> mutex : owns
high ..> mutex : waits forever
mutex - -> low : inherits 3
medium ..> low : cannot preempt 3
low - -> resource : guarded write 1
high - -> resource : guarded write 2
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>