Javatpoint Logo
Javatpoint Logo

Operating System Structure

Overview

An operating system is a design that enables user application programs to communicate with the hardware of the machine. The operating system should be built with the utmost care because it is such a complicated structure and should be simple to use and modify. Partially developing the operating system is a simple approach to accomplish this. Each of these components needs to have distinct inputs, outputs, and functionalities.

This article discusses many sorts of structures that implement operating systems, as listed below, as well as how and why they work. It also defines the operating system structure.

  • Simple Structure
  • Monolithic Structure
  • Layered Approach Structure
  • Micro-Kernel Structure
  • Exo-Kernel Structure
  • Virtual Machines

What is an operating System Structure?

We want a clear structure to let us apply an operating system to our particular needs because operating systems have complex structures. It is easier to create an operating system in pieces, much as we break down larger issues into smaller, more manageable subproblems. Every segment is also a part of the operating system. Operating system structure can be thought of as the strategy for connecting and incorporating various operating system components within the kernel. Operating systems are implemented using many types of structures, as will be discussed below:

SIMPLE STRUCTURE

It is the most straightforward operating system structure, but it lacks definition and is only appropriate for usage with tiny and restricted systems. Since the interfaces and degrees of functionality in this structure are clearly defined, programs are able to access I/O routines, which may result in unauthorized access to I/O procedures.

This organizational structure is used by the MS-DOS operating system:

  • There are four layers that make up the MS-DOS operating system, and each has its own set of features.
  • These layers include ROM BIOS device drivers, MS-DOS device drivers, application programs, and system programs.
  • The MS-DOS operating system benefits from layering because each level can be defined independently and, when necessary, can interact with one another.
  • If the system is built in layers, it will be simpler to design, manage, and update. Because of this, simple structures can be used to build constrained systems that are less complex.
  • When a user program fails, the operating system as whole crashes.
  • Because MS-DOS systems have a low level of abstraction, programs and I/O procedures are visible to end users, giving them the potential for unwanted access.

The following figure illustrates layering in simple structure:

Operating System Structure

Advantages of Simple Structure:

  • Because there are only a few interfaces and levels, it is simple to develop.
  • Because there are fewer layers between the hardware and the applications, it offers superior performance.

Disadvantages of Simple Structure:

  • The entire operating system breaks if just one user program malfunctions.
  • Since the layers are interconnected, and in communication with one another, there is no abstraction or data hiding.
  • The operating system's operations are accessible to layers, which can result in data tampering and system failure.

MONOLITHIC STRUCTURE

The monolithic operating system controls all aspects of the operating system's operation, including file management, memory management, device management, and operational operations.

The core of an operating system for computers is called the kernel (OS). All other System components are provided with fundamental services by the kernel. The operating system and the hardware use it as their main interface. When an operating system is built into a single piece of hardware, such as a keyboard or mouse, the kernel can directly access all of its resources.

The monolithic operating system is often referred to as the monolithic kernel. Multiple programming techniques such as batch processing and time-sharing increase a processor's usability. Working on top of the operating system and under complete command of all hardware, the monolithic kernel performs the role of a virtual computer. This is an old operating system that was used in banks to carry out simple tasks like batch processing and time-sharing, which allows numerous users at different terminals to access the Operating System.

The following diagram represents the monolithic structure:

Operating System Structure

Advantages of Monolithic Structure:

  • Because layering is unnecessary and the kernel alone is responsible for managing all operations, it is easy to design and execute.
  • Due to the fact that functions like memory management, file management, process scheduling, etc., are implemented in the same address area, the monolithic kernel runs rather quickly when compared to other systems. Utilizing the same address speeds up and reduces the time required for address allocation for new processes.

Disadvantages of Monolithic Structure:

  • The monolithic kernel's services are interconnected in address space and have an impact on one another, so if any of them malfunctions, the entire system does as well.
  • It is not adaptable. Therefore, launching a new service is difficult.

LAYERED STRUCTURE

The OS is separated into layers or levels in this kind of arrangement. Layer 0 (the lowest layer) contains the hardware, and layer 1 (the highest layer) contains the user interface (layer N). These layers are organized hierarchically, with the top-level layers making use of the capabilities of the lower-level ones.

The functionalities of each layer are separated in this method, and abstraction is also an option. Because layered structures are hierarchical, debugging is simpler, therefore all lower-level layers are debugged before the upper layer is examined. As a result, the present layer alone has to be reviewed since all the lower layers have already been examined.

The image below shows how OS is organized into layers:

Operating System Structure

Advantages of Layered Structure:

  • Work duties are separated since each layer has its own functionality, and there is some amount of abstraction.
  • Debugging is simpler because the lower layers are examined first, followed by the top layers.

Disadvantages of Layered Structure:

  • Performance is compromised in layered structures due to layering.
  • Construction of the layers requires careful design because upper layers only make use of lower layers' capabilities.

MICRO-KERNEL STRUCTURE

