|
February 2011 12 pages |
|
The Joy of Scheduling
The scheduler is at the heart of the OS: it governs when everything runs. Scheduling is especially important in realtime systems, where tasks must run in a deterministic manner. If the designer doesn’t have complete control of scheduling, unpredictable and unwanted system behavior can and will occur. This paper describes some commonly used scheduling algorithms and how scheduling works, This knowledge can help developers correct scheduling problems and create more efficient systems.
Contents
What Does a Scheduler Do? —
Interrupts and Scheduling —
Priorities —
Partitioning —
Multicore Scheduling —
Scheduling Problems —
Conclusion
[+]
What Does a Scheduler Do?
Wikipedia provides a succinct and accurate list of what a scheduler does: CPU utilization, keeping the CPU as busy as possible; throughput, the number of tasks that ...
Interrupts and Scheduling
An interrupt is exactly what it sounds like: an interruption of whatever is currently going on, and a diversion to another task. For example, if a hardware device has some data, it raises ...
Priorities
Many scheduling algorithms use priorities to determine the order in which tasks should run. The priorities and how they're manipulated can (not surprisingly) greatly affect ...
Partitioning
Partitioning provides a way for an OS to share resources among competing processes, or even to protect (or secure) computer resources from malicious software. Time partitioning is a mechanism that ...
Multicore Scheduling
On a single-core system, the RTOS scheduler ensures that the highest-priority thread runs. In this example, processes P1 and P2, and threads T1 and T2 share the same CPU, and execution is serialized on ...
Scheduling Problems
Regardless of how good our system design is, there will always be problems that show up after the system is implemented. To put it bluntly, we are human and we will make mistakes or fail to ...
Conclusion
It is important for software developers and system designers to understand how OS schedulers work, in order to make sure that all their systems’ processes and applications are scheduled so as to ...
|
|
Download
|
Jeff Schaffer
jpschaffer@qnx.com
|
Jeff Schaffer
Jeff Schaffer, a senior applications engineer with QNX Software Systems, has been working with a variety of operating systems at a systems level for over 30 years. He has also acted as a system architect and designed high-speed database technology.
Jeff gained experience in several industries throughout his career, including medical, industrial, semiconductor processing, security, consumer electronics, and telecommunications.
When he is not working with QNX customers, Jeff enjoys photography, videography, and woodworking — though not necessarily at the same time. He received his BS (Engineering) and MS (Computer Science) degrees from UCLA. |
Steve Reid
stever@qnx.com
|
Steve Reid
Steve Reid has been a technical editor and writer at QNX Software Systems for more than 15 years. During this time, he has specialized in OS documentation, producing user guides, installation and release notes, and the occasional whitepaper. His work has received several awards from the Society for Technical Communication.
Prior to joining QNX Software Systems, Steve worked as a software developer, technical writer, and trainer at Bell-Northern Research, working on projects such as network-planning tools, telephone software, and graphical user interface systems.
When he isn't writing and editing, Steve enjoys drawing, gardening, woodworking, and creating scale miniatures. Steve earned a BMath (Honours Co-operative Computer Science) from the University of Waterloo. |
|
See Also... Exactly When Do You Need an RTOS?
Using Resource Partitioning to Build Secure, Survivable Embedded Systems
Using Time Partitioning to Ensure Guaranteed Access to Industrial Control Systems
Processor Affinity or Bound Multiprocessing: Easing the Migration to Embedded Multicore Processing
|
|
Other whitepaper topics:
|
Recent,
Automotive,
German Whitepapers,
HMI + Graphics,
Industrial,
Medical,
Multimedia + Acoustics,
Networking,
Operating Systems,
Security + Defense,
Safe Systems,
Tools
|
|
|