Вы находитесь на странице: 1из 32

Page 1 of 32

Unit I
OS Basics: Definition
An O.S. is a program that acts as an intermediary between a user of the
computer system and the computer hardware. The purpose of an O.S. is to provide an
environment in which a user can execute programs. The primary goal of an O.S. system
is thus to make the computer system convenient to use. A secondary goal is to use the
computer hardware in an efficient manner.
So we can say that it is a master control program which is used to co-ordinate all
the computing resources of the computer system. It performs the co-ordination and
management of all the H/W resources with in the computer and also provides an
environment for user and application. It controls the flow of signals from the CPU to
various parts of the computer.
It is the first program loaded into the computers memory after the computer is
switched on.
O.S. performs following major functions.
1. O.S. Acts as a resource manager =>
O.S. is the only authority that directly interacts with the computer system (H/W).
it is responsible for managing all the H/W resources of a computer that is why it is also
considered a resource manager. Acting as resource manager it performs four important
operations.
(a) Processor Management: It is responsible for the allocation of processor to different tasks or processes
being performed by the computer system and also responsible for de allocation of
processor to tasks or processes in multitasking and multiprocessing environment.
Multitasking or multiprocessing means multiple processes or task can be executed
simultaneously by the processor. This is done using timesharing techniques.
(b) Memory Management: It is responsible for managing the main memory of a CPU means that allocation
and de allocation of memory to programs. It is also responsible for protecting of memory
that is given to a program by the other programs. It handles those programs that exceed
the physical limitations of the main memory means it provides the virtual memory to the
programs.
(c) Device Management: It is responsible for coordinating the operations of the CPU with its peripheral
equipments means communication between O.S. and peripherals (devices). E.g. one
important task is to identify various peripheral devices attached to the CPU. It also deals
with the spooling and buffering techniques.
(d) Information System: It deals with the storage and retrieval of data to and from secondary storage. Also
deals with the representation of data on the disk, encoding and decoding of data, the
compression of data and data lock.
(II) O.S. as extended machine=>
O.S. is considered to be an extended machine because it provides the interface
for the user and their application for interaction. It is extending the capabilities of the
computer system (H/W) to user.The OS hides all the complex details of the process
being performed.A simple I/O operation requires so many details such as disk block to
read, number ot sectors per track, source address, destination address and so onwhich
is very complex for us to understand.
The function of the OS is to present the user with the equivalent of an extended
machine or virtual machine that is easier to program than the underlying hardware.

OS_BCA_IV_Semester

Page 2 of 32
Operating System Architecture
O.Ss. are classified on the bases of computer architecture developed so far.
Based on this criteria an O.S. can be classified as
(I) Simple System
(ii) Batch System
(iii) Multi programmed batch System
(iv)Time Sharing System
(v) Parallel System
(vi)Distributed
(vii)Real Time
(viii)Personal-computer System
(i) Simple System
It was one of the most simplest architecture of the O.S. where one job was
processed at a time. It was single user system. It used a single program with one
processor that interacts with one user at a time. It was very easy to design and
implement. The C.P.U. was not fully utilized in this system because it remained idle
most of the time.
(ii) Batch System
It is almost same as simple system but could be used to process more than one
job using a single microprocessor. Its major task was to transfer the control
automatically from one job to the next. In this system, to speed up processing, jobs with
similar needs were batched together and run through the computer as a group means
that user could submit more than one job in a batch that automatically executes one
after another. The main idea behind this system was to reduce the user interference
during the processing or execution of job. Also it reduces the CPU ideal time in
comparison to simple system. But still CPU remained idle some of time when jobs were
being groped together.
(iii) Multiprogrammed batch system
The objective of a multiprogramming O.S. is to increase the CPU utilization
efficiency. The batch processing system tries to reduce CPU time (idle) through operator
interaction but it could not reduce the idle time due to I/O operation. In this system when
some I/O operation is being preformed, the CPU does not sit idle but process the next
program or job in the queue. This insures the optimum utilization of MP (system). In this
system, the O.S. must make decisions for users. E.g. all jobs that enter the system are
kept in the job pool on the disk. If several jobs are ready to be brought into memory and
there is no enough space for all of them, then the O.S. must choose among them that
which job is to be executed first. E.g. UNIX, Windows NT, VMS.
(iv)Time sharing or Multitasking
Time sharing or Multitasking is a logical extension of multiprogramming. In time
sharing, system could process and execute multiple jobs using CPU switching (done
context switch) technique. Time sharing system gives users an illusion that all the
programs are concurrently running. It is so because the switches occur so frequently
that users may interact with each program when it is running.
E.g. IBM O.S. 360
(v) Parallel System (Multiprocessing)
These O.S. were designed to overcome the limitation of earlier O.S. that could
use only single processor but with the development of multiprocessor system. O.S. were

OS_BCA_IV_Semester

Page 3 of 32
designed to use multiple microprocessor units share the computer bus, the clock and
some memory and peripheral devices.
The overall advantage of these systems was increased throughput
(performance). By increasing the number of processors, we hope to get more work done
in a shorter period of time.
Multiprocessor system can also save memory compared to multiple single
systems because the processors can share the same peripherals, cabinet and power
supply.
Another advantage of multiprocessor system is that they increase the reliability of the
system (if one microprocessor fails the processing continues with the other
microprocessor) e.g. UNIX, Window NT, Sun-Solaris (mainframe).
(vi) Distributed system
These systems were designed to distribute computation among several
processor where every processor has its own memory and own clock. Every processor
could communicate with other microprocessor using communication lines between them
(local bus, telephone lines). There is a variety of reasons for building distributed system,
some of them are following: Resource Sharing: -The advantage of such system is that the resources could be shared
among several users E.g. a user at computer A may share the laser printer available on
only at the computer B
Computation speedup: - it increases the computation speed because a particular
computation can be partitioned into a number of sub computations that can run
concurrently.
Reliability: - it increases the reliability if one computer fails in a distributed system, the
remaining computers can work continue
Communication: -They also provide communication facility between the systems. E.g.
exchanging data between several systems.
(vii)Real Time System
They are highly sophisticated and complex but fastest O.S. in this category
because they have very strict and rigid (fixed) time requirements for the operation
performed by the processor. It has the well defined fixed time constants and the
processing must be done within the defined time limit as the system will fail.
There are two flavors of real time system. First is hard real time system, it
guarantees that critical tasks complete on time. Second is Soft real time system where a
critical real-time task gets priority over other tasks, and retains that priority until it
completes.
(viii) Personal-computer System
These systems were dedicated to a single user. These computer systems are
usually referred to as personal computers (PCs). This was done so due to decrease the
hardware cost. The main disadvantage of this system is that these O.S. were neither
multi-user nor multitasking. Goals of these operating systems have changed; instead of
maximizing CPU and peripheral utilization, the systems were designed for maximizing
user convenience.
O.S. Components
We can create a system as large and complex as an O.S. only by partitioning it
into smaller pieces. Each of these pieces should be a well-defined portion of the system,
with carefully defined inputs, outputs, and function. The major components are: (1) Process Management: It is responsible for creation and deletion of both user and system processes. It
also deals with the suspension and resumption of processes. It provides the

OS_BCA_IV_Semester

