Lecture 021

Scheduling

Purpose: make progress for all processes (fairness), and make progress for interactive processes (responsiveness)

Who should schedule:

Criteria:

Four opportunities to schedule:

Fully preemptive: all four Cooperative: only first two

Algorithms:

Hyperthreading: one physical computational unit but two register/memory set, and the computational unit switch between two register/memory set quickly (and don't switch when one is I/O blocked). This only speedup in certain cases, and hurt performance in other cases. It also has security bugs based on timing attacks.

Realtime Scheduling: (e.g. for self-driving car, delay can cause death)

Soft-realtime scheduling: (e.g. UI, video games, video streaming, etc.)

Table of Content