Resource Manager
We can think of an operating system as a Resource Manager.
Here are some of the resources managed by the OS:
or alternatively
Responsive System
We can think of an operating system as a Responsive System answering
requests coming from user programs (supervisory calls+exceptions) and from
devices (interrupts).
Components
Here are the basic components of an OS:
A monolithic kernel can be easy to implement if we are ready to accept very
high latency [i.e. we service requests withour worrying about the urgency of
other requests], otherwise it may be with a structure that is very difficult
to understand. Monolithic kernels are an architecture whose time has come
and gone.
Layered Architecture
Dijkstra introduced the Layered Architecture for operating systems when
he developed in the 60's the THE operating system.
It is not always easy to have a truly layered architecture since some
functionalities are naturally described as mutually dependent.
In addition a layered
architecture is often inefficient since it requires a high number of
traversals of interfaces.
Virtual Machine Architecture (VM370)
This architecture creates a virtual 370 machine for each "user"
and the user can choose which OS to run on that virtual machine.
The virtal machine architecture is elegant, but it does not deal with the
questions of resource management, or of responsiveness.
Micro-Kernel Architecture
A very modern architecture (Mach, OSF, and NT) is the
Micro-Kernel Architecture.
The micro-kernel architecture strives to take out of the kernel as much functionality as possible, so as to limit the code executed in privileged mode and to allow easy modifications and extensions. The micro-kernel architecture allows us to build a number of different operating systems all using the same micro-kernel, Each operating system will make use of different system processes. Notice that little is in the kernel. But what is there has great importance. Interactions between processes involve kernel intervention. Thus the efficiency of the transfer from user to kernel mode and back must be very high. Many believe that this architecture is inherently inefficient and that the use of a more extensive but pre-emptible kernel is preferable.
http://www.cis.temple.edu/~ingargio/cis307/readings/intro.html
ingargiola.cis.temple.edu