Page 4 of 32
mechanisms for process synchronization, process communication, and deadlock
handling.
(2) Main-Memory Management: It keeps track of which parts of memory are currently being used and by whom. It
also decides which processes are to be loaded into memory when memory space
becomes available. It is responsible for allocation and de allocation memory space a
needed.
(3) File Management: It deals with creation and deletion of files and directories. Also support those
primitives (commands), which are used to manipulate files and directories. It is also
responsible for mapping of files onto secondary storage and for backup of files.
(4) I/O System Management
One of the purposes of an O.S. is to hide the peculiarities of specific hardware
devices from the user. This is done by the I/O subsystem, it consists of
A memory management component including buffering, caching, and spooling
A general device-driver interface
Drivers for specific hardware devices
(5) Secondary-Storage Management
The O.S. is responsible for the following activities in connection with disk
management.
Free-space management
Storage allocation
Disk scheduling
(6) Networking
In distributed system, where a collection of processors that do not share memory,
peripheral devices, or a clock. The processors communicate with one another through
various communication lines, such as high-speed buses or telephone lines. The
processors in the system are connected through a communication Network, which can
be configured in a number of different ways and configured by this management system.
(7) Protection System: It is responsible for protecting the processes from one another so that a process
could not access he memory of other processes. It provides the mechanisms to ensure
that the files, memory segments, CPU, and resources can be operated on by only those
processes that have gained proper authorization from the O.S.
(8) Command-Interpreter System: One of most important system programs for an O.S. is the command-Interpreter,
which is the interface between the user and the operating system. Some O.S. include
the command interpreter in the kernel. Other O.Ss, such as MS-DOS and UNIX, treat
the command interpreter as a special program that is running when a job is initiated, or
when a user first logs on.
System calls or services
User programs communicate with the OS and request services from it by making
system calls.Corresponding to each system call there is a library procedure that user
program can call.The user program passes some specified parameters with the call, the
OS execute the request if the parameter are correct and returns the status of the
execution ie request was completed or not.

OS_BCA_IV_Semester

Page 5 of 32
Application programs cant access H/W directly they do show using either of the
two methods
(a) By making a direct call to the low level H/W routines.
(b) By calling high level routines then further call low level routines.
These routines are called system calls and are used by programmers and
application developers in order to access a particular H/W. These system calls on the
bases of their functions are grouped together into different categories.
O.S. Services
1. Program execution services:The system must be able to load a program into the memory and to run it. The
program must be able to able to end its execution, either normally or abnormally
(indicating error)
2. I/O operation services: A running program may require I/O. This I/O may involve a file or an I/O device.
Users can not control I/O devices directly. Therefore O.S. must provide some
mechanism to o I/O.
3. File system services (read and write, create, input, output): It should be obvious that programs need to read and write files. They also need
to create and delete files by name.
4. Communication services (network): One process needs to exchange information with another process. This
communication can be occurred in two ways the 1 st communication between m,
processes executing on the same computer or different computers.
Communication may be implemented via shared memory, or by the technique of
message, in which packets of information are moved between processes by the
O.S.
5. Error detection services: The O.S. constantly needs to be aware of possible errors. Errors may occur in
the CPU and Memory hardware, in I/O devices (a connection failure on a
network, or lack of paper in the printer), or in user program (such as an
arithmetic overflow, an attempt to access an illegal memory location)
6. Accounting services: In this type services we want to keep track of which users use how much and
what kinds of resources such as microprocessor, memory, and any I/O devices.
7. Protection services: Protection involves ensuring that all access to system resources is controlled
means protecting a process by others. Security of the system from outsiders is
also important.
O.S. Calls
System calls provide the interface between a process and the O.S. These calls are
generally available as assembly-language instructions, and are usually listed in the
manuals used by assembly-language programmers.
1. Process Control: - End, abort, load, execute, create process, terminate process, get
process attributes, set process attributes, wait for time, wait event, signal event, allocate
and free memory.
2. File manipulation calls: - Create file, delete file, open file, close file, read file, write file,
reposition, get file attributes, set file attributes.

OS_BCA_IV_Semester

Page 6 of 32
3. Device manipulation: - Request devices, release devices, read devices, write devices,
reposition, get device attributes, set device attributes, logically attached or detached
devices.
4. Information Maintenance: - Get time, get date, set time, set date, get system data, set
system data, get process, get file or device attribute, set process, file of process
attribute.
5. Communication: - Create connection, delete connection, send messages, receive
messages, transfer status information, attach or detach remote devices.
O.S. Structure (Design)
1. Simple structure (Monolithic systems)
2. Layered structure
3. Virtual Machine
4. Client-Server Model
1. Simple structure: O.S. developed earlier followed a very simple structure. Truly speaking they do
not have a well defined structure. They started as small, simple and limited system. MsDos is an example of such system. It was designed and written to provide maximum
functionality in minimum space because of the limited H/W available in those days. It
was not divided in modules. It was a very simple structure with three layers, which are,
1. The main program which invokes the request
2. Set of service procedures that carry out system calls
3. A set of utility programs for users
2. Layered Structure: Later with the development of advanced and fast H/W architecture O.S. were
redesigned and broken into smaller more appropriate modules that were not available in
Ms-Dos. Such O.Ss. were developed following modular design. The modularization of
the system was done by following layered approach which consists of breaking the O.S.
into a number of layers. Each built on the top of the lower layers. The lowest layer that
is the layer 0 is the H/W and the highest layer that is the layer N is the user interface.
Every layer is an implementation of an abstract object which is encapsulation of data
and operation performed on it.
The main advantage of layered approach is
modularization. It has six layers viz,
Layer
5
4
3
2
1
0

Description
The operator
User Programs
Input/Output Management
Operator-process communication
Memory and drum management
Processor allocation and multi-programming.

3. Virtual Machine: -

OS_BCA_IV_Semester

Page 7 of 32
After the development of O.Ss following layered approach and with the advent of
more sophisticated and complex H/W architectures O.S. was redesigned to include two
important techniques.
I CPU Scheduling
II Virtual Memory Technique
An O.S. using both the technique can create the illusion of multiple processes each
executing on its own processor with its own memory (virtual memory).
These techniques became very popular and today almost all the O.S. follow them to
provide increased system performance and optimum utilization of resources, e.g. VM
O.S. from IBM.
4. Client-Server Model: In this model of OS, to request a service, such as reading a block of file, a user
process (now known as client process) sends the request to a server process, which
then does the work and sends the results back to the client.
In this model all the kernel does is handle the communication between clients
and servers.By splitting the OS up into parts, each of which handles one facet (aspect)
of the system, such as file services, process services, terminal services

OS_BCA_IV_Semester

Page 8 of 32

Unit II
Process Management
Process Concept: A process is an abstract model of sequential program in execution. It is an
identifiable object in the system having three important components.
1. The code to be executed.
2. The data on which the code is to be executed.
3. Process status.
Every process is uniquely identified by the O.S. through PID which is dynamically
allocated to the process by the O.S.
A process can be created using a create system call.
e.g. LINUX uses fork() and exec() to create a new process.
Every process is created under the main process which is the 1 st process created
under the system i.e. O.S. this newly created process is considered as child process and
the process under which it is created is considered as parent process. This forms a
hierarchical structure of the process in the system.
Every process is represented in the memory by complex data structure called
PCB (process control block). It contains seven important kinds of information with
respect to a process.
(i) Process Status
The state may be new, wait, ready, running, terminated or block and so on.
(ii) CPU registers
It contains the information about various micro processor register used by the
process. The registers vary in number and type, depending on the hardware architecture
but the basic registers are: Accumulator
IP (Instruction Pointer)
SP (Stack Pointer)
DR (Data Register) => AX, AH, AL
Flag Register (status (program terminals))
(iii) CPU Scheduling Information.
It deals with the information related to process priority and other scheduling
parameters.
(iv) Memory Management.
It deals with the information regarding memory type, capacity, and the location
used by the process.
(v) Accounting Information
It deals with the information regarding the amount of CPU time and other
resource used by a process and also includes job or process number (PID).
(vi) I/O status Information
It includes the information regarding I/O devices allocated to the process a list of
open.
(vii) Program Counter
The counter indicates the address of the next instruction to be executed for this
process.
Process Status
At the given point of time process can be in any of one state maintained below.
These state changes as the process execute.
(a) New- born

OS_BCA_IV_Semester

Page 9 of 32
When a process is created and it enters the system.
(b) Ready
The process has acquired all the resources and waiting for microprocessor to be
assigned
(c) Running
The process has acquired the microprocessor and instructions are being
executed.
(d) Waiting or Block
When a process is waiting for some event to occur such as I/O operation
(e) Terminate
When a process has finished its execution
A process changes its state many times throughout its lifetime. These names are
arbitrary and vary from O.S. to O.S. but the state remains same. Also at a given point of
time only one process can be running while other maybe waiting or ready.

Scheduling Criteria and Algorithms


