An operating system is a construct that allows the user application programs to interact with the system hardware. Since the operating system is such a complex structure, it should be created with utmost care so it can be used and modified easily. An easy way to do this is to create the operating system in parts. Each of these parts should be well defined with clear inputs, outputs and functions.
Here are the list of all those five designs or structures of the operating systems,
- Monolithic Systems
- Layered Systems
- Virtual Machines
- Exokernels
- Client-Server Systems
- Monolithic Systems
The operating system (OS) 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, then each procedure in the system has a well-defined interface in terms of parameter, and results, and each one is free to call any of the other ones, if the latter provides some useful computation that the former needs.
Monolithic systems provides a basic structure for the operating system.
- A main program that invokes the requested service procedure
- A set of service procedures that carry out the system calls
- A set of utility procedures that help the service procedure
In Monolithic system model, there is one service procedure for each system call, that takes care of it. The utility procedures do jobs that are needed by several service procedures, such as fetching the data from the user programs.
This division of the procedures into the following three layers:
(i) Main Procedure
(ii) Service Procedures
(iii) Utility Procedures
The figure given below shows all the layered provided above in monolithic system model of operating system.
- Layered Systems
This system has 6 layers as shown in the table given below.
Layer | Function |
5 | The operator |
4 | User programs |
3 | I/O management |
2 | Operator-process communication |
1 | Memory and drum management |
0 | Processor allocation and multiprogramming |
Here, are the description provided layer by layer.
- Layer 0 – This layer dealt with allocation of the processor, switching between processes when interrupts occurred or timers expired
- Layer 1 – This layer did the memory management
- Layer 2 – This layer handled the communication between each process and the operator console
- Layer 3 – This layer took care of managing the Input/Output devices and buffering the information streams to and from them
- Layer 4 – On this layer, user programs were found
- Layer 5 – On this layer, the system operator process was located
- Virtual Machines
The system originally called CP/CMS, later renamed VM/370, was based on an astute observation. That was a time sharing system, provides multiprogramming and an extended machine with a more convenient interface than the bare hardware.
The heart of the system known as virtual machine monitor that runs on the bare hardware and does the multiprogramming, providing several virtual machines to next layer up as shown in the given figure.
These virtual machines aren’t extended machines, with files and other nice features. They are the exact copies of the bare hardware, including the kernel/user mode, Input/Output, interrupts, and everything else the real machine has.
- Exokernels
Exokernels is a program present at the bottom layer, running in the kernel mode.
The work of exokernel is just to allocate the resources to the virtual machines and check attempts to use them to make sure no machine is trying to use some other’s resources.
Exokernels saves a layer of mapping which is the advantage of the exokernel scheme.
- Client-Server Model
In the client-server model, as shown in the figure given below, all the kernel does is handle the communication between the clients and the servers.
By splitting the operating system (OS) up into parts, each of which only handles one fact of the system, such as file service, terminal service, process service, or memory service, each part becomes small and manageable.
The adaptability of the client-server model, to use in distributed system is the advantage of this model.
One thought on “Structure of Operating System”