|
A
modern computer consists of one or more processors, some main memory, disks, printers,
keyboard, a display, network interfaces, and other input/output devices. Writing
programs that keep track of all these components and use them correctly, let alone
optimally, is an extremely difficult job. For this reason, computers are equipped
with a layer of software called the operating system, whose job is to manage all
these devices and provide user programs with a simpler interface to the hardware.The
operating system performs two unrelated functions, extending the machine and managing
resources. The operating system we have designed has monolithic systems architecture.
The operating
system is written as a collection of procedures, each of which can call any of
the other ones whenever it needs to. When this technique is used, each procedure
in the system has a well-defined interface in terms of parameters and results,
and each one is free to call any other one, if the latter provides some useful
computation that the former needs.The
services (system calls) provided by the operating system are requested by putting
the parameters in a well-defined place and then executing a trap (interrupt) instruction.
This instruction switches the machine from user mode to kernel mode and transfers
control to the operating system. The operating system then fetches the parameters
and determines which system call is to be carried out.
<<back |