Files
lab-rv32i-freertos-c-scheduler/web/figures/a5-flow-a.svg
T

106 lines
13 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="310.0962px" preserveAspectRatio="none" style="width:903px;height:310px;" version="1.1" viewBox="0 0 903 310" width="903.3654px" zoomAndPan="magnify"><defs/><g><rect fill="#FFFFFF" height="20.335" style="stroke: #A80036; stroke-width: 0.4807692307692308;" width="4.8077" x="186.0577" y="161.2117"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="60.5769" x2="60.5769" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="188.4615" x2="188.4615" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="306.7308" x2="306.7308" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="457.6923" x2="457.6923" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="575.9615" x2="575.9615" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="724.0385" x2="724.0385" y1="21.6985" y2="304.556"/><line style="stroke: #A80036; stroke-width: 0.4807692307692308; stroke-dasharray: 5.0,5.0;" x1="842.3077" x2="842.3077" y1="21.6985" y2="304.556"/><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="11.5385" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="15.3846" x="52.8846" y="13.4937">main</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="139.4231" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="34.6154" x="171.1538" y="13.4937">Scheduler</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="257.6923" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="34.6154" x="289.4231" y="13.4937">tick hook</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="408.6538" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="38.4615" x="438.4615" y="13.4937">high probe</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="526.9231" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="19.2308" x="566.3462" y="13.4937">peerA</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="675" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="19.2308" x="714.4231" y="13.4937">peerB</text><rect fill="#F5F8FA" height="19.7754" style="stroke: #607985; stroke-width: 0.7211538461538461;" width="98.0769" x="793.2692" y="1.4423"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.25" lengthAdjust="spacingAndGlyphs" textLength="30.7692" x="826.9231" y="13.4937">verifier</text><rect fill="#FFFFFF" height="20.335" style="stroke: #A80036; stroke-width: 0.4807692307692308;" width="4.8077" x="186.0577" y="161.2117"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="80.7692" y1="42.995" y2="42.995"/><line style="stroke: #607985; stroke-width: 0.625;" x1="80.7692" x2="80.7692" y1="42.995" y2="49.245"/><line style="stroke: #607985; stroke-width: 0.625;" x1="61.0577" x2="80.7692" y1="49.245" y2="49.245"/><polygon fill="#607985" points="65.8654,47.322,61.0577,49.245,65.8654,51.1681,63.9423,49.245" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="66.8269" y="37.5615">01</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="103.8462" x="78.3654" y="37.5615">config + contexts committed</text><polygon fill="#607985" points="451.9231,80.157,456.7308,82.0801,451.9231,84.0032,453.8462,82.0801" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="454.8077" y1="82.0801" y2="82.0801"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="203.3654" y="76.6465">02</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="100" x="214.9038" y="76.6465">create Ready at priority 0</text><polygon fill="#607985" points="570.1923,112.992,575,114.9151,570.1923,116.8382,572.1154,114.9151" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="573.0769" y1="114.9151" y2="114.9151"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="235.5769" y="109.4816">03</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="153.8462" x="247.1154" y="109.4816">priorities high=0, peers=2/2, verifier=1</text><polygon fill="#607985" points="718.2692,119.7228,723.0769,121.6459,718.2692,123.569,720.1923,121.6459" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="721.1538" y1="121.6459" y2="121.6459"/><polygon fill="#607985" points="836.5385,126.4536,841.3462,128.3767,836.5385,130.2997,838.4615,128.3767" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="839.4231" y1="128.3767" y2="128.3767"/><polygon fill="#607985" points="180.2885,159.2886,185.0962,161.2117,180.2885,163.1348,182.2115,161.2117" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="60.5769" x2="183.1731" y1="161.2117" y2="161.2117"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="77.1635" y="155.7782">04</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="80.7692" x="88.7019" y="155.7782">vTaskStartScheduler()</text><polygon fill="#607985" points="570.1923,179.6236,575,181.5467,570.1923,183.4698,572.1154,181.5467" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="188.4615" x2="573.0769" y1="181.5467" y2="181.5467"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="347.5962" y="176.1132">05</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="57.6923" x="359.1346" y="176.1132">first peer runs</text><line style="stroke: #607985; stroke-width: 0.625;" x1="306.7308" x2="326.9231" y1="214.3818" y2="214.3818"/><line style="stroke: #607985; stroke-width: 0.625;" x1="326.9231" x2="326.9231" y1="214.3818" y2="220.6318"/><line style="stroke: #607985; stroke-width: 0.625;" x1="307.2115" x2="326.9231" y1="220.6318" y2="220.6318"/><polygon fill="#607985" points="312.0192,218.7087,307.2115,220.6318,312.0192,222.5548,310.0962,220.6318" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="312.9808" y="208.9482">06</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="126.9231" x="324.5192" y="208.9482">first machine-timer tick recorded</text><polygon fill="#607985" points="718.2692,251.5437,723.0769,253.4668,718.2692,255.3899,720.1923,253.4668" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="575.9615" x2="721.1538" y1="253.4668" y2="253.4668"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="38.4615" x="630.7692" y="248.0333">time slice</text><polygon fill="#607985" points="581.25,271.8788,576.4423,273.8018,581.25,275.7249,579.3269,273.8018" style="stroke: #607985; stroke-width: 0.4807692307692308;"/><line style="stroke: #607985; stroke-width: 0.625;" x1="578.3654" x2="723.5577" y1="273.8018" y2="273.8018"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="7.6923" x="584.6154" y="268.3683">07</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="6.7308" lengthAdjust="spacingAndGlyphs" textLength="119.2308" x="596.1538" y="268.3683">committed subsequence A → B → A</text><path d="M4.8077,280.0518 L4.8077,296.8788 L897.5962,296.8788 L897.5962,284.8595 L892.7885,280.0518 L4.8077,280.0518 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.4807692307692308;"/><path d="M892.7885,280.0518 L892.7885,284.8595 L897.5962,284.8595 L892.7885,280.0518 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.4807692307692308;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="5.7692" lengthAdjust="spacingAndGlyphs" textLength="181.7308" x="358.1731" y="290.6954">Continue on part 2/2 with identical participant order.</text><!--MD5=[b0d6f40be4a5ed1c526c7978b6f492ee]
@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
hide footbox
skinparam ParticipantPadding 16
participant "main" as Main
participant "Scheduler" as Scheduler
participant "tick hook" as Tick
participant "high probe" as High
participant "peerA" as A
participant "peerB" as B
participant "verifier" as Verify
Main -> Main : <b>01</b> config + contexts committed
||26||
Main -> High : <b>02</b> create Ready at priority 0
||26||
Main -> A : <b>03</b> priorities high=0, peers=2/2, verifier=1
Main -> B
Main -> Verify
||26||
Main -> Scheduler : <b>04</b> vTaskStartScheduler()
activate Scheduler
Scheduler -> A : <b>05</b> first peer runs
deactivate Scheduler
||26||
Tick -> Tick : <b>06</b> first machine-timer tick recorded
||26||
A -> B : time slice
B -> A : <b>07</b> committed subsequence A → B → A
note over Main,Verify
Continue on part 2/2 with identical participant order.
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>