The operating system is created using a micro-kernel framework that strips the kernel of any unnecessary parts. Systems and user applications are used to implement these optional kernel components. So, Micro-Kernels is the name given to these systems that have been developed.

Each Micro-Kernel is created separately and is kept apart from the others. As a result, the system is now more trustworthy and secure. If one Micro-Kernel malfunctions, the remaining operating system is unaffected and continues to function normally.

The image below shows Micro-Kernel Operating System Structure:

Operating System Structure

Advantages of Micro-Kernel Structure:

  • It enables portability of the operating system across platforms.
  • Due to the isolation of each Micro-Kernel, it is reliable and secure.
  • The reduced size of Micro-Kernels allows for successful testing.
  • The remaining operating system remains unaffected and keeps running properly even if a component or Micro-Kernel fails.

Disadvantages of Micro-Kernel Structure:

  • The performance of the system is decreased by increased inter-module communication.
  • The construction of a system is complicated.

EXOKERNEL

An operating system called Exokernel was created at MIT with the goal of offering application-level management of hardware resources. The exokernel architecture's goal is to enable application-specific customization by separating resource management from protection. Exokernel size tends to be minimal due to its limited operability.

Because the OS sits between the programs and the actual hardware, it will always have an effect on the functionality, performance, and breadth of the apps that are developed on it. By rejecting the idea that an operating system must offer abstractions upon which to base applications, the exokernel operating system makes an effort to solve this issue. The goal is to give developers as few restriction on the use of abstractions as possible while yet allowing them the freedom to do so when necessary. Because of the way the exokernel architecture is designed, a single tiny kernel is responsible for moving all hardware abstractions into unreliable libraries known as library operating systems. Exokernels differ from micro- and monolithic kernels in that their primary objective is to prevent forced abstraction.

Exokernel operating systems have a number of features, including:

  • Enhanced application control support.
  • Splits management and security apart.
  • A secure transfer of abstractions is made to an unreliable library operating system.
  • Brings up a low-level interface.
  • Operating systems for libraries provide compatibility and portability.

Advantages of Exokernel Structure:

  • Application performance is enhanced by it.
  • Accurate resource allocation and revocation enable more effective utilisation of hardware resources.
  • New operating systems can be tested and developed more easily.
  • Every user-space program is permitted to utilise its own customised memory management.

Disadvantages of Exokernel Structure:

  • A decline in consistency
  • Exokernel interfaces have a complex architecture.

VIRTUAL MACHINES (VMs)

The hardware of our personal computer, including the CPU, disc drives, RAM, and NIC (Network Interface Card), is abstracted by a virtual machine into a variety of various execution contexts based on our needs, giving us the impression that each execution environment is a separate computer. A virtual box is an example of it.

Using CPU scheduling and virtual memory techniques, an operating system allows us to execute multiple processes simultaneously while giving the impression that each one is using a separate processor and virtual memory. System calls and a file system are examples of extra functionalities that a process can have that the hardware is unable to give. Instead of offering these extra features, the virtual machine method just offers an interface that is similar to that of the most fundamental hardware. A virtual duplicate of the computer system underneath is made available to each process.

We can develop a virtual machine for a variety of reasons, all of which are fundamentally connected to the capacity to share the same underlying hardware while concurrently supporting various execution environments, i.e., various operating systems.

Disk systems are the fundamental problem with the virtual machine technique. If the actual machine only has three-disc drives but needs to host seven virtual machines, let's imagine that. It is obvious that it is impossible to assign a disc drive to every virtual machine because the program that creates virtual machines would require a sizable amount of disc space in order to offer virtual memory and spooling. The provision of virtual discs is the solution.

The result is that users get their own virtual machines. They can then use any of the operating systems or software programs that are installed on the machine below. Virtual machine software is concerned with programming numerous virtual machines simultaneously into a physical machine; it is not required to take into account any user-support software. With this configuration, it may be possible to break the challenge of building an interactive system for several users into two manageable chunks.

Advantages of Virtual Machines:

  • Due to total isolation between each virtual machine and every other virtual machine, there are no issues with security.
  • A virtual machine may offer an architecture for the instruction set that is different from that of actual computers.
  • Simple availability, accessibility, and recovery convenience.

Disadvantages of Virtual Machines:

  • Depending on the workload, operating numerous virtual machines simultaneously on a host computer may have an adverse effect on one of them.
  • When it comes to hardware access, virtual computers are less effective than physical ones.

CONCLUSION

  • The operating system makes it possible for the user to communicate with the hardware of the computer. The operating system is used as the foundation for installing and using system software.
  • The interconnections between the various operating system components can be defined as the operating system structure.
  • The operating system is divided into various different structural types: simple structure, monolithic approach, layered approach, micro-kernels, exokernels, and virtual machines.
  • Each time one of these methods or structures changed, the OS became progressively better.






Youtube For Videos Join Our Youtube Channel: Join Now

Feedback


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Preparation


Trending Technologies


B.Tech / MCA