Files
lab-rv32i-freertos-c-resour…/web/figures/a8-patterns.puml
T

21 lines
834 B
Plaintext

@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 12
skinparam rectangleBorderColor #2c7794
skinparam rectangleBackgroundColor #edf6fa
title A8 PATTERNS — choose the synchronization contract
rectangle "01 Critical section\nvery short CPU-local invariant\nnever block" as critical
rectangle "02 Scheduler suspension\ndefer scheduling\ninterrupts still run" as suspend
rectangle "03 Mutex\nownership + priority inheritance\ntask context only" as mutex
rectangle "04 Gatekeeper task\nsingle resource owner\nmessage-based access" as gatekeeper
critical -[hidden]right- suspend
suspend -[hidden]right- mutex
mutex -[hidden]right- gatekeeper
note bottom of mutex
FC08 selects this contract.
A binary semaphore would not prove PIP.
end note
@enduml