13.07.2015 Views

An Operating Systems Vade Mecum

An Operating Systems Vade Mecum

An Operating Systems Vade Mecum

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The communication-kernel approach 313The environment of a process is defined by the communication ports it has accessto and the processes that serve those ports.It makes no difference to a process what machine it runs on, except for its speed ofexecution and communication. Processes that deal directly with devices are anexception to this rule.Policy decisions, such as on which machine to run a new process, are made outsidethe kernel by utility processes.Utility processes are also used for accessing files and performing transput. Servicesare therefore represented by open ports to these utility processes.When one machine fails, the performance of the entire operating system isdegraded, but only work that was under way on the failed machine is actually lost.Suitable redundancy can ensure that nothing at all is lost.One feature that is only beginning to be seen in distributed operating systems is migrationof processes from one machine to another to improve the balance of load and toshorten communication paths. Migration requires a mechanism to gather load information,a distributed policy that decides that a process should be moved, and a mechanismto effect the transfer. Migration has been demonstrated in a few Unix-based distributedoperating systems, such as Locus and MOS, and in communication-based distributedoperating systems, like Demos/MP.4 THE COMMUNICATION-KERNEL APPROACH<strong>An</strong> increasingly popular style of operating system follows a style that we will call thecommunication-kernel approach. This approach is intended to apply to a fairly widevariety of machines, including traditional mainframes, multiprocessors, multicomputers,microcomputers, and even loosely coupled remotely connected machines. It is alsointended to apply to a wide variety of applications, including interactive multiprogramming,databases, and distributed computation. Finally, it is intended to apply to a widevariety of environments, including university research (which places a premium on easysharing and efficient text processing), the military (which emphasizes security considerations),and embedded applications (computers inside other devices, like microwaveovens).The communication-kernel approach agrees with conventional operating systemdesign in that it constructs an operating system out of two pieces, the kernel andprocesses. It differs in the division of labor between these components. In particular,the kernel contains only those parts of the operating system that are both indispensibleand time-critical.Every application is assumed to need these services, so providing them once allowsfor correct and consistent implementation. Basic communication is in thiscategory.Services that need to respond quickly to external events (represented by interrupts)might be provided by the kernel for speed. The speed comes from the fact that

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!