Files
lab-rv32i-freertos-c-scheduler/doc/assets/a4-application.svg
T

100 lines
10 KiB
XML

<?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="233.2553px" preserveAspectRatio="none" style="width:895px;height:233px;" version="1.1" viewBox="0 0 895 233" width="895.7845px" zoomAndPan="magnify"><defs/><g><!--MD5=[d4f5dc331a1814e15a9185448555d0ce]
class PeerA--><rect fill="#F5F8FA" height="57.4191" id="PeerA" style="stroke: #607985; stroke-width: 1.053864168618267;" width="151.7564" x="4.2155" y="96.4426"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="7.7283" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="29.5082" x="65.3396" y="111.3446">«task»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="56.9087" x="51.6393" y="131.3803">01 peerA</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="139.1101" x="10.5386" y="143.648">priority 2 · CPU-bound</text><!--MD5=[627f71e47f335e85ff7a0fe7aa09dc61]
class PeerB--><rect fill="#F5F8FA" height="57.4191" id="PeerB" style="stroke: #607985; stroke-width: 1.053864168618267;" width="151.7564" x="357.6112" y="75.3653"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="7.7283" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="29.5082" x="418.7354" y="90.2673">«task»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="56.9087" x="405.0351" y="110.3031">02 peerB</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="139.1101" x="363.9344" y="122.5707">priority 2 · CPU-bound</text><!--MD5=[87dec8bc37044ee287e36547435f1f2f]
class High--><rect fill="#F5F8FA" height="57.4191" id="High" style="stroke: #607985; stroke-width: 1.053864168618267;" width="133.4895" x="366.7447" y="162.4848"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="7.7283" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="29.5082" x="418.7354" y="177.3867">«task»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="88.5246" x="389.2272" y="197.4225">03 high_probe</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="88.5246" x="389.2272" y="209.6901">priority 0 → 3</text><!--MD5=[b38b728b548c0e3506dacd7eefeceafe]
class Verifier--><rect fill="#F5F8FA" height="57.4191" id="Verifier" style="stroke: #607985; stroke-width: 1.053864168618267;" width="151.7564" x="706.4403" y="16.3489"/><text fill="#526B77" font-family="DejaVu Sans Mono" font-size="7.7283" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="29.5082" x="767.5644" y="31.2509">«task»</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="75.8782" x="744.3794" y="51.2867">04 verifier</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="10.5386" lengthAdjust="spacingAndGlyphs" textLength="139.1101" x="712.7635" y="63.5543">priority 1 · runs last</text><path d="M677.2834,173.6557 L677.2834,188.3888 L500.5644,191.1991 L677.2834,194.0094 L677.2834,208.7406 A0,0 0 0 0 677.2834,208.7406 L887.3536,208.7406 A0,0 0 0 0 887.3536,208.7406 L887.3536,180.6815 L880.3279,173.6557 L677.2834,173.6557 A0,0 0 0 0 677.2834,173.6557 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.702576112412178;"/><path d="M880.3279,173.6557 L880.3279,180.6815 L887.3536,180.6815 L880.3279,173.6557 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.702576112412178;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="8.4309" lengthAdjust="spacingAndGlyphs" textLength="186.8852" x="685.7143" y="189.2098">HIGH writes marker 2 and self-deletes.</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="8.4309" lengthAdjust="spacingAndGlyphs" textLength="132.7869" x="685.7143" y="199.0239">peerA then writes marker 3.</text><!--MD5=[e17ca89136f6e96c8edfc2efe34a138f]
link PeerA to PeerB--><path d="M160.8759,120.3583 C218.3677,116.9157 295.5176,112.2998 352.9532,108.8571 " fill="none" id="PeerA-PeerB" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="356.3396,108.6534,349.8594,106.2268,352.833,108.8638,350.1961,111.8374,356.3396,108.6534" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="157.37,120.5691,163.8502,122.9956,160.8766,120.3587,163.5135,117.3851,157.37,120.5691" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="95.5504" x="206.5574" y="92.034">tick time slicing</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="50.5855" x="229.0398" y="103.4838">A → B → A</text><!--MD5=[7fd7a179d117b50a2a0b920d41dd806d]
link PeerA to High--><path d="M104.6136,154.1593 C121.082,171.815 144.6674,192.7799 170.726,202.4403 C232.5246,225.3443 308.2061,218.7541 362.3255,208.7073 " fill="none" id="PeerA-&gt;High" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="365.466,208.1101,358.731,206.5226,362.0142,208.7623,359.7746,212.0455,365.466,208.1101" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="106.7916" x="200.9368" y="195.4111">raise to priority 3</text><!--MD5=[d62c0dcf4c85e672724ed87df3e66a79]
link High to PeerA--><path d="M366.5831,181.3349 C313.4543,173.1007 237.0562,160.5527 170.726,146.9368 C167.4098,146.2553 164.0234,145.5386 160.6089,144.7939 " fill="none" id="High-&gt;PeerA" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="157.3138,144.0703,162.8768,148.1853,160.743,144.8323,164.0961,142.6986,157.3138,144.0703" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="157.377" x="175.644" y="139.9076">preempts before call returns</text><!--MD5=[da61d059c86f4bb0c5cb4c08f1d74312]
link PeerA to Verifier--><path d="M120.8009,96.1616 C135.7588,86.7681 153.3513,77.3396 170.726,71.7611 C353.459,13.0398 582.7869,23.9438 701.7471,35.4169 " fill="none" id="PeerA-&gt;Verifier" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="705.2248,35.7541,699.2049,32.3423,701.7286,35.4125,698.6583,37.9362,705.2248,35.7541" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="151.7564" x="357.6112" y="19.3385">stop requested after return</text><!--MD5=[4142c62ab8c50b841a4bc588d0039040]
link PeerB to Verifier--><path d="M509.5293,91.363 C554.0445,83.8454 611.5012,74.1218 662.5293,65.4379 C675.2529,63.267 688.7424,60.9696 701.8946,58.7213 " fill="none" id="PeerB-&gt;Verifier" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><polygon fill="#607985" points="705.2951,58.1382,698.5887,56.434,701.8325,58.7303,699.5361,61.9741,705.2951,58.1382" style="stroke: #607985; stroke-width: 0.9133489461358314;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="9.8361" lengthAdjust="spacingAndGlyphs" textLength="123.6534" x="533.9578" y="58.4087">both peers self-delete</text><!--MD5=[137f40278e8a32983395a4c1fad58d90]
@startuml
skinparam backgroundColor white
skinparam shadowing false
skinparam monochrome false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 14
skinparam defaultFontColor #24343D
skinparam titleFontName "DejaVu Sans Mono"
skinparam titleFontSize 13
skinparam titleFontColor #536B78
skinparam titleFontStyle plain
skinparam ArrowColor #607985
skinparam ArrowFontColor #425B67
skinparam ArrowThickness 1.3
skinparam LineThickness 1.3
skinparam nodesep 36
skinparam ranksep 42
skinparam Padding 6
skinparam classBackgroundColor #F5F8FA
skinparam classBorderColor #607985
skinparam classBorderThickness 1.5
skinparam classFontColor #1F3039
skinparam classFontSize 15
skinparam classAttributeFontColor #2E424D
skinparam classAttributeFontSize 13
skinparam classStereotypeFontColor #526B77
skinparam classStereotypeFontSize 11
skinparam minClassWidth 190
skinparam ClassAttributeIconSize 0
skinparam stateBackgroundColor #F5F8FA
skinparam stateBorderColor #607985
skinparam stateBorderThickness 1.5
skinparam stateFontColor #1F3039
skinparam stateFontSize 14
skinparam stateAttributeFontSize 13
skinparam noteBackgroundColor #F7F5ED
skinparam noteBorderColor #8A887C
skinparam noteFontColor #3E4B50
skinparam noteFontSize 12
skinparam ParticipantBackgroundColor #F5F8FA
skinparam ParticipantBorderColor #607985
skinparam ParticipantBorderThickness 1.5
skinparam ParticipantFontColor #1F3039
skinparam ParticipantFontSize 13
skinparam ActorBorderColor #607985
skinparam ActorFontColor #1F3039
skinparam LifeLineBorderColor #8297A1
skinparam LifeLineBackgroundColor #F9FBFC
skinparam SequenceArrowColor #607985
skinparam SequenceMessageAlign center
skinparam ParticipantPadding 18
skinparam BoxPadding 8
hide circle
hide empty members
scale 900 width
left to right direction
class "01 peerA\npriority 2 · CPU-bound" as PeerA <<task>>
class "02 peerB\npriority 2 · CPU-bound" as PeerB <<task>>
class "03 high_probe\npriority 0 → 3" as High <<task>>
class "04 verifier\npriority 1 · runs last" as Verifier <<task>>
PeerA <- -> PeerB : tick time slicing\nA → B → A
PeerA - -> High : raise to priority 3
High - -> PeerA : preempts before call returns
PeerA - -> Verifier : stop requested after return
PeerB - -> Verifier : both peers self-delete
note right of High
HIGH writes marker 2 and self-deletes.
peerA then writes marker 3.
end note
@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>