Operating System Structure
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.
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:
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:
The following figure illustrates layering in simple structure:
Advantages of Simple Structure:
Disadvantages of Simple 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:
Advantages of Monolithic Structure:
Disadvantages of Monolithic 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:
Advantages of Layered Structure:
Disadvantages of Layered 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:
Advantages of Micro-Kernel Structure:
Disadvantages of Micro-Kernel Structure:
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:
Advantages of Exokernel Structure:
Disadvantages of Exokernel Structure:
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:
Disadvantages of Virtual Machines:
Next TopicOperating System Examples