Operating System Structures
Operating System Structures
Definition
An operating system is a program that acts as an interface between the user and the
computer hardware and controls the execution of all kinds of programs.
1
Memory Management
Memory management refers to management of Primary Memory or Main Memory.
Main memory is a large array of words or bytes where each word or byte has its own
address.
Main memory provides a fast storage that can be accessed directly by the CPU. For a
program to be executed, it must in the main memory. An Operating System does the
following activities for memory management −
● Keeps tracks of primary memory, i.e., what part of it are in use by whom, what
part are not in use.
● In multiprogramming, the OS decides which process will get memory when
and how much.
● Allocates the memory when a process requests it to do so.
● De-allocates the memory when a process no longer needs it or has been
terminated.
Processor Management
In multiprogramming environment, the OS decides which process gets the
processor when and for how much time. This function is called process scheduling.
An Operating System does the following activities for processor management −
● Keeps tracks of processor and status of process. The program responsible for
this task is known as traffic controller.
● Allocates the processor (CPU) to a process.
● De-allocates processor when a process is no longer required.
Device Management
An Operating System manages device communication via their respective drivers. It
does the following activities for device management −
● Keeps tracks of all devices. Program responsible for this task is known as the
I/O controller.
● Decides which process gets the device when and for how much time.
● Allocates the device in the efficient way.
● De-allocates devices.
File Management
A file system is normally organized into directories for easy navigation and usage.
These directories may contain files and other directions.
An Operating System does the following activities for file management −
● Keeps track of information, location, uses, status etc. The collective facilities
are often known as file system.
2
● Decides who gets the resources.
● Allocates the resources.
● De-allocates the resources.
Program execution
Operating systems handle many kinds of activities from user programs to system
programs like printer spooler, name servers, file server, etc. Each of these activities
is encapsulated as a process.
A process includes the complete execution context (code to execute, data to
manipulate, registers, OS resources in use). Following are the major activities of an
operating system with respect to program management −
3
● Loads a program into memory.
● Executes the program.
● Handles program's execution.
● Provides a mechanism for process synchronization.
● Provides a mechanism for process communication.
● Provides a mechanism for deadlock handling.
I/O Operation
An I/O subsystem comprises of I/O devices and their corresponding driver software.
Drivers hide the peculiarities of specific hardware devices from the users.
An Operating System manages the communication between user and device drivers.
● I/O operation means read or write operation with any file or any specific I/O
device.
● Operating system provides the access to the required I/O device when
required.
Communication
In case of distributed systems which are a collection of processors that do not share
memory, peripheral devices, or a clock, the operating system manages
communications between all the processes. Multiple processes communicate with
one another through communication lines in the network.
4
The OS handles routing and connection strategies, and the problems of contention
and security. Following are the major activities of an operating system with respect
to communication −
● Two processes often require data to be transferred between them
● Both the processes can be on one computer or on different computers, but are
connected through a computer network.
● Communication may be implemented by two methods, either by Shared
Memory or by Message Passing.
Error handling
Errors can occur anytime and anywhere. An error may occur in CPU, in I/O devices
or in the memory hardware. Following are the major activities of an operating
system with respect to error handling −
● The OS constantly checks for possible errors.
● The OS takes an appropriate action to ensure correct and consistent
computing.
Resource Management
In case of multi-user or multi-tasking environment, resources such as main
memory, CPU cycles and files storage are to be allocated to each user or job.
Following are the major activities of an operating system with respect to resource
management −
● The OS manages all kinds of resources using schedulers.
● CPU scheduling algorithms are used for better utilization of CPU.
Protection
Considering a computer system having multiple users and concurrent execution of
multiple processes, the various processes must be protected from each other's
activities.
Protection refers to a mechanism or a way to control the access of programs,
processes, or users to the resources defined by a computer system. Following are the
major activities of an operating system with respect to protection −
● The OS ensures that all access to system resources is controlled.
● The OS ensures that external I/O devices are protected from invalid access
attempts.
● The OS provides authentication features for each user by means of passwords.
5
2.3 System Structure:
Operating system can be implemented with the help of various structures. The
structure of the OS depends mainly on how the various common components of the
operating system are interconnected and melded into the kernel. Depending on this
we have following structures of the operating system:
Simple structure:
Such operating systems do not have well defined structure and are small, simple and
limited systems. The interfaces and levels of functionality are not well separated.
MS-DOS is an example of such operating system. In MS-DOS application programs
are able to access the basic I/O routines. These types of operating system cause the
entire system to crash if one of the user programs fails.
Diagram of the structure of MS-DOS is shown below.
Layered structure:
An OS can be broken into pieces and retain much more control on system. In this
structure the OS is broken into number of layers (levels). The bottom layer (layer 0)
is the hardware and the topmost layer (layer N) is the user interface. These layers are
so designed that each layer uses the functions of the lower level layers only. This
simplifies the debugging process as if lower level layers are debugged and an error
occurs during debugging then the error must be on that layer only as the lower level
layers have already been debugged.
The main disadvantage of this structure is that at each layer, the data needs to be
modified and passed on which adds overhead to the system. Moreover careful
planning of the layers is necessary as a layer can use only lower level layers. UNIX is
an example of this structure.
6
Micro-kernel:
This structure designs the operating system by removing all non-essential
components from the kernel and implementing them as system and user programs.
This result in a smaller kernel called the micro-kernel.
Advantages of this structure are that all new services need to be added to user space
and does not require the kernel to be modified. Thus it is more secure and reliable as
if a service fails then rest of the operating system remains untouched. Mac OS is an
example of this type of OS.
Modular structure or approach:
It is considered as the best approach for an OS. It involves designing of a modular
kernel. The kernel has only set of core components and other services are added as
dynamically loadable modules to the kernel either during run time or boot time. It
resembles layered structure due to the fact that each kernel has defined and
protected interfaces but it is more flexible than the layered structure as a module can
call any other module.
For example Solaris OS is organized as shown in the figure.
7
2.4 System Calls:
The interface between a process and an operating system is provided by system calls.
In general, system calls are available as assembly language instructions. They are
also included in the manuals used by the assembly level programmers. System calls
are usually made when a process in user mode requires access to a resource. Then it
requests the kernel to provide the resource via a system call.
A figure representing the execution of the system call is given as follows −
As can be seen from this diagram, the processes execute normally in the user mode
until a system call interrupts this. Then the system call is executed on a priority basis
in the kernel mode. After the execution of the system call, the control returns to the
user mode and execution of user processes can be resumed.
In general, system calls are required in the following situations −
● If a file system requires the creation or deletion of files. Reading and writing
from files also require a system call.
● Creation and management of new processes.
● Network connections also require system calls. This includes sending and
receiving packets.
● Access to a hardware devices such as a printer, scanner etc. requires a system
call.
Types of System Calls
There are mainly five types of system calls. These are explained in detail as follows −
Process Control
These system calls deal with processes such as process creation, process termination
etc.
8
File Management
These system calls are responsible for file manipulation such as creating a file,
reading a file, writing into a file etc.
Device Management
These system calls are responsible for device manipulation such as reading from
device buffers, writing into device buffers etc.
Information Maintenance
These system calls handle information and its transfer between the operating system
and the user program.
Communication
These system calls are useful for interprocess communication. They also deal with
creating and deleting a communication connection.
Some of the examples of system calls are given as follows −