Scheduling
The objective of multiprogramming is to have multiple processes running all the
time to maximize CPU utilization. Likewise the objective of time sharing system is to
switch between processes so that users can interact frequently with running processes.
For a uniprocessor system, there will never be multiple processes running. We have to
schedule them so that while one process is running other will wait and when the CPU is
free it can be rescheduled. All these functions are performed by one of the most
important part of the O.S. called scheduler.
Scheduling Queues: When a process enters the system it is placed in job queue. It consists of all the
processes in the system. The processes that are active in memory and are waiting for
the M.P. are kept in Ready queue. Also the processes waiting for an event or some I/O
are kept in wait/device queue. They are held in device queue until the device required
becomes free and then they are shifted to ready queue. Every process migrates
between various scheduling throughout its lifetime.
Types of Scheduling: There are 3 kinds of scheduling that work in co-ordination with each other to
perform the entire scheduling process.
1. Long Term (job scheduling): If there are too many processes accommodated in memory then O.S. can place
the [processes using secondary memory and when required the process in S.M. Can be
loaded in P.M. for further processing this role is performed by long term scheduling.
2. Short Term Scheduling (CPU Scheduling): Once long time scheduling loads a process in P.M. it is further transferred to M.P.
for actual processing. This role is performed STS.
3. Mid Term Scheduling: it performs the switching between the running process and the ready process.

Scheduling Algorithms: -

OS_BCA_IV_Semester

Page 10 of 32
The scheduling algorithms are classified on the bases of scheduling mechanism.
non-preemptive scheduling mechanism
Pre-emptive scheduling mechanism (co-operative)
Non preemptive scheduling mechanism or multitasking: It is a king of scheduling mechanism where a process cant be forced to release
the M.P. immediately so as to transfer the control to a newly started process.
Pre-emptive scheduling mechanism or multitasking: It is a kind of scheduling mechanism where M.P. can be interrupted to suspend
the current process and pay attention to the newly started process.
Scheduling Criteria: Every scheduling algorithm has its own merit and demerit. Also each one of
them has its properties that differ from one algorithm to other. There are certain criteria
for comparing CPU scheduling algorithm. They are
(i) M.P. utilization
The algorithm must ensure optimum utilization of the M.P. so as to keep it busy all the
time.
(ii) Through put
It identifies the number of processes that can be completed in the specified time period.
For longer processes the throughput may be 2 to 4 process per hour and the shorter
processes. It may be I/O process per second.
(iii) Turn around Time (should less)
It is the sum of period spent by a process waiting in the ready queue and execution by
M.P. including I/O.
(iv) Wait Time (less)
It is the time spent by a process waiting in the ready queue.
(v) Response Time (less)
It is time period between the moment the request is submitted and 1 st response is
received.
To have an efficient scheduling algorithm it is desirable to maximize the CPU
utilization and through put. At the same time it is important to minimize the turn around,
waiting, response time.
Scheduling Algorithm
1. FCFS (First Come First Serve)
2. SJF (Shortest job first)
3. Priority scheduling
4. Round Robin scheduling
5. Multi level queue scheduling
6. Multi level feed back queue scheduling
1. FCFS: In FCFS scheduling the processes are allocated M.P. on 1st come 1st serve basis i.e.
the process that request the CPU 1st is allocated the CPU first. It is managed,
maintained by FIFO.
In FCFS when a process enters the ready queue its PCB is linked to the tail of
queue. When CPU is free it is allocated to the process standing at the head of queue
the running process often sometime is removed and the next process at the head is
allocated to the M.P. This remove process enters and is appended to the tail of the
queue.
(i)
Calculate wait time

OS_BCA_IV_Semester

Page 11 of 32
(ii)
(iii)
(iv)

Calculate T.A. time


Calculate avg. wait time
Calculate avg. T.A. time

2. SJF: In SJF algorithm every process length is considered along with the CPU burst.
When CPU is available, it is assigned to a process that has the smallest CPU burst. In
case if two process have the same length and the CPU burst then FCFS scheduling is
used to break the tie.
3. Priority Scheduling: In priority scheduling a priority associated with every process and CPU is
allocated to the process with the highest priority. If two processes have same priority
them FCFS is used to break the tie.
4. Round Robin scheduling: Round Robin algorithm is one of the most common and popular scheduling
mechanism used by time sharing system. It is similar to FCFS mechanism with one
exception i.e. in Round Robin algorithm every process is allocated a fixed small unit of
time called Quantum or time slice. This quantum is generally between 10 to 100 ms, the
ready queue is treated as circular queue and CPU scheduler goes around the ready
queue allocating the CPU to each process for this interval of one quantum. In Round
Robin mechanism queue works on FIFO principle. The CPU scheduler picks up the first
process from the ready queue and set the timer to interrupt after one quantum and
dispatches the process.
5. Multilevel queue scheduling: In MLQS algorithm the ready queue is partitioned into several ready queues. the
processes are assigned to every queue which generally based on some properties of
classes such as memory size, process priority or process type. Every queue has its own
scheduling algorithms e.g. one queue might be scheduled be Round Robin algorithm
while other queue may be scheduled by FCFS or SJF. In addition to this there must be
some scheduling mechanism between the queues which is commonly implemented as
priority scheduling. E.g. the queues may be categorized on the nature of process where
system processes have the higher priority while the user processes have lower priority.
(a) System processes
(b) Interactive processes
(c) Interactive adding processes
(d) Batch processes
(e) User processes
6. Multilevel Feedback queue scheduling: it is almost same as MLQS algorithm where the processes are permanently
assigned to a particular queue to enter to the system. Processes do not move between
queues. In MLFBQS mechanism a process can move between queues. The main idea
is to separate process with different CPU burst feature. If a process uses too much of
CPU time it will be moved to low priority queue giving control to other processes
standing in the queue. Similarly if a process has been waiting too long in a lower priority
queue may be moved to high priority queue, this feature is called Ageing.
Multi processor scheduling: -

OS_BCA_IV_Semester

Page 12 of 32
In multiprocessor scheduling the algorithm or the scheduling mechanism is
almost same as that of multi level fed back queue scheduling but the queue could be
processed by using more than one M.P.
Since there is lot of variations in M.P. types, two approaches could be used to
implement MPS. In first approach the CPU could be a homogenous system. Where all
the M.P. are identical. It is easy to implement in comparison of second approach. In
second approach we could use a Hetrogenous system having different M.P. It is difficult
to implement in comparison to the first approach.
Further if Homogenous system is used then it is preferred to have only one ready
queue that will be accessed concurrently by all M.P.s.
But if it is Hetrogenous system then use of Multiple ready queue for multiple
M.P.s is recommended.
Real Time Scheduling: In real time system which have very strict time constraints implementing
scheduling algorithm is very complex.
\
real time system usually multiple powerful M.P. to insure the processing within
the specific time limit. In real time scheduling mechanism a process enter a ready
queue and carries some additional information along with it, which is basically time limit.
This time limit is passed as an argument to the real time system if the real time
scheduler can process the request with in the specified time limit then the request is
accepted and further processing continues. But if the request could not be processed
with in the specified time limit them it is rejected by the real time scheduler and then it is
processed by another part of real time scheduler called soft real time scheduler. If the
real time scheduler can process the request with in the specified time limit, it is
considered as Hard real time scheduler.

OS_BCA_IV_Semester

Page 13 of 32

Unit III
Process Synchronization
Process Synchronization: Concept: It is possible to have multiple process active in memory each process has at
least three important component associated with it that are code, data and its status. It is
possible that multiple processes may try to access the same data concurrently e.g. two
programs are trying to use or open the same file, database or record. Such system may
result into data inconsistency or unusual behavior of the system so there should be a
mechanism to synchronize all the process trying to access the same resource or data.
This ensure data integrity in the system and the mechanism is called process
synchronization and is a very complex system.
Race Condition: If two or more processes share the same data structure in memory then the
resultant value cannot be determined because it depends on the process that access the
data structure first and the one that access it last. When such a situation occurs then it
is called race condition. To overcome this problem there should be some mechanism so
as to avoid simultaneously access to the same data.
Critical Section Problem: We have seen that every process has important elements associated with it they
are code of the process, the data manipulated by code and finally the status of the
process. If there are multiple processes active in memory then every process would
have its own code, data and status. There are certain instructions in the code that
exclusively used to modify some data this section of the code is called Critical Section.
When a process is in its critical section then no other processes should be allowed to
enter their critical sections. Further the processing if critical section by a process using
microprocessor should be usually exclusively in the time. This raise the need of
designing a protocol that satisfies following criteria.
( I ) Mutually Exclusion (mutex): If a process P0 is in its critical section and is processed by the, M.P then no other
process that is P1 to Pn should be allowed to enter their critical section.
( II ) Progress: When none of the process are in their critical section then only those processes
that are not in their remainder sections can participate in the decision of entering into
critical section.
( III ) Bounded Time:
Every process should be bounded to enter its critical sections so that other have
the change to enter their critical section.
Every process is roughly divided into two distinct section critical and remainder
section and to insure the proper synchronization between the processes the critical
sections have two points
(a) Entry Point
(b) Exit Point
When a process needs to enter into its critical section it makes the request to its
entry point if no other process is in its critical section. After the complete processing of
critical section the process leaves through the exit point and enters the remainder
section.

OS_BCA_IV_Semester

Page 14 of 32
Semaphore: When one process modifies a particular data structure no other process can
simultaneously modify it. We can use semaphore to deal (n) process critical section
problem. The (n) processes share a semaphore called MUTEX which is initialized to
one(1). The implementation of with a wait queue may result into a situation where two
or more processes are waiting infinitely for an event that can be caused by only one of
the waiting process. When such a stage is reached these processes are called to be
deadlock.
When a process in a set waiting for an event that can be caused only by another
process in the set the process is said to be deadlock. It is very important to overcome
such situations when a process enters into deadlock state. Mainly it is caused by
resource acquisition and release. Another possibility related to deadlock is indefinite
blocking or starvation.
Deadlock and starvation are almost same with one exception i.e. in starvation
the process waits indefinitely or infinite amount of time.
Classical Problem of Synchronization: 1. Bounded Buffer (Producer-Consumer Problem): In bounded buffer algorithm we assume that there is a pool N buffers where each
buffer is capable of holding one item. The MUTAX semaphore provide mutual exclusion
to the buffers in the pool and is initialized to (1). When all the buffers in the pool are
empty. The empty is initialized to the value of N and the full is initialized to the value (0)
we can interrupt the code as per the producer producing full buffers for the consumer or
as per the consumer producing empty buffer for the producers.
2. Readers and Writers Problem: In readers and writers problem a data structure such as a file or record is to be
shared among several concurrent processes some of these processes may only read
the content of the shared object whereas other may update the shared object. The
processes interested only in reading are called readers while the rest one interest in
writing are called writers. If readers access the shared data objects simultaneously then
no adverse effect will occur. But if a writer and some other process access the shared
object simultaneously then a problem may occur. To ensure these difficulties do not
arise we require that writer have exclusive access to the shared object this is called
readers and writers problems.
3. The Dining Philosophers Problem: Consider 5 philosophers spending their lives thinking and eating.
The
philosophers share a common circular table surrounded by 5 chairs. Each belonging to
one philosopher. In the centre of the table there is a bowl of rice and the table is laid 5
single chopsticks. When a philosopher think, he does not interact with his colleagues.
From time to time a philosopher get hungry and try to pick up the two chopsticks that are
closer to him.
The closest chopstick for a philosopher would be the chopsticks on his left and right
side. The philosopher may pick one chopstick at a time but they cannot pick up another
chopstick that is already in the hand of neighbour. When hungry philosopher has both
the chopstick on the same time he starts eating without releasing both of his chopsticks.
When he is finished eating. He put down both of his chopstick and starts thinking again.

OS_BCA_IV_Semester

Page 15 of 32
The dining philosophers problem is a simple representation of the need to
allocate several resources among several processes in a deadlock phase and in
starvation manner.
One simple solution is to represent each chopstick with a semaphore. A philosopher
tries to grab the chopstick by executing the wait operation on that semaphore. He then
releases his chopstick by executing the signal operation on the same semaphore. This
solution guarantees that no two neighbors are eating simultaneously but there is a
possibility of deadlock. If all the philosophers become hungry simultaneously and each
one them grabs chopsticks on his left hand side then all the elements of the chopsticks
will now be equal to 0. when each philosopher tries to grab his right chopstick he will
delayed for ever causing starvation. The possible situations could be.
1. Allow utmost 4 philosophers to be sitting simultaneously at the table.
2. Allow a philosopher to pick up chopstick only if both the chopsticks are
available.
3. Use an asymmetric solution i.e. an odd philosopher picks up first his left
chopstick and then his right chopstick whereas an even philosopher picks
up his right chopstick and then left
Monitors: A monitor is a collection of procedures, variables, and data structures that are all
grouped together in a special kind of pakage or module.
Monitors are high level constructs that are defined for process synchronization.
These are also considered programs define operators. These monitors are represented
by declaring variable whose value defines the state of a process as well as its body i.e.
the procedures and functions that implements operation. Monitors are represented by
programmers and cannot be directly used by other processes. A process defined within
a monitor can access only those variables declared locally within the monitor. Similarly
the local variable of the monitor can only be accessed by local procedures. The monitor
construct ensures that only one process at a time can be active but it is not sufficient
powerful for implementing some additional synchronization schemes.
Atomic Transactions: The mutual exclusion of critical section ensures that critical sections are
executed automatically that is if 2 critical sections are executed concurrently the result is
equilant to there sequential execution in some unknown order. This property is useful in
many applications but there are some cases where we would like to ensure that a C.S.
forms a signal unit of work. Which is performed entirely or not perform at all for e.g. in a
function transfer in which one account is debited and another account is credited. It is
important that for data consistency either both the operators that is credit and debit occur
or neither occur. These are called atomic transactions.
Symbol Method: A collection of instructions that perform a single logical function is called a
transaction a major issue in processing transaction is the preservation of atomicity
despite the possibility of failure with in the computer system. A transaction is a program
unit that access and possibly update various data items that may reside on disk having
some file from user point of view a transaction is simply a sequence of read and write
operations which are terminated by either a commit operation or an abort operation.
Commit operation signifies that the transaction has terminated its execution
successfully where as an abort operation signifies that the transaction has to cease its

OS_BCA_IV_Semester

Page 16 of 32
execution due to some logical errors a terminated transaction that has completed its
execution successfully is called a committed transaction other wise it is called an abort
transaction. Ones an operation is committed it cannot be undone by abort operation.
There are certain factors that ensure atomicity but they depend on certain characteristics
of the storage media which are given below: 1. volatile storage.
2. Non-volatile storage: - It is more prone to errors and crashes and a slower transaction
volatile storage.
Factors ensuring atomicity of transactions: 1. Log based recovery: It is one of the ways to ensure the atomicity on storage regarding all the
information and modification way to the various data the most widely used method for
achieving it is called write ahead logging mechanism. In this mechanism system
maintain on stable storage a data structure called log each log describes a single
operation of a transaction write and has the following fields.
a. Transaction name.
b. Data item name.
c. Old Value.
d. New Value.
The undo and redo operations can easily be implemented using log even if
failure occurs.
2. Check Point: When a system failure occurs we must first consult the log to determine those
transactions that need to be redone and those need to be undone. In this principle we
have to search entire log to identify these transactions byut there are 2 drawbacks of
these principles.
a. It is a time consuming task.
b. Most of the transactions need to be redone that have already actually updated
the data but it will.
c. Out a log record check point on to stable storage.
This mechanism the system periodically performs check points which require the
following sequence of operation.
1. Output all the records currently residing in main memory to the stable storage.
2. Output all the modified data residing in volatile storage to the stable storage
cause no harm to reduce these overheads the concept of check points introduced .

Dead Lock Concept: In multitasking environment there may be multiple processes executing on the system
and computing for a particular set of resources. A process request resources and if
resources are not available at that time then a process entered into wait state and
moves into the wait or device queue. Further it may happen that waiting processes will
never again change their state because the resources required by them are held by
other waiting processes. This situation is called DEAD lock or CANSAS lock. This lock
state that if two trains are approaching each other at a crossing then both shell come to
a full stop again until the other has gone .
Under normal mode of operation every process utilizes the resources in the
following sequence: -

OS_BCA_IV_Semester

Page 17 of 32
(ii)

(iii)
(iv)

Request - if resource is required by a process then a request is made by


process. If the resource is available then resource is allocated to the process
for utilization else the process enters into the wait state further shifting to wait
or device queue.
Utilization or Use the process can operate on the resource. E.g. if a printer
is the resource then it is used for printing data by the process.
Release After the process is finished with the resource utilization, it
released the resource so that it can be occupied by the other processes in
wait state.
This mode of operation is also termed as release and request mechanism
and is implemented by the use of the system calls E.g. 1st
(a)
(b)
(c)
(d)

Resource= File
Request = Open file
Use = read or write
Release = close file

E.g. 2nd
(e) Resource= Memory
(f) Request = allocate memory
(g) Use = Use memory ,start read and write
(h) Release = release and free the memory
Deadlock Characterization: A process may never its execution till the system resources are not available
further preventing other job from ever starting. This deadlock situation can arise if
following four conditions occur in the system.
(a) Mutual Exclusion: At least one process or the resource must be in non-sharable mode i.e. only one
process can utilize a resource at a time if another process require the same resource
then requesting process must be delayed until the reso7urce has been released.
(b) Hold and Wait: There must be a process that is holding at least the resource and is waiting to
acquire additional resource that currently being held by other processes.
(c) No preemption: Resources can be preempted i.e. a resource can be released only by the
process holding it and after it as completed its task.
(d) Circular Wait: In this situation there must exist a set of waiting processes say Pn. P0 is waiting
for a resource occupied by P1, P1 is waiting for a resource occupied by P2 and P2 is
waiting for a resource i.e. occupied by Pn-1 and Pn-1 is waiting for a resource occupied
by Pn. Finally Pn is waiting for a resource occupied by P0. all these four conditions are
used to characterize deadlock in a process.
Methods for handling deadlock: In case a deadlock is characterized by the presence of any of the four conditions
namely mutual exclusion, hold and wait, no preemption, circular wait. Some mechanism
is required to handle them. They are important principles that can be used for dealing
with deadlock situations or problems.
1. to design and develop a protocol to ensure that the system will never enter into
deadlock state.

OS_BCA_IV_Semester

Page 18 of 32
2. If we allow the system to enter into deadlock state then we must ensure its
recovery from deadlock state.
3. Ignore the problems altogether and assume that deadlocks never occur in the
system. Almost all the O.S. use this solution today including UNIX.
To ensure that deadlock problem never occur the system can use either a deadlock
prevention mechanism or avoidance mechanism.
Deadlock prevention mechanism is set of methods for ensuring that at least one of the
necessary condition cannot hold and these method prevent deadlock by verifying how
request for resources can be made.
Deadlock avoidance mechanism requires that the O.S. must be given in advance
additional information about the resource required by a process. With this additional
knowledge we can decide for each request weather or not the process should wait.
Each request require that the system consider the resource currently available, the
resource currently allocated to a process and the future request and releases of each
process to decide weather the current request can be satisfied or must be delayed.
Deadlock Prevention: All the four conditions
1. Mutual Exclusion of a process execution depends on weather the resources are
sharable or non-sharable. It is not required if resources are sharable e.g. a read
only file can be simultaneously accessed by multiple processes without causing
any harm to it. If the resources are not sharable then we must ensure the mutual
exclusion of process i.e. we must ensure that all the processes execute mutually
exclusive in time.
Sharable device ( hard disk, CD, RAM)
Non Sharable (Printer, Magnetic Tapes, Floppy disks)
2. Hold and Wait: - In Hold and Wait situation the process having some of the
resources but still waiting for other resources to be allocated for its execution
may result into a deadlock state for other processes. In order to ensure that no
process enters into a deadlock state under this situation a protocol must be
designed where every process before holding any process examines the current
availability status of all the required resources. If the required resources are
available then they can be allocated before its execution.
This protocol has two disadvantage
(a) the process is unnecessarily delayed due to non availability of all the required
resources.
(b) That may result into starvation.
3. No preemption: - In no preemption mechanism a resource cannot be interrupted
for its allocation to another process i.e. there is no preemption of resources that
have already been allocated to a process. To overcome this situation we can use
a protocol that if some resources are occupied by a process and another process
is requesting for same resources then all the resources currently been held are
preempted i.e. they are implicitly released. They are then allocated to the
process waiting for them and the older process can restart again with its old
resources where they are released by the new process.
This resources can be applied only to those resources whose state can be easily saved
and restored later e.g. microprocessor registers and memory space.
4. Circular Wait: - In C.W. mechanism a process holding some resources and
waiting for another resources that is occupied by the next process in the queue
occur in a loop. To overcome this situation we need to design a protocol that

OS_BCA_IV_Semester

Page 19 of 32
groups all the resources type and assign them a unique number in the increasing
order. Also the protocol will ensure that each process request the resources in
increasing order of the number.
We can prevent a process to enter into a deadlock state by implementing constants on
how the request are made. These constants ensure that the necessary condition for
deadlock cant occur and hence deadlock cannot hold a process. But the possible
disadvantages by these methods are low device utilization and reduces system through
put or performance.
Deadlock Avoidance Mechanism: DLA mechanism is an alternative method for avoiding deadlocks in a system it
requires additional information about how the resources are to be requested e.g. if there
is a type drive and a printer then a printer might tell that it will first access and then take
drive on the other hand another process might tell that it will access tape drive and then
printer. With this knowledge of complete sequence of requests and releases of
resources by a process we can decide for each request weather or not a process should
wait. Each request requires that the system considered the resources currently
available ad resources currently allocated to the process and future request and release
of resources by process. This ensure that deadlock does not occur in the system.
Deadlock Detection: If a system does not use a DLP or DLA mechanism then deadlock situation may
occur. In such situation the system must provide two facility
1. an algorithm that examine the current state of the system to identify weather a
deadlock has occurred.
2. If a deadlock is detected then and algorithm to recover from deadlock must be
provided.
The selection of algorithm depends on the system having only one instance of each
resource as well as system with several instances of each resource. It also depend on
the process type. The selection of deadlock detection and recovery mechanism
increases the overhead that include runtime cost and execution of detection algorithm. It
also results into the loss i.e. possible due to recovery from a deadlock state.
Deadlock Recovery: When the system identifies a deadlock state then there are several possibilities
that may occur in the system.
1. First possibility is to inform the user or operator of the system that deadlock has
occurred and that the operator deal with deadlock manually. This could be done
in either of two ways.
(b) the 1st way is to let the user decide how to handle the deadlock situation.
(c) The 2nd way is to present user a list of options to select one of them for handling
the deadlock situation.
2. Second possibility is to let the system decide how to handle the deadlock
situation so as to recover from it automatically. There are two ways for breaking
the deadlock. The first ay is to abort one or more processes and the second way
is to preempt some of the resources occupied by the other process.
There are two way to terminate to abort a process. In both the cases the system
reclaims all the resources allocated to the terminated processes.
(a) To terminate or abort all the deadlock processes.
(b) Abort one process at a time until the dead cycle is eliminated.

OS_BCA_IV_Semester

Page 20 of 32
We would follow the second approach because there might be a situation that
terminating the first deadlock process releases some resources that are required by
other processes in deadlock state.
It is very important to identify the state of process at the time of termination because if
the process is in the middle of updating a file then terminating the process may result
into loss of data leaving the file in incorrect state e.g. termination of a print job currently
being processed may also result into loss of data leaving the printer in incorrect state.
Combine Approach to Deadlock Handling: Researchers today have combine all the basic approaches used for handling
deadlock because an approach alone cannot handle the deadlock situation properly.
These approaches are combined together to ensure the optimum utilization or resources
in the system among multiple processes. It is done so by combining all the approaches
together i.e. combining deadlock prevention, avoidance, detection and recovery
mechanism. Almost all the future generation O.S. and few of the current ones employ
these techniques.

OS_BCA_IV_Semester

Page 21 of 32

Unit IV
Memory Management
Introduction: We have seen that there can be multiple processes active in memory which are
handled by the CPU scheduler. All theses processes share the memory so we need to
decide about some memory management mechanism to ensure the optimum utilization
of available memory the selection of memory management algorithm depends on
hardware architecture of underlying system. Also before a program can be executed it
needs to be loaded into memory. The program having a group of instructions are loaded
into memory and these instructions are fetched by the CPU one by one. After fetching
an instruction, it is decoded and then memory variable or other data structure referenced
by the instruction are read from the memory, then the instruction is executed on the
values recently read from the memory and results are returned back into memory.
It is important to have memory management sub system to handle all memory related
activities. This sub system is called a MMU (Memory Management Unit) and is H/W
dependent. Memory is viewed as an array of bytes or words. Each having a particular
address or location.
Logical Vs Physical address space: The addresses seen by the micro processor or CPU is commonly referred as
logical address whereas an address seen by the memory unit is commonly referred as
physical address. It is possible that both the addresses may be same or different.
Logical addresses are also called virtual addresses. The set of logical addresses or
virtual addresses generated by a program is commonly referred as logical address
space and the set of physical addresses corresponding to these logical addresses is
referred as physical address space. so in the execution time addresses binding
scheme, the logical addresses and the physical addresses differ from each other.
During run time this mapping from virtual to physical address is done by MMU i.e.
Memory Management Unit and is H/W device which is used by the O.S. the kind of
memory management scheme being implemented defines the mapping mechanism.
The MMU mapping scheme is a generalization of base register scheme.
Memory Management Scheme or Technique or Algorithm or Mechanism: 1. Swapping: The swapping technique is used to load excess of processes or processes more
than the limit of primary memory an keep the current process in memory which is
processed and send the rest processes on to secondary memory. After the processing
of the process in the primary memory is completed then a new process is loaded from
the swap space, from secondary memory. The secondary storage used for the purpose
of temporarily storing or keeping the process is called backing store. It is so named
because it provides backing storage for primary memory so that the primary memory can
transfer the inactive processes to the backing store and create room for the create
process in the primary memory,.
The primary memory is not completely available for used processes, some part is
reserved for O.S.. The swap space on secondary storage is created by the O.S. The
algorithm for managing swap space are the same ones used for managing main
memory.

OS_BCA_IV_Semester

Page 22 of 32
The allocation of swap space can be in two ways, either allocating space when
process is created or allocating swap space when the process is to be swapped out.
2. Paging: The advantage of paging is that paging overcomes the problem of external
fragmentation occurred in swapping. In paging a process is allocated memory divisions
called pages in a continuous manner so as to avoid fragmentation. It improves the
overall memory utilization and read write speed to and from memory. It is commonly
used by graphics system where every graphical environment is stored in a memory
page.
The paging mechanism also involves the secondary storage to solve the problem
or limitation of loading larger programs in memory and execute them.
In paging mechanism we divide the logical address space into pages and the
physical addresses into frames. A frame can consist of one or more than one page.
One or may pages as required for processing are loaded into the primary memory into
one frame; or in more than one frame if the pages are more.
The physical or actual address is calculated with the help of a paging table which
is maintained in memory. The table contains the [page number and the address of that
page. After getting the address of the page from the paging table the MMU loads the
pages into physical memory in form of frames or we can say pages are mapped to
frames.
All the pages are of same size which is calculated by the O.S.
3. Segmentation: the segmentation mechanism is very closely related to paging mechanism. In
this mechanism the physical memory is partitioned into segments of different size
according to process dynamically that is when the process is loaded then a segment is
created by MMU for the process.
The calculation of physical address is done with the help of segmentation table
which stores segment number, base address of segment and limit of that particular
segment.
Virtual Memory: Virtual Memory is designed for the execution of oversized program that cannot
be fragmented. Virtual memory uses secondary storage i.e. some part of free space in
secondary storage and is simulated as if it were physical or primary memory. The
advantage offered by it is the execution of programs is possible that demand more free
physical memory in comparison to available free physical memory. It also has one major
drawback that it reduces the performance of the system as secondary memory is used
for the program processing and the processing in secondary memory is always alos in
comparison to the processing in primary memory.
Demand Paging: Demand Paging system is similar to a paging system but also includes
swapping. It may also include other memory management technique if required. In D.P.
all the processes reside on S.M. which is usually a disk when we need to execute a
program then we swap it into memory using a swapper. A swapper never swaps a page
into M.M. unless that page is needed.
D.P. = paging + swapping
.
D.S. = paging + segmentation
in D.P. when a process is to be swapped the pages and the swapper will be used
by the process. Instead of bringing the entire process it brings only the necessary pages

OS_BCA_IV_Semester

Page 23 of 32
into memory. Pager identifies the required pages which are swapped in and out by
swapper.
Demand segmentation: D.P. is generally used by most of the virtual memory system and requires the
significant H/W to implement it. If the H/W is not available then V.M cannot be provided.
In such situation D.S is used, e.g. the Intel 80286 does not include paging features but
supports segmentation. E.g. Os/2 O.S.
O.S./2 uses the segmentation to implement D.S. as the substitute of D.P. Os/2
allocated memory to processes in segments rather in pages. All these segments were
monitored by segments discripters that include information about the segment size,
address and protection. A process does not need to have all of its segments in memory
to execute but can be leaded as and when required.
Page Replacement: In paging several pages are allocated to a process to store its code and data.
These pages represent individual memory segments identified by unique address in
page table. If the degree of multi programming in increased then there may be huge
number of processes active in memory having there own pages. This could result into
over allocation of memory or page corruption. E.g. if we run five processes in memory
each having 10 pages but actually uses five pages then the rest of 5 pages are
unnecessarily occupied by each of process. It also results into slow I/O due to
involvement of extra 5 pages. This situation must be overcome by using some
technique i.e. page replacement. In PR, we can swap out a process freeing all of its
frames and reducing the degree of multiprogramming.
If we implement page
replacement mechanism then in situation where no frame is free i.e. not currently being
used then it is freed. This is done by writing its content in the swap space secondary M)
and modify the P table to indicate that page is no longer in memory. This free frame can
now be utilized by a new process or by a process with faulty page. This mechanism is
implemented as page fault service routine.
Steps involved in PR: 1. identify the location of desired page on the disk.
2. Find a free frame
I. if a free frame is found use it.
II. Use a PR mechanism algorithm to select a faulty frame
III Write the contents of faulty page to the disk i.e. swap space and modify the page
table
3. Read the desired page from swap space and change the page table(recovery).
4. Restart the user process.
Page Replacement Algorithm: The selection and implementation of PR algorithm depends on the page fault
rate. The selection of algorithm should be done by considering the algorithm with the
lowest page fault rate. This is identified by running the algorithm on a particular string of
memory references (array of memory addresses) and computing the number of page
fault. The memory address string is called reference string which is generated string
which is generated artificially by random number generator.
Page Replacement Algorithm: 1. FIFO algorithm (first in first come)

OS_BCA_IV_Semester

Page 24 of 32
2. Optimal algorithm
3. LRU algorithm (Least recently used)
1. FIFO algorithm: In FIFO algorithm, the page replacement algorithm associates with each page
the time when that was brought into the memory. This associates a time with every page
whenever it is allocated by the O.S. When a page fault occurs the page must be
replaced by the oldest page. We replace the page by the page of 1st process of the
system that is the replacement by the 1 st process is FIFO order. To select or an identify
the oldest page as per the time associated with every page. 1 st in 1st out means that he
unused page will be selected by scanning all the processes from oldest to latest one.
2. Optimal algorithm: In optimal algorithm, the lowest page fault rates are available. It never suffers
from high page fault rate. It works on the principle that whenever a page fault occurs
then it will be replaced by the page that is not used for the longest period of time. In
optimal algorithm, it must be kept in that it should be implemented only on the system
with low error rates and also ensures the lowest possible page fault rate for fixed set of
frames.
It also insure the maximum recovery from a page fault but also has one
drawback that it is time consuming as compared to the time rahi
3. LRU algorithm: In LRU algorithm, which is almost similar to FIFO algorithm. The main distinction
is that FIFO algorithm uses the time where a page was brought into memory but in LRU
algorithm the page is selected as per the recent past as an proclamation of the future
and then we will replace the page that has not been used to the longest period of time
depending on its utilization by the process. It associates every page with a time that is
the page last used. When the page is to be replaced then it chooses the page from the
recent to the oldest process and involves only unused pages per process.
Thrashing Algorithm: Thrashing is a page replacement algorithm which is used in situation where there
is very high paging activity. It mainly deals with the situation where the number of
frames allocated to a process falls below the minimum number of frames required by the
computer that is the process.. in such situation there are only two possibilities.
1. The MMU tries to recover from the current page fault situation.
2. If the situation can not be recovered then the execution of the process is
suspended i.e. the process is killed or terminated. Then all the used or occupied pages
by the process are released and marked as free in the paging table. This high paging
actually is called Thrashing. In Thrashing a process spend most of its time in paging
and lesser for execution. So in Thrashing the overall performance of the system is
degraded.
Consideration for selection of Page replacement algorithm: 1. Pre-paging (demand)
In Demand paging there is a possibility of large number of page fault that occur in
the system when a process is created. Pre-paging is an attempt to prevent this high
level of initial paging. The main idea is to bring all the required pages in to memory at
one time.
2. Page Size
If the size of the page id increased then the total number of pages available in
the memory are reduced (due to bigger size) if less pages are available in memory then
the total number of process that can be loaded into memory is also reduced that is it

OS_BCA_IV_Semester

Page 25 of 32
reduces the degree of multi programming. Which is further reduces the possibility of
page fault that may occur in the system.
3. Inverted page table
it deals with the mapping of virtual addresses to physical addresses. This
mapping should be readable by the algorithm being implemented to handle the page
fault situation.
4. Program Structures
The structure of the program that is the way program is created also contributes
the consideration for selecting a page replacement algorithm because a bad program
structure could result rates.
5. I/O Interlock
There may be situation where some pages are locked in memory with a device.
There must be some mechanism to handle this state of te device like device pre-emption
so as to avoid unnecessary locking of the process.

OS_BCA_IV_Semester

Page 26 of 32

Unit 5
Input/ Output Sub-System
Overwrite of I/O sub system: The two major operations performed by a computer system are I/ and processing
but I/O forms the major contribution to the workload. These are lost of devices available
today that interacts with the computer system. This variation in devices requires a lots of
methods to be implemented in the O.S..
These methods are responsible for controlling all the I/O operations and I/O
devices. These set of methods are implemented as I/O sub-system of the O.S.
I/O sub system face two big challenges 1 st increasing standardization and
development of architectures.
O.S. designers are responsible to include S/W
components for all the standards in architecture. 2nd wide variety of I/O H/W devices are
available today and most of them are not backward compatible. O.S. designers try to
include S/W supports in the I/O subsystem for most of devices.
I/O Hardware: Every I/O device can be connected to a computer system provided it is supported
by the H/W architecture of the computer. Every device that is connected to a computer
system requires an interface called port. There are wide variety of devices each with its
own specific part requirements
e.g. serial port, parallel port, graphic port, micro phone, speaker port, USB port etc.
The device is attached to this port using some cable or cable less mechanism
which is called bus. A bus is a set of parallel conducting wires with a definite protocol
used for control the data transmission over the bus.
Every device has an electronic circuitry which is responsible for controlling the
associated device and I/O operation to and from it. This electronic circuitry is device
specific and controls overall operation of device. It is called device controller.
e.g.
monitor = display card (graphics controller)
Hdd = Hard Disk controller
Fdd = floppy disk controller
Serial port = Serial port controller
I/O H/W techniques: 1. Pooling (busy- waiting)
2. Interrupt mechanism
3. DMA
Pool: Pooling or busy waiting. It is a technique which is used to verify the status (busy
or free) or device controller. In pooling the value of status register (controller) is
continuously monitored for 0 and 1 (busy bit, free bit). Continuously pooling may be
inefficient for the system so an interrupt mechanism is used.
Interrupt: - To overcome the problems raised due to continuous pooling interrupt
mechanism is used. When the device becomes free then it notifies its status to M.P. by
sending an interrupt signal over the interrupt request line (IRQ). Which is continuously
monitored by the M.P. after the execution of every instruction. When an interrupt is
identified then the control is transferred to the IVT ( inter vector table) which is to identify
the device causing the interrupt and then the requested ISR is executed.

OS_BCA_IV_Semester

Page 27 of 32

DMA: - By default all the data is read from and written on to the register of the device
controller byte by byte by M.P. Also the pooling operation is carried out by M.P. this is
called PI/O (program I/O) but it is not feasible to use M.P. time for such operation so the
concept of DMA was introduced. In DMA any application can read or write to and from a
device directly using DMA controller. Thus elimination the wastage of M.P. time. The
request to DMA controller contains three arguments which are source add, destination,
add, amount of bytes to transfer (read or write).
Kernel I/O sub system: The I/O sub system is integrated with in the kernel of the O.S.. It provides all the
services related to I/O. the services provided by it are I/O scheduling, buffering, caching,
spooling, device reservation, error handling.
In I/O device scheduling, a set of I/O request are scheduled in a proper order and
then executed one by one. It improves the overall system performance and esure the
optimum utilization of resources. The efficiency of the scheduling mechanism can be
determined by the average waiting time.
Buffer: Buffer is a temporary memory area
which is used to store the data temporary
while it is transferred between two devices or between device and an application. It is
mainly used to overcome the speed mismatch between batch the objects of the data
structure.
Spool: Spooling almost same as buffering but is used to temporarily hold the O/P data
for a device such as printing. It is used along with the S.S> and overcome the limitation
of printer due to speed mismatch. The S/W components that implement spooling is
called spooler and maintains queue for every device.
Caching: Cache is special purpose memory which holds a copy of frequently accessible
data. It is faster than primary memory. the access to cache copy is faster and more
efficient then access to the original copy.
Error Handling: It deals with the errors that occur due to read and write operation. They may be
generated by a hardware or an application so some mechanism is used to protect the
memory so that the complete system failure dies not occur.
e.g. CRC (Cyclic Redundancy Check).
Device Reservation: It deals with the reservation of the device in advanced so that it can be occupied
or allocated to a process or a program whenever, required but dies not ensure the
optimum utilization of devices and may result into unwanted delays.
Performance of system ( I/O sub system): The performance of the system is directly effected by the architecture of the I/O
sub system. I/O ss place a heavy work load on the CPU by executing certain time

OS_BCA_IV_Semester

Page 28 of 32
consuming operations like device- driver, device scheduling, caching, interrupt handling
mechanism etc. Also there is huge ata transfer during the data copy between device
controllers and main memory and again from M.M to the application dtat space and
Kernel buffers.
There are certain criterias and principle that can be employed to improve the
efficiency of I/O.
1. Reduce the number of switching operation that is context switch.
2. Reduce the number of times the data must be copied in memory while passing
between device and application.
3. Reduce the frequency of interrupt by using large transfer and smart controllers
With minimize pooling.
4. Increase the concurrency by using DMA supported controller or channels.
5. Move processing operation into H/W that is device controllers for concurrent
operation with the CPU.
6. Balance the CPU memory sub system bus for an improve and stable I/O
performance. (load balancing).
Secondary Storage Management: Disk Structure
Sector: -The smallest logical addressable block of memory on the S.S. and is a [part of
track. Track is composed of multiple sectors where every sector is uniquely identified by
a sector number. The 1st sector on the disk resides on the 1 st track of 1st cylinder and in
number also zero(0). This number gradually increases as we move from outer to inner
surface.
cylinder = number of tracks/ surface
s. capacity =number of cylinder * track/cylinder * scheduling /track* bytes/sector
= x. bytes
0 track => Boot strap loader is a program that load the O.S. from.
Introduction: Magnetic tapes and disks
Sector/ tracks/ cylinder/ cluster
Storage capacity
Cylinder Logical grouping of equi distant tracks.
Disk Scheduling: Disks are fast storage medium that can transfer data at high speed it is because
of three important factor.
1. Seek time.
2. Latency time. ( relational delay)
3. Band width.
Access time = seek time + latency time
Seek time =Time it takes to search track
Latency time = search a particular sector.(reach to the particular sector)
Band width is the number of blocks read or written at a time.

OS_BCA_IV_Semester

Page 29 of 32
Whenever an application generates an I/O request to an from a disk, it issues the
system to the O.S.. This system call requires three arguments: 1. Whether the operation is I/P or O/P.
2. The disk address for the transfer.
3. The memory address for the transfer including the number of bytes to be
transferred.
Scheduling Algorithm: 1. FCFS First Come First Serve.
2. SSTF Shortest Seek Time First
3. SCAN Algorithm
4. C SCAN Algorithm
5. Look Algorithm
e.g. current cylinder position is = 34
p1 p2 p3 p4 (device queue) (p5, p6 )
p1= 64, p2 = 38, p3 = 99, p4 = 78, p5=95, p6=75
1. FCFS: It is simple and straight forward algorithm where I/O is performed by processes
waiting in device queue on 1st cone 1st serve basis. It does not improve the I/O efficiency
of the system. Considering the above example, the process will be allocated device in
the following manner.
1.
p1 64
2.
p2 _ 38
3.
p3 _ 99
4.
p4 _ 78
2. SSTF: In SSTF algorithm the efficiency of the I/O is improved in comparison to FCFS.
In SSTF, the cylinder with the shortest seek time with reference to the current cylinder
position is selected. By considering above e.g. the processes will be allocated device in
the following manner.
1.
p2 38
2.
p1 _ 64
3.
p4 _ 78
4.
p3 _ 99
3. SCAN: In scan algorithm the requests are processed in a sequential manner by
repositioning the head at one end to the disk. It is done gradually moves towards the
other end of the disk fulfilling all the requests for cylinder in between. When the head
reaches at the other end and a request is made then it reverses its direction to the other
end of the disk fulfilling all the requests for cylinders in between. This is similar to an
elevator mechanism so the algorithm is also considered as an elevator algorithm.
Considered the above e.g. let us assume that the scanning of the cylinders starts
from the outer end that is cylinder number 0.
p2 , p1, p4 ,p3 &n-0 ( p5, p6 )
4. C SCAN: It is a variant of SCAN algorithm with one exception that is when the head
reaches from one end to the other end of the disk fulfilling all requests the cylinders in
between them it reaches back to the 1st end at very fast speed without fulfilling any
request for cylinders ( if disk if utilized only 20 % then it is important then SCAN

OS_BCA_IV_Semester

Page 30 of 32
algorithm because all the data is stored towards the outer ends and similar in SCAN
reverse condition).
The request will be processed in the following manner.
p2 , p1, p4 ,p3 &0-n ( p6, p5 )
5. Look Algorithm: It is an improvement over SCAN and C SCAN algorithm. Where once the head
is positioned at one end of the disk & it starts moving towards the other end of the disk
fulfilling all the requests of cylinders in between but it steps at the request for he last
cylinder and then bounces back to the originating end.
We should prefer the implementation of SSTF algorithm or FCFS algorithm for
uni processor or multitasking system. It can also be used for multiprocessor system
where different device queues are maintained by every M.P. This would increase the
overall system I/O efficiency. And is most widely being used by the current O.Ss.
p2 , p1, p4 ,p3
Disk Management: Disk formatting:- the process of creating tracks ad sectors is called formatting.In this
process all the user data is destroyed and new tracks and sectors are formed.Formatting
is of two types,
a)

High level formatting :-In this type of formatting the FAT (File Allocation Table) is
cleared and the entire disk remain unaffected.In case of high level formatting the
data can be recovered.
b) Low Level Formatting:-In case of low level formatting the entire contents of disk
is cleared, by creating new tracks and sectors and also the FAT is cleared. Data
recovery is impossible after low level formatting.
Boot Block
Boot loader:- The small sized program which locates the OS and loads it into
memory and starts executing it.
Boot Strap Loader:- The small sized program which loads the boot loader into
memory which further loads the OS.It is located into 0 th block (that is 0th sector of 0th
track)
Sector0 :- The first sector of disk which is at the outer end and on the 0th track
Track0 :- The first track of the disk on which the boot loader resides.
Search and locate
As soon we start the computer the BIOS after doing the preliminary test (POST)
it passes the control to the boot strap loader, which is a small program which
resides in 0th block of the disk and its purpose is to load the boot loader of the
OS. The boot loader is also a program which loads the kernel of the OS into
memory and transfers the control to it.
The O.S. references (direct or indirect).

