WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke WINGERT A Thread Migrating OS for Real-Time Applications Alexander Züpke alexander.zuepke@hs-rm.de
About Me WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Alexander Züpke 1999 – 2003: Diploma in Computer Engineering University of Applied Sciences Gelsenkirchen 2003 – now: Kernel Hacker on PikeOS SYSGO AG, Klein-Winternheim 2012 – now: PhD Student RheinMain University of Applied Sciences Wiesbaden 2
Wingert WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Win·gert m., Pl: Win·ger·te German word in Rhine-Hessian dialect for a vineyard derived from the Middle High German word wîngarte (wine garden) 3
Wingert OS WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke WI esbaden N ext G eneration E xperimental R eal- T ime O perating S ystem … or: W INGERT I s a N ew G reat E xperimental R eal- T ime O perating S ystem 4
Outline WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Motivation ● System Architecture ● Various Use Cases of Thread Migration ● Resource Management ● Futexes and Locking ● Current Status of the Implementation ● Conclusion ● Outlook 5
Motivation WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Safety Critical Systems … 6
WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke 7
WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke 8
Motivation WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Safety requirements for shared resources ● IEC 61508 “An E/E/PE* safety-related system will usually implement more than one safety function. If the safety integrity requirements for these safety functions differ, unless there is sufficient independence of implementation between them, the requirements applicable to the highest relevant safety integrity level shall apply to the entire E/E/PE safety-related system.” ● ISO 26262 “Freedom of interference” * E/E/PE: electrical / electronic / programmable electronic 9
Motivation WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Mixed-criticality system Separation by Partitioning ARINC 653: P1 P2 P3 P4 – Spatial Partitioning most less least critical critical critical critical – Time Partitioning user mode supervisor mode OS Kernel 10
Motivation WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Own Experience: Micro kernels are nice, but building reliable systems with them is still too painful! Lots of engineering challenges: – bounded WCET when Linux runs on top? – independent analyses of partitions? – more threads + more synchronization = more safety? 11
System Architecture WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Design Choices – Hierarchical system design – Small TCB – Minimalistic kernel P1 P2 P3 P4 ● Address spaces most less least ● Threads critical critical critical critical ● Capabilities ● Resource partitioning shared driver 2 ● Preemptive kernel shared driver 1 ● State of the art scheduling – Thread migration OS Kernel 12
WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Thread Migration 13
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Definition of “thread migration” in literature – a client lends its thread to the server – the server is a passive entity ● Examples P1 P2 P3 P4 – Mach (Ford) – Sun's Spring – Pebble – Composite – … OS Kernel 14
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Decompose a thread into Body and Soul: ● Body: user part of a thread Body – register context ● Entry point ● User Stack – user stack ● TLS ● Soul: kernel part of a thread – scheduling attributes – kernel stack Soul Ghost: soul without a body ● Priority ● Deadline initial state ● Kernel Stack idle threads 15
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Decompose a thread into Body and Soul: ● Body: user part of a thread Body – register context ● Entry point ● User Stack – user stack ● TLS ● Soul: kernel part of a thread – scheduling attributes – kernel stack Soul ● Ghost: soul without a body ● Priority ● Deadline – initial state ● Kernel Stack – idle threads 16
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Synchronous call and return operations: – a soul migrates back and forth between bodies – forms a call chain free body active body soul 17
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Synchronous call and return operations: – a soul migrates back and forth between bodies – forms a call chain free body occupied body active body call soul 18
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Synchronous call and return operations: – a soul migrates back and forth between bodies – forms a call chain occupied body active body call 19
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Synchronous call and return operations: – a soul migrates back and forth between bodies – forms a call chain free body occupied body active body return 20
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Synchronous call and return operations: – a soul migrates back and forth between bodies – forms a call chain free body active body return 21
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke The forward operation: – to call another body – without keeping the caller occupied 22
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke The forward operation: – to call another body – without keeping the caller occupied l l a c 23
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke The forward operation: – to call another body – without keeping the caller occupied forward 24
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke The forward operation: – to call another body – without keeping the caller occupied 25
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke The forward operation: – to call another body – without keeping the caller occupied return 26
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Asynchronous fork / join operations: – fork: tell an idle soul to call a body – join: asynchronous call returns fork go for It! 27
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Asynchronous fork / join operations: – fork: tell an idle soul to call a body – join: asynchronous call returns call 28
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Asynchronous fork / join operations: – fork: tell an idle soul to call a body – join: asynchronous call returns 29
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Asynchronous fork / join operations: – fork: tell an idle soul to call a body – join: asynchronous call returns return 30
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Asynchronous fork / join operations: – fork: tell an idle soul to call a body – join: asynchronous call returns I'm done! join 31
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Signals and Exception Handling: ● Exceptions – implicitly turn exceptions into calls to exception-handlers – pass faulting register context to called body Exception Handler Signals Faulter signal delivery: force a soul call into a (non-voluntary) call software raised exception 32
Thread Migration WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke Signals and Exception Handling: ● Exceptions – implicitly turn exceptions into calls to exception-handlers – pass faulting register context to called body Exception Handler ● Signals Faulter – signal delivery: force a soul call into a (non-voluntary) call – software raised exception force exc. Other 33
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance call Q 34
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance Q 35
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance call Q 36
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance Q waiting 37
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance n r Q u t e r waiting 38
Concurrent Access WAMOS @ HSRM Wiesbaden 2014-02-13 A. Zuepke ● Two souls want to enter the same body … – First come, first serve! The other soul has to wait. – Entry wait queue Q – FIFO or priority ordering – Priority inheritance Q 39
Recommend
More recommend