Operating System Structure

Here you will learn about the structure of operating systems. In other word, you will see what operating systems looks like from the outside or the programmer's interface.

Here we will take a look at five different structures of operating systems.

Here are the list of all those five designs or structures of the operating systems, we will examine.

  1. Monolithic Systems
  2. Layered Systems
  3. Virtual Machines
  4. Exokernels
  5. Client-Server Systems

Now let's describe briefly about all the above different-different structures of operating systems.

Monolithic Systems

The operating system (OS) is written as a collection of procedures, each of which can call any of the other ones, whenever it needs to.

When this technique is used, then each procedure in the system has a well-defined interface in terms of parameter, and results, and each one is free to call any of the other ones, if the latter provides some useful computation that the former needs.

Monolithic systems provides a basic structure for the operating system.

  • a main program that invokes the requested service procedure
  • a set of service procedures that carry out the system calls
  • a set of utility procedures that help the service procedure

In Monolithic system model, there is one service procedure for each system call, that takes care of it. The utility procedures do jobs that are needed by several service procedures, such as fetching the data from the user programs.

This division of the procedures into the following three layers:

  1. Main Procedure
  2. Service Procedures
  3. Utility Procedures

The figure given below shows all the layered provided above in monolithic system model of operating system.

operating system structure

Layered Systems

This system has 6 layers as shown in the table given below.

Layer Function
5 The operator
4 User programs
3 I/O management
2 Operator-process communication
1 Memory and drum management
0 Processor allocation and multiprogramming

Here, are the description provided layer by layer.

  • Layer 0 - This layer dealt with allocation of the processor, switching between processes when interrupts occurred or timers expired
  • Layer 1 - This layer did the memory management
  • Layer 2 - This layer handled the communication between each process and the operator console
  • Layer 3 - This layer took care of managing the Input/Output devices and buffering the information streams to and from them
  • Layer 4 - On this layer, user programs were found
  • Layer 5 - On this layer, the system operator process was located

Virtual Machines

The system originally called CP/CMS, later renamed VM/370, was based on an astute observation. That was a time sharing system, provides multiprogramming and an extended machine with a more convenient interface than the bare hardware.

The heart of the system known as virtual machine monitor that runs on the bare hardware and does the multiprogramming, providing several virtual machines to next layer up as shown in the given figure.

virtual machines

These virtual machines aren't extended machines, with files and other nice features. They are the exact copies of the bare hardware, including the kernel/user mode, Input/Output, interrupts, and everything else the real machine has.


Exokernels is a program present at the bottom layer, running in the kernel mode.

The work of exokernel is just to allocate the resources to the virtual machines and check attempts to use them to make sure no machine is trying to use some other's resources.

Exokernels saves a layer of mapping which is the advantage of the exokernel scheme.

Client-Server Model

In the client-server model, as shown in the figure given below, all the kernel does is handle the communication between the clients and the servers.

client server model

By splitting the operating system (OS) up into parts, each of which only handles one fact of the system, such as file service, terminal service, process service, or memory service, each part becomes small and manageable.

The adaptability of the client-server model, to use in distributed system is the advantage of this model.

Operating System Online Test

« Previous Tutorial Next Tutorial »

Like/Share Us on Facebook 😋