OS_BCA_IV_Semester

Page 31 of 32
These days the concept of dual booting is being implemented in two or
more than two OS can be installed on one computer and any one of them, which
is to be used, can be loaded and used. Eg:Windows XP, Linux and Windows 98.
In case of dual booting there is only one boot loader not two. The boot loader in
this case keeps the reference of other OS and it also provides and interactive
way to select which OS is to be loaded, when you select an OS, it loads that
OSs kernel into memory from the location which it previously has. It is a special
type of boot loader which can contain the references (addresses) of other OS.
Eg:-LILO(Linux), NTLDR(Windows XP)
There are third party softwares also available for dual booting. Eg :boot
manager etc.

Bad Blocks
Hot Fixed Region=> recover the data form bad block.
Clusters with invalid links.
Hot fixed region
Mapping of bad block with the clean block in the hot fix area.
Blocks
-> Clean -> empty buffers
-> Dirty-> full of data but data are not flashed means data could not save into the S.M.
-> Bad -> buffers are being corrupted due to some illegal activity

Swap Space Management: Swap S.M. is low level operation performed by the O.S. It is implemented for
virtual memory which use disk as an extension of main memory. Such disk access is
slower than main memory, access swap space can largely effect the system
performance. There are certain factors or criteria to be considered to obtain the best
throughput out of the system.
1. Swap space size and use.
2. Swap space location
Disk Reliability: RAID Redundant Array Of Inexpensive Disk.
Disk Stripping.
Disk Mirroring
Disk Duplexing.
Disks are most important element of the system that are less reliable in
comparison to other system. They have relatively high failure rates and there failure
cause great loss of data and significant down time. While the disk is replaced and data
is replace is very important for improving the reliability of disk system using some
technique like disk stripping raid, mirroring, and duplexing.
RAID (Redundant Array Of Inexpensive Disks) : Data security and integrity is very important issue since olden days. The scientist
have regularly being trying to make the non volatile
secure and accurate. For this
purpose they earlier used magnetic tapes and expensive disk to backup the data.

