Operating Systems 2019W Lecture 16: Difference between revisions

From Soma-notes
No edit summary
Line 6: Line 6:
==Readings/Outside resources==
==Readings/Outside resources==


If you wish to learn more about scheduling, see the following textbook chapters: [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf CPU Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf Multi-level Feedback Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-lottery.pdf Lottery Scheduling], and [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-multi.pdf Multi-CPU Scheduling].  Note that while you should understand the concept of scheduling, we will not be discussing scheduling algorithms in this course.
If you wish to learn more about scheduling, see the textbook chapters on [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf CPU Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf Multi-level Feedback Scheduling], [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-lottery.pdf Lottery Scheduling], and [http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-multi.pdf Multi-CPU Scheduling].  Note that while you should understand the concept of scheduling, we will not be discussing scheduling algorithms in this course.
 


==Notes==
==Notes==

Revision as of 13:33, 14 March 2019

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.

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