Process Management

Process management answers three questions: how do several programs compete for one CPU, who wins that competition, and how do they avoid colliding while they compete?

The first thread is the concurrency unit itself: a process allocates resources, a thread is scheduled, and the PCB records a process’s whole state — the difference between them, the choice of a multithreading model, and the conversions between process states all matter here.

The second thread is how the CPU gets divided: criteria decide what a good allocation is, approaches decide when the decision is made, and algorithms supply the mechanics, with evaluation metrics making “good” measurable.

The third thread is the order among sharers of shared resources: semaphores and monitors formalize mutual exclusion and synchronization, the classical synchronization problems expose subtle design differences, and deadlock is the extreme failure of that order.

By the end you should be able to explain the difference between processes and threads, weigh the trade-offs among the common scheduling algorithms, and judge whether concurrent code holds up on mutual exclusion, synchronization, and deadlock.

Chapters

Found an issue with this content?

Tell us what could be improved.