The Traditional OS:
Traditional single-CPU operating systems share a number of common characteristics. Be careful with the book here in the sense that the authors do gloss over a number of concepts.Characteristics often associated with a traditional OS:
- A single cpu
- System resources are shared among many users
- A virtual machine is implemented, in which each
process perceives
the system as being exclusive to the process. In this sense,
- Applications are protected from each other
- The operating system maintains control over resources, often
through
several modes of operation in the CPU (the book mentions
two modes):
- Kernel mode: CPU mode in which the whole computer and all instructions are available. This is available only to privileged processes (e.g. the code that implements the kernel).
- User mode: CPU mode in which restrictions are placed on access to certain resources. This is available to any process.
One alternative given here is the microkernel approach:
- Two parts of the OS:
- The microkernel, which contains kernel mode code yet is small, modular, executes quickly, etc.
- The user-mode modules for managing resources. It is often true that portions of the operating system's functionality can be executed outside of kernel mode. For example, the printing system can be managed entirely as a user-level subsystem without adversely affecting the operation of the system as a whole.
- Communication in this model is via message passing (even though shared memory may be available).
Its disadvantages have to do with familiarity and performance. The familiarity aspect is that it's not. People fear change. The performance has to do with the message passing in the form of extra communication (among somewhat separated modules, instead of a unified monolithic structure), which results in a performance loss.