Asem Syed|Published October 25, 2019|Updated April 24, 2020
A structure of an Operating System determines how it has been designed and how it functions. There are numerous ways of designing a new structure of an Operating system. In this post, we will learn about six combinations that have been tested and tried. These six combinations are monolithic systems, layered systems, microkernels, client-server models, virtual machines, and exokernels.
Important: Before we get started it’s important to understand what a kernel is. When your computer is running in kernel mode, all the permissions are available. You can think of it as an administrator. In macOS, this is known as giving ‘root’ access. In Windows, you invoke this by running applications as ‘administrator.’ If not the kernel mode, the computer normally runs in user mode, where a lot of permissions are not given to the user that may damage the system files.
Monolithic System structure in an Operating System
In this organizational structure, the entire operating system runs as a single program in the kernel mode. An operating system is a collection of various procedures linked together in a binary file. In this system, any procedure can call any other procedure. Since it is running in kernel mode itself, it has all the permissions to call whatever it wants.
In terms of information hiding, there is none. All procedures are running in kernel mode, so they have access to all modules and packages of other procedures.
However, using this approach without any restrictions can lead to thousands of procedure calls, and this can lead to a messy system. For this purpose, the actual OS is constructed in a hierarchy. All the individual procedures are compiled into a single executable file using the system linker.
Even a monolithic system has a structure in which it can run in user mode. There already is a basic structure given by the organization
- The main procedure that invokes the requested service procedures.
- A set of service procedures that carry out system calls.
- A set of utility procedures that help out the system procedures.
Layered Systems Structure in Operating Systems
As the name suggests, this system works in layers. It was designed by E.W. Dijkstra in 1968, along with some help from his students. This system was first implemented in THE system built at the Technische Hogeschool Eindhoven in the Netherlands. The THE system was a simple batch system for a Dutch computer, the Extralogica X8.
There are six layers in the system, each with different purposes.
|1||Memory and drum management|
|0||Processor allocation and multiprogramming|
Layer 0 – Processor Allocation and Multiprogramming – This layer deals with the allocation of processor, switching between the processes when interrupts occur or when the timers expire.
The sequential processes can be programmed individually without having to worry about other processes running on the processor. That is, layer 0 provides that basic multiprogramming of the CPU
Layer 1 – Memory and Drum Management – This layer deals with allocating memory to the processes in the main memory. The drum is used to hold parts of the processes (pages) for which space couldn’t be provided in the main memory. The processes don’t have to worry if there is available memory or not as layer 1 software takes care of adding pages wherever necessary.
Layer 2 – Operator-Process communication – In this layer, each process communicates with the operator (user) through the console. Each process has its own operator console and can directly communicate with the operator.
Layer 3 – Input/Output Management – This layer handles and manages all the I/O devices, and it buffers the information streams that are made available to it. Each process can communicate directly with the abstract I/O devices with all of its properties.
Layer 4 – User Programs – The programs used by the user are operated in this layer, and they don’t have to worry about I/O management, operator/processes communication, memory management, or the processor allocation.
Layer 5 – The Operator – The system operator process is located in the outer most layer.
Microkernels system in an operating system
Traditionally, all the layers of the OS in a layered system went into the kernel. So they all had root access to the OS, and any small bug in any layer could be fatal to the OS.
Famous examples of a microkernel system include Integrity, K42, PikeOS, Symbian, and MINIX 3
The primary purpose of this system is to provide high reliability. Because of the high reliability that it provides, the applications of microkernels can be seen in real-time, industrial, avionics (electronics fitted in aircraft and aviation), and military applications that are mission-critical and require high reliability.
The operating system is split into small, well-defined modules, of which only one, the microkernel, runs in kernel mode. The rest of the modules run as powerless ordinary user processes. Running each device driver and file system as separate user processes is a fail-safe method as a bug in one of the drivers, will fail only that component. A bug easily references an invalid memory address and brings the system to a grinding halt instantly.
Taking the example of MINIX 3 will help us understand microkernels much better.
The MINIX 3 is an OS written in C with 3200 lines of code and about 800 lines of code for the assembler to handle low-level functions like catching interrupts or switching processes. The C code handles managing and scheduling processes, handles interprocess communication. It also provides a set of 35 kernel calls to allow the rest of the operating system to do its work. These calls perform functions like hooking handlers to interrupts, moving data between address spaces, and installing new memory maps for newly created processes.
The process structure of MINIX 3 is divided into three parts above the kernel. The lowest layer contains device drivers. The middle layer includes servers. The uppermost layer contains user programs.
Client-Server Model in Operating Systems
The client-server model in an operating system is a variation of the microkernel system. The middle layer in the microkernel system is the one with servers. These servers provide some kind of service to clients. This makes up the client-server model.
Communication between clients and servers is obtained by message passing. To receive a service, one of the client processes constructs a message saying what it wants and sends it to the appropriate service. The service then does it work and sends back the answer.
If the clients and servers are on the same machine, then some optimizations are possible. But generally speaking, they are on different systems and are connected via a network link like LAN or WAN.
The best example of this model is you reading this article learning about it right now. You are the client, and you are requesting this page from whatever host this article has been uploaded to. The internet is basically the example since much of the web operates this way.
Virtual Machines in Operating systems
When many users wanted to work interactively in terminals, IBM started working on a time-sharing system. The idea of a virtual machine is straightforward. The virtual machine is run on the hardware of the OS it is being installed. A virtual machine thinks it has its own disk, with blocks running from 0 to some maximum, so the virtual machine monitor must maintain tables to remap disk addresses and all other resources.
Exokernels are a subset of virtual machines. In this, the disks are actually partitioned, and resources are allocated while setting it up. The different OS may be installed on different partitions. Beneath both, the partition is what we call the exokernel.
Where to go from here?
When people talk about OS, they only think about Windows, macOS, and Linux. But there are more operating systems than what’s on your screen right now.
About the author
Some examples of operating systems include Apple macOS, Microsoft Windows, Google's Android OS, Linux Operating System, and Apple iOS.What are the 4 types of operating system? ›
- Batch OS. The batch operating system does not have a direct link with the computer. ...
- Time-sharing or multitasking OS. ...
- Distributed OS. ...
- Network OS. ...
- Real-time OS. ...
- Mobile OS.
An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.What are the names of 3 different operating systems? ›
There are many operating systems that are available however the three most common operating systems are Microsoft's Windows, Apple's macOS and Linux.How many different operating systems are there? ›
List of 5 Popular Operating Systems. There are mainly 5 popular operating systems: Apple macOS, Microsoft Windows, Google's Android OS, Linux Operating System, and Apple iOS. Note: There are more than 613 operating systems present in the world.What is an operating system short answer? ›
An operating system (OS) is the program that, after being initially loaded into the computer by a boot program, manages all of the other application programs in a computer.What are the 7 types of operating system? ›
- Batch Operating System. ...
- Real-Time Operating System. ...
- Time-Sharing Operating System. ...
- Distributed Operating System. ...
- Embedded Operating System. ...
- Network Operating System. ...
- Mobile Operating System.
It's what the user sees when interacting with the computer's hardware. And there are various types of operating system that provide different user experiences and interact with the users with different user interfaces.What are the two main types of operating system? ›
- Single-User Operating System for example, DOS, Windows 95/97.
- Multi-User Operating System for example, UNIX, LINUX.
The system structure or pattern of organization represents a logical model of the systems for the system-of-interest. This logical model is independent of any specific physical realization of any of the systems. This logical model may also be called a conceptual model of the system-of-interest.
A common example of this is MS-DOS. It was designed simply for a niche amount for people. There was no indication that it would become so popular. It is better that operating systems have a modular structure, unlike MS-DOS.
Windows is a rectangular area which provides an environment to run many programs. It is based on Graphical User Interface (GUI). Windows Explorer It is a tool that allows you to browse, view, copy and delete files. It acts as a file manager that provides detailed information about your files, folders and drives.What are three 3 operating system functions? ›
An operating system has three main functions: (1) manage the computer's resources, such as the central processing unit, memory, disk drives, and printers, (2) establish a user interface, and (3) execute and provide services for applications software.What are the three layers of most operating systems? ›
- Layer 1 – Hardware. This layer interacts with the internal components and works in partnership with devices such as monitors, speakers, webcam etc. ...
- Layer 2 – CPU Scheduling. ...
- Layer 3 – Memory Management. ...
- Layer 4 – Process Management. ...
- Layer 5 – I/O Buffer. ...
- Layer 6 – User Application.
Single-user operating systems have only one user but may allow multiple programs to run at the same time. A multi-tasking operating system allows more than one program to be running at the same time, from the point of view of human time scales. A single-tasking system has only one running program.What is an operating system also called? ›
The correct answer is Software program. An operating system is system software that manages computer hardware, software resources, and provides common services for computer programs. Operating systems are found on many devices such as a computer, mobile phones, video games etc.What are functions of operating system? ›
- Security. ...
- Control over system performance. ...
- Job Accounting. ...
- Error detecting aids. ...
- Coordination between other software and users. ...
- Memory Management. ...
- Processor Management. ...
- Device Management.
The Need for Operating System: Operating System is a program that acts as an Interface between the system hardware and the user making the tasks easier. It is important software which runs on a computer and controls the set of instructions and wisely utilizes each part of the Computer.What is my operating system? ›
See which Android OS version you have
Go to the Settings app on your mobile device. Tap About Phone or About Device. Check Android Version.
The different types of OS are Batch Operating System, Multi-processor Operating System, Multiprogramming Operating systems, Distributed Operating System, Time sharing Operating System, and many more.
- Single-User Operating System for example, DOS, Windows 95/97.
- Multi-User Operating System for example, UNIX, LINUX.
There are three types of RTOS: 1) Hard RTOS, 2) Soft RTOS, and 3) Firm RTOS.What are the different types of batch operating systems? ›
There are mainly two types of the batch operating system. These are as follows: Simple Batched System. Multi-programmed batched system.What are the different types of OS format? ›
There are three types of file accessing mechanisms in operating systems, namely, indexed, direct and sequential.Which is following is not an operating system? ›
The correct answer is Oracle.What is the example of network operating system? ›
Some examples of network operating systems include Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD.Which of the following is system software? ›
Answer: (d) Operating system.What is a process operating system? ›
A process is a running program that serves as the foundation for all computation. The procedure is not the same as computer code, although it is very similar. In contrast to the program, which is often regarded as some 'passive' entity, a process is an 'active' entity.