Operating System Structure

 Operating system can be implemented with the help of various structures. The structure of the OS depends mainly on how the various common components of the operating system are interconnected and melded into the kernel. Depending on this we have following structures of the operating system:

 Simple structure: 

Such operating systems do not have well defined structure and are small, simple and limited systems. The interfaces and levels of functionality are not well separated. MS-DOS is an example of such operating system. In MS-DOS application programs are able to access the basic I/O routines. These types of operating system cause the entire system to crash if one of the user programs fails. Diagram of the structure of MS-DOS is shown below. 



Advantages of Simple structure:

• It delivers better application performance because of the few interfaces between the application program and the hardware. • Easy for kernel developers to develop such an operating system.

 Disadvantages of Simple structure: 

• The structure is very complicated as no clear boundaries exists between modules. • It does not enforce data hiding in the operating system.

Layered structure:

An OS can be broken into pieces and retain much more control on system. In this structure the OS is broken into number of layers (levels). The bottom layer (layer 0) is the hardware and the topmost layer (layer N) is the user interface. These layers are so designed that each layer uses the functions of the lower level layers only. This simplifies the debugging process as if lower level layers are debugged and an error occurs during debugging then the error must be on that layer only as the lower level layers have already been debugged. The main disadvantage of this structure is that at each layer, the data needs to be modified and passed on which adds overhead to the system. Moreover careful planning of the layers is necessary as a layer can use only lower level layers. UNIX is an example of this structure.



 Advantages of Layered structure:

 • Layering makes it easier to enhance the operating system as implementation of a layer can be changed easily without affecting the other layers. • It is very easy to perform debugging and system verification.

 Disadvantages of Layered structure:

 • In this structure the application performance is degraded as compared to simple structure. • It requires careful planning for designing the layers as higher layers use the functionalities of only the lower layers.

 Micro-kernel:

 This structure designs the operating system by removing all non-essential components from the kernel and implementing them as system and user programs. This result in a smaller kernel called the micro-kernel. Advantages of this structure are that all new services need to be added to user space and does not require the kernel to be modified. Thus it is more secure and reliable as if a service fails then rest of the operating system remains untouched. Mac OS is an example of this type of OS. 




Advantages of Micro-kernel structure:

 • It makes the operating system portable to various platforms. • As microkernels are small so these can be tested effectively. 

Disadvantages of Micro-kernel structure: 

• Increased level of inter module communication degrades system performance. Modular structure or approach: It is considered as the best approach for an OS. It involves designing of a modular kernel. The kernel has only set of core components and other services are added as dynamically loadable modules to the kernel either during run time or boot time. It resembles layered structure due to the fact that each kernel has defined and protected interfaces but it is more flexible than the layered structure as a module can call any other module. For example Solaris OS is organized as shown in the figure.