Operating Systems 2019W Lecture 16

From Soma-notes

Video

The video for the lecture given on March 13, 2019 is now available.


Readings/Outside resources

If you wish to learn more about scheduling, see the textbook chapters on CPU Scheduling, Multi-level Feedback Scheduling, Lottery Scheduling, and Multi-CPU Scheduling. Note that while you should understand the concept of scheduling, we will not be discussing scheduling algorithms in this course (thus these are not listed on the main course page).

If you want to learn about the history of UNIX, see this old AT&T video on the history of UNIX and Ken Thompson's talk on UNIX history (talk really starts about 3:45 in, note it is more of his history than UNIX's history, but it is still very interesting).

Notes

Lecture 16
----------

Scheduling

When a process is interrupted or makes a system call, the kernel takes over the CPU core (and the core switches to supervisor mode)

Scheduling is what happens when the kernel finishes its work and
wants to run a process

The kernel must choose what process (task) to run next, quickly and efficiently

What criteria to use?
 - fairness: every process gets an equal share
 - but really, we want the kernel to run the "important" programs when they need to, an "unimportant" programs should take a back seat
 - so, we set priorities

But static priorities aren't enough
 - so the kernel dynamically adjusts priorities based on heuristics