← Back
Home › Systems › Embedded and IoT

rtos

embedded real-time OS

FreeRTOS, Zephyr

SystemTechniques · 0Primitives · 17 rtos Counting semaphoreconcurrency · low: Counting and binary semaphores for task signalling and resource countingMemory orderingconcurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.›MPMC bounded queueconcurrency · low: Vyukov's array queue for many producers and consumers: each slot carries a sequence number, so one CAS per operation claims a slot without locks.›Priority inheritanceconcurrency · low: Priority inheritance/ceiling mutexes preventing unbounded priority inversionSPSC ring bufferdata-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.›Earliest deadline firstembedded · low: Dynamic-priority EDF scheduling: optimal on one CPU up to 100 % utilizationMemory protection unitembedded · low: A handful of base/size regions with permissions, checked on every access by the CPU, give microcontroller tasks isolation and stack-overflow traps without an MMU.›Preemptive priority schedulingembedded · low: Always run the highest-priority ready task, switching the instant a higher one becomes ready; selection is O(1) with one FIFO per priority and a bitmap.›Rate monotonic analysisembedded · low: Schedulability tests and response-time analysis for periodic real-time tasksWatchdog timerembedded · low: A hardware down-counter that resets the chip unless software proves, in time and in a plausible pattern, that it is still healthy.›Context switchinghardware-os · low: Handing a core to another task by saving and loading registers, stack and address space; the hidden cache and TLB cost outweighs the direct one.›Interrupt handlinghardware-os · low: How a device signal reaches a CPU handler through an interrupt controller and vector table, and how top/bottom halves, polling switch-over and coalescing keep load bounded.›Tickless idlehardware-os · low: Suppress the periodic tick while idle and compensate time on wake to save powerHierarchical timing wheelsystems · low: Timers bucketed by expiry into wheels of slots, coarser wheels for far deadlines: O(1) insert and cancel for millions of timeouts.›Slab allocatorsystems · low: Pre-carve pages into equal-size slots per size class with an in-place free list: O(1) alloc and free, no external fragmentation, cache-warm reuse.›False sharingconcurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.›+ 1 more primitives