Logo

Chapter 3: The Programming Interface

Everything in the operating system must consider a tradeoff between

3.1 Process Management

Early operating systems had the kernel in control of everything. Modern operating systems allow user programs to create and manage their own processes. A shell, for instance, is a job control system, allowing you to run several instructions in sequence.

UNIX manages processes via fork() and exec(). fork() duplicates the parent process, while exec() replaces the current process with an entirely new one. The parent may wait() until the child terminates.

3.2 Input/Output

The basic ideas of UNIX I/O are

There's a bit more to discuss with IPC.

3.4 Interprocess Communication

Three common ways:

3.5 Operating System Structure

Two types of kernels, as mentioned previously.