439:
function called from an interrupt handler could find the object database to be in an inconsistent state because of the application's update. There are two major approaches to deal with this problem: the unified architecture and the segmented architecture. RTOSs implementing the unified architecture solve the problem by simply disabling interrupts while the internal catalogue is updated. The downside of this is that interrupt latency increases, potentially losing interrupts. The segmented architecture does not make direct OS calls but delegates the OS related work to a separate handler. This handler runs at a higher priority than any thread but lower than the interrupt handlers. The advantage of this architecture is that it adds very few cycles to interrupt latency. As a result, OSes which implement the segmented architecture are more predictable and can deal with higher interrupt rates compared to the unified architecture.
1718:
1708:
192:. The number of items in the ready queue can vary greatly, depending on the number of tasks the system needs to perform and the type of scheduler that the system uses. On simpler non-preemptive but still multitasking systems, a task has to give up its time on the CPU to other tasks, which can cause the ready queue to have a greater number of overall tasks in the ready to be executed state (
435:
typically all that is necessary is to acknowledge or disable the interrupt (so that it won't occur again when the interrupt handler returns) and notify a task that work needs to be done. This can be done by unblocking a driver task through releasing a semaphore, setting a flag or sending a message. A scheduler often provides the ability to unblock a task from interrupt handler context.
207:
of ready tasks is likely optimal. If the ready list usually contains only a few tasks but occasionally contains more, then the list should be sorted by priority, so that finding the highest priority task to run does not require traversing the list. Instead, inserting a task requires walking the list.
388:
a high priority task waits because a low priority task has a mutex, but the lower priority task is not given CPU time to finish its work. A typical solution is to have the task that owns a mutex 'inherit' the priority of the highest waiting task. But this simple approach gets more complex when there
471:
Another reason to avoid dynamic memory allocation is memory fragmentation. With frequent allocation and releasing of small chunks of memory, a situation may occur where available memory is divided into several sections and the RTOS cannot allocate a large enough continuous block of memory, although
306:
is poor at real-time tasks. The scheduler gives the highest priority to jobs with the lowest demand on the computer, so there is no way to ensure that a time-critical job will have access to enough resources. Multitasking systems must manage sharing data and hardware resources among multiple tasks.
199:
Usually, the data structure of the ready list in the scheduler is designed to minimize the worst-case length of time spent in the scheduler's critical section, during which preemption is inhibited, and, in some cases, all interrupts are disabled, but the choice of data structure depends also on the
211:
During this search, preemption should not be inhibited. Long critical sections should be divided into smaller pieces. If an interrupt occurs that makes a high priority task ready during the insertion of a low priority task, that high priority task can be inserted and run immediately before the low
434:
Since an interrupt handler blocks the highest priority task from running, and since real-time operating systems are designed to keep thread latency to a minimum, interrupt handlers are typically kept as short as possible. The interrupt handler defers all interaction with the hardware if possible;
425:
systems, simple message-based systems avoid most protocol deadlock hazards, and are generally better-behaved than semaphore systems. However, problems like those of semaphores are possible. Priority inversion can occur when a task is working on a low-priority message and ignores a higher-priority
438:
An OS maintains catalogues of objects it manages such as threads, mutexes, memory, and so on. Updates to this catalogue must be strictly controlled. For this reason, it can be problematic when an interrupt handler calls an OS function while the application is in the act of also doing so. The OS
215:
The critical response time, sometimes called the flyback time, is the time it takes to queue a new ready task and restore the state of the highest priority task to running. In a well-designed RTOS, readying a new task will take 3 to 20 instructions per ready-queue entry, and restoration of the
472:
there is enough free memory. Secondly, speed of allocation is important. A standard memory allocation scheme scans a linked list of indeterminate length to find a suitable free memory block, which is unacceptable in a RTOS since memory allocation has to occur within a certain amount of time.
50:
operating system, such as Unix, which manages the sharing of system resources with a scheduler, data buffers, or fixed task prioritization in multitasking or multiprogramming environments. All operations must verifiably complete within given time and resource constraints or else
408:, two or more tasks lock mutex without timeouts and then wait forever for the other task's mutex, creating a cyclic dependency. The simplest deadlock scenario occurs when two tasks alternately lock two mutex, but in the opposite order. Deadlock is prevented by careful design.
361:
and OS-supervised interprocess messaging. Such mechanisms involve system calls, and usually invoke the OS's dispatcher code on exit, so they typically take hundreds of CPU instructions to execute, while masking interrupts may take as few as one instruction on some processors.
334:
On single-processor systems, an application running in kernel mode and masking interrupts is the lowest overhead method to prevent simultaneous access to a shared resource. While interrupts are masked and the current task does not make a blocking OS call, the current task has
343:
is protected. When the task exits its critical section, it must unmask interrupts; pending interrupts, if any, will then execute. Temporarily masking interrupts should only be done when the longest path through the critical section is shorter than the desired maximum
83:". A "hard" real-time operating system (hard RTOS) has less jitter than a "soft" real-time operating system (soft RTOS); a late answer is a wrong answer in a hard RTOS while a late answer is acceptable in a soft RTOS. The chief design goal is not high
348:. Typically this method of protection is used only when the critical section is just a few instructions and contains no loops. This method is ideal for protecting hardware bit-mapped registers when the bits are controlled by different tasks.
420:
scheme. In this paradigm, the resource is managed directly by only one task. When another task wants to interrogate or manipulate the resource, it sends a message to the managing task. Although their real-time behavior is less crisp than
63:, meaning the OS can monitor the relevant priority of competing tasks, and make changes to the task priority. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock
219:
In advanced systems, real-time tasks share computing resources with many non-real-time tasks, and the ready list can be arbitrarily long. In such systems, a scheduler ready list implemented as a linked list would be inadequate.
356:
When the shared resource must be reserved without blocking all other tasks (such as waiting for Flash memory to be written), it is better to use mechanisms also available on general-purpose operating systems, such as a
102:. Scheduler flexibility enables a wider, computer-system orchestration of process priorities, but a real-time OS is more frequently dedicated to a narrow set of applications. Key factors in a real-time OS are minimal
162:
needed many cycles to switch tasks during which the CPU could do nothing else useful. Because switching took so long, early OSes tried to minimize wasting CPU time by avoiding unnecessary task switching.
426:
message (or a message originating indirectly from a high priority task) in its incoming message queue. Protocol deadlocks can occur when two or more tasks wait for each other to send response messages.
2124:
475:
Because mechanical disks have much longer and more unpredictable response times, swapping to disk files is not used for the same reasons as RAM allocation discussed above.
323:
code to disable interrupts as such control is considered a key operating system resource. Many embedded systems and RTOSs, however, allow the application itself to run in
632:
307:
It is usually unsafe for two tasks to access the same specific data or hardware resource simultaneously. There are three common approaches to resolve this problem:
118:
An RTOS is an operating system in which the time taken to process an input stimulus is less than the time lapsed until the next input stimulus of the same type.
815:
708:
110:; a real-time OS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time.
401:. Handling multiple levels of inheritance causes other code to run in high priority context and thus can cause starvation of medium-priority threads.
2258:
658:
373:- the original thread. A task may set a timeout on its wait for a mutex. There are several well-known problems with mutex based designs such as
75:
A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's
760:
2205:
464:(memory that is allocated but not freed after use). The device should work indefinitely, without ever needing a reboot. For this reason,
17:
1756:
331:
efficiency and also to permit the application to have greater control of the operating environment without requiring OS intervention.
1712:
808:
501:
91:
performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline
1779:
2162:
2534:
2505:
692:
252:
2720:
1722:
801:
88:
1496:
1490:
606:
516:
275:
46:
applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a
1525:
2309:
2253:
586:
2228:
2198:
2079:
1907:
1302:
734:
2421:
2319:
1749:
1479:
531:
2699:
2248:
2233:
1824:
1577:
1339:
712:
369:
or unlocked. When a task has locked the mutex, all other tasks must wait for the mutex to be unlocked by its
319:, because the user program could control the CPU for as long as it is made to. Some modern CPUs do not allow
468:
is frowned upon. Whenever possible, all required memory allocation is specified statically at compile time.
2730:
2294:
2279:
2238:
2167:
967:
496:
2460:
2407:
880:
541:
405:
378:
2725:
2191:
2114:
1570:
780:
185:
Most tasks are blocked or ready most of the time because generally only one task can run at a time per
662:
2510:
2329:
2289:
2284:
2243:
2069:
2061:
1814:
1742:
1450:
1217:
1085:
985:
611:
571:
465:
446:
on x86 compatible hardware can take a lot of time before it returns control to the operating system.
288:
242:
2553:
2440:
2304:
2094:
2074:
1602:
1564:
1270:
232:
107:
56:
2299:
1922:
1438:
997:
921:
422:
186:
92:
479:
2687:
2626:
2515:
2495:
2444:
2402:
1912:
1609:
1532:
576:
443:
247:
237:
141:
130:
99:
60:
2470:
2436:
2338:
2274:
1844:
1784:
1296:
1188:
596:
591:
152:
2667:
2641:
2172:
2106:
1885:
1794:
1701:
1112:
189:
8:
2636:
2588:
2465:
1970:
1902:
1809:
193:
43:
2573:
2480:
1829:
1598:
1094:
385:
374:
315:
General-purpose operating systems usually do not allow user programs to mask (disable)
204:
1328:
2682:
2631:
2563:
2520:
2361:
2119:
2041:
1927:
1819:
1804:
1645:
1313:
793:
688:
506:
454:
416:
The other approach to resource sharing is for tasks to send messages in an organized
345:
103:
2662:
2214:
2008:
1917:
1856:
1834:
1397:
833:
340:
76:
39:
457:
is more critical in a real-time operating system than in other operating systems.
2606:
2568:
2539:
1892:
1880:
1839:
1765:
1228:
908:
765:
483:
417:
2692:
2616:
2578:
2450:
2134:
2016:
1988:
1937:
1799:
1650:
1161:
1040:
1035:
291:
284:
126:
2714:
2601:
2558:
2397:
2351:
2139:
2051:
1406:
1154:
1025:
2485:
2036:
1849:
1670:
1665:
1121:
1012:
973:
148:
47:
27:
Computer operating system for applications with critical timing constraints
2611:
2593:
2376:
2366:
2356:
2149:
2089:
1897:
1693:
1655:
1550:
1420:
461:
339:
use of the CPU since no other task or interrupt can take control, so the
328:
324:
155:, giving the illusion that a process or user has sole use of a machine.
151:
designs switch tasks more often than strictly needed, but give smoother
2129:
1955:
1789:
1637:
1518:
1385:
281:
256:
159:
84:
64:
2548:
2455:
2381:
2346:
2026:
1660:
1538:
1512:
1432:
1256:
1046:
854:
320:
316:
137:
52:
2183:
2677:
1983:
1875:
1866:
1734:
1544:
1484:
1426:
1133:
1030:
991:
960:
869:
556:
526:
521:
203:
If there are never more than a few tasks on the ready list, then a
2672:
2371:
2144:
2031:
2021:
1960:
1947:
1627:
1621:
1588:
1583:
1473:
1444:
1413:
1391:
1289:
1264:
1243:
1197:
1175:
914:
601:
566:
511:
2046:
1978:
1465:
1368:
1354:
1342:
1210:
1203:
1168:
1127:
941:
932:
896:
874:
536:
297:
80:
687:. Upper Saddle River, NJ: Pearson/Prentice Hall. p. 160.
129:
only when an event of higher priority needs servicing; called
2621:
1557:
1361:
1070:
979:
844:
581:
551:
358:
216:
highest-priority ready task will take 5 to 30 instructions.
1998:
1993:
1932:
1615:
1508:
1322:
1237:
1101:
1064:
863:
546:
310:
303:
2657:
1502:
1345:
1280:
1145:
902:
735:"Programming embedded systems: RTOS – what is real-time?"
561:
429:
200:
maximum number of tasks that can be on the ready list.
823:
228:Some commonly used RTOS scheduling algorithms are:
136:Time-sharing – switches tasks on a regular clocked
261:Fixed-Priority Scheduling with Deferred Preemption
2712:
181:Blocked (waiting for an event, I/O for example).
752:
2199:
1750:
809:
171:In typical designs, a task has three states:
298:Intertask communication and resource sharing
2206:
2192:
1757:
1743:
1707:
816:
802:
682:
502:Comparison of real-time operating systems
397:, which waits for a mutex locked by task
676:
311:Temporarily masking/disabling interrupts
264:Fixed-Priority Non-preemptive Scheduling
758:
14:
2713:
267:Critical section preemptive scheduling
113:
98:An RTOS has an advanced algorithm for
2213:
2187:
1738:
797:
732:
460:First, for stability there cannot be
389:are multiple levels of waiting: task
302:A multitasking operating system like
253:Fixed-priority pre-emptive scheduling
1764:
633:"Real-time Operating Systems (RTOS)"
449:
430:Interrupt handlers and the scheduler
24:
761:"The Future of Unix on the IBM PC"
607:Micro-Controller Operating Systems
517:Earliest deadline first scheduling
411:
365:A (non-recursive) mutex is either
70:
55:. Real-time operating systems are
25:
2742:
393:waits for a mutex locked by task
2310:Object-oriented operating system
1717:
1716:
1706:
781:"CS 241, University of Illinois"
587:Synchronous programming language
2080:Light-weight Linux distribution
1908:Hacking of consumer electronics
1303:Transaction Processing Facility
759:Phraner, Ralph A. (Fall 1984).
175:Running (executing on the CPU);
2320:Supercomputer operating system
773:
726:
701:
651:
625:
532:Interruptible operating system
87:, but rather a guarantee of a
13:
1:
618:
486:because of its low overhead.
223:
178:Ready (ready to be executed);
166:
121:The most common designs are:
2295:Just enough operating system
2280:Distributed operating system
2168:List of open-source hardware
497:Adaptive Partition Scheduler
482:works quite well for simple
7:
2721:Real-time operating systems
2408:User space and kernel space
881:Multi-Environment Real-Time
825:Real-time operating systems
733:Samek, Miro (23 May 2023).
542:Least slack time scheduling
489:
480:fixed-size-blocks algorithm
212:priority task is inserted.
95:it is a hard real-time OS.
18:Real-time operating systems
10:
2747:
2315:Real-time operating system
2085:Real-time operating system
683:Tanenbaum, Andrew (2008).
659:"Response Time and Jitter"
351:
32:real-time operating system
2650:
2587:
2533:
2511:Multilevel feedback queue
2506:Fixed-priority preemptive
2494:
2429:
2420:
2390:
2337:
2328:
2290:Hobbyist operating system
2285:Embedded operating system
2267:
2221:
2158:
2105:
2070:Linux on embedded systems
2060:
2007:
1969:
1946:
1865:
1772:
1679:
1636:
1597:
1378:
1338:
1312:
1279:
1255:
1227:
1187:
1144:
1111:
1084:
1057:
1021:
1011:
986:Operating System Embedded
952:
931:
853:
843:
832:
612:List of operating systems
572:Rate-monotonic scheduling
466:dynamic memory allocation
243:Rate-monotonic scheduling
133:, or priority scheduling.
2554:General protection fault
2305:Network operating system
2259:User features comparison
2075:Linux for mobile devices
1271:Windows Embedded Compact
685:Modern Operating Systems
140:, and on events; called
108:thread switching latency
2300:Mobile operating system
1923:PlayStation 3 Jailbreak
276:Earliest Deadline First
257:preemptive time slicing
255:, an implementation of
2403:Loadable kernel module
1913:Homebrew (video games)
1610:Robot Operating System
577:Robot Operating System
444:System Management Mode
270:Static-time scheduling
248:Round-robin scheduling
233:Cooperative scheduling
79:; the variability is "
2471:Process control block
2437:Computer multitasking
2275:Disk operating system
2107:Programming languages
1845:Single-board computer
1785:Board support package
597:Time-utility function
592:Time-triggered system
238:Preemptive scheduling
2642:Virtual tape library
2234:Forensic engineering
2173:Open-source robotics
2163:Lightweight browsers
1886:Proprietary firmware
1795:Consumer electronics
1702:Open-source software
1113:Java virtual machine
2731:Real-time computing
2651:Supporting concepts
2637:Virtual file system
1903:Defective by Design
1810:Embedded hypervisor
639:. 13 September 2023
194:resource starvation
131:preemptive priority
114:Design philosophies
44:real-time computing
2574:Segmentation fault
2422:Process management
1971:Software libraries
386:priority inversion
375:priority inversion
205:doubly linked list
2726:Operating systems
2708:
2707:
2564:Memory protection
2535:Memory management
2529:
2528:
2521:Shortest job next
2416:
2415:
2215:Operating systems
2181:
2180:
2120:Assembly language
2062:Operating systems
2042:Stand-alone shell
2009:Programming tools
1928:Rooting (Android)
1820:Embedded software
1805:Embedded database
1732:
1731:
1460:
1459:
1314:Texas Instruments
1080:
1079:
1007:
1006:
769:. pp. 59–64.
694:978-0-13-600663-3
507:Data General RDOS
455:Memory allocation
450:Memory allocation
346:interrupt latency
104:interrupt latency
93:deterministically
16:(Redirected from
2738:
2663:Computer network
2427:
2426:
2335:
2334:
2208:
2201:
2194:
2185:
2184:
1918:iOS jailbreaking
1835:Memory footprint
1766:Embedded systems
1759:
1752:
1745:
1736:
1735:
1720:
1719:
1710:
1709:
1398:ERIKA Enterprise
1086:Capability-based
1019:
1018:
851:
850:
841:
840:
818:
811:
804:
795:
794:
788:
787:
785:
777:
771:
770:
756:
750:
749:
747:
745:
730:
724:
723:
721:
720:
711:. Archived from
705:
699:
698:
680:
674:
673:
671:
670:
661:. Archived from
655:
649:
648:
646:
644:
629:
484:embedded systems
341:critical section
40:operating system
21:
2746:
2745:
2741:
2740:
2739:
2737:
2736:
2735:
2711:
2710:
2709:
2704:
2646:
2607:Defragmentation
2592:
2583:
2569:Protection ring
2538:
2525:
2497:
2490:
2412:
2386:
2324:
2263:
2217:
2212:
2182:
2177:
2154:
2101:
2056:
2003:
1965:
1942:
1893:Closed platform
1881:Custom firmware
1861:
1840:Microcontroller
1768:
1763:
1733:
1728:
1705:
1675:
1632:
1593:
1456:
1374:
1334:
1308:
1275:
1251:
1223:
1183:
1140:
1107:
1076:
1053:
1003:
948:
927:
909:Real-Time Linux
835:
828:
822:
792:
791:
783:
779:
778:
774:
757:
753:
743:
741:
731:
727:
718:
716:
709:"RTOS Concepts"
707:
706:
702:
695:
681:
677:
668:
666:
657:
656:
652:
642:
640:
631:
630:
626:
621:
616:
492:
452:
442:Similarly, the
432:
418:message passing
414:
412:Message passing
354:
313:
300:
292:graph traversal
226:
169:
125:Event-driven –
116:
73:
71:Characteristics
28:
23:
22:
15:
12:
11:
5:
2744:
2734:
2733:
2728:
2723:
2706:
2705:
2703:
2702:
2697:
2696:
2695:
2693:User interface
2690:
2680:
2675:
2670:
2665:
2660:
2654:
2652:
2648:
2647:
2645:
2644:
2639:
2634:
2629:
2624:
2619:
2617:File attribute
2614:
2609:
2604:
2598:
2596:
2585:
2584:
2582:
2581:
2579:Virtual memory
2576:
2571:
2566:
2561:
2556:
2551:
2545:
2543:
2531:
2530:
2527:
2526:
2524:
2523:
2518:
2513:
2508:
2502:
2500:
2492:
2491:
2489:
2488:
2483:
2478:
2473:
2468:
2463:
2458:
2453:
2451:Context switch
2448:
2433:
2431:
2424:
2418:
2417:
2414:
2413:
2411:
2410:
2405:
2400:
2394:
2392:
2388:
2387:
2385:
2384:
2379:
2374:
2369:
2364:
2359:
2354:
2349:
2343:
2341:
2332:
2326:
2325:
2323:
2322:
2317:
2312:
2307:
2302:
2297:
2292:
2287:
2282:
2277:
2271:
2269:
2265:
2264:
2262:
2261:
2256:
2251:
2246:
2241:
2236:
2231:
2225:
2223:
2219:
2218:
2211:
2210:
2203:
2196:
2188:
2179:
2178:
2176:
2175:
2170:
2165:
2159:
2156:
2155:
2153:
2152:
2147:
2142:
2137:
2132:
2127:
2122:
2117:
2111:
2109:
2103:
2102:
2100:
2099:
2098:
2097:
2087:
2082:
2077:
2072:
2066:
2064:
2058:
2057:
2055:
2054:
2049:
2044:
2039:
2034:
2029:
2024:
2019:
2017:Almquist shell
2013:
2011:
2005:
2004:
2002:
2001:
1996:
1991:
1989:Embedded GLIBC
1986:
1981:
1975:
1973:
1967:
1966:
1964:
1963:
1958:
1952:
1950:
1944:
1943:
1941:
1940:
1938:Vendor lock-in
1935:
1930:
1925:
1920:
1915:
1910:
1905:
1900:
1895:
1890:
1889:
1888:
1883:
1872:
1870:
1863:
1862:
1860:
1859:
1854:
1853:
1852:
1842:
1837:
1832:
1827:
1822:
1817:
1812:
1807:
1802:
1800:Cross compiler
1797:
1792:
1787:
1782:
1776:
1774:
1770:
1769:
1762:
1761:
1754:
1747:
1739:
1730:
1729:
1727:
1726:
1697:
1689:
1687:= discontinued
1680:
1677:
1676:
1674:
1673:
1668:
1663:
1658:
1653:
1651:David Cheriton
1648:
1642:
1640:
1634:
1633:
1631:
1625:
1619:
1613:
1607:
1605:
1595:
1594:
1592:
1591:
1586:
1581:
1575:
1561:
1554:
1547:
1542:
1536:
1529:
1522:
1516:
1506:
1500:
1494:
1488:
1482:
1477:
1470:
1461:
1458:
1457:
1455:
1454:
1448:
1442:
1436:
1430:
1424:
1418:
1410:
1404:
1401:
1395:
1389:
1382:
1380:
1376:
1375:
1373:
1372:
1365:
1358:
1350:
1348:
1336:
1335:
1333:
1332:
1329:TI-RTOS Kernel
1326:
1318:
1316:
1310:
1309:
1307:
1306:
1300:
1293:
1285:
1283:
1277:
1276:
1274:
1273:
1268:
1261:
1259:
1253:
1252:
1250:
1249:
1233:
1231:
1225:
1224:
1222:
1221:
1215:
1207:
1201:
1194:
1192:
1185:
1184:
1182:
1181:
1180:
1179:
1172:
1165:
1162:Concurrent DOS
1150:
1148:
1142:
1141:
1139:
1138:
1117:
1115:
1109:
1108:
1106:
1105:
1099:
1090:
1088:
1082:
1081:
1078:
1077:
1075:
1074:
1068:
1061:
1059:
1055:
1054:
1052:
1051:
1050:
1049:
1044:
1043:(organization)
1041:T-Engine Forum
1038:
1036:Micro T-Kernel
1028:
1022:
1016:
1009:
1008:
1005:
1004:
1002:
1001:
995:
989:
983:
977:
971:
965:
956:
954:
950:
949:
947:
946:
937:
935:
929:
928:
926:
925:
918:
912:
906:
900:
893:
877:
872:
867:
859:
857:
848:
838:
830:
829:
821:
820:
813:
806:
798:
790:
789:
772:
751:
725:
700:
693:
675:
650:
623:
622:
620:
617:
615:
614:
609:
604:
599:
594:
589:
584:
579:
574:
569:
564:
559:
554:
549:
544:
539:
534:
529:
524:
519:
514:
509:
504:
499:
493:
491:
488:
451:
448:
431:
428:
413:
410:
353:
350:
312:
309:
299:
296:
295:
294:
289:multi-threaded
279:
273:
272:
271:
268:
265:
262:
259:
250:
245:
235:
225:
222:
183:
182:
179:
176:
168:
165:
146:
145:
134:
127:switches tasks
115:
112:
72:
69:
26:
9:
6:
4:
3:
2:
2743:
2732:
2729:
2727:
2724:
2722:
2719:
2718:
2716:
2701:
2698:
2694:
2691:
2689:
2686:
2685:
2684:
2681:
2679:
2676:
2674:
2671:
2669:
2666:
2664:
2661:
2659:
2656:
2655:
2653:
2649:
2643:
2640:
2638:
2635:
2633:
2630:
2628:
2625:
2623:
2620:
2618:
2615:
2613:
2610:
2608:
2605:
2603:
2600:
2599:
2597:
2595:
2590:
2586:
2580:
2577:
2575:
2572:
2570:
2567:
2565:
2562:
2560:
2559:Memory paging
2557:
2555:
2552:
2550:
2547:
2546:
2544:
2541:
2536:
2532:
2522:
2519:
2517:
2514:
2512:
2509:
2507:
2504:
2503:
2501:
2499:
2493:
2487:
2484:
2482:
2479:
2477:
2474:
2472:
2469:
2467:
2464:
2462:
2459:
2457:
2454:
2452:
2449:
2446:
2442:
2438:
2435:
2434:
2432:
2428:
2425:
2423:
2419:
2409:
2406:
2404:
2401:
2399:
2398:Device driver
2396:
2395:
2393:
2389:
2383:
2380:
2378:
2375:
2373:
2370:
2368:
2365:
2363:
2360:
2358:
2355:
2353:
2350:
2348:
2345:
2344:
2342:
2340:
2339:Architectures
2336:
2333:
2331:
2327:
2321:
2318:
2316:
2313:
2311:
2308:
2306:
2303:
2301:
2298:
2296:
2293:
2291:
2288:
2286:
2283:
2281:
2278:
2276:
2273:
2272:
2270:
2266:
2260:
2257:
2255:
2252:
2250:
2247:
2245:
2242:
2240:
2237:
2235:
2232:
2230:
2227:
2226:
2224:
2220:
2216:
2209:
2204:
2202:
2197:
2195:
2190:
2189:
2186:
2174:
2171:
2169:
2166:
2164:
2161:
2160:
2157:
2151:
2148:
2146:
2143:
2141:
2140:Embedded Java
2138:
2136:
2133:
2131:
2128:
2126:
2123:
2121:
2118:
2116:
2113:
2112:
2110:
2108:
2104:
2096:
2093:
2092:
2091:
2088:
2086:
2083:
2081:
2078:
2076:
2073:
2071:
2068:
2067:
2065:
2063:
2059:
2053:
2052:Yocto Project
2050:
2048:
2045:
2043:
2040:
2038:
2035:
2033:
2030:
2028:
2025:
2023:
2020:
2018:
2015:
2014:
2012:
2010:
2006:
2000:
1997:
1995:
1992:
1990:
1987:
1985:
1982:
1980:
1977:
1976:
1974:
1972:
1968:
1962:
1959:
1957:
1954:
1953:
1951:
1949:
1945:
1939:
1936:
1934:
1931:
1929:
1926:
1924:
1921:
1919:
1916:
1914:
1911:
1909:
1906:
1904:
1901:
1899:
1896:
1894:
1891:
1887:
1884:
1882:
1879:
1878:
1877:
1874:
1873:
1871:
1868:
1864:
1858:
1855:
1851:
1848:
1847:
1846:
1843:
1841:
1838:
1836:
1833:
1831:
1828:
1826:
1823:
1821:
1818:
1816:
1813:
1811:
1808:
1806:
1803:
1801:
1798:
1796:
1793:
1791:
1788:
1786:
1783:
1781:
1778:
1777:
1775:
1773:General terms
1771:
1767:
1760:
1755:
1753:
1748:
1746:
1741:
1740:
1737:
1725:
1724:
1715:
1714:
1704:
1703:
1698:
1696:
1695:
1690:
1688:
1685:
1682:
1681:
1678:
1672:
1669:
1667:
1664:
1662:
1659:
1657:
1654:
1652:
1649:
1647:
1644:
1643:
1641:
1639:
1635:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1606:
1604:
1600:
1596:
1590:
1587:
1585:
1582:
1579:
1576:
1573:
1572:
1567:
1566:
1562:
1560:
1559:
1555:
1553:
1552:
1548:
1546:
1543:
1540:
1537:
1535:
1534:
1530:
1528:
1527:
1523:
1520:
1517:
1514:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1481:
1478:
1476:
1475:
1471:
1468:
1467:
1463:
1462:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1415:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1383:
1381:
1377:
1371:
1370:
1366:
1364:
1363:
1359:
1357:
1356:
1352:
1351:
1349:
1347:
1344:
1341:
1337:
1330:
1327:
1325:
1324:
1320:
1319:
1317:
1315:
1311:
1304:
1301:
1299:
1298:
1294:
1292:
1291:
1287:
1286:
1284:
1282:
1278:
1272:
1269:
1266:
1263:
1262:
1260:
1258:
1254:
1247:
1245:
1240:
1239:
1235:
1234:
1232:
1230:
1226:
1219:
1216:
1213:
1212:
1208:
1205:
1202:
1199:
1196:
1195:
1193:
1190:
1186:
1178:
1177:
1173:
1171:
1170:
1166:
1164:
1163:
1159:
1158:
1157:
1156:
1155:Multiuser DOS
1152:
1151:
1149:
1147:
1143:
1136:
1135:
1130:
1129:
1124:
1123:
1119:
1118:
1116:
1114:
1110:
1103:
1100:
1097:
1096:
1092:
1091:
1089:
1087:
1083:
1072:
1069:
1066:
1063:
1062:
1060:
1056:
1048:
1045:
1042:
1039:
1037:
1034:
1033:
1032:
1029:
1027:
1026:ITRON project
1024:
1023:
1020:
1017:
1014:
1010:
999:
996:
993:
990:
987:
984:
981:
978:
975:
972:
969:
966:
963:
962:
958:
957:
955:
951:
944:
943:
939:
938:
936:
934:
930:
924:
923:
919:
916:
913:
910:
907:
904:
901:
899:
898:
894:
891:
887:
883:
882:
878:
876:
873:
871:
868:
866:
865:
861:
860:
858:
856:
852:
849:
846:
842:
839:
837:
831:
826:
819:
814:
812:
807:
805:
800:
799:
796:
782:
776:
768:
767:
762:
755:
740:
736:
729:
715:on 2011-07-23
714:
710:
704:
696:
690:
686:
679:
665:on 2011-07-23
664:
660:
654:
638:
634:
628:
624:
613:
610:
608:
605:
603:
600:
598:
595:
593:
590:
588:
585:
583:
580:
578:
575:
573:
570:
568:
565:
563:
560:
558:
555:
553:
550:
548:
545:
543:
540:
538:
535:
533:
530:
528:
525:
523:
520:
518:
515:
513:
510:
508:
505:
503:
500:
498:
495:
494:
487:
485:
481:
476:
473:
469:
467:
463:
458:
456:
447:
445:
440:
436:
427:
424:
419:
409:
407:
402:
400:
396:
392:
387:
382:
380:
376:
372:
368:
363:
360:
349:
347:
342:
338:
332:
330:
326:
322:
318:
308:
305:
293:
290:
286:
283:
280:
277:
274:
269:
266:
263:
260:
258:
254:
251:
249:
246:
244:
241:
240:
239:
236:
234:
231:
230:
229:
221:
217:
213:
209:
206:
201:
197:
195:
191:
188:
180:
177:
174:
173:
172:
164:
161:
156:
154:
150:
143:
139:
135:
132:
128:
124:
123:
122:
119:
111:
109:
105:
101:
96:
94:
90:
86:
82:
78:
68:
66:
62:
58:
54:
49:
45:
41:
37:
33:
19:
2594:file systems
2486:Time-sharing
2475:
2314:
2135:Embedded C++
2084:
2037:OpenEmbedded
1948:Boot loaders
1869:and controls
1850:Raspberry Pi
1721:
1711:
1699:
1691:
1686:
1683:
1671:Ken Sakamura
1666:Adam Dunkels
1569:
1563:
1556:
1549:
1531:
1524:
1472:
1464:
1412:
1379:Low resource
1367:
1360:
1353:
1321:
1295:
1288:
1242:
1241:^° kernel →
1236:
1209:
1174:
1167:
1160:
1153:
1132:
1126:
1120:
1093:
974:Nucleus RTOS
959:
940:
920:
895:
889:
885:
879:
862:
824:
775:
764:
754:
744:13 September
742:. Retrieved
739:Embedded.com
738:
728:
717:. Retrieved
713:the original
703:
684:
678:
667:. Retrieved
663:the original
653:
643:13 September
641:. Retrieved
636:
627:
477:
474:
470:
462:memory leaks
459:
453:
441:
437:
433:
415:
403:
398:
394:
390:
383:
370:
366:
364:
355:
336:
333:
327:for greater
314:
301:
227:
218:
214:
210:
202:
198:
184:
170:
157:
153:multitasking
149:Time sharing
147:
120:
117:
106:and minimal
97:
89:soft or hard
74:
57:event-driven
48:time-sharing
35:
31:
29:
2612:Device file
2602:Boot loader
2516:Round-robin
2441:Cooperative
2377:Rump kernel
2367:Multikernel
2357:Microkernel
2254:Usage share
2150:MicroPython
2090:Windows IoT
1898:Crippleware
1815:Embedded OS
1694:Microkernel
1656:Dave Cutler
1646:Gordon Bell
1551:Sintran III
1421:OpenComRTOS
1122:Chorus/Jazz
478:The simple
329:system call
325:kernel mode
160:CPU designs
142:round-robin
2715:Categories
2542:protection
2498:algorithms
2496:Scheduling
2445:Preemptive
2391:Components
2362:Monolithic
2229:Comparison
2130:Embedded C
1790:Bootloader
1713:Comparison
1638:Developers
1599:Frameworks
1541:° Standard
1519:Phantom OS
1497:µ-velOSity
1386:ChibiOS/RT
719:2010-12-04
669:2010-12-04
619:References
317:interrupts
282:Stochastic
224:Algorithms
167:Scheduling
100:scheduling
85:throughput
65:interrupts
61:preemptive
2632:Partition
2549:Bus error
2476:Real-time
2456:Interrupt
2382:Unikernel
2347:Exokernel
2027:Buildroot
1661:Dan Dodge
1589:UniProton
1539:RT-Thread
1513:Microware
1433:RT-Thread
1257:Microsoft
1047:T-License
968:Integrity
855:Unix-like
834:Operating
423:semaphore
379:deadlocks
337:exclusive
321:user mode
138:interrupt
53:fail safe
42:(OS) for
2678:Live USB
2540:resource
2430:Concepts
2268:Variants
2249:Timeline
1984:dietlibc
1876:Firmware
1867:Firmware
1723:Category
1545:ScreenOS
1485:FreeRTOS
1427:PX5 RTOS
1134:ChorusOS
1031:T-Kernel
992:PX5 RTOS
961:ChorusOS
870:Junos OS
637:Benzinga
557:PX5 RTOS
527:FreeRTOS
522:Firmware
490:See also
406:deadlock
285:digraphs
278:approach
38:) is an
2673:Live CD
2627:Journal
2591:access,
2589:Storage
2466:Process
2372:vkernel
2239:History
2222:General
2145:MISRA C
2032:BusyBox
2022:BitBake
1961:Barebox
1684:Italics
1628:Xenomai
1622:TI-RTOS
1584:VxWorks
1571:Harmony
1474:DioneOS
1445:ThreadX
1414:Nano-RK
1403:FunkOS°
1392:Contiki
1297:4690 OS
1290:4680 OS
1265:ThreadX
1244:Symbian
1176:REAL/32
1058:Partial
1015:support
988:^ (OSE)
953:Partial
915:RTLinux
890:Unix-RT
847:support
836:systems
602:ThreadX
567:VxWorks
512:DO-178B
352:Mutexes
2481:Thread
2352:Hybrid
2330:Kernel
2095:Win CE
2047:Toybox
1979:uClibc
1956:U-Boot
1466:BeRTOS
1451:Zephyr
1435:° Nano
1407:Mynewt
1369:VAXELN
1355:RSX-11
1343:PDP-11
1218:Wombat
1211:REX OS
1204:PikeOS
1198:LLinux
1191:kernel
1169:FlexOS
1128:JavaOS
942:LiteOS
933:LiteOS
897:OS2000
875:LynxOS
827:(RTOS)
691:
537:INtime
367:locked
158:Early
81:jitter
2683:Shell
2622:Inode
1565:Thoth
1558:THEOS
1491:µC/OS
1480:embOS
1362:RT-11
1305:(TPF)
1229:Psion
1071:RTEMS
980:NuttX
845:POSIX
784:(PDF)
582:SCADA
552:POSIX
404:In a
371:owner
359:mutex
287:with
2244:List
2125:CAPL
1999:musl
1994:lwIP
1933:UEFI
1825:FPGA
1780:ASIC
1700:° =
1692:^ =
1616:RTAI
1603:kits
1578:VRTX
1568:^ →
1526:pSOS
1509:OS-9
1439:RIOT
1323:DSOS
1238:EKA2
1102:seL4
1095:EROS
1065:eCos
1013:TRON
998:RIOT
922:UNOS
886:MERT
864:DNIX
766:Byte
746:2023
689:ISBN
645:2023
547:OSEK
377:and
304:Unix
190:core
77:task
59:and
36:RTOS
2700:PXE
2688:CLI
2668:HAL
2658:API
2461:IPC
2115:Ada
1857:SoC
1830:IoT
1612:° 2
1533:RMX
1503:MQX
1346:VAX
1340:DEC
1281:IBM
1146:DOS
1125:^ (
903:QNX
884:^ (
562:QNX
384:In
196:).
187:CPU
2717::
2443:,
1624:^°
1601:,
1521:^°
1493:^°
1487:^°
1469:^°
1453:^°
1388:^°
1331:^°
1248:^°
1246:OS
1220:^°
1200:^°
1189:L4
1137:^)
1131:+
1104:^°
1098:^°
1000:^°
982:^°
888:–
763:.
737:.
635:.
381:.
67:.
30:A
2537:,
2447:)
2439:(
2207:e
2200:t
2193:v
1758:e
1751:t
1744:v
1630:°
1618:°
1580:^
1574:^
1515:)
1511:(
1505:^
1499:^
1447:^
1441:°
1429:^
1423:^
1417:°
1409:°
1400:°
1394:°
1267:^
1214:^
1206:^
1073:°
1067:°
994:^
976:^
970:^
964:^
945:°
917:°
911:°
905:^
892:)
817:e
810:t
803:v
786:.
748:.
722:.
697:.
672:.
647:.
399:C
395:B
391:A
144:.
34:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.