There are mainly three types of operating system architecture models :
-
- Monolithic OS :
- Used in older but smaller operating systems.
- Operating system is divided into procedures. Each procedure have a particular task and all procedures have common data structures and system tables. Each procedure can call other procedures. Resulting in high degree of inter-process dependency.
- Very little importance is given to data hiding.
- A small change in a procedure can fail other procedures. Therefore, it is very difficult to extend the OS and maintenance is also very difficult.
- The degree of portability is also very low. Since every procedure talks to hardware.
- Application programs runs in user mode and OS functions run in system mode.
- Monolithic OS
- Layered OS :
- Various components are implemented as a collection of logical layers.
- Each layer consists of related modules.
- Order of layer depends on OS designer.
- Lower layer provides service to upper layer. Upper layer calls lower layer but not vice versa.
- Advantages :
- Each layer can be developed or enhanced independently.
- Debugging is easier. Add lower layer first and then upper layer to find the bug.
- Degree of portability is high because interaction with hard is carried out by only one layer
- Disadvantage :
- The OS becomes slow due to layers.
- OS cannot handle misbehaving layer because all runs in same mode.
- Layered OS
- MicroKernel OS (Client Server Model) :
- Most essential components are included in very small sized microkernel.
- Microkernel handles tasks like process management, inter process communication, virtual memory, device management.
- All other components of OS are called servers e.g. file server, network server, display server, process server etc. All these runs in user mode. Any of the server can request a service from other server.
- These are easily portable.
- Microkernel OS
- Monolithic OS :