Multitasking Systems: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Add Real-Time multitasking
 
(3 intermediate revisions by 2 users not shown)
Line 12:
===Preemptive Multitasking===
 
In a [[Preemptive_Multitasking|preemptive multitasking]] system, some task switches are not caused by the currently running task voluntarily giving up the CPU, and are done for one or more reasons (including when the task consumed the time it was given and/or when a higher priority task needed the CPU).
 
Examples include almost all modern operating systems - e.g. Linux, *BSD, post-3.x Windows, BeOS, AmigaOS.
 
You can further subdivide these systems into those who can preempt tasks, and those who can preempt ''the kernel itself''. Linux (pre-2.6 kernel) is an example of the former, while e.g. AmigaOS is an example for the latter. This is a major concern for multimedia applications or any "soft" [Real-Time Systems] because a non-preemptive kernel introduces latencies that can ruin such "near real-time" performance.
 
===Real-Time Multitasking===
 
In a Real-Time Operating System (RTOS), the scheduler works in a specific kind of [[Preemptive_Multitasking|preemptive multitasking]] system. It is designed for applications requiring responses within a fixed time window and tight time constraints. These systems are crucial in fields where delay can result in failure of the application.
 
Real-Time is defined by its determinism and high responsiveness ('''not always!''', a RTOS can be slow as long as the task change is performed within a fixed interval), operating under strict timing constraints to ensure predictable operation and rapid task switching. It is crucial for applications that cannot tolerate delays, such as avionics and aerospace systems, embedded medical devices or automotive controls.
 
[[Category:Task Models]]
[[Category:Multitasking]]
 
 
==See Also==
Line 23 ⟶ 33:
*[[Monotasking Systems]]
*[[Scheduling Algorithms]]
*[[Kernel Multitasking]]
 
=== External Links ===
Line 28 ⟶ 39:
 
[[Category:Task Models]]
[[Category:Multitasking]]