Operating Systems Notes r18
Operating Systems Notes r18
LECTURENOTES
(2023-2024)
DEPARTMENT OF
COMPUTERSCIENCEANDENGINEERING
(R18A0504)OPERATINGSYSTEMS
OBJECTIVES:
TolearnthefundamentalsofOperatingSystems.
TolearnthemechanismsofOStohandleprocessesandthreadsandtheir communication
TolearnthemechanismsinvolvedinmemorymanagementincontemporaryOS
Togainknowledgeondistributedoperating systemconceptsthat includes architecture,
Mutualexclusionalgorithms, deadlockdetectionalgorithmsandagreementprotocols
Toknowthecomponentsandmanagementaspectsofconcurrencymanagement
UNIT-I
Introduction: Concept of Operating Systems, Generations of Operating systems, Types of
Operating Systems, OS Services, System Calls, Structure of an OS - Layered, Monolithic,
Microkernel Operating Systems, Concept of Virtual Machine. Case study on UNIX and
WINDOWS Operating System.
Processes: Definition, Process Relationship, Different states of a Process, Process State
transitions, Process Control Block (PCB), Context switching
Thread: Definition, Various states, Benefits of threads, Types of threads, Concept of
Multithreads.
UNIT-II
Process Scheduling: Foundation and Scheduling objectives, Types of Schedulers, Scheduling
criteria: CPU utilization, Throughput, Turnaround Time, Waiting Time, Response Time;
Scheduling algorithms: Pre-emptive and Non pre-emptive, FCFS, SJF, RR; Multiprocessor
scheduling: Real Time scheduling: RM and EDF.
Inter-process Communication: Critical Section, Race Conditions, Mutual Exclusion,Hardware
Solution, Strict Alternation, Peterson’sSolution, TheProducer/Consumer Problem, Semaphores,
Event Counters, Monitors, Message Passing, Classical IPC Problems: Reader’s & Writer
Problem, Dinning Philosopher Problem etc.
UNIT-III
Memory Management: Basic concept, Logical and Physical address map, Memory allocation:
Contiguous Memory allocation – Fixed and variable partition–Internal and External
fragmentation and Compaction; Paging: Principle of operation – Page allocation – Hardware
support for paging, protection and sharing, Disadvantages of paging.
Virtual Memory: Basics of Virtual Memory – Hardware and control structures – Locality of
reference, Page fault , Working Set , Dirty page/Dirty bit – Demand paging, Page Replacement
algorithms: Optimal, First in First Out (FIFO), Second Chance (SC), Not recently used (NRU)
and Least Recently used (LRU).
UNIT-IV
File Management: Concept of File, Access methods, File types, File operation, Directory
structure, File System structure, Allocation methods (contiguous, linked, indexed), Free-space
management (bit vector, linked list, grouping), directory implementation (linear list, hash table),
efficiency and performance.
I/OHardware:I/Odevices,Devicecontrollers,Direct memoryaccessPrinciplesofI/O
Software:GoalsofInterrupt handlers,Devicedrivers,Device independent I/Osoftware.
UNIT-V
Deadlocks: Definition, Necessary and sufficient conditions for Deadlock, Deadlock Prevention,
Deadlock Avoidance: Banker’s algorithm, Deadlock detection and Recovery.
DiskManagement:Diskstructure,Diskscheduling-FCFS,SSTF,SCAN,C-SCAN,Disk reliability, Disk
formatting, Boot-block, Bad blocks.
TEXTBOOKS:
1. OperatingSystemConceptsEssentials,9thEditionbyAviSilberschatz,Peter Galvin,Greg
Gagne, Wiley Asia Student Edition.
2. Operating Systems: Internals and Design Principles, 5th Edition, William
Stallings,Prentice Hall of India.
REFERENCEBOOKS:
1. OperatingSystem:ADesign-orientedApproach,1stEditionbyCharlesCrowley, Irwin
Publishing
2. OperatingSystems:AModernPerspective,2ndEditionbyGaryJ.Nutt,Addison- Wesley
3. Design of the Unix Operating Systems, 8th Edition by Maurice Bach, Prentice-Hallof
India
4. Understanding the Linux Kernel, 3rd Edition, Daniel P. Bovet, Marco Cesati, O'Reilly
and Associates
OUTCOMES:
At theend of the coursethestudentsareable to:
Createprocessesand threads.
Develop algorithms for process scheduling for a given specification of CPUutilization,
Throughput, Turnaround Time, Waiting Time, Response Time.
For agivenspecificationofmemoryorganizationdevelop thetechniques foroptimally
allocating memory to processes by increasing memory utilization and for improving
the access time.
Designandimplement filemanagement system.
ForagivenI/OdevicesandOS(specify)developtheI/O management functions inOS as
part of a uniform device abstraction by performing operations for synchronization
between CPU and I/O controllers.
INDEX
UNIT
TOPIC PAGENO
NO
Introduction
TypesofOperatingSystems 11-18
I
Operatingservices,SystemCalls 18-25
UNIT-I
Operating System Introduction: Operating Systems Objectives and functions, Computer System
Architecture, OS Structure, OS Operations, Evolution of Operating Systems - Simple Batch, Multi
programmed, time shared, PersonalComputer, Parallel, Distributed Systems, Real-Time Systems, Special -
Purpose Systems, Operating System services, user OS Interface, System Calls, Types of System Calls,
System Programs, Operating System Design and Implementation, OS Structure, Virtual machines
1
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
2
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Operatingsystemperformsthefollowing functions:
1. Booting
Booting isaprocessofstartingthecomputer operatingsystemstartsthecomputerto work. It
checks the computer and makes it ready to work.
2. Memory Management
It is also an important function of operating system. The memory cannot be managed
without operating system. Different programs and data execute in memoryat one time. if
there is no operating system, the programs may mix with each other. The systemwill not
work properly.
3. LoadingandExecution
A program is loaded in the memory before it can be executed. Operating system provides
the facility to load programs in memory easily and then execute it.
4. Datasecurity
Data is an important partofcomputer system. The operating systemprotectsthe data storedon the
computer from illegal use, modification or deletion.
5. DiskManagement
Operatingsystemmanagesthe diskspace.Itmanagesthestoredfilesandfoldersinaproper way.
6. ProcessManagement
CPUcanperformonetask at onetime. ifthereare many tasks, operating systemdecideswhich task
should get the CPU.
7. DeviceControlling
operating systemalso controlsalldevicesattached to computer.The hardware devices are
controlled with the help of small software called device drivers..
8. Providinginterface
It is used in order that user interface acts with a computer mutually. User interface controls
how youinput dataand instructionandhow information isdisplayedonscreen.Theoperating
system offers two types of the interface to the user:
1. Graphical-lineinterface:It interactswithofvisualenvironmentto communicate
with the computer. It uses windows, icons, menus and other graphicalobjectsto issues
commands.
2. Command-line interface:it provides an interface to communicate with the computer by
typing commands.
3
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ComputerSystem Architecture
Computersystemcan bedivided intofourcomponentsHardware–provides basic
computing resources
CPU,memory,I/Odevices,Operating system
Controlsandcoordinatesuseofhardwareamongvariousapplicationsandusers
Applicationprograms–definethewaysinwhichthesystemresourcesareusedtosolvethecomputing problems of
the users
Wordprocessors,compilers,webbrowsers,databasesystems,videogames
Users
People,machines,othercomputersFour
Components of a Computer System
1. Single-processorsystem
2. Multiprocessorsystem
3. ClusteredSystems:
1. Single-ProcessorSystems:
Some computers use only one processor such as microcomputers (or personal computers PCs).
On a single-processor system, there is only one CPU that performs all the activities in the
computer system. However, most of these systems have other special purpose processors, such
as I/O processors that move data quickly among different components of the computers. These
processorsexecuteonlya limited systemprograms and do not runtheuser program. Sometimes
4
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
they are managed by the operating system. Similarly, PCs contain a special purpose
microprocessorinthekeyboard,whichconvertsthekeystrokesintocomputercodesto besentto the
CPU.The use ofspecialpurpose microprocessors iscommon inmicrocomputer. But itdoes not
mean that this system is multiprocessor. A system that has only one general-purpose CPU,is
considered as single- processor system.
2. MultiprocessorSystems:
TypesofMultiprocessorSystems:
The multiprocessing system, in which each processor is assigned a specific task, is known as
Asymmetric Multiprocessing System. For example, one processor is dedicated for handling
user's requests, one processor isdedicated for running application program, and one processor
is dedicated for running image processing and so on. In this system, one processor works as
master processor, while other processors work as slave processors. The master processor
controls the operations of system. It also schedules and distributes tasks among the slave
processors. The slave processors perform the predefined tasks.
The multiprocessing system, in which multiple processors worktogether on the same task, is
known as Symmetric Multiprocessing System. In this system, each processor can perform all
typesoftasks.Allprocessorsaretreatedequallyandnomaster-slaverelationshipexists between the
processors.
5
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
It mustbe noted that in the same computer system, the asymmetric multiprocessing
andsymmetric multiprocessing technique can be used through different operating systems.
ADual-CoreDesign
3. ClusteredSystems:
Clustered system is another formof multiprocessor system. This systemalso contains multiple
processors but it differs from multiprocessor system. The clustered system consists of two or
more individual systems that are coupled together. In clustered system, individual systems (or
clustered computers) share the same storage and are linked together ,via Local Area Network
(LAN).
A layer of cluster software runs on the cluster nodes. Each node can monitor one or more of
the other nodes over the LAN. If the monitored machine fails due to some technical fault (or
due to other reason), the monitoring machine can take ownership of its storage. The
monitoring machine can also restart the applications that were running on the failed machine.
The users of the applications see only an interruption of service.
TypesofClusteredSystems:
machine is running the application. The hot-standby host machine does nothing. It only
monitors the active server. If the server fails, the hot-standby machine becomes the active
server.
(ii). SymmetricClusteredSystem:
In symmetric clustered system, multiple hosts (machines) run the applications. They also
monitor each other. This mode is more efficient than asymmetric system, because it uses all
the available hardware. This mode is used only if more than one application be available to
run.
OperatingSystemStructure
Multiprogrammingneeded for efficiency
Single user cannot keep CPU and I/O devices busy at all times
Multiprogramming organizesjobs (code and data) so CPU alwayshas one
toExecute A subset of total jobs in system is kept in memory
7
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
8
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
2)Multitasking
9
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Operating-systemOperations
1) Dual-ModeOperation·
In order to ensure the proper execution of the operating system, we must be able to distinguish
between the execution of operating-system code and user defined code. The approach taken by
most computer systems is to provide hardware support that allows us to differentiate among
various modes of execution.
Attheveryleastweneedtwoseparatemodesofoperation.usermodeandkernelmode.
Abit,calledthe modebit isaddedtothehardwareofthecomputerto indicatethecurrent mode: kernel
(0) or user (1).with the mode bit we are able to distinguish between a task that isexecuted
onbehalfofthe operatingsystemandone thatisexecuted onbehalfoftheuser,When
the computer system is executing on behalf of a user application, the system is in user mode.
However, when a user application requests a service from the operating system (via a.. system
call), it must transition from user to kernel mode to fulfill the request.
At system boot time, the hardware starts in kernel mode. The operating system is then loaded
and starts user applications in user mode. Whenever a trap or interrupt occurs, the hardware
switches fromuser mode to kernel mode (that is, changes the state ofthe mode bit to 0). Thus,
whenever the operating system gains control of the computer, it is inkernel mode. The system
always switches to user mode (by setting the mode bit to 1) before passing control to a user
program.
10
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
The dual mode of operation provides us with the means for protecting the operating system
from errant users-and errant users from one another. We accomplish this protection by
designating some of the machine instructions that may cause harm as privileged instructions.the
hardware allows privileged instructions to beexecuted only inkernel mode. Ifan attempt is made
to execute a privileged instruction in user mode, the hardware does not execute the instruction
but rather treats it as illegal and traps it to the operating system. The instruction to switch to
kernel mode is an example of a privileged instruction. Some other examples include I/0 control
timer management and interrupt management.
11
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
12
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
13
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
14
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Personal-ComputerSystems(PCs)
A personal computer (PC) is a small, relatively inexpensive computer designed for an
individual user. In price, personal computers range anywhere from a few hundred dollars to
thousands of dollars. All are based on the microprocessor technology that enables
manufacturers to put an entire CPU on one chip.
At home, the most popular use for personal computers is for playing games. Businessesuse
personal computers for word processing, accounting, desktop publishing, and for
runningspreadsheet and database managementapplications.
15
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Specialpurposesystems
a) Real-TimeEmbeddedSystems
These devices are found everywhere, fromcar engines and manufacturing robotsto DVDs
and microwave ovens. They tend to have very specific tasks.
Theyhavelittleornouserinterface,preferringtospendtheirtimemonitoringand managing
hardware devices, such as automobile engines and robotic arms.
16
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
b) MultimediaSystems
Mostoperating systemsaredesignedto handleconventionaldatasuchastext files, programs,
word-processing documents, and spreadsheets. However, a recent trend in technology is the
incorporation of multimedia data into computer systems. Multimedia data consist of audio
and video files as well as conventional files. These data differ fromconventional data in that
multimedia data-such as frames of video-must be delivered (streamed) according to certain
time restrictions (for example, 30 frames per second). Multimedia describes a wide range of
applications in popular use today. These include audio files such as MP3, DVD movies,video
conferencing, and short video clips of movie previews or news stories downloadedover the
Internet. Multimedia applications mayalso include live webcasts (broadcasting over the
World Wide Web)
c) HandheldSystems
Handheld Systems include personaldigitalassistants (PDAs, cellular telephones. Developers of
handheld systems and applications face many challenges, most of which are due to the limited
size of such devices. For example, a PDA is typically about 5 inches in height and 3 inches in
width, and it weighs less than one-half pound. Because of their size, most handheld deviceshave
small amounts of memory, slow processors, and small display screens.
17
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
OperatingSystemServices
One set of operating-system services provides functions that are helpful to theuser
Communications–Processes mayexchange information, onthesamecomputerorbetweencomputers
overanetworkCommunicationsmaybe viasharedmemoryorthroughmessagepassing(packetsmoved by the
OS)
Error detection – OS needs to beconstantlyaware of possible errors Mayoccur inthe CPU and
memoryhardware, inI/Odevices, inuserprogramForeachtypeoferror,OSshouldtaketheappropriate action
to ensure correct and consistent computing Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system
AnothersetofOSfunctionsexistsfor ensuringtheefficient operationofthesystemitselfviaresource
Sharing
18
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Resourceallocation -Whenmultipleusersormultiple jobsrunningconcurrently, resources must be
allocated to each of them
Manytypesofresources- Some(suchasCPU cycles, mainmemory, and filestorage) mayhavespecial
allocation code, others (such as I/O devices) mayhave general request and release code
Accounting -Tokeeptrackofwhichusersusehow muchandwhatkindsofcomputerresources
Protection and security - The owners of information stored in a multiuser or networked computer
system may want to control use of that information, concurrent processes should not interfere with each
other
Protectioninvolvesensuringthatallaccesstosystemresources iscontrolled
Security ofthe systemfromoutsiders requires user authentication, extends to defending externalI/O
devices from invalid access attempts
Ifa systemisto beprotectedand secure, precautions mustbeinstitutedthroughout it. Achain isonlyas
strong as its weakest link.
UserOperating SystemInterface-CLI
CommandLineInterface(CLI)orcommandinterpreterallowsdirectcommand entry
Sometimesimplementedinkernel,sometimesbysystemsprogram
sometimes multiple flavors implemented – shells
Primarilyfetchesacommandfromuser andexecutesit
UserOperating SystemInterface-GUI
19
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ExampleofSystemCalls
ExampleofStandardAPI
ConsidertheReadFile()functioninthe
Win32API—afunctionforreadingfromafile
SystemCallParameterPassing
Often,moreinformationisrequiredthansimplyidentity ofdesiredsystem call
Exact type and amount of information vary according to OS and call Three
general methods used to pass parameters to the
OSSimplest:passtheparametersinregisters
Insomecases,maybemoreparametersthanregisters
Parameters stored ina block, or table, inmemory, and address ofblock passed as a parameter in
a register
ThisapproachtakenbyLinuxandSolaris
Parameters placed, or pushed, onto the stack bythe programand popped off the stack bytheoperating
system
Blockandstackmethodsdonotlimitthe numberorlengthofparametersbeingpassed
21
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ParameterPassingviaTable
TypesofSystemCalls
1. Processcontrol
2. Filemanagement
3. Devicemanagement
4. Informationmaintenance
5. Communications
Processcontrol
Arunningneedstohaltitsexecutioneithernormallyor abnormally.
If a system call is made to terminate the running program, a dump of memory is
sometimestaken and an error message generated which can be diagnosed by a debugger
o end,abort
oload,execute
o createprocess,terminate process
ogetprocessattributes,setprocessattributes
owaitfor time
owaitevent,signalevent
oallocateandfreememory
Filemanagement
OSprovidesanAPI tomakethesesystemcallsformanagingfiles
ocreatefile,deletefile
oopen,closefile
oread, write, reposition
ogetandsetfileattributes
Device management
Process requires several resources to execute, if these resources are available, they will be
granted and control retuned to user process. Some are physical such as video card and other
such as file. User program request the device and release when finished
orequestdevice,releasedevice
oread, write, reposition
ogetdeviceattributes, setdeviceattributes
o logicallyattachordetachdevices
22
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Informationmaintenance
System calls exist purely for transferring information between the user
programandOS. It canreturninformationaboutthesystem, suchasthenumberofcurrent users, the
versionnumber ofthe operating system, the amount offree memoryor disk space and so on.
o gettimeordate,settimeordate
o getsystemdata,setsystemdata
o getandsetprocess,file,ordevice attributes
Communications
Twocommonmodelsofcommunication
Message-passingmodel,informationisexchangedthroughaninterprocess-
communication facility provided by the OS.
Shared-memory model, processes use map memorysystemcalls to gainaccess to regions of
memory owned by other processes.
ocreate, deletecommunicationconnection
osend,receivemessages
otransferstatus information
oattachanddetachremotedevices
ExamplesofWindowsandUnixSystemCalls
23
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
MS-DOS execution
24
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
SystemPrograms
Systemprogramsprovideaconvenient environment forprogramdevelopment andexecution. Thecan be
divided into:
Filemanipulation
Statusinformation
File modification
Programminglanguagesupport
Program loading and execution
Communications
Applicationprograms
Most users’ view of the operation system is defined by system programs, not the actual
systemcalls provide a convenient environment for programdevelopment and execution
Someofthemare simplyuserinterfacesto systemcalls;othersare considerablymore complex
Filemanagement-Create,delete,copy,rename,print,dump,list,andgenerallymanipulatefilesand directories
Statusinformation
Some ask the system for info - date, time, amount of available memory, disk space, number of users
Others provide detailed performance, logging, and debugging information
Typically, these programs format and print the output to the terminal or other output
devicesSome systems implement a registry - used to store and retrieve configuration
information
Filemodification
Texteditorstocreateandmodifyfiles
Special commands to search contents of files or perform transformations of the text
Programming-language support - Compilers, assemblers, debuggers and interpreters sometimes
provided
Program loading and execution- Absolute loaders, relocatable loaders, linkage editors, andoverlay-
loaders, debugging systems for higher-level and machinelanguage
25
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Communications- Providethe mechanismforcreating virtualconnectionsamongprocesses, users,and
computer systems
Allowuserstosendmessagestooneanother’sscreens,browsewebpages,sendelectronic-mail messages, log
in remotely, transfer files from one machine toanother
OperatingSystemDesign andImplementation
Design and Implementation ofOS not “solvable”, but some approaches have proven successful
Internal structure of different Operating Systems can vary widely
StartbydefininggoalsandspecificationsAffectedby
choice of hardware, type of system User goals and
System goals
Usergoals–operatingsystemshouldbeconvenienttouse,easytolearn,reliable, safe, andfast
System goals–operatingsystem shouldbeeasytodesign,implement,andmaintain,aswell asflexible, reliable,
error-free, and efficient
Importantprincipletoseparate
Policy:Whatwillbe done?
Mechanism:Howtodoit?
Mechanismsdeterminehowtodosomething,policiesdecidewhatwillbe done
Theseparationof policyfrommechanismisaveryimportantprinciple,itallowsmaximumflexibilityif policy
decisions are to be changed later
SimpleStructure
MS-DOS – written to provide the most functionality in the least space Not divided
intomodules
AlthoughMS-DOShassomestructure,itsinterfacesandlevelsofFunctionalityarenotwellseparated
26
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
MS-DOSLayerStructure
The operating system isdivided into a numberoflayers(levels), each built ontopoflower layers.The
bottom layer(layer 0), isthe hardware; the highest (layer N) isthe userinterface.
With modularity, layers are selected such that each uses functions (operations) and services of
only lower-level layers
TraditionalUNIXSystemStructure
UNIX
27
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
functions;alargenumberoffunctionsforonelevel Layered
Operating System
MicrokernelSystemStructure
Movesasmuch fromthekernelinto“user”space
Communicationtakesplacebetweenusermodulesusingmessagepassing Benefits:
Easiertoextenda microkernel
Easier to port the operating system to new architectures More reliable (less codeis
running in kernel mode)
Moresecure
Detriments:
Performanceoverheadofuserspacetokernelspacecommunication
MacOS X Structure
28
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Modules
SolarisModularApproach
VirtualMachines
Avirtualmachinetakesthelayeredapproachtoitslogicalconclusion.Ittreats hardwareand the operating system
kernel as though they were allhardware
Avirtualmachineprovidesaninterfaceidenticaltotheunderlyingbarehardware
Theoperatingsystem hostcreatestheillusion thataprocesshasitsown processorand(virtual memory) Each guest
provided with a (virtual) copy of underlying computer
VirtualMachines HistoryandBenefits
First appearedcommerciallyinIBMmainframesin1972
Fundamentally, multipleexecutionenvironments(differentoperatingsystems)cansharethesamehardware
Protect from each other
Somesharing offilecanbepermitted,controlled
Commutate with each other, other physical systems via networking
Useful for development, testing
Consolidationofmanylow-resourceusesystemsontofewerbusiersystems
“OpenVirtualMachineFormat”,standardformatofvirtualmachines,allowsaVMtorunwithinmany different
virtual machine (host) platforms
29
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Para-virtualization
Presentsguestwithsystemsimilarbutnotidenticaltohardware Guest
must be modified to run on par virtualized hardware
GuestcanbeanOS,orinthecaseofSolaris10applicationsrunningincontainers Solaris 10 with
Two Containers
30
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
VMwareArchitecture
TheJava VirtualMachine
Operating-SystemDebugging
31
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Process
Aprocessis aprogramatthetimeofexecution.
DifferencesbetweenProcessand Program
Process Program
Processisadynamicobject Programisastaticobject
Process States
When a process executed, it changes the state, generally the state of process is determined by
the current activityof the process. Each process may be in one of the following states:
1. New :Theprocessisbeingcreated.
2. Running :Theprocessisbeingexecuted.
3. Waiting :Theprocess iswaitingforsomeeventtooccur.
4. Ready :Theprocessiswaitingtobeassignedtoaprocessor.
5. Terminated:TheProcesshasfinishedexecution.
Onlyoneprocesscanberunninginanyprocessoratany time,Butmanyprocessmaybein ready and
waiting states. The ready processes are loaded into a “ready queue”.
Diagramofprocessstate
32
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ItisalsocalledTaskControlBlock.Itcontainsmanypiecesofinformationassociatedwithaspecific Process.
ProcessState
ProgramCounter
CPURegisters
CPUScheduling Information
Memory–ManagementInformation
AccountingInformation
I/OStatusInformation
ProcessControlBlock
1. ProcessState :TheStatemaybenew,ready,running,andwaiting,Terminated…
2. ProgramCounter :indicatestheAddressofthenextInstructionto beexecuted.
3. CPUregisters :registersincludeaccumulators,stackpointers,
General purpose Registers….
33
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Threads:
Aprocess isdivide into numberoflight weight process, each light weight processissaid to be a
Thread. The Thread has a program counter (Keeps track of which instruction to execute next),
registers (holds its current working variables), stack (execution History).
Thread States:
Eg:Wordprocessor.
Typing,Formatting,Spellcheck,savingarethreads.
DifferencesbetweenProcessand Thread
Process Thread
Processtakesmoretimeto create. Thread takeslesstimeto create.
ittakesmoretimetocompleteexecution& Lesstimeto terminate.
terminate.
Execution isveryslow. Executionisveryfast.
It takes more time to switch b/w two Ittakeslesstimetoswitchb/wtwo
processes. threads.
Communicationb/wtwoprocessesisdifficult . Communicationb/wtwothreadsis
easy.
Processcan’tsharethesame memoryarea. Threadscansharesamememoryarea.
Systemcallsarerequestedtocommunicate Systemcallsare notrequired.
each other.
Processislooselycoupled. Threadsaretightlycoupled.
Itrequiresmoreresourcesto execute. Requiresfewresourcestoexecute.
34
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Multithreading
Kernelsaregenerallymultithreaded
CODE-Contains instruction
DATA-holdsglobalvariableFILES-
openingandclosingfiles
REGISTER-containinformationaboutCPUstate
STACK-parameters, local variables, functions
Types Of Threads:
Advantages
ThreadswitchingdoesnotrequireKernelmodeprivileges.
Userlevelthreadcanrunonanyoperatingsystem.
Schedulingcanbeapplicationspecificintheuserlevelthread.
Userlevelthreadsarefasttocreateand manage.
35
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Disadvantages
Inatypicaloperatingsystem,mostsystemcallsareblocking.
2) Kernel Threads: kernel creates, schedules, manages these threads .these threads are
Multithreadedapplicationcannottakeadvantageofmultiprocessing.
slower, manage. Ifone thread in a process blocked, over allprocess need not be blocked.
Advantages
Disadvantages
Kernelcansimultaneouslyschedulemultiplethreadsfromthesameprocess onmultiple
processes.
Ifonethreadinaprocessis blocked, theKernelcanscheduleanotherthreadofthesameprocess.
Kernelthreadsaregenerallyslowertocreateand managethantheuserthreads.
Kernelroutinesthemselvescanmultithreaded.
Transfer ofcontrolfromonethreadtoanother withinsameprocess requiresa modeswitchto the Kernel.
MultithreadingModels
Manytomanyrelationship.
Manytoonerelationship.
Some
Onetoonerelationship.
operating systemprovides a combined user level thread and Kernel level thread facility. Solaris
isa good example of this combined approach. In a combined system, multiple threads within the same
ManytoManyModel
applicationcanruninparallel onmultipleprocessorsanda blockingsystemcallneed not blocktheentire
process. Multithreading models are three types
Inthis model,manyuser levelthreads multiplexestotheKernelthread ofsmaller orequalnumbers.The number of
Kernel threads maybespecific to either a particular application ora particularmachine.
Followingdiagramshowsthemanytomanymodel.In thismodel,developerscancreateasmanyuser 36
threadsasnecessaryandthecorrespondingKernelthreadscanruninparallelsonamultiprocessor.
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ManytoOneModel
OnetoOneModel
37
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
38
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
UNIT-II
Process Scheduling: Foundation and Scheduling objectives, Types of Schedulers, Scheduling criteria:
CPU utilization, Throughput, Turnaround Time, Waiting Time, Response Time; Scheduling algorithms:
Pre-emptiveandNonpre-emptive, FCFS, SJF, RR;Multiprocessor scheduling:RealTimescheduling:RM and
EDF.
Inter-processCommunication: CriticalSection, Race Conditions, MutualExclusion, Hardware Solution,
Strict Alternation, Peterson’s Solution, The Producer/Consumer Problem, Semaphores, Event Counters,
Monitors, Message Passing, Classical IPC Problems: Reader’s & Writer Problem, Dinning Philosopher
Problem etc.
PROCESS SCHEDULING:
SCHEDULING QUEUES: people live in rooms. Process are present in rooms knows
as queues. There are 3types
1. job queue: when processes enter the system, they are put into a job queue, which
consistsallprocesses inthe system. Processes inthe jobqueue reside onmassstorageand await the
allocation of main memory.
2. ready queue:if a processis presentin mainmemory andis ready to be allocated to cpu
forexecution, is kept in readyqueue.
3. devicequeue:ifaprocessispresentinwaitingstate(or)waitingforani/oeventto complete is
said to bein device queue.(or)
Theprocesseswaiting foraparticularI/Odeviceiscalleddevicequeue.
39
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Schedulers:Thereare3 schedulers
1. Longtermscheduler.
2. Mediumterm scheduler
3. Shorttermscheduler.
Schedulerduties:
Maintainsthequeue.
SelecttheprocessfromqueuesassigntoCPU.
Typesof schedulers
40
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Context Switch: Assume, main memory contains more than one process. If cpu is executing a process, if
time expires or if a high priority process enters into main memory, then the scheduler saves information
about current process in the PCB and switches to execute the another process. The concept of moving CPU
by scheduler from one process to other process is known as context switch.
Non-Preemptive Scheduling: CPU is assigned toone process, CPU do not release untilthe competitionof
that process. The CPU will assigned to some other process only after the previous process has finished.
Preemptive scheduling: here CPU can release the processes even in the middle of the
execution. CPU received a signal from process p2. OS compares the priorities of p1 ,p2. If
p1>p2, CPU continues the execution of p1. If p1<p2 CPU preempt p1 and assigned to p2.
Dispatcher: The main job of dispatcher is switching the cpu from one process to another
process. Dispatcher connects the cpu to the process selected by the short term scheduler.
Dispatcher latency: The time it takes by the dispatcher to stop one process and start another
processisknownasdispatcher latency.Ifthedispatcher latencyisincreasing,thenthedegreeof
multiprogramming decreases.
SCHEDULINGCRITERIA:
1. Throughput:howmanyjobsarecompletedbythecpuwithinatimeperiod.
2. Turn around time : The time interval between the submission ofthe process
and time of the completion is turn around time.
TAT = Waiting time in ready queue + executing time + waiting time in waiting queue for
I/O.
3. Waitingtime:Thetimespentbytheprocesstowaitfor cputo beallocated.
4. Responsetime:Timedurationbetweenthesubmissionandfirstresponse.
5. CpuUtilization:CPUiscostlydevice, it mustbekeptasbusyaspossible. Eg:
CPU efficiency is 90% means it is busy for 90 units, 10 units idle.
CPUSCHEDULINGALGORITHMS:
1. First come First served scheduling: (FCFS): The process that request the CPU
first is holds the cpu first. If a process request the cpu then it is loaded into the ready queue,
connect CPU to that process.
Consider the following set of processes that arrive at time 0, the length of the cpu burst time
given in milli seconds.
bursttimeisthetime,requiredthecputoexecute thatjob,itisinmilliseconds.
Process Bursttime(milliseconds)
P1 5
P2 24
P3 16
P4 10
P5 3
41
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Averageturnaroundtime:
Turnaroundtime=waitingtime+bursttime
Turnaroundtimeforp1=0+5=5.
Turn around time for
p2=5+24=29 Turn around time
for p3=29+16=45 Turn around
time for p4=45+10=55 Turn
around time for p5= 55+3=58
Averageturnaroundtime= (5+29++45+55+58/5)=187/5=37.5millisecounds
Averagewaitingtime:
waitingtime=startingtime-arrivaltime
Waitingtimeforp1=0
Waiting time for p2=5-0=5
Waiting time for p3=29-0=29
Waiting time for p4=45-0=45
Waiting time for p5=55-0=55
Averagewaitingtime=0+5+29+45+55/5 =125/5=25 ms.
AverageResponseTime:
42
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
1) FirstComeFirstServe:
ItisNonPrimitiveSchedulingAlgorithm.
P2 6 2
P3 4 4
P4 5 6
P5 2 8
Processarrived intheorderP1,P2,P3,P4,P5. P1
arrived at 0 ms.
P2 arrived at 2 ms.
P3 arrived at 4 ms.
P4 arrived at 6 ms.
P5 arrived at 8 ms.
AverageTurnAroundTime
Formula:TurnaroundTime=:waitingtime+bursttime Turn
Around Time for P1 => 0+3= 3
Turn Around Time for P2 => 1+6 = 7
Turn Around Time for P3 => 5+4 = 9
TurnAround Time for P4 => 7+ 5=12
TurnAroundTimeforP5=>2+10=12
AverageTurnAround Time=>(3+7+9+12+12)/5=>43/5 =8.50 ms.
AverageResponseTime:
Formula:ResponseTime=FirstResponse-ArrivalTime
Response Time of P1 = 0
Response Time of P2 => 3-2 = 1
Response Time of P3 => 9-4 = 5
Response Time ofP4 => 13-6 = 7
ResponseTimeofP5=>18-8=10
AverageResponseTime=>(0+1+5+7+10 )/5=>23/5 =4.6ms
Advantages:EasytoImplement,Simple.
43
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Disadvantage:Averagewaitingtimeisveryhigh.
2) ShortestJobFirst Scheduling(SJF):
PROCESS CPUBURSTTIME
P1 5
P2 24
P3 16
P4 10
P5 3
P5 having the leastCPU burst time ( 3ms ). CPU assigned to that( P5 ). After completion ofP5
short term scheduler search for nest ( P1 ).......
AverageWaiting Time:
Formula=StaringTime-ArrivalTime waiting
Time for P1 => 3-0 = 3
waitingTimeforP2=>34-0=34
waiting Time for P3 =>18-0 =18
waiting Time for P4 =>8-0=8
waiting time for P5=0
Averagewaiting time=>(3+34+18+8+0)/5 =>63/5 =12.6 ms
AverageTurnAroundTime:
Formula=waitingTime+burstTime
TurnAroundTimeforP1=>3+5=8
Turn Around for P2 => 34+24 =58
Turn Around for P3 => 18+16 = 34
44
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
TurnAroundTimeforP4=>8+10=18 Turn
Around Time for P5 => 0+3 = 3
AverageTurnaroundtime => (8+58+34+18+3)/5=> 121/5=24.2ms
AverageResponseTime:
Formula:FirstResponse-ArrivalTime
3) ShortestRemainingTimeFirst( SRTF);
Thisisprimitivescheduling algorithm.
Short termscheduler always choosesthe process that has termshortest remaining time. Whena
new process joins the ready queue , short term scheduler compare the remaining time of
executing process and new process. If the new process has the least CPU burst time, The
scheduler selects that job and connect to CPU. Otherwise continue the old process.
P1 3 0
P2 6 2
P3 4 4
P4 5 6
P5 2 8
45
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
P1 arrives at time 0, P1 executing First ,P2arrives attime 2. Compare P1 remaining time and P2 ( 3-2 =
1)and6. So,continueP1after P1,executingP2,attime4,P3arrives,compareP2remainingtime(6-1=5
) and 4 ( 4<5 ) .So, executing P3 at time 6, P4 arrives. Compare P3 remaining time and P4 ( 4-
2=2 ) and 5 (2<5 ). So, continue P3 , after P3, ready queue consisting P5 is the least out ofthree.
So execute P5, next P2, P4.
FORMULA :Finish time - Arrival
Time Finish Time for P1 => 3-0 = 3
Finish Time for P2 => 15-2 = 13
Finish Time for P3 => 8-4 =4
Finish Time for P4 => 20-6 = 14
Finish Time for P5 => 10-8 = 2
4)ROUNDROBINSCHEDULINGALGORITHM:
It is designed especially for time sharing systems. Here CPU switches between the processes.
Whenthe time quantumexpired, the CPU switched to another job. Asmallunit oftime, called a
time quantum or time slice. A time quantum is generally from 10 to 100 ms. The time quantum
is generally depending on OS. Here ready queue is a circular queue. CPU scheduler picks the
first process from ready queue, sets timer to interrupt after one time quantum and dispatches
the process.
PROCESS BURSTTIME
P1 30
P2 6
P3 8
46
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
AVERAGEWAITINGTIME:
AVERAGETURNAROUNDTIME:
FORMULA:Turnaroundtime=waitingtime+burst Time Turn
around time for P1 => 14+30 =44
Turnaroundtime forP2=>15+6=21
TurnaroundtimeforP3=> 16+8= 24
Averageturnaroundtime => (44+21+24)/3= 29.66ms
5) PRIORITYSCHEDULING:
P2 12 4
P3 1 5
P4 3 1
P5 4 3
P4hasthehighestpriority.AllocatetheCPUtoprocessP4firstnextP1,P5,P2,P3.
AVERAGEWAITINGTIME:
AVERAGETURNAROUNDTIME:
Disadvantage:Starvation
Multiple–processorscheduling:
When multiple processes are available, thenthe scheduling getsmore complicated,
because there is more than one CPU which must be kept busy and in effective use
at all times.
Load sharing resolves around balancing the load between multiple processors.
Multi processor systems may be heterogeneous (It contains different kinds of
CPU’s) ( or ) Homogeneous(all the same kind of CPU).
1) Approaches to multiple-processorscheduling
a)Asymmetric multiprocessing
One processoris themaster,controlling all activities and running all kernel
code,while the other runs only user code.
b)Symmetricmultiprocessing:
Each processor schedules its own job. Each processor may have its own private queue of ready
processes.
2) ProcessorAffinity
Successive memory accesses by the process are often satisfied in cache memory.
what happens if the process migrates to another processor. the contents of cache
memory must be invalidated for the first processor, cache for the second processor
must be repopulated. Most Symmetric multi processor systems try to avoid
migration of processes from one processor to another processor, keep a process
running on the same processor. This is called processor affinity.
a) Soft affinity:
Soft affinity occurs when the system attempts to keep processes on the same
processor but makes no guarantees.
48
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
b) Hardaffinity:
Processspecifiesthatitisnottobemovedbetweenprocessors.
3) Loadbalancing:
Oneprocessorwontbesittingidlewhileanotherisoverloaded.Balancing can be
achived through push migration or pull migration.
Pushmigration:
Push migration involves a separate process that runs periodically(e.g every 200 ms)
and moves processes from heavily loaded processors onto less loaded processors.
Pullmigration:
Pullmigrationinvolvesidleprocessorstakingprocessesfromthereadyqueuesoftheother processors.
Realtime scheduling:
Realtime scheduling is generallyused in the case of multimedia operating systems.
Here multiple processescompete for the CPU. How to schedule processes A,B,C so
that each one meets its deadlines. The general tendency is to make them pre-
emptable, so that a process in danger of missing its deadline can preempt another
process. When this process sends its frame, the preempted process can continuefrom
where it had left off. Here throughput is not so significant. Important is that tasks
start and end as per their deadlines.
RATEMONOTONIC(RM)SCHEDULINGALGORITHM
Rate monotonic scheduling Algorithmworksonthe principle ofpreemption. Preemptionoccurs on
a given processor when higher prioritytask blocked lower prioritytask fromexecution. This
blocking occurs due to priority level of different tasks in a given task set.rate monotonic is a
preemptive algorithm which means if a task with shorter period comes during execution it will
gain a higher priorityand can block or preemptive currentlyrunning tasks. In RM priorities are
assigned according totime period. Priorityofa task is inverselyproportionalto itstimer period.
Task with lowest time period has highest priority and the task with highest period will have
lowest priority.
Forexample,wehaveataskset that consistsofthreetasksas follows
T1 0.5 3
T2 1 4
T3 2 6
49
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Table1.Task set
U= 0.5/3+1/4+2/6=0.167+ 0.25+0.333=0.75
As processor utilization is less than 1or 100% so task set is schedulable and it also satisfies the
aboveequation of rate monotonic scheduling algorithm.
Figure1.RMschedulingofTasksetintable1.
Atasksetgivenintable1itRMschedulingisgiveninfigure1. Theexplanationofaboveisasfollows
1. According to RM scheduling algorithm task with shorter period has higher priority so T1 has
high priority, T2 has intermediate priority and T3 has lowest priority. At t=0 all the tasks are
released. Now T1 has highest priority so it executes first till t=0.5.
2. At t=0.5taskT2has higher prioritythanT3 so it executes first forone-time units tillt=1.5. After its
completion only one task is remained in the system that is T3, so it starts its execution and
executes till t=3.
3. At t=3 T1 releases, as it has higher priority than T3 so it preempts or blocks T3 and starts it
execution till t=3.5. After that the remaining part of T3 executes.
4. At t=4 T2 releases and completes it execution as there is no task running in the system at this
time.
5. At t=6 both T1 and T3 are released at the same time but T1 has higher priority due to shorter
period so it preempts T3 and executes tillt=6.5, after that T3 startsrunning and executes tillt=8.
6. Att=8 T2withhigherprioritythanT3releasessoitpreemptsT3and startsits execution.
7. At t=9 T1 is released again and it preempts T3 and executes first and at t=9.5 T3 executes its
remaining part. Similarly, the execution goes on.
EarliestDeadlineFirst(EDF)SchedulerAlgorithm
The EDF is a dynamic algorithm, Job priorities are re-evaluated at everydecision point, this re-
evaluationis basedonrelativedeadlineofa jobortask,theclosertothedeadline, thehigherthepriority. The EDF
has the following advantages:
1. Veryflexible(arrivaltimesanddeadlinesdonotneedtobeknownbeforeimplementation).
2. Moderatecomplexity.
3. Abletohandleaperiodicjobs.
TheEDFhasthefollowing disadvantages:
1. Optimallyrequirespre-emptivejobs.
2. Notoptimalonseveralprocessors.
3. Difficulttoverify.
50
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Example
Considerthefollowingtaskset inTable1. PrepresentsthePeriod, etheExecutiontimeandDstands for the
Deadline. Assume that the job priorities are re-evaluated at the release and deadline ofa job.
P e D
T1 2 0.5 2
T2 4 1 4
T3 5 1.5 5
Solution
Markalldeadlinesrelated to allthetasks
First markalldeadlinesrelatedtothetasksasshowninFig. 1.T1,T2andT3arerepresented with
Red, Green and Blue colour respectively. The schedule is from0 – 20ms as shown.
At T =0,T1hastheclosestdeadline, soscheduleT1.
At T=0.5,T1iscompleted,itsnext releasetime isat 2ms.T2iscloserto itsdeadlineso T2is
scheduled next and executes for 1s.
At T=1.5,T2jobiscompleted.T3isnext because it isclosertoitsdeadlinewhileT2hasnot been
released.
At T=2,anew instanceofT1isreleased,therefore,T3isinterruptedandhas1msleft to complete
execution. T1 executes
AtT=2.5,Theonlyready jobisT3which isscheduleduntilcompletion.
AtT=4,anewinstanceofT1isreleasedwhichexecutesfor0.5ms.
AtT =4.5,T1is nowcompleted, soT2isnowthetaskclosesttoitsdeadlineandisscheduled.
AtT=5.5,T3isscheduledbutispre-emptedatT=6sorunsfor 0.5ms
AtT=6,anewinstanceofT1 isreleasedand thereforescheduled.
At T=6.5,T3isclosestto itsdeadlinebecauseT1andT3havenotbeenreleased.SoT3is allowed to
complete its execution which is 1ms.
AtT=8,anewinstanceofT1isreleasedandisscheduled.
At T=8.5,T2isthetaskhavingtheclosest deadlineandso isscheduledto runforitsexecution time.
AtT=10,thenextreleaseofT1is scheduled.
51
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
InterProcess communication:
52
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
The critical section problem is to design a protocol that the processes can use to
cooperate. Each process must request permission to enter its critical section. The
section of code implementing this request is the entry section. The critical section
may be followed byan exit section. The remaining codeis the remaindersection.
Criticalsection:
Theportioninanyprogramthataccessesasharedresourceiscalledascriticalsection(or) critical region.
Peterson’ssolution:
Peterson solution is one of the solutions to critical section problem involving two
processes. This solutionstatesthat whenone process isexecuting itscriticalsection
then the other process executes the rest of the code and vice versa.
Petersonsolutionrequirestwoshared data items:
1) turn: indicateswhoseturnit isto enter
into the critical section. If turn == i ,then
process i is allowed into theircritical section.
2) flag:indicateswhenaprocesswantstoenterintocriticalsection.when
53
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
processiwantstoentertheircriticalsection,itsetsflag[i]totrue.
do {flag[i] = TRUE; turn = j;
while(flag[j]&&turn==j);
critical section
flag[i] = FALSE;
remaindersection
} while(TRUE);
Synchronizationhardware
In a uniprocessor multiprogrammed system, mutual exclusion can be obtained by
disabling the interrupts before the process enters its critical section and enabling
them after it has exited the critical section.
Disableinterrupts
Critical section
Enableinterrupts
do {
acquire
lock
critical
section
release
lock
remainder
section
} while(TRUE);
54
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
A process wants to enter critical section and value of lock is false then testandset
returns false and the value of lock becomes true. thus for other processes wantingto
enter their critical sections testandset returns true and the processes do busy
waiting until the process exits critical section and sets the value of lock to false.
• Definition:
booleanTestAndSet(boolean&lock)
{ boolean temp=lock;
Lock=true;
returntemp;
}
AlgorithmforTestAndSet
do{
whiletestandset(&lock)
//donothing
//criticalsection
lock=false
remaindersection
}while(TRUE);
Swapinstructioncanalsobeusedformutualexclusion Definition
Voidswap(boolean&a,boolean&b)
{
booleantemp=a;
a=b;
b=temp;
}
Algorithm
do
{
key=true;
while(key=true)
swap(lock,key);
critical section
lock=false;
remaindersection
}while(1);
55
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
lock is global variable initialized to false.each process has a local variable key. A
process wants to enter critical section,since the value of lock is false and key istrue.
lock=false
key=true
afterswap instruction,
lock=true
key=false
nowkey=falsebecomestrue,processexitsrepeat-until,andenterintocriticalsection.
When process is in critical section (lock=true),so other processes wanting to enter
critical section will have
lock=true
key=true
Hence they will do busy waiting in repeat-until loop until the process exits critical
section and sets the value of lock to false.
Semaphores
Asemaphoreisaninteger variable.semaphoreaccessesonlythroughtwooperations.
1) wait: waitoperationdecrementsthecountby1.
Iftheresultvalueisnegative,theprocessexecutingthewaitoperationis blocked.
2) signaloperation:
Signal operationincrementsby 1,ifthevalueisnotpositivethenoneof the process
blocked in wait operation unblocked.
wait(S){
whileS<=0;// no-
op
S--;
}
signal(S)
{
S++;
}
56
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
do{
wait (mutex);
//CriticalSection
signal (mutex);
//remaindersection
}while(TRUE);
First processthat executeswaitoperationwillbe immediatelygrantedsem.countto 0.
Ifsomeotherprocesswantscriticalsectionandexecuteswait()thenitis
blocked,sincevaluebecomes-1.Iftheprocessexitscriticalsectionitexecutes
signal().sem.count is incremented by 1.blocked process is removed from queue and
added to ready queue.
Problems:
1) Deadlock
Deadlock occurs when multiple processes are blocked.each waiting for a resource
that can only be freed by one of the other blocked processes.
2) Starvation
oneormoreprocessesgetsblocked forever and neverget achancetotaketheir turn in
the critical section.
3) Priority inversion
If low priority process is running ,medium priority processes are waiting for low
priority process,high priority processes are waiting for medium priority
processes.this is called Priority inversion.
The two most common kinds of semaphores are counting semaphores and
binary semaphores. Counting semaphores represent multiple resources,
whilebinarysemaphores, asthename implies, represents two possible states
(generally 0 or 1; locked or unlocked).
Classicproblemsofsynchronization
1) Bounded-bufferproblem
Twoprocessesshareacommon,fixed–size buffer.
Producerputsinformationintothebuffer,consumertakesitout.
The problemarise whenthe producer wantsto put a newitem inthe buffer,but it is
already full. The solution is for the producer has to wait until the consumer has
consumed atleast one buffer. similarly if the consumer wants to remove an item
fromthe buffer and sees that the buffer is empty,it goes to sleep until the producer
puts something in the buffer and wakes it up.
57
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Thestructureoftheproducerprocess
do{
//produceanitemin nextp
wait (empty);
wait(mutex);
//addtheitemtothe buffer
signal (mutex); signal
(full);
}while(TRUE);
Thestructureoftheconsumerprocess
do {
wait
(full);
wait
(mutex);
// remove an item from buffer to
nextc signal (mutex);
signal(empty);
//consumetheiteminnextc
}while(TRUE);
2) Thereaders-writersproblem
Adatabase isto besharedamongseveralconcurrent processes.someprocesses may
want onlyto readthedatabase,some maywant toupdatethedatabase.Iftwo readers
access the shared data simultaneously no problem.if a write,some other process
accessthedatabasesimultaneouslyproblemarised.Writeshaveexcusiveaccessto
58
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Firstreaders-writersproblem
No reader be kept waiting unless a writer has already obtained permission
touse the shared resource.
Secondreaders-writesproblem:
Oncewriterisready,thatwriter performs itswriteassoonaspossible.
A process wishing to modify the shared data must request the lock in write mode.
multiple processes are permitted to concurrently acquire a reader-writer lock in
read mode. A reader writer lock inread mode. but only one process may acquire
the lock for writing as exclusive access is required for writers.
Semaphoremutexinitializedto1
o Semaphorewrtinitializedto1
o Integerread countinitializedto0
Thestructureofawriterprocess
do{
wait(wrt);
// writing is
performed
signal (wrt) ;
}while(TRUE);
Thestructureofareaderprocess
do{
wait (mutex) ;
readcount++;
if(readcount==1)
wait (wrt) ;
signal(mutex)
//readingisperformedwait(mutex);
readcount
--;
if(readcount==0)
signal (wrt) ;
signal (mutex) ;
}while(TRUE);
3) DiningPhilosophersproblem
59
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
ThestructureofPhilosopheri:
do{
wait(chopstick[i] );
wait( chopStick[(i+1) % 5]);
//eat
signal( chopstick[i]);
signal(chopstick[(i+1)%5]);
// think
}while(TRUE);
60
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Several remedies:
1) Allowatmost4philosopherstobesittingsimultaneouslyatthetable.
2) Allowaphilosopher topickuphisforkonlyif bothforksare available.
3) Anodd philosopher picks up first his left fork and thenright fork. an evenphilosopher picks up
his right fork and then his left fork.
MONITORS
The disadvantage of semaphore is that it is unstructured construct. Wait and signal operationscan
be scattered in a program and hence debugging becomes difficult.
A monitor isanobject that contains boththe data and proceduresneeded to performallocationof a
shared resource. To accomplish resource allocation using monitors, a process must call a
monitor entry routine. Many processes may want to enter the monitor at the same time. butonly
one process at a time is allowed to enter. Data inside a monitor may be either global to all
routines withinthe monitor(or)localto a specific routine. Monitor datais accessible onlywithin the
monitor. There is no way for processes outside the monitor to access monitor data. This is a form
of information hiding.
If a process calls a monitor entry routine while no other processes are executing inside the
monitor, the process acquires a lock on the monitor and enters it. while a process is in the
monitor, other processes may not enter the monitor to acquire the resource. If a process calls a
monitor entry routine while the other monitor is locked the monitor makes the calling process
wait outside the monitor until the lock on the monitor is released. The process that has the
resource will call a monitor entry routine to release the resource. This routine could free the
resource and wait for another requesting process to arrive monitor entry routine calls signal to
allow one of the waiting processes to enter the monitor and acquire the resource. Monitor gives
high priority to waiting processes than to newly arriving ones.
Structure:
monitormonitor-name
{
//sharedvariabledeclarations
procedure P1 (…) { …. }
procedurePn (…) {……}
Initializationcode(…){…}
}
}
Processescancallproceduresp1,p2,p3……Theycannotaccessthelocalvariablesofthe monitor
61
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Schematicview ofaMonitor
MonitorwithConditionVariables
Monitorprovidesconditionvariablesalongwithtwooperationsonthemi.e.waitandsignal.
wait(condition variable)
signal(conditionvariable)
Every condition variable has an associated queue.A process calling wait on a
particular condition variable is placed into the queue associated with that condition
variable.A process calling signal on a particular condition variable causes a process
waiting on that condition variable to be removed from the queue associated with it.
62
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
SolutiontoProducerconsumerproblemusingmonitors:
monitor
producerconsumer
condition
full,empty;
intcount;
procedureinsert(item)
{
if(count==MAX)
wait(full) ;
insert_item(item);
count=count+1;
if(count==1)
signal(empty);
}
procedureremove()
{
if(count==0)
wait(empty);
remove_item(item);
count=count-1;
if(count==MAX-1)
signal(full);
}
procedureproducer()
{
producerconsumer.insert(item);
}
procedureconsumer()
{
producerconsumer.remove();
}
63
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Solutiontodiningphilosophersproblemusingmonitors
A philosopher may pickup his forks only if both of them are available.A
philosopher can eat only if his two neighbours are not eating.some other
philosopher can delay himself when he is hungry.
Diningphilosophers.Take_forks():acquiresforks,whichmayblocktheprocess.
Eat noodles()
Diningphilosophers.put_forks():releasestheforks.
Resumingprocesseswithin amonitor
Ifseveral processesaresuspendedon condionxandx.signal()isexecutedby someprocess. then
howdowedeterminewhichofthesuspendedprocessesshouldberesumednext?
solution is FCFS(process that has been waiting the longest is resumed first).In
many circumstances, such simple technique is not adequate. alternate solution is to
assign priorities and wake up the process with the highest priority.
Resourceallocationusingmonitor
booleaninuse=false;
conditionavailable;
//conditionvariable
64
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
monitorentryvoidget resource()
{
if(inuse) //isresourceinuse
{
wait(available); waituntilavailableissignaled
}
inuse=true; //indicateresourceisnow inuse
}
monitorentryvoidreturnresource()
{
inuse=false; //indicateresource
is not in use signal(available); //signal a
waiting process to proceed
}
65
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
UNIT-III
Memory Management: Basic concept, Logical and Physical address map, Memory allocation:
Contiguous Memory allocation – Fixed and variable partition–Internal and External fragmentation and
Compaction; Paging: Principle ofoperation – Page allocation – Hardware support for paging, protection
and sharing, Disadvantages of paging.
Virtual Memory: Basics of Virtual Memory – Hardware and control structures – Locality of reference,
Page fault , Working Set , Dirty page/Dirty bit – Demand paging, Page Replacement algorithms:
Optimal, First in First Out (FIFO), Second Chance (SC), Not recently used (NRU) and Least Recently
used (LRU).
LogicalAndPhysicalAddresses
An address generated by the CPU is commonly refereed as Logical Address, whereas the
address seen by the memory unit that is one loaded into the memory address register of the
memory is commonly refereed as the Physical Address. The compile time and load time
address binding generates the identical logical and physical addresses. However, the
executiontimeaddressesbindingschemeresults indiffering logicaland physicaladdresses.
66
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Apair ofbaseandlimitregistersdefinethelogicaladdressspace
HARDWAREPROTECTIONWITHBASEANDLIMIT
Executiontime:Bindingdelayeduntilruntimeiftheprocesscanbemovedduringitsexecution
from
one memory segment to another. Need hardware support for address maps (e.g., base and
limitregisters)
MultistepProcessingof aUserProgram
Dynamic Loading
Routine isnotloadeduntilitiscalled
Bettermemory-spaceutilization;unusedroutineisneverloaded
Usefulwhenlargeamountsofcodeareneededto handleinfrequentlyoccurring cases
Nospecialsupport fromtheoperatingsystemisrequiredimplementedthroughprogramdesign
Dynamic Linking
Linkingpostponeduntilexecutiontime
Smallpieceofcode,stub,usedtolocatetheappropriatememory-residentlibraryroutine Stub
replaces itself with the address of the routine, and executes the routine
Operatingsystemneededtocheckifroutineisinprocesses’memoryaddressDynamic linking is
particularly useful for libraries
Systemalsoknownas shared libraries
68
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Swapping
A process can be swapped temporarily out of memory to a backing store, and then brought back into
memoryfor continued executionBacking store –fast disk large enoughto accommodate copiesofall
memory images for all users; must provide direct access to these memory images Roll out, roll in –
swapping variant used for priority-based scheduling algorithms; lower-priorityprocess is swapped out
so higher-priority process can be loaded and executed Major part of swap time is transfer time; total
transfer time is directly proportional to the amount of memory swapped and Modified versions of
swapping are found on many systems (i.e., UNIX, Linux, and Windows)
Systemmaintainsa ready queueofready-to-runprocesseswhich havememoryimageson disk
SchematicView ofSwapping
ContiguousAllocation
Main memoryusuallyinto twopartitions:
Residentoperatingsystem,usuallyheldinlow memorywithinterrupt vector
User processes then held in high memorynRelocation registers used to protect user processes from each
other, and from changing operating-system code and data
Baseregistercontainsvalueofsmallestphysicaladdress
Limit register contains range of logical addresses – each logical address must be less than the limit
register
MMUmapslogicaladdressdynamically
HardwareSupport forRelocationandLimitRegisters
69
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Multiple-partitionallocation
Hole – block of available memory; holes of various size are scattered throughout memory
When a process arrives, it is allocated memory from a hole large enough to accommodate it
Contiguous memory allocation is one of the efficient ways of allocating main memory to
the processes. The memory is divided into two partitions. One for the Operating Systemand
another forthe user processes. Operating Systemis placed in low or high memorydepending
on the interrupt vector placed. In contiguous memory allocation each process is contained ina
single contiguous section of memory.
Memoryprotection
The MMU, that is, MemoryManagement Unit maps the logicaladdress dynamically, that is
atruntime, byaddingthe logicaladdresstothevalue inrelocationregister. Thisadded value is the
physical memory address which is sent to the memory.
The CPU scheduler selects a process for execution and a dispatcher loads the limit and
relocationregisterswithcorrect values.Theadvantageofrelocationregister isthat it provides an
efficient way to allow the Operating System size to change dynamically.
Memoryallocation
There are two methods namely, multiple partition method and a general fixed partition
method. In multiple partition method, the memory is divided into several fixed size
partitions. One process occupies each partition. This scheme is rarely used nowadays.
Degree of multiprogramming depends on the number of partitions. Degree of
multiprogramming is the number of programs that are in the main memory. The CPU is
never left idle in multiprogramming. This was used by IBM OS/360 called MFT. MFT
stands for Multiprogramming with a Fixed number of Tasks.
GeneralizationoffixedpartitionschemeisusedinMVT.MVTstandsforMultiprogramming with a
Variable number of Tasks. The Operating System keeps track of which parts of memory are
available and which is occupied. This is done with the help of a table that is
maintainedbytheOperatingSystem.Initiallythewholeoftheavailablememoryistreated as
70
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
onelarge blockof memorycalled a hole. The programs that enter asystemare maintained in an
input queue. From the hole, blocks of main memory are allocated to the programs in the
input queue. If the hole is large, then itis split into two, and one half is allocated to the
arriving process and the other half is returned. As and when memory is allocated, a set of
holes in scattered. If holes are adjacent, they can be merged.
Now there comes a general dynamic storage allocation problem. The following are the
solutions to the dynamic storage allocation problem.
First fit: The first hole that is large enough is allocated. Searching for the holes
starts from the beginning of the set of holes or from where the previous first fit search
ended.
Best fit: The smallest hole that is big enough to accommodate the incoming
process isallocated. Ifthe available holesare ordered,thenthe searching can bereduced.
Worstfit:Thelargestoftheavailable holesisallocated.
Example:
Firstandbestfitsdecreasetimeandstorageutilization.Firstfitisgenerallyfaster. Fragmentation
Thedisadvantageofcontiguousmemoryallocationisfragmentation.Therearetwo types of
fragmentation, namely, internal fragmentation and External fragmentation.
Internalfragmentation
When memory is free internally, that is inside a process but it cannot be used, we call that
fragment as internal fragment. For example say a hole of size 18464 bytes is available. Letthe
size of the process be 18462. If the holeis allocated to this process, then twobytes areleft
which is not used. These two bytes which cannot be used forms the internal fragmentation.
The worst part of it is that the overhead to maintain these two bytes is more than two bytes.
Externalfragmentation
All the three dynamic storage allocation methods discussed above suffer external
fragmentation. When the total memory space that is got by adding the scattered holes is
sufficienttosatisfyarequestbutitisnotavailablecontiguously,thenthistypeof
71
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
fragmentationiscalledexternalfragmentation.
One more solution to external fragmentation is to have the logical address space and
physical address space to be non contiguous. Paging and Segmentation are popular non
contiguous allocation methods.
Exampleforinternaland externalfragmentation
Paging
A computer can address more memory than the amount physically installed on the system.
This extra memoryis actuallycalled virtualmemoryand it is a sectionofa hard that's set up to
emulate the computer's RAM. Paging technique plays an important role in implementing
virtual memory.
Paging is a memory management technique in which process address space is broken into
blocks ofthe same size called pages (size ispowerof2, between512 bytes and 8192 bytes).
The size of the process is measured in the number of pages.
Similarly, main memory is divided into small fixed-sized blocksof(physical)memory called
frames and the size of a frame is kept the same as that of a page to have optimum utilization
of the main memory and to avoid external fragmentation.
72
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
PagingHardware
AddressTranslation
Pageaddressiscalledlogicaladdress and representedbypagenumberand the offset.
Frameaddressiscalledphysicaladdressand representedbyaframenumberandthe offset.
LogicalAddress=Pagenumber+pageoffset
PhysicalAddress=Framenumber +pageoffset
A data structure called page map table is used to keep track of the relation between a page
of a process to a frame in physical memory.
Paging ModelofLogicalandPhysicalMemory
73
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Paging Example
FreeFrames
When the system allocates a frame to any page, it translates this logical address into a
physical address and create entry into the page table to be used throughout execution of the
program.
When a process is to be executed, its corresponding pages are loaded into any available
memory frames. Suppose you have a program of 8Kb but your memory can accommodate
only5Kbatagivenpointintime,thenthepagingconceptwillcomeintopicture.Whena
74
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
computer runs out of RAM, the operating system(OS) will move idle or unwanted pages of
memory to secondary memory to free up RAM for other processes and brings them back
when needed by the program.
This process continues during the whole execution of the program where the OS keeps
removing idlepages fromthe mainmemoryand write themonto the secondary memoryand
bring them back when required by the program.
ImplementationofPageTable
Pagetableiskeptinmainmemory
Page-tablebaseregister(PTBR)pointstothepagetable
Page-tablelengthregister(PRLR)indicatessizeofthepagetable
Inthisschemeevery data/instructionaccessrequirestwomemory accesses.Oneforthepagetable and one for
the data/instruction.
The two memoryaccess problem can be solved by the use ofa special fast-lookup hardware
cache called associative memory or translation look-aside buffers (TLBs)
PagingHardwareWith TLB
MemoryProtection
Memoryprotection implementedbyassociating protectionbitwitheach frame
Valid-invalidbitattachedtoeachentryinthepagetable:
“valid”indicatesthattheassociatedpageisintheprocess’logicaladdressspace,andisthusalegal page “invalid”
indicates that the page is not in the process’ logical address space
Valid(v) orInvalid(i)BitInAPageTable
75
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
SharedPages
Shared code
One copy of read-only (reentrant) code shared among processes (i.e., texteditors,
compilers,window systems).
Sharedcodemustappear insamelocationinthelogicaladdressspaceofallprocesses
Privatecode anddata
Eachprocess keeps aseparatecopyofthecodeanddata
Thepagesfortheprivatecodeanddatacanappear anywhereinthelogicaladdressspace
SharedPages Example
76
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
StructureofthePageTable
Hierarchical Paging
Hashed Page Tables
InvertedPageTables
HierarchicalPage Tables
Break up the logical address space into multiple page tables Asimpletechnique
is a two-level page table
Two-LevelPage-TableScheme
Two-LevelPagingExample
Alogicaladdress(on32-bitmachinewith1Kpagesize)isdivided into: a page
number consisting of 22 bits
apageoffsetconsistingof10bits
Sincethepagetableispaged,thepagenumberis furtherdividedinto:
a12-bitpagenumbera10-bitpageoffset
Thus, a logical address is as follows:
77
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Address-TranslationScheme
Three-levelPaging Scheme
HashedPageTables
Common inaddressspaces>32bits
Thevirtualpagenumberishashedintoapagetable
This page table contains a chain of elements hashing to the same
location Virtual page numbers are compared in this chain searching fora
match
Ifamatchisfound,thecorrespondingphysicalframeisextracted
HashedPageTable
78
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
InvertedPageTable
Oneentryforeachrealpageof memory
Advantagesand DisadvantagesofPaging
Here isalistofadvantagesanddisadvantagesofpaging−
Pagingreducesexternalfragmentation, butstillsuffersfrominternalfragmentation.
Paging is simple to implement and assumed as an efficient memory management
technique.
Dueto equalsizeofthepagesandframes,swapping becomesveryeasy.
Page table requires extra memory space, somay not be good for a system having
small RAM.
Segmentation
Memory-managementschemethatsupportsuserviewofmemoryAprogramisa collection of
segments
Asegmentisalogicalunitsuchas:
mainprogram
Procedure
functionmethod
object
79
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
localvariables,globalvariables
commonblock
stack
symboltable
arrays
User’sViewofaProgram
SegmentationArchitecture
Logicaladdressconsistsofatwotuple:
o<segment-number, offset>,
Segmenttable–mapstwo-
dimensionalphysicala dpd rehsys es ;iecaac hl tambleemntroyrhays:spacebase–
containsthestartingphysicaladdresswherethesegmentsreside inmemory limit –
specifies the length of the segment
Segment-table base register (STBR) points to the segment table’s location in memory
Segment-tablelengthregister(STLR)indicatesnumberofsegmentsusedbyaprogram; segment
number s is legal if s <STLR
Protection
Witheachentryin segmenttableassociate:
validation bit = 0 Þ illegal segment
read/write/execute privileges
Protectionbitsassociatedwithsegments;codesharingoccursatsegmentlevel
Sincesegmentsvaryinlength,memoryallocationisadynamicstorage-allocation problem A
segmentation example is shown in the following diagram
80
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Segmentation Hardware
ExampleofSegmentation
Segmentationwithpaging
81
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
VirtualMemory
Virtual Memory is a space where large programs can store themselves in form of pages
while their execution and only the required pages or portions of processes are loaded intothe
main memory. This technique is useful as large virtual memory is provided for user
programs when a very small physical memory is there.
Inrealscenarios, mostprocessesneverneedalltheirpagesatonce, for followingreasons:
Error handling code is not needed unless that specific error occurs, some of
whichare quite rare.
Arrays are oftenover-sized for worst-case scenarios, and only a small fraction ofthe
arrays are actually used in practice.
Certain featuresofcertainprogramsare rarelyused.
Fig.Diagramshowingvirtualmemorythatislargerthanphysicalmemory.
Virtual memory is commonly implemented by demand paging. It can also be implemented in a
segmentation system. Demand segmentation can also be used to provide virtual memory.
BenefitsofhavingVirtualMemory:
1. Large programs can be written, as virtual space available is huge compared to
physical memory.
82
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Demand Paging
A demand paging is similar to a paging system with swapping(Fig 5.2). When we want to execute a
process, we swap it into memory. Rather than swapping the entire process into memory.
When a process is to be swapped in, the pager guesses which pages will be used before the process is
swapped out again Instead of swapping in a whole process, the pager brings only those necessary pages
into memory. Thus, it avoidsreading into memory pagesthat will not be used in anyway, decreasing the
swap time and the amount of physical memory needed.
Hardware support is required to distinguish between those pages that are in memory and those pages
that are on the disk using the valid-invalid bit scheme. Where valid and invalid pages can be checked
checking the bit and marking a page will have no effect if the process never attempts toaccess the
pages. While the process executes and accesses pages that are memory resident, execution proceeds
normally.
Fig. Transfer ofapagedmemorytocontinuousdiskspace
Access to a page marked invalid causes a page-fault trap. This trap is the result ofthe operating system's
failure to bring the desired page into memory.
83
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
an invalid entry the rest of the table is empty. In case of pages that are loaded in the
memory, they are marked as valid along with the information about where to find the
swapped out page.
When the process requires any of the page that is not loaded into the memory, a page fault
trap is triggered and following steps are followed,
1. The memoryaddress which isrequested bythe process is first checked, to verifythe
request made by the process.
2. Ifits found tobeinvalid, theprocessisterminated.
3. In case the request by the process is valid, a free frame is located, possibly from a
free-frame list, where the required page will be moved.
4. A new operation is scheduled to move the necessary page from disk to the specified
memory location. ( This will usually block the process on an I/O wait, allowing some other
process to use the CPU in the meantime. )
5. When the I/O operation is complete, the process's page table is updated with thenew
frame number, and the invalid bit is changed tovalid.
Fig.Stepsin handlingapagefault
6. The instruction that caused the page fault must now berestarted fromthebeginning. There
are cases when nopages are loadedinto the memory initially,pages are only loaded
whendemandedbytheprocessbygeneratingpagefaults.ThisiscalledPureDemand
Paging.
The only major issue with Demand Paging is, after a new page is loaded, the process starts
executionfromthebeginning. Itisnot abig issue forsmallprograms,but forlargerprograms it
affects performance drastically.
Whatisdirtybit?
84
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
When a bit is modified by the CPU and not written back to the storage, it is called as a dirty
bit. This bit is present in the memory cache or the virtual storage space.
AdvantagesofDemandPaging:
1. Largevirtualmemory.
2. Moreefficientuse ofmemory.
3. Unconstrainedmultiprogramming.There isno limitondegreeof multiprogramming.
DisadvantagesofDemandPaging:
1. Number oftablesandamountofprocessorover head for handlingpage interruptsaregreaterthanin the
case of the simple paged management techniques.
2. duetothelack ofanexplicitconstraintsonajobsaddressspacesize.
PageReplacement
As studied in Demand Paging, only certain pages of a process are loaded initially into the
memory. Thisallowsusto get more number ofprocesses into the memoryat the same time. but
what happens when a process requests for more pages and no free memory is available to
bring them in. Following steps can be taken to deal with this problem :
1. Put the process inthe wait queue, until any other process finishes its execution
thereby freeing frames.
2. Or,removesomeotherprocesscompletelyfromthememorytofreeframes.
3. Or,findsomepagesthat arenotbeingusedright now,movethemto thediskto getfree frames.
This technique is called Page replacement and is most commonly used. We havesome great
algorithms to carry on page replacement efficiently.
PageReplacementAlgorithm
Page replacement algorithms are the techniques using which an Operating System decides
which memory pages to swap out, write to disk when a page of memory needs to be
allocated. Paging happens whenever a page fault occurs and a free page cannot be used for
allocation purpose accounting to reason that pages are not available or the number of free
pages is lower than required pages.
When the page that was selected for replacement and was paged out, is referenced again, it
has to read in from disk, and this requires for I/O completion. This process determines the
qualityofthe pagereplacement algorithm: the lesserthetime waiting forpage-ins,the better is
the algorithm.
A page replacement algorithm looks at the limited information about accessing the pages
provided by hardware, and tries to select which pages should be replaced to minimize the
total number of page misses, while balancing it with the costs of primary storage and
processor time of the algorithm itself. There are many different page replacementalgorithms.
We evaluate an algorithm by running it on a particular string of memory reference and
computing the number of page faults,
ReferenceString
The string of memory references is called reference string. Reference strings are generated
artificiallyor bytracing a givensystemand recording the addressofeach memoryreference.
85
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
OptimalPagealgorithm
An optimal page-replacement algorithm has the lowest page-fault rate of all
algorithms. An optimal page-replacement algorithm exists, and has been called OPT orMIN.
86
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Replace the pagethat will not beused forthe longest period oftime. Use the time
whena page is to be used.
LeastRecentlyUsed(LRU) algorithm
Pagewhichhasnotbeenusedforthelongesttimeinmainmemoryistheone which will be
selected for replacement.
Easytoimplement, keepalist,replacepagesbylookingbackintotime.
87
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Secondchancepagereplacementalgorithm
SecondChancereplacementpolicyiscalledtheClockreplacementpolicy...
In the Second Chance page replacement policy, the candidate pages for removal are considerin a
round robin matter, and a page that has beenaccessed between consecutive considerationswill not be
replaced.
The page replaced is the one that- considered in a round robin matter - has not been accessed since its
last consideration.
Implementation:
o Adda"secondchance" bittoeachmemoryframe.
o Each time a memory frame is referenced, set the "second chance" bit to ONE (1)- this will give the
frame a second chance...
o AnewpagereadintoamemoryframehasthesecondchancebitsettoZERO(0)
o Whenyouneedtofindapageforremoval,lookinaroundrobinmannerinthememoryframes:
IfthesecondchancebitisONE,resetitssecondchancebit(toZERO)and continue.
IfthesecondchancebitisZERO,replacethepageinthatmemoryframe.
ThefollowingfigureshowsthebehavioroftheprograminpagingusingtheSecondChancepage replacement
policy:
88
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
NRU (Not Recently Used) Page Replacement Algorithm - This algorithm requires that each pagehave
two additionalstatus bits 'R'and 'M'called reference bit and change bit respectively. The reference bit(R)
is automaticallyset to 1whenever the pageis referenced. The change bit (M) is set to 1 whenever the page
is modified. These bits are stored in the PMT and are updated on every memory reference. When a page
fault occurs, the memory manager inspects all the pages and divides them into 4 classes based on R and
M bits.
Class1: (0,0)−neither recentlyusednor modified-thebestpagetoreplace.
Class2:(0,1)−notrecentlyusedbutmodified-thepagewillneedtobewrittenoutbefore replacement.
Class3:(1,0)−recentlyused butclean-probablywillbeused againsoon.
Class4:(1,1)−recentlyusedandmodified-probablywillbeusedagain,andwriteoutwillbe needed before
replacing it.
Thisalgorithmremovesa page atrandomfromthe lowestnumbered non-emptyclass.
89
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
UNIT-IV
File Management: Concept of File, Access methods, File types, File operation, Directory structure,File
System structure, Allocation methods (contiguous, linked, indexed), Free-space management (bit
vector, linked list, grouping), directory implementation (linear list, hash table), efficiency and
performance.
I/OHardware:I/Odevices,Devicecontrollers,Direct memoryaccessPrinciplesofI/O
Software:GoalsofInterrupt handlers,Devicedrivers,Device independent I/O software.
File System
File Concept:
Computers can store information on various storage media such as, magnetic disks,
magnetic tapes, optical disks. The physical storage is converted into a logical storageunit
byoperating system. The logicalstorageunit iscalled FILE. Afile isa collectionof similar
records. A record is a collection of related fields that can be treated as a unit by some
application program. A field is some basic element of data. Any individual field contains
a single value. A data base is collection of related data.
Student name, Marks in sub1, sub2, Fail/Pass is fields. The collection of fields iscalled
a RECORD. RECORD:
LAKSH 93 92 P
Collectionofthese records is calledadatafile.
FILEATTRIBUTES:
1. Name : A file is named for the convenience ofthe user and isreferred by its
name. A name is usually a string of characters.
2. Identifier:Thisuniquetag, usuallyanumber,identifiesthefilewithinthefilesystem.
3. Type: Filesareofsomanytypes.Thetype dependsontheextensionofthefile.
Example:
.exeExecutablefile
.objObjectfile
.srcSourcefile
4. Location : This informationis a pointer to a device and to the location ofthe
file on that device.
90
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
5. Size:Thecurrentsizeofthefile(inbytes,words,blocks).
6. Protection : Access control informationdetermines who cando reading,
writing, executing and so on.
7. Time,Date,Useridentification:Thisinformationmaybekeptfor creation,
last modification,last use.
FILEOPERATIONS
1. Creatingafile:Twostepsareneededtocreateafile.Theyare:
Checkwhetherthespaceisavailableornot.
If the space is available then made an entry for the new file in the
directory. The entry includes name of the file, path of the file,etc…
2. Writing a file : To write afile, we have to know2things. One isname ofthe
file and second is the information or datato bewritten on the file, the systemsearches
the entired given location for the file. If the file is found, the systemmust keep a
writepointer to the location inthe file where the next write isto take place.
3. Readingafile:Toreadafile,firstofallwesearchthedirectories forthe file,if the file is
found, the systemneeds to keep a read pointer to the location in the file where the next
read isto take place. Once the read has taken place, the read pointer is updated.
4. Repositioning within a file : The directory is searched for the appropriate
entry and the current file position pointer is repositioned to a given value. This
operation is also called file seek.
5. Deleting a file : To delete a file, first of all search the directory for named
file, then released the file space and erase the directoryentry.
6. Truncating a file : To truncate a file, remove the file contents only but, the
attributes are as itis.
FILESTRUCTURE
File types also can be used to indicate the internal structure of the file. The operating
system requires that an executable file have a specific structure so that it can determine
where in memory to load the file and what the location of the first instruction is. If OS
supports multiple file structures, the resulting size of OS is large. If the OS defines 5
different file structures, it needs to contain the code to support these file structures. All
OSmust support at least onestructurethatofanexecutable filesothatthesystemisable to load
and run programs.
INTERNALFILESTRUCTURE
In UNIX OS, defines all files to be simply stream of bytes. Each byte is individually
addressable by its offset from the beginning or end of the file. In this case, the logical
record size is 1 byte. The file system automatically packs and unpacks bytes into
physical disk blocks, say 512 bytes per block.
The logical record size, physical block size, packing determines how many logicalrecords
are in each physical block. The packing can be done by the user’s application program or
OS. A file may be considered a sequence of blocks. If each block were 512
bytes,afileof1949byteswouldbeallocated4blocks(2048bytes).Thelast99bytes
92
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
would be wasted. It is called internal fragmentation all file systems suffer from
internalfragmentation, the larger the block size, the greater the internal fragmentation.
FILEACCESS METHODS
Filesstoresinformation,thisinformationmustbeaccessedandreadintocomputer memory.
There are so many ways that the information in the file can be accessed.
1. Sequentialfileaccess:
2. Directaccess:
Direct access is also called relative access. Here records can read/write randomlywithout
any order. The direct access method is based on a disk model of a file, because disks
allow random access to any file block.
Eg :Adiskcontaining of256 blocks,the positionofread/write head isat 95 thblock. The
block is to be read or write is 250 th block. Then we can access the 250 th block directly
without any restrictions.
3. IndexedSequentialFile access
Themaindisadvantageinthesequentialfileis,ittakesmoretimetoaccessaRecord
.Recordsareorganized insequencebasedonakeyfield. Eg :
A file consisting of60000 records,the master index divide the totalrecords into 6 blocks,
each block consisiting of a pointer to secondary index.The secondary index divide the
10,000recordsinto10indexes.Eachindexconsistingofapointertoitsorginal
93
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
DIRECTORYSTRUCTURE
Sometimes the file systemconsisting ofmillions offiles,at that situation it is veryhard to
manage the files. To manage these files grouped these files and load one group into
one partition.
Eachpartitioniscalledadirectory.adirectorystructureprovidesamechanismfor organizing
many files in the file system.
OPERATIONONTHEDIRECTORIES:
1. Searchfora file:Searchadirectorystructureforrequiredfile.
2. createafile : Newfilesneedtobecreated,addedtothedirectory.
directory.
94
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Thevariousdirectorystructures
1. Singleleveldirectory:
E.g :- If user 1 creates a files caled sample and then later user 2to creates a file
called sample,thenuser2’s file willoverwrite user1 file.Thatswhy it is not used in
the multi user system.
2. Twoleveldirectory:
Theprobleminsingleleveldirectoryisdifferentusermaybeaccidentallyuse
95
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
thesamenamefortheirfiles.Toavoidthisproblemeachuserneedaprivate directory,
Root directory is the first level directory.user 1,user2,user3 are user level of
directory A,B,C are files.
3. Treestructured directory:
Two level directory eliminates name conflicts among users but it is notsatisfactory
for users with a large number of files.To avoid this create the sub- directory and
load the same type of files into the sub-directory.so, here each can have as many
directories are needed.
96
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
1. Absoultepath
2. Relativepath
Absoultepath:Beggingwithrootandfollowsapathdowntospecified files giving
directory, directory name on the path.
Relative path:Apathfromcurrentdirectory.
4. Acyclicgraphdirectory
Multiple users are working on a project, the project files can be stored in a
comman sub-directory of the multiple users. This type of directory is called
acyclic graph directory .The common directory will be declared a shared
directory. The graph contain no cycles with shared files, changes made by one
user are made visible to other users.A file maynow have multiple absolute paths.
when shared directory/file isdeleted, all pointers to the directory/ files also to be
removed.
5. Generalgraphdirectory:
Whenweaddlinkstoanexistingtreestructureddirectory,thetree structure is
destroyed, resulting is a simple graph structure.
Advantages:-Traversingiseasy. Easysharingispossible.
97
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Filesystemstructure:
Diskprovides the bulk ofsecondarystorage on which a file system is maintained.
They have 2 characteristics that make them a convenient medium for storing
multiple files.
1. A disk can be rewritten in place. It is possible to read a block from
the disk, modify the block, and write it back intosame place.
2. Adiskcanaccessdirectlyanyblockofinformationitcontains.
ApplicationPrograms
LogicalFileSystem
FileOrganisationModule
BasicFile System
I/OControl
Devices
The File Organization Module knows about files and their logical blocks and
physical blocks. By knowing the type of file allocation used and the location of
the file, file organization module can translate logical block address to physical
addresses for the basic file system to transfer. Each file’s logical blocks are
numbered from 0 to n. so, physical blocks containing the data usually do not
match the logical numbers. A translation is needed to locate each block.
98
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
The Logical File System manages all file system structure except the actual data
(contentsof file). It maintains file structure via file control blocks. A file control
block(inode inUnix filesystems)containsinformationaboutthefile,ownership,
permissions, location of the file contents.
FileSystemImplementation:
Overview:
A Directory Structure (per file system) is used to organize the files. A PER-FILE
FCB contains many details about the file.
Afilehasbeencreated; itcanbeusedfor I/O. First, itmustbeopened. Theopen( ) call
passes a file name to the logical file system. The open( ) system call First
searchesthesystemwideopenfiletableto see ifthe file isalready inuse byanother
process. Ifitis,aperprocessopenfiletable entryiscreatedpointingtotheexisting system
wide open file table. If the file is not alreadyopen, the directorystructure is
searchedforthegivenfilename.Oncethe fileisfound,FCBiscopied intoasystem
99
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
wide open file table in memory. This table not only stores the FCB but also tracks
the number of processes that have the file open.
Next, an entry is made in the per – process open file table, with the pointer to the
entry in the system wide open file table and some other fields. These are the fields
includeapointertothecurrent locationinthe file(forthenext read/writeoperation) and
the access mode in which the file is open. The open () call returns a pointer to the
appropriate entry in the per-process file system table. All file operations are
preformed via this pointer. When a process closes the file the per- process table
entry is removed. And the system wide entry open count is decremented. When all
users that have opened the file close it, any updated metadata is copied back to the
disk base directory structure. System wide open file table entry is removed.
System wide open file table contains a copy of the FCB of each open
file, other information. Per process open file table, contains a pointerto
the appropriate entry in the system wide open file
table,other information.
100
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
AllocationMethods–Contiguous
Anallocationmethodreferstohowdiskblocksare allocatedforfiles:
Contiguousallocation–eachfileoccupiessetofcontiguousblocksoBest performance in
mostcases
o Simple– onlystartinglocation(block #)andlength(numberofblocks)arerequired
o Problems include finding space for file, knowing file size,external
fragmentation, need for compaction off-line (downtime) or on-line
Linked
Linkedallocation–eachfilealinkedlist of
blocks o File ends at nil pointer
o Noexternalfragmentation
o Eachblockcontainspointertonextblock
o Nocompaction,externalfragmentation
o Freespacemanagementsystemcalledwhennewblockneeded
o Improveefficiencybyclusteringblocksintogroupsbut
increasesinternal fragmentation
o Reliabilitycan bea problem
o Locating a block can take many I/Os
and disk seeks FAT (File Allocation
Table) variation
o Beginningofvolumehastable,indexedbyblocknumber
o Muchlikealinkedlist,butfasterondiskandcacheable
101
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
File-AllocationTable
Indexedallocation
o Eachfilehasitsownindexblock(s) ofpointerstoitsdatablocks
102
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Free-SpaceManagement
Filesystemmaintainsfree-spacelisttotrackavailable blocks/clusters
Linked list (free list)
o Cannotgetcontiguousspaceeasily
o Nowasteofspace
o Noneedtotraversetheentirelist
LinkedFreeSpaceList onDisk
In this approach, the free disk blocks are linked together i.e. a free block contains a pointer to the
nextfree block. The block number of the very first disk block is stored at a separate location on disk and
isalso cached in memory.
103
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Grouping
Modify linked list to store address ofnext n-1 free blocks in first free block,
plusa pointer to next block that contains free-block-pointers (like this one).
Anadvantageofthis approach is thatthe addresses ofa groupof free disk blocks can
be found easily
Counting
Becausespace isfrequentlycontiguouslyusedand freed,withcontiguous-allocation
allocation, extents, or clustering.
Keepaddressoffirst freeblockandcountoffollowing freeblocks. Freespace list then
has entries containing addresses and counts.
DirectoryImplementation
1. LinearList
Inthisalgorithm,allthefilesinadirectory aremaintainedassinglylinedlist.Eachfilecontainsthe pointers to the
data blocks which are assigned to it and the next file in the directory.
Characteristics
1. Whena new file iscreated,thentheentire list ischeckedwhetherthenew file name ismatchingto a
existing file name or not. In case, it doesn't exist, the file can be created at the beginning or at the end.
Therefore, searching for a unique name is a big concern because traversing the whole list takes time.
2. The list needs to be traversed in case of every operation (creation, deletion, updating, etc) on the
files therefore the systems become inefficient.
2. HashTable
To overcome the drawbacks of singly linked list implementation of directories, there is an alternative
approach that is hash table. This approach suggests to use hash table along with the linked lists.
A key-value pairfor each file in the directory gets generated and stored in the hash table.The key can be
determined by applying the hash function on the file name while the key points to the corresponding file
stored in the directory.
Now, searching becomes efficient due to the fact that now, entire list will not be searched on every
operating. Only hash table entries are checked using the key and if an entry found then the
corresponding file will be fetched using the value.
104
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
EfficiencyandPerformance
Efficiencydependent on:
● Diskallocationanddirectoryalgorithms
● Typesofdatakept infile’sdirectoryentry
Performance
● Diskcache–separatesectionofmain memoryforfrequentlyused blocks
● free-behindandread-ahead–techniquestooptimizesequentialaccess
● improvePCperformancebydedicating sectionofmemoryasvirtual disk,orRAMdisk
I/OHardware:I/Odevices
Input/output devices are the devices that are responsible for the input/output operations in a
computersystem.
Basicallytherearefollowing twotypesofinput/output devices:
Blockdevices
Characterdevices
BlockDevices
Ablockdevicestoresinformationinblockwithfixed-sizeandown-address.
Itispossibletoread/writeeachandeveryblockindependentlyincaseofblockdevice.
In case of disk, it is always possible to seek another cylinder and then wait for required block to rotate
under head without mattering where the armcurrently is. Therefore, disk is a block addressable device.
Character Devices
Acharacterdeviceaccepts/deliversastreamofcharacterswithout regardingtoanyblockstructure. Character
device isn't addressable.
Characterdevicedoesn'thaveanyseek operation.
There are too many character devices present in a computer systemsuch as printer, mice, rats, network
interfaces etc. These four are the common character devices.
105
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
DeviceControllers
Device drivers are software modules that can be plugged into an OS to handle a particular device.
Operating System takes help from device drivers to handle all I/O devices.
The Device Controller works like an interface between a device and a device driver. I/O units
(Keyboard, mouse, printer, etc.) typically consist of a mechanical component and an electronic
component where electronic component is called the device controller.
There is always a device controller and a device driver for each device to communicate with the
Operating Systems. A device controller may be able to handle multiple devices. As an interface itsmain
task is to convert serial bit streamto block ofbytes, performerror correction as necessary.
Anydeviceconnectedtothecomputer isconnectedbyaplugandsocket, andthesocketisconnectedto
adevicecontroller.Following isa modelforconnectingtheCPU, memory,controllers,andI/Odevices where
CPU and device controllers all use a common bus for communication.
SynchronousvsasynchronousI/O
SynchronousI/O−InthisschemeCPUexecutionwaitswhileI/Oproceeds
AsynchronousI/O−I/OproceedsconcurrentlywithCPUexecution
CommunicationtoI/ODevices
The CPU must have a way to pass information to and from an I/O device. There are three
approachesavailable to communicate with the CPU and Device.
SpecialInstructionI/O
Memory-mappedI/O
Direct memoryaccess(DMA)
SpecialInstructionI/O
This uses CPU instructions that are specifically made for controlling I/O devices. These instructions
typically allow data to be sent to an I/O device or read froman I/O device.
Memory-mappedI/O
When using memory-mapped I/O, the same address space is shared by memory and I/O devices. The
device is connected directly to certain main memory locations so that I/O device can transfer block of
data to/from memory without going through CPU.
106
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
While using memory mapped IO, OS allocates buffer in memory and informs I/O device to use that
buffer to send data to the CPU. I/O device operates asynchronously with CPU, interrupts CPU when
finished.
The advantage to this method is that every instruction which can access memory can be used to
manipulate an I/O device. Memory mapped IO is used for most high-speed I/O devices like disks,
communication interfaces.
DirectMemoryAccess(DMA)
Slowdevices likekeyboardswillgenerateaninterrupttothe mainCPUafter eachbyte istransferred. If afast
devicesuchasadiskgeneratedaninterrupt foreachbyte, theoperatingsystemwouldspend most ofitstime
handlingthese interrupts.So atypicalcomputerusesdirect memoryaccess(DMA) hardware to reduce this
overhead.
Direct Memory Access (DMA) means CPU grants I/O module authority to read from or write to
memory without involvement. DMA module itself controls exchange of data between main memory
and the I/O device. CPU is only involved at the beginning and end of the transfer and interrupted only
after entire block has been transferred.
Direct Memory Access needs a special hardware called DMA controller (DMAC) that manages thedata
transfers and arbitrates access to the system bus. The controllers are programmed with source and
destination pointers (where to read/write the data), counters to track the number of transferred bytes,
and settings, which includes I/O and memorytypes, interrupts and states for the CPU cycles.
107
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
TheoperatingsystemusestheDMAhardwareasfollows−
Step Description
1 Devicedriveris instructedtotransferdiskdatatoabufferaddressX.
2 Devicedrivertheninstructdiskcontrollertotransferdatatobuffer.
3 Diskcontroller startsDMAtransfer.
4 Diskcontroller sendseachbytetoDMAcontroller.
6 WhenCbecomeszero,DMAinterruptsCPUtosignaltransfer completion.
I/Osoftwareisoftenorganizedinthe followinglayers−
User LevelLibraries −Thisprovides simpleinterfacetotheuserprogram toperform inputand output.
For example, stdio is a library provided by C and C++ programming languages.
KernelLevelModules−Thisprovidesdevicedrivertointeractwiththedevicecontrollerand device
independent I/O modules used by the device drivers.
Hardware− This layerincludes actual hardware and hardware controller which interact with
thedevice drivers and makes hardware alive.
A key concept in the design of I/O software is that it should be device independent where it should be
possible to write programs that can access any I/O device without having to specify the device in
advance. For example, aprogramthat readsafile as input shouldbeableto readafileona floppydisk, on a
hard disk, or on a CD-ROM, without having to modifythe program for each different device.
108
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
DeviceDrivers
Device drivers are software modules that can be plugged into an OS to handle a particular device.
Operating System takes help from device drivers to handle all I/O devices. Device drivers encapsulate
device-dependent code and implement a standard interface in such a way that code contains device-
specific register reads/writes. Device driver, is generally written by the device's manufacturer and
delivered along with the device on a CD-ROM.
Adevicedriverperformsthefollowingjobs−
Toacceptrequestfromthedeviceindependentsoftwareabovetoit.
Interactwiththedevicecontrollertotakeand giveI/O andperformrequired errorhandling
Makingsurethattherequestisexecutedsuccessfully
How a device driver handles a request is as follows: Suppose a request comes to read a block N. Ifthe
driver is idle at the time a request arrives, it starts carrying out the request immediately. Otherwise, if
the driver is already busy with some other request, it places the new request in the queue of pending
requests.
Interrupthandlers
An interrupt handler, also known as an interrupt service routine or ISR, is a piece of software or more
specifically a callback functions in an operating system or more specifically in a device driver, whose
execution is triggered by the reception of an interrupt.
When the interrupt happens, the interrupt procedure does whatever it has to in order to handle the
interrupt, updates data structures and wakes up process that was waiting for an interrupt to happen.
Theinterruptmechanismacceptsanaddress─anumberthatselectsaspecificinterrupthandling
routine/function from a small set. In mostarchitecture, this address is an offset stored in a table called
the interrupt vector table. This vector contains the memoryaddresses of specialized interrupt handlers.
Device-IndependentI/OSoftware
The basic functionofthe device-independent software is to performthe I/O functions that are common
toalldevicesandtoprovideauniforminterfacetotheuser-levelsoftware.Thoughitisdifficultto
109
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
110
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
UNIT-V
Deadlocks: Definition, Necessary and sufficient conditions for Deadlock, Deadlock Prevention,
Deadlock Avoidance: Banker’s algorithm, Deadlock detection and Recovery.
DiskManagement:Diskstructure,Diskscheduling-FCFS,SSTF,SCAN,C-SCAN,Disk reliability, Disk
formatting, Boot-block, Bad blocks.
DEADLOCKS
Systemmodel:
A system consists of a finite number of resources to be distributed among a number of competing
processes. The resources are partitioned into several types, each consisting of some number of
identical instances. Memoryspace, CPU cycles, files, I/O devices are examples of resource types.
If a system has 2 CPUs, then the resource type CPU has 2 instances.
A process must request a resource before using it and must release the resource after using it. A
process may request as many resources as it requires to carry out its task. The number ofresources
as it requires to carry out its task. The number of resources requested may not exceed the total
number of resources available in the system. A process cannot request 3 printers if the system has
only two.
Aprocess mayutilizearesourceinthefollowingsequence:
(I) REQUEST: The process requests the resource. If the request cannotbe granted immediately
(ifthe resource isbeing used by another process), then therequesting process must wait until it can
acquire theresource.
(II) USE: The process can operateonthe resource.ifthe resource isa printer, the process can
print on theprinter.
(III) RELEASE:Theprocessreleasetheresource.
For each use of a kernel managed by a process the operating system checks that the process has
requested and has been allocated the resource. A system table records whether each resource is
free (or) allocated. For each resource that is allocated, the table also records the process to which
it is allocated. Ifa process requests a resourcethat is currentlyallocated to another process, it can
be added to a queue of processes waiting for this resource.
To illustrateadeadlocked state, consider a systemwith3 CDRWdrives. Eachof3 processes holds
oneofthese CDRWdrives. Ifeachprocess nowrequests another drive, the 3 processes will be ina
deadlocked state. Each is waiting for the event “CDRW is released” which can be caused only by
oneoftheotherwaitingprocesses. This example illustratesadeadlock involvingthe sameresource type.
Deadlocks may also involve different resource types. Consider a system with one printer and one
DVD drive. The process Piis holding the DVD and process Pjis holding the printer. IfPirequests
the printer and Pj requests the DVD drive, a deadlock occurs.
DEADLOCKCHARACTERIZATION:
In a deadlock, processes never finish executing, and system resources are tied up, preventing other
jobs from starting.
111
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
NECESSARYCONDITIONS:
Adeadlocksituationcanariseifthefollowing4conditions holdsimultaneouslyina system:
1. MUTUAL EXCLUSION: Only one process at a time can use the resource. If anotherprocess
requests that resource, the requesting process must be delayed until theresource has
beenreleased.
2. HOLDANDWAIT:Aprocessmustbeholdingatleastoneresourceandwaitingto acquire
additional resources that are currently being held by otherprocesses.
3. NOPREEMPTION:Resourcescannotbepreempted.Aresourcecanbereleasedonly voluntarily
by the process holding it, after that process has completed itstask.
4. CIRCULAR WAIT: A set {P0,P1,…..Pn} of waiting processes must exist such that P0 is
waiting for resource heldbyP1, P1 iswaiting fora resource heldbyP2,……,Pn-1 iswaiting for a
resource held by Pn and Pn is waiting for a resource heldbyP0.
RESOURCEALLOCATIONGRAPH
Deadlocks can be described more precisely in terms of a directed graph called a
systemresourceallocation graph.This graph consists of a set of vertices V and a set of edges E. the
set of vertices V is partitioned into 2 different types of nodes:
P = {P1, P2….Pn}, the set consisting of all the active processes in the system. R= {R1,
R2….Rm}, the set consisting of all resource types in the system.
A directed edge fromprocess Pito resource type Rj is denoted byPi->Rj. It signifies that process Pi
has requested an instance of resource type Rj and is currently waiting for that resource.
A directed edge from resource type Rj to process Pi is denoted by Rj ->Pi, it signifies that
an instance of resource type Rj has been allocated to process Pi.
A directed edge Pi ->Rj is called a requested edge. A directed edge
Rj->Piis called an assignmentedge.
Werepresent each process Pias a circle, each resource type R j as a rectangle. Since resource type
Rj may have more than one instance. We represent each such instance as a dot within the
rectangle. Arequest edgepoints to onlythe rectangle R j. Anassignment edge must also designate
one of the dots in therectangle.
Whenprocess Pirequests aninstance ofresourcetype Rj, a request edgeis inserted inthe resource
allocation graph. When this request can be fulfilled, the request edge is instantaneously
transformed to an assignment edge. When the process no longer needs access to the resource, it
releases the resource, as a result, the assignment edge is deleted.
ThesetsP,R,E:
P={P1, P2, P3}
R={R1,R2,R3,R4}
E={P1->R1,P2 ->R3,R1 ->P2,R2->P2,R2 ->P1,R3->P3}
112
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
OneinstanceofresourcetypeR1
Two instances of resource type R2One
instance of resource type R3 Three
instances of resource type R4
PROCESS STATES:
Process P1 is holding an instance ofresourcetype R2 and is waiting for an instance ofresource
type R1.
ProcessP2isholdinganinstanceofR1andaninstanceofR2andiswaitingforinstanceofR3. Process P3 is
holding an instance of R3.
Ifthe graph contains no cycles, then no process in the system is deadlocked. If
the graph does contain a cycle, then a deadlock may exist.
SupposethatprocessP3requestsaninstanceofresourcetypeR2.Sincenoresourceinstanceis currently
available, a request edge P3 ->R2 is added to the graph.
2 cycles:
P1->R1->P2->R3->P3->R2->P1 P2 -
>R3 ->P3 ->R2 ->P2
113
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
114
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Circular Wait – impose a totalordering of all resource types, and require that
each process requests resources in an increasing order of enumeration
Deadlock Avoidance
Requiresthatthesystemhassomeadditionalaprioriinformationavailable
Simplest andmostusefulmodelrequiresthateachprocessdeclarethemaximumnumber
ofresourcesofeachtype thatitmay need
Thedeadlock-avoidancealgorithmdynamicallyexaminestheresource-allocation
state to ensure that there can never bea circular-waitcondition
Resource-allocation state is defined by the number of available and allocated
resources, and the maximum demands of the processes .
SafeState
When a process requests an available resource, system must decide if
immediate allocation leaves the system in a safe state
System is in safe state if there exists a sequence <P1, P2, …, Pn> of ALL
the processes in the systems such that for each Pi, the resources that Pican
still request can be satisfied by currently available resources + resources
held by all the Pj, with j <I
Thatis:
o IfPiresource needsarenotimmediatelyavailable,thenPicanwaituntilall
Pjhavefinished
o When Pj is finished, Pi can obtain needed resources, execute,
return allocated resources, and terminate
o WhenPiterminates,Pi+1canobtainitsneeded
resources, and so o n If a system is in safe state no deadlocks
If a system is in unsa fe state possibility of deadlock
Avoidance ensurethatasystemwillneverenteranunsafestate
Avoidance algorithms
Singleinstanceofaresourcetype
o Usearesource-allocationgraphMultipleinstancesofaresourcetype
o Usethebanker’salgorithm
Resource-AllocationGraphScheme
Claim edgePiÆRj indicated thatprocessPjmayrequestresource Rj; represented
by a dashed line
Claim edge converts to request edge when a process requests a resource
Request edge converted to an assignment edge when the resource is
allocatedtotheprocessWhenaresourceisreleasedbyaprocess,assignmentedge
reconverts to a claim edge Resources must be claimed a priori in the system
115
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
UnsafeStateInResource-AllocationGraph
Banker’sAlgorithm
Multipleinstances
Eachprocessmustaprioriclaimmaximum use
Whenaprocessrequestsaresourceitmayhaveto wait
When a process gets all its resources it must return them in a finite
amount of time Let n = number of processes, and m = number of
resources types.
Available:Vectoroflengthm.Ifavailable [j]=k,there arek instancesofresource type
Rjavailable
Max:nx mmatrix.IfMax [i,j]= k,thenprocess Pimayrequestatmostk
instancesofresourcetypeRj
Allocation:nxmmatrix.IfAllocation[i,j]=kthenPiiscurrentlyallocated k instances
of Rj
Need:nxmmatrix.IfNeed[i,j]=k,thenPimayneedkmoreinstancesof
Rjtocompleteitstask
Need[i,j] =Max[i,j]–Allocation[i,j]
SafetyAlgorithm
1. LetWorkandFinishbevectorsoflengthmandn, respectively.
Initialize: Work = Available
116
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Finish[i]=falsefori=0,1,…,n-1
2. Findanisuchthatboth:
(a) Finish[i]=false
(b) Needi=Work
Ifnosuchiexists,gotostep4
3. Work = Work
+AllocationiFinish[i] = true
gotostep2
4. IfFinish[i] ==trueforalli,thenthesystemisinasafestate
Resource-RequestAlgorithmforProcessPi
Request=requestvectorforprocessPi.IfRequesti[j]=kthen processPiwants
kinstancesofresourcetypeRj
1. IfRequesti£Needigotostep2.Otherwise,raiseerrorcondition, since
processhas exceeded its maximum claim
2. If Requesti£Available,go tostep 3. Otherwise Pimust wait,since
resources are not available
3. PretendtoallocaterequestedresourcestoPibymodifying thestateasfollows:
Available = Available – Request;
Allocationi= Allocationi + Requesti;
Needi=Needi – Requesti;
o Ifsafe theresourcesareallocatedtoPi
o If unsafe Pimustwait,andtheoldresource-allocationstateisrestored
ExampleofBanker’sAlgorithm(REFERCLASSNOTES)
consider5processesP0throughP4;3resource types:
A (10instances),B (5instances),and C(7instances)
SnapshotattimeT0:
Allocation Max Available
ABC ABC ABC
P0010 753 332
P1200 322
P2302 902
P3211 222
P4002 433
ΣThecontent ofthematrixNeedisdefined tobeMax
–AllocationNeed A
BC
Thesystemisinasafestatesincethesequence<P1,P3,P4,P2,P0>
117
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
satisfiessafetycriteria
P1Request (1,0,2)
CheckthatRequest£Available(thatis,(1,0,2)£ (3,3,2) true
Resource-AllocationGraph Correspondingwait-forgraph
118
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
SeveralInstancesofaResourceType
Available: A vector of length m indicates the number ofavailable resources
of each type. Allocation: An n x m matrix defines the number of resources
of each type currently allocated to each process.
Request:Annxmmatrix indicatesthecurrentrequest ofeachprocess.
IfRequest [i][j]= k,thenprocessPiisrequestingkmoreinstancesofresourcetype.Rj.
DetectionAlgorithm
LetWorkand Finish bevectorsoflength mandn,respectivelyInitialize:
(a) Work=Available
(b) For i = 1,2, …, n, if Allocationiπ 0, then
Finish[i] = false; otherwise, Finish[i] = true
2. Findanindexisuchthatboth:
(a) Finish[i]==false
(b) Requesti£Work
Ifnosuch iexists,gotostep4
3. Work = Work +
AllocationiFinish[i] = true
gotostep2
4. IfFinish[i]==false,for somei, 1£i£n,thenthesystemisindeadlockstate. Moreover,if
Finish[i] ==false,thenPiis deadlocked
RecoveryfromDeadlock:
ProcessTermination
Abortalldeadlocked processes
Abort one process at a time until the deadlock cycle
is eliminated In which order should we choose to
abort?
o Priorityoftheprocess
o Howlongprocesshascomputed, andhowmuchlongertocompletion
o Resourcestheprocesshasused
o Resourcesprocessneedstocomplete
o Howmanyprocesseswill needtobeterminated
o Isprocessinteractiveorbatch?
ResourcePreemption
Selectingavictim–minimizecost
Rollback – return to some safe state, restart process for that
stateStarvation–sameprocessmayalwaysbepickedasvictim, include number
of rollback in cost factor
119
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Secondarystoragestructure:
Overviewofmassstoragestructure
Magnetic disks: Magnetic disks provide the bulk of secondary storage for modern
computer system. Eachdisk platterhasa flat circular shape, like a CD. Commonplatter
diameters range from1.8 to 5.25 inches. The two surfaces of a platter are covered witha
magnetic material. We store information by it magnetically on the platters.
Movinghead diskmechanism
Aread /write head files just above eachsurface ofeveryplatter.The headsare attached to
a disk arm that moves all the heads as a unit. The surface of a platter is logically
divided into circular tracks, which are sub divided into sectors. The set of tracks thatare
at one arm position makes up a cylinder. There may be thousands of concentric
cylinders in a disk drive, and each track may contain hundreds of sectors.
When the disk in use, a driver motor spins it at high speed. Most drivers rotate 60to
200 times per second. Disk speed has 2 parts. The transfer rate is the at which data
flow betweenthe drive and the computer. To read/write, the head must be positioned
at the desired track and at the beginning ofthe desired sector on the track, the time it
takes to position the head at the desired track is called seek time. Once the track is
selected thedisk controller waitsuntildesired sectorreachestheread/write head. The
time it takes to reach the desired sector is called latency time or rotational dealy-
access time. When the desired sector reached the read/write head, then the real data
transferring starts.
120
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
A disk can be removable. Removable magnetic disks consist of one platter, held in a
plastic case to prevent damage while not in the disk drive. Floppy disks are in
expensive removable magnetic disksthat have a soft plastic case containing a flexible
platter. The storage capacity of a floppy disk is 1.44MB.
A disk drive is attached to a computer by a set of wires called an I/O bus. The data
transfer on a bus are carried out by special processors called controllers. The host
controller is the controller at the computer end of the bus. A disk controller is builtinto
each disk drive . to perform i/o operation, the host controller operates the disk drive
hardware to carry out the command. Disk controllers have built in cache, data transfer
atthe disk drive happens b/w cache and disk surface. Datatransfer atthe host, occurs
b/w cache and host controller.
Disk Structure: most disks drives are addressed as large one dimensional arrays of
logical blocks. The one dimensional array of logical blocks is mapped onto thesectors
of the disk sequentially. sector 0 is the fist sector of the first track on the outermost
cylinder. The mapping proceeds in order through that track, then through the rest of
the tracks in that cylinder, and then through the rest of the cylinder from outermost to
inner most. As we move fromouterzones to inner zones, the number of sectors per
track decreases. Tracks in outermost zone hold 40% more sectors then innermost
zone. The number of sectors per track has been increasing as disks
technologyimproves, and theouterzoneofa disk usuallyhas severalhundred sectors per
track. Similarly, the number ofcylinders per disk has been increasing; large disks
have tens of thousands of cylinders.
Diskattachment
Computeraccessdiskstorageis2ways.
1. ViaI/Oports(hostattachedstorage)
2. Viaaremotehostinadistributedfilesystem(networkattachedstorage).
1 .Host attached storage : host attached storage are accessed via localI/O ports. The
desktop pc uses an I/O bus architecture called IDE. This architecture supports
maximum of 2 drives per I/O bus. High end work station and servers use SCSI and
FC.
121
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
SCSI is an bus architecture which have large number of conductor’s in a ribbon cable
(50 or 68) scsi protocol supports maximum of 16 drives an bus. Host consists of a
controller card (SCSI Initiator) and upto 15 storage device called SCSI targets.
Fc(fiber channel) is the high speed serial architecture. It operates mostly on optical
fiber (or) over 4 conductor copper cable. It has 2 variants. One is a large switched
fabric having a 24-bit address space. The other is an (FC-AL) arbitrated loop that
can address 126 devices.
Awidevarietyofstoragedevicesaresuitableforuseashostattached.(harddisk,cd
,dvd,tapedevices)
2. Network-attachedstorage:A(NAS)isaccessedremotelyoveradatanetwork
.clients access network attached storage via remote procedure calls. The rpc are
carried via tcp/udp over an ip network-usually the same LAN that carries all data
traffic to theclients.
NAS LAN/WAN CLIENT
NAS CLIENT
NAS provides a convenient way for all the computers on a LAN to share a pool of
storage with the same ease of naming and access enjoyed with local host attached
storage .but it tends to be less efficient and have lower performancethan direct attached
storage.
A storage area network(SAN) is a private network using storage protocols connecting servers and
storage units. The power of a SAN is its flexibility. multiple hosts and multiple storage arrays can
attach to the same SAN, and storage can be dynamically allocated to hosts. SANs make it possible
for clusters of server to share the same storage
122
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
DiskScheduling Algorithms
Disk scheduling algorithms are used to allocate the services to the I/O requests on the
disk . Since seeking disk requests is time consuming, disk scheduling algorithms tryto
minimize this latency. If desired disk drive or controller is available, request is served
immediately. If busy, new request for service will be placed in the queue of pending
requests. When one request is completed, the Operating System has to choose which
pending request to service next. The OS relies on the type of algorithm it needs when
dealing and choosing what particular disk request is to be processed next. Theobjective
of using these algorithms is keeping Head movements to the amount as possible. The
less the head to move, the faster the seek time will be. To see how it works,thedifferent
disk schedulingalgorithmswillbediscussedandexamplesarealso provided for better
understanding on these different algorithms.
1. FirstComeFirstServe(FCFS)
It is the simplest form of disk scheduling algorithms. The I/O requests are served or
processes according to their arrival. The request arrives first will be accessed and
served first. Since it follows the order of arrival, it causes the wild swings from the
innermost to the outermost tracks of the disk and vice versa . The farther the location
of the request being serviced by the read/write head from its current location, the
higher the seek time will be.
Consider that the read/write head is positioned at location 50. Prior to this track location
199 was serviced. Show the total head movement for a 200 track disk (0-199).
Solution:
123
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
TotalHeadMovementComputation:(THM)=
(180-50)+ (180-34)+(119-34)+(119-11)+(123-11)+(123-62)+(64-62)=
Assuming a seek rate of5 milliseconds is given, we compute for the seek time
using the formula: Seek Time = THM * Seek rate
=644*5ms
SeekTime=3,220 ms.
2. ShortestSeek TimeFirst(SSTF):
This algorithm is based on the idea that that he R/W head should proceed to the track
that is closest to its current position . The process would continue until all the track
requests are taken care of. Using the same sets of example in FCFS the solution are as
follows:
Solution:
14+53+169(THM)=236tracks
=236*5ms
SeekTime=1,180 ms
Inthisalgorithm, request isservicedaccordingto thenext shortest distance. Startingat 50,
the next shortest distance would be 62 instead of34 since it is only12 tracks away from
62 and 16 tracks away from 34 . The process would continue up to the last track
request. Thereareatotalof236tracksandaseektimeof1,180ms,whichseemstobe
124
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
a better service compared with FCFS which there is a chance that starvation3 would
take place. The reason for this is ifthere were lotsofrequests closed to eachother, the
other requests will never be handled since the distance will always be greater.
3. SCANSchedulingAlgorithm
This algorithm is performed by moving the R/W head back-and-forth to the innermost
and outermost track. As it scans the tracks from end to end, it process all the requests
found in the direction it is headed. This will ensure that all track requests, whether in
the outermost, middle or innermost location, will be traversed by the access arm
therebyfindingalltherequests.Thisisalso knownastheElevatoralgorithm.Usingthe same
sets of example in FCFS the solution are as follows:
Solution:
This algorithm works like an elevator does. In the algorithm example, it scans down
towards the nearest end and when it reached the bottom it scans up servicing the
requests that it did not get going down. If a request comes in after it has been
scanned, it willnot beserviceduntiltheprocesscomesbackdownormoves backup. This
process moved a total of 230 tracks and a seek time of 1,150. This is optimal than the
previous algorithm.
4 .CircularSCAN (C-SCAN)Algorithm
This algorithm is a modified version of the SCAN algorithm. C-SCAN sweeps the
diskfromend-to-end,butassoonitreachesoneoftheendtracksitthenmovesto the
125
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
other end track without servicing any requesting location. As soon as it reaches the
other end track it thenstartsservicing and grantsrequestsheaded to itsdirection. This
algorithm improves the unfair situation of the end tracks against the middle tracks.
UsingthesamesetsofexampleinFCFSthesolutionareas
follows:
Notice that in this example an alpha3 symbol (α) was used to represent the dash line.
This return sweeps is sometimes given a numerical value which is included in the
computation of the THM . As analogy, this can be compared with the carriage return
lever of a typewriter. Once it is pulled to the right most direction, it resets the typing
point to the leftmost margin of the paper . A typist is not supposed to type during the
movement ofthe carriage return lever because the line spacing is being adjusted . The
frequent use ofthis lever consumes time, same with the time consumed when the R/W
head is reset to its starting position.
Assumethatinthisexample,αhasavalueof20ms,thecomputation would be as
follows: (THM) = (50-0) + (199-62) + α
=50+137+20(THM)
=207tracks
The computationofthe seek time excluded the alpha value because it is not anactual
seek or search of a disk request but a reset of the access armto the starting position .
126
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Diskmanagement
Boot block:-
When a computer is powered up -it must have an initial program to run. This initial
bootstrap program initializes all aspects of the system, from CPU registers to device
controllers, and the contents ofmain memory, and thenstartsthe OS. To do its job, the
bootstrap program finds the OS kernel on disk, loads that kernel into memory and
jumps to an initial address to begin the OS execution. For most computers, thebootstrap
is stored in ROM. This location is convenient, because ROM needs no initialization and
is at a fixed location that the CPU can start executing when powered up, ROM is read
only, it cannot be infected by computer virus. The problem is that changing this
bootstrap code requires changing the ROM hardware chips. For this reason, most
systems store atiny bootstrap loaderprograminthe boot ROM whose job isto bring ina
fullbootstrapprogramfromdisk. The fullbootstrapprogramisstoredin
thebootblocksatafixedlocationonthedisk.Adiskthathasabootpartitioniscalled
127
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
a boot disk or system disk. The code in the boot ROM instructs the disk controller to
read the boot blocks into memory and then starts executing that code.
Bad blocks:-
A Block in the disk damaged due to the manufacturing defect or virus or physical
damage. This defector block is called Bad block. MS-DOS format command, scans the
diskto find bad blocks. Ifformat findsa bad block, it tellsthe allocationmethods notto use
that block. Chkdsk programsearch for the bad blocks and to lock themaway. Data that
resided on the bad blocks usually are lost. The OS tries to read logical block 87.
ThecontrollercalculatesECCand findsthatthesectorisbad.Itreportsthisfindingto the OS.
The next time the system is rebooted, a special command is run to tell the SCS
controller to replace the bad sector
withaspare.
After that, whenever the systemrequests logical block 87, the request is translated into
the replacement sectors address by the controller.
Sectorslipping:-
Logical block 17 becomes defective and the first available spare follows sector 202.
Then, sector slipping remaps all the sectors from 17 to 202, sector 202 is copied into
the spare, then sector 201 to 202, 200 to 201 and so on. Until sector 18 is copied into
sector 19. Slipping the sectors in this way frees up the space of sector 18.
Swapspacemanagement:-
System that implements swapping may use swap space to hold an entire process
image, including the code and data segments. Paging systems maysimplystore pages
that have been pushed out of main memory. Notethat it may be safer to overestimate
thanto underestimatetheamount ofswap spacerequired, because ifasystemrunsout of
swap space it may be forced to abort processes. Overestimation wastes disk space that
could otherwise be used for files, but it does no other harm. Some systems
recommend the amount to be set aside for swap space. Linux has suggested setting
swap space to double the amount of physical memory. Some OS allow the use of
multiple swap spaces. These swap spaces as put on separate disks so that load placed
on the (I/O) system by paging and swapping can be spread over the systems I/O
devices.
128
OPERATINGSYSTEMSNOTES IIYEAR/I SEM MRCET
Swapspacelocation:-
A Swap space can reside in one of two places. It can be carved out of normal file
system(or) it canbe ina separatediskpartition. Iftheswapspace issimplya large file,
withinthe file system, normalfilesystemmethodsusedto createit,name it,allocateits
space. It is easy to implement but inefficient. External fragmentation can greatly
increase swapping times by forcing multiple seeks during reading/writing of a process
image. Wecanimproveperformance bycachingthe block locationinformationin main
memory and by using special tools to allocate physically contiguous blocks for the
swap file. Alternatively, swap space can be created in a separate raw partition. a
separate swap space storage manager is used to allocate
/deal locate the blocks from the raw partition. this manager uses algorithms optimized
for speed rather than storage efficiency. Internal fragmentation may increase but it is
acceptable because life of data in swap space is shorter than files. since swap space is
reinitialized at boot time, any fragmentation is short lived. the raw partition approach
creates a fixed amount ofswap space during disk partitioning adding more swap space
requires either repartitioning the disk (or) adding another swap space elsewhere.
129