Reasons To Prefer An Operating System Over Bare Metal#
Conceived as a series of demos, live-programmed by the trainer, this course gives
An understanding of the problems solved by operating systems
An overview of the building blocks that any operating system brings
Tasks and multitasking
Scheduling multiple tasks, in the presence of task priorities
Synchronization and communication primitives like mutexes, semaphores and message queues
An introduction to event driven programming, a technique to simultaneously react on multiple events withing a single task [1]
Course Flow#
Interrupt Madness
Summary
Basic OS Building Blocks
Getting Rid Of Long-Running Interrupt Service Routines
(TODO) Sketch/Plan: CAN into thread/mq; 3 more threads (one for each ISR)
(TODO) Replace Spinlock with Mutex. Talk about priorities. Add different ones (mentioning Zephyr does not support fair scheduling). Talk about priority inversion and inheritance.
Advanced: Event Multiplexing
(TODO) Add watchdog feeder?
Additional Material#
OS Primitives#
Futher Reads#
Demo Project: Nuclear Power Plant Controller#
Demo Project: Datalogger#
Footnotes