慶應義塾大学
2013年度 春学期
システム・ソフトウェア
System Software / Operating Systems
第13回 7月9日 リアルタイムOS
Lecture 13, July 9: Real-Time Operating Systems
Outline
- Link of the Day
- Today's Picture
- Scheduling
- Basic priority scheduling (return to Mars)
- Goals of scheduling
- Batch scheduling: FCFS, SJF
- CPU scheduling: round robin, etc.
- I/O priority boost
- Fairness: by user or process?
- Thread scheduling
- Multiprocessor scheduling
- Realtime: deadline scheduling
- Bonus: scheduling in multithreaded architectures
- Current scheduling research
Sadness of the Week
This week, we lost two incredibly important people from the CS
community.
- Douglas Engelbart
- Isamu Kaneko
Links of the Day
David Malan's introductory computer science class at Harvard
Launch of the
space shuttle Columbia, April 12, 1981 (I was there.)
Today's Picture
Real-Time Operating Systems
- Real-time operation requires careful control over resources.
- CPU scheduling is perhaps the most important; real-time
scheduling is done by establishing deadlines for certain
tasks, or more generall value functions.
Scheduling
Basic Priority Scheduling
A few weeks ago we saw basic priority scheduling, in the example of
VxWorks on Mars. VxWorks is a good example of an embedded
OS, and also includes real-time operation.
Goals of General-Purpose Scheduling
- Throughput
- Fairness
- Responsiveness
- Effective utilization of all resources
Do those goals still hold in real-time OSes? No!
Real-Time Scheduling
Airplanes falling from the sky, death and destruction all around. We
don't want that, do we? Then don't play Tetris on your flight
avionics hardware...
- CPU scheduling is perhaps the most important aspect, but the
principles apply to other resources, as well.
- Several mechanisms can be used:
- Shortest job first
- Deadline: Job with the earliest deadline is
chosen
- Slack: Job with the least "slack" (room for
error/time to waste) is chosen
- FIFO: Just what it sounds like, and only good in
certain circumstances
Jensen, Locke and Tokuda talk about the value of completing
a particular task at a particular time:
Once the value reaches zero, there is no point in executing the
task. Question: What might some tasks be that would have each of
those classes of value function?
Here is an example of what a schedule might look like if we had one
of each kind of task, all started at the same time:
Flying the Space Shuttle
The space shuttle's avionics software controls what has been
called the most complex machine ever built. The control software
development, done by IBM Federal Systems, is one of the most
precisely, carefully engineered software projects in history.
Let's look at it in detail (for the original software and
hardware).
We will work
from Carlow's
1984 CACM paper.
Homework
None, just work on your project.
Next Lecture
Next lecture:
第14回 7月16日 Operating Systemsの研究
Lecture 14, July 16: Operating Systems Research
Follow-up: You should look up both the real-time and embedded capabilities of
その他 Additional Information