Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

System Structure for an Operating System

The operating system is a component of every segment. The strategy for integrating
different operating system components within the kernel can be thought of as an operating
system structure. As will be discussed below, various types of structures are used to
implement operating systems.

1. Simple/Monolithic structure

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

Advantages of Simple/Monolithic structure


 It delivers better application performance because of the few interfaces between
the application program and the hardware.
 It is easy for kernel developers to develop such an operating system.
Disadvantages of Simple/Monolithic structure

 The structure is very complicated, as no clear boundaries exist between modules.


 It does not enforce data hiding in the operating system.
2. Micro-kernel Structure

This structure designs the operating system by removing all non-essential components from
the kernel and implementing them as system and user programs. This results 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.

3. Hybrid-Kernel Structure

Hybrid-kernel structure is nothing but just a combination of both monolithic-kernel


structure and micro-kernel structure. Basically, it combines properties of both monolithic
and micro-kernel and make a more advance and helpful approach. It implements speed and
design of monolithic and modularity and stability of micro-kernel structure.
Advantages of Hybrid-Kernel Structure
 It offers good performance as it implements the advantages of both structure in
it.
 It supports a wide range of hardware and applications.
 It provides better isolation and security by implementing micro-kernel approach.
 It enhances overall system reliability by separating critical functions into micro-
kernel for debugging and maintenance.
Disadvantages of Hybrid-Kernel Structure
 It increases overall complexity of system by implementing both structure
(monolithic and micro) and making the system difficult to understand.
 The layer of communication between micro-kernel and other component
increases time complexity and decreases performance compared to monolithic
kernel.

4. Exo-Kernel Structure

Exokernel is an operating system developed at MIT to provide application-level


management of hardware resources. By separating resource management from protection,
the exokernel architecture aims to enable application-specific customization. Due to its
limited operability, exokernel size typically tends to be minimal.
The OS will always have an impact on the functionality, performance, and scope of the
apps that are developed on it because it sits in between the software and the hardware. The
exokernel operating system makes an attempt to address this problem by rejecting the
notion that an operating system must provide abstractions upon which to base applications.
The objective is to limit developers use of abstractions as little as possible while still giving
them freedom.
Advantages of Exo-kernel
 Support for improved application control.

 Separates management from security.


 It improves the performance of the application.
 A more efficient use of hardware resources is made possible by accurate
resource allocation and revocation.
 It is simpler to test and create new operating systems.
 Each user-space program is allowed to use a custom memory management
system.
Disadvantages of Exo-kernel
 A decline in consistency

 Exokernel interfaces have a complex architecture.


5. Layered structure
An OS can be broken into pieces and retain much more control over the system. In this
structure, the OS is broken into a 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. This simplifies the
debugging process, 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 the 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’s performance is degraded as compared to
simple structure.
 It requires careful planning for designing the layers, as the higher layers use the
functionalities of only the lower layers.
6. 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 a set of core components and other services are added as dynamically
loadable modules to the kernel either during runtime 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 a layered structure as a module can call any other module. For example,
Solaris OS is organized as shown in the figure.

7. VMs (virtual machines)


Based on our needs, a virtual machine abstracts the hardware of our personal computer,
including the CPU, disc drives, RAM, and NIC (Network Interface Card), into a variety of
different execution contexts, giving us the impression that each execution environment is a
different computer. An illustration of it is a virtual box.
An operating system enables us to run multiple processes concurrently while making it
appear as though each one is using a different processor and virtual memory by using CPU
scheduling and virtual memory techniques.
The fundamental issue with the virtual machine technique is disc systems. Let’s say the
physical machine only has three-disc drives, but it needs to host seven virtual machines.
The program that creates virtual machines would need a significant amount of disc space in
order to provide virtual memory and spooling, so it should be clear that it is impossible to
assign a disc drive to every virtual machine. The answer is to make virtual discs available.

You might also like