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.
o Simple Structure
o Monolithic Structure
o Layered Approach Structure
o Micro-Kernel Structure
o Exo-Kernel Structure
o 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 sub problems. 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:
o There are four layers that make up the MS-DOS operating
system, and each has its own set of features.
o These layers include ROM BIOS device drivers, MS-DOS
device drivers, application programs, and system
programs.
o The MS-DOS operating system benefits from layering
because each level can be defined independently and,
when necessary, can interact with one another.
o 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.
o When a user program fails, the operating system as whole
crashes.
o 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:
Advantages of Simple Structure:
o Because there are only a few interfaces and levels, it is
simple to develop.
o Because there are fewer layers between the hardware and
the applications, it offers superior performance.
Disadvantages of Simple Structure:
o The entire operating system breaks if just one user
program malfunctions.
o Since the layers are interconnected, and in communication
with one another, there is no abstraction or data hiding.
o 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:
Advantages of Monolithic Structure:
o Because layering is unnecessary and the kernel alone is
responsible for managing all operations, it is easy to
design and execute.
o 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:
o 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.
o 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:
Advantages of Layered Structure:
o Work duties are separated since each layer has its own
functionality, and there is some amount of abstraction.
o Debugging is simpler because the lower layers are
examined first, followed by the top layers.
Disadvantages of Layered Structure:
o Performance is compromised in layered structures due to
layering.
o 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.
ADVERTISEMENT
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:
ADVERTISEMENT
ADVERTISEMENT
Advantages of Micro-Kernel Structure:
o It enables portability of the operating system across
platforms.
o Due to the isolation of each Micro-Kernel, it is reliable and
secure.
o The reduced size of Micro-Kernels allows for successful
testing.
o The remaining operating system remains unaffected and
keeps running properly even if a component or Micro-
Kernel fails.
Disadvantages of Micro-Kernel Structure:
o The performance of the system is decreased by increased
inter-module communication.
o 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:
o Enhanced application control support.
o Splits management and security apart.
o A secure transfer of abstractions is made to an unreliable
library operating system.
o Brings up a low-level interface.
o Operating systems for libraries provide compatibility and
portability.
Advantages of Exokernel Structure:
o Application performance is enhanced by it.
o Accurate resource allocation and revocation enable more
effective utilisation of hardware resources.
o New operating systems can be tested and developed more
easily.
o Every user-space program is permitted to utilise its own
customised memory management.
Disadvantages of Exokernel Structure:
o A decline in consistency
o 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:
o Due to total isolation between each virtual machine and
every other virtual machine, there are no issues with
security.
o A virtual machine may offer an architecture for the
instruction set that is different from that of actual
computers.
o Simple availability, accessibility, and recovery
convenience.
Disadvantages of Virtual Machines:
o Depending on the workload, operating numerous virtual
machines simultaneously on a host computer may have an
adverse effect on one of them.
o When it comes to hardware access, virtual computers are
less effective than physical ones.
Operating System Operations
An operating system is a construct that allows the user
application programs to interact with the system hardware.
Operating system by itself does not provide any function but it
provides an atmosphere in which different applications and
programs can do useful work.
The major operations of the operating system are process
management, memory management, device management and
file management. These are given in detail as follows:
Process Management
The operating system is responsible for managing the processes
i.e assigning the processor to a process at a time. This is known
as process scheduling. The different algorithms used for process
scheduling are FCFS (first come first served), SJF (shortest job
first), priority scheduling, round robin scheduling etc.
There are many scheduling queues that are used to handle
processes in process management. When the processes enter the
system, they are put into the job queue. The processes that are
ready to execute in the main memory are kept in the ready
queue. The processes that are waiting for the I/O device are kept
in the device queue.
Memory Management
Memory management plays an important part in operating
system. It deals with memory and the moving of processes from
disk to primary memory for execution and back again.
The activities performed by the operating system for memory
management are −
The operating system assigns memory to the processes as
required. This can be done using best fit, first fit and worst
fit algorithms.
All the memory is tracked by the operating system i.e. it
nodes what memory parts are in use by the processes and
which are empty.
The operating system deallocated memory from processes
as required. This may happen when a process has been
terminated or if it no longer needs the memory.
Device Management
There are many I/O devices handled by the operating system
such as mouse, keyboard, disk drive etc. There are different
device drivers that can be connected to the operating system to
handle a specific device. The device controller is an interface
between the device and the device driver. The user applications
can access all the I/O devices using the device drivers, which are
device specific codes.
File Management
Files are used to provide a uniform view of data storage by the
operating system. All the files are mapped onto physical devices
that are usually non volatile so data is safe in the case of system
failure.
The files can be accessed by the system in two ways i.e.
sequential access and direct access −
Sequential Access
The information in a file is processed in order using sequential
access. The files records are accessed on after another. Most of
the file systems such as editors, compilers etc. use sequential
access.
Direct Access
In direct access or relative access, the files can be accessed in
random for read and write operations. The direct access model is
based on the disk model of a file, since it allows random
accesses.