OS_BCA_IV_Semester

Page 32 of 32
RAID is a new technique of making data more secure. The disk drivers have
continued to get smaller and cheaper in recent years, so it is now cheaper to attach a
large number of disk to a computer system. Using a large number of cheap small disks
to store more data may be more cost effective than using smaller number of expensive
large disks.
There are 7 RAID levels, which implement different techniques to store data and
make it stable storage. The most commonly used RAID levels are: 1. RAID 0 (stripping): In this level all the disk are parallel in connection and the data is equally stored
on every disk. The main advantage of this RAID level is not duplicated that is there is no
redundancy of data. So it is also called non-redundant stripping. (sirs points and
diagram).
2. Raid 1 (mirroring): In this RAID level the data is duplicate on two or more than two disk together. In
case one disk fails the other will be activated and the system will not go down.
Raid 2(duplexing): In this RAID level there are different controllers for different disk unlike in RAID 1
in which there is a common controller.
Stable Storage Implementation: Stable Storage mean that information resides on the system storage is never
lost. To implement stable storage we need to replicate the needed information, in
multiple S.D. with independent failure nodes (dual disk with one controller or
independent disk with dual controller). To insure that data is spoiled or not updated
properly some verification mechanism is used. Further if any failure occur then there are
three possibility.
1. Total: - A failure occurred in the meddle of transfer.
2. Total failure: - The failure occurred before the disk transfer.
3. Total Completion ( successful completion): - Successful completion, failure after
successful transfer of disk.
Whenever a failure occurs the system detects it and invokes recovery procedure.
The recovery procedure restores the protocol or incomplete block with the duplicate
block and the procedure is completed with this it is ensured that the storage is stable.
Storage that guarantees stable storage with proper recovery mechanism if a failure
occurs.

OS_BCA_IV_Semester

Вам также может понравиться