0% found this document useful (0 votes)
11 views47 pages

Unit-7 I - o Management and Scheduling

Uploaded by

ankita shah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views47 pages

Unit-7 I - o Management and Scheduling

Uploaded by

ankita shah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Operating System (OS)

GTU # 3140702

Unit-7
I/O
Management
& Disk
Scheduling
I/O devices
🞂 External devices that engage in I/O with computer systems can be
grouped into 3 categories:
1. Human readable, suitable for communicating with the computer user.
Examples: printers, terminals, video display, keyboard, mouse
2. Machine readable, suitable for communicating with electronic equipment.
Examples: disk drives, USB keys, sensors, controllers
3. Communication, suitable for communicating with remote devices.
Examples: modems, digital line drivers
🞂 Devices differ in a number of areas:
1. Data Rate: there may be differences of magnitude between the data transfer rates
2. Application: the use to which a device is put has an influence on the software
3. Complexity of Control: the effect on the operating system is filtered by the
complexity of the I/O module that controls the device
4. Unit of Transfer: data may be transferred as a stream of bytes or characters or in
larger blocks
5. Data Representation: different data encoding schemes are used by different
devices
6. Error Conditions: the nature of errors, the way in which they are reported, their
Organization of I/O
functions
Organization of I/O functions
🞂 Three techniques for performing I/O are:
1. Programmed I/O, the processor issues an I/O command on behalf of a
process to an I/O module; that process then busy waits for the operation to
be completed before proceeding.
2. Interrupt-driven I/O, the processor issues an I/O command on behalf of a
process
▪ if non-blocking – processor continues to execute instructions from the process that
issued the I/O command
▪ if blocking – the next instruction the processor executes is from the OS, which will
put the current process in a blocked state and schedule another process
3. Direct Memory Access (DMA), a DMA module controls the exchange of data
between main memory and an I/O module
Evolution of I/O functions
• Processor directly controls a peripheral device
1

• A controller or I/O module is added


2

• Same configuration as step 2, but now interrupts are employed


3

• The I/O module is given direct control of memory via DMA


4

• The I/O module is enhanced to become a separate processor, with a specialized


5 instruction set tailored for I/O

• The I/O module has a local memory of its own and is, in fact, a computer in its own
6 right
Direct Memory Access
🞂 Feature of computer systems that allows certain hardware
subsystems to access main memory (RAM), independent of the
central processing unit (CPU).
🞂 Without DMA, when the CPU is using programmed input/output, it is
typically fully occupied for the entire duration of the read or write
operation, and is thus unavailable to perform other work.
🞂 With DMA, the CPU first initiates the transfer, then it does other
operations while the transfer is in progress, and it finally receives
an interrupt from the DMA controller when the operation is done.
🞂 This feature is useful when the CPU needs to perform useful work
while waiting for a relatively slow I/O data transfer.
🞂 Many hardware systems such as disk drive controllers, graphics
cards, network cards and sound cards use DMA.
Direct Memory Access
🞂 DMA is particularly useful on devices like
disks where many bytes of information can
be transferred in single I/O operations .the
CPU is notified only after the entire block of
data has been transferred
Disk read-write without a DMA
🞂 The disk controller reads the block from Driv
the drive serially, bit by bit, until the e
entire block is in the controller’s buffer.
Buffe
🞂 Next, it computes the checksum to verify r
that no read errors have occurred.
🞂 Then the controller causes an interrupt,
so that OS can read the block from Disk Main
controller’s buffer (a byte or a word at a CP Controll Memory
time) by executing a loop. U er

🞂 After reading every single part of the


block from controller device register, the Bus
operating system will store them into
the main memory.
Disk read-write using DMA
1. CPU Driv
progra e
ms DMA
Buffe
controll
r
er

DMA Disk Main


CP Controll Controll Memory
U er er
Bus

🞂 Step 1: First the CPU programs the DMA controller by setting its registers
so it knows what to transfer where.
🞂 It also issues a command to the disk controller telling it to read data from
the disk into its internal buffer and verify the checksum.
🞂 When valid data are in the disk controller’s buffer, DMA can begin.
Disk read-write using DMA
1. CPU Driv
progra e
ms DMA
Buffe
controll
r
er
2. DMA
request
DMA s Disk Main
CP Controll transfer Controll Memory
U er to er
memory
Bus

🞂 Step 2: The DMA controller initiates the transfer by issuing a read request
over the bus to the disk controller.
🞂 This read request looks like any other read request, and the disk controller
does not know (or care) whether it came from the CPU or from a DMA
controller.
Disk read-write using DMA
1. CPU Driv
progra e
ms DMA
Buffe
controll
r
er
2. DMA
request
DMA s Disk 3. Data Main
CP Controll transfer Controll transferr Memory
U er to er ed
memory
Bus

🞂 Typically, the memory address to write to is on the bus’ address lines, so


when the disk controller fetches the next word from its internal buffer, it
knows where to write it.
🞂 Step 3: The write to memory is another standard bus cycle.
Disk read-write using DMA
1. CPU Driv
progra e
ms DMA
Buffe
controll 4.
r
er ACK
2. DMA
request
DMA s Disk 3. Data Main
CP Controll transfer Controll transferr Memory
U er to er ed
memory
Bus

🞂 Step 4: When the write is complete, the disk controller sends an


acknowledgement signal to the DMA controller, also over the bus.
🞂 The DMA controller then increments the memory address to use and
decrements the byte count.
🞂 If the byte count is still greater than 0, steps 2 to 4 are repeated until it
reaches 0.
Disk read-write using DMA
1. CPU Driv
progra e
ms DMA
Buffe
controll 4.
r
er ACK
2. DMA
request
DMA s Disk 3. Data Main
CP Controll transfer Controll transferr Memory
U er to er ed
memory
Bus

🞂 At that time, the DMA controller interrupts the CPU to let it know that the
transfer is now complete.
🞂 When the OS starts up, it does not have to copy the disk block to memory;
it is already there.
Operating System Design issues
🞂 Design objectives: Two objectives are paramount in designing the I/O
facility.
1. Efficiency
▪ Efficiency is important because I/O operations often form a bottleneck in a computing
system.
▪ Most I/O devices are extremely slow compared with main memory and the processor.
2. Generality
▪ It is desirable to handle all devices in a uniform manner.
▪ Applies to the way processes view I/O devices and the way the operating system
manages I/O devices and operations.
▪ Because of the diversity of device characteristics, it is difficult in practice to
achieve true generality.
▪ What can be done is to use a hierarchical, modular approach to the design of the I/O
function.
▪ This approach hides most of the details of device I/O in lower-level routines so that
user processes and upper levels of the OS see devices in terms of general functions,
such as read, write, open, close, lock, and unlock.
I/O Buffering
🞂 Buffering is technique by which the device manager can keep slower I/O devices busy during
times when a process is not requiring I/O operations .
🞂 It improves the throughput of input and output operations .
🞂 implemented directly in hardware and the corresponding drivers
🞂 INPUT BUFFERING:- is the technique of having the input device read information into the primary
memory before the process requests it
🞂 OUTPUT BUFFERING:- is the technique of saving information in memory and then writing it to
the device while the process continuous execution
I/O Buffering
🞂 Perform input transfers in advance of requests being made and
perform output transfers some time after the request is made is
called buffering.
🞂 Types of I/O devices:
⮩ Block oriented: A block-oriented device stores information in blocks that are
usually of fixed size, and transfers are made one block at a time.
Generally, it is possible to reference data by its block number.
Hard disks, floppy disks and optical drives such as DVD-ROM and CD-ROM
are examples of block oriented devices.

⮩ Stream oriented: A stream-oriented device transfers data in and out as a


stream of bytes, with no block structure.
Terminals, printers, communications ports, keyboard, mouse and other
pointing devices, and most other devices that are not secondary storage are
stream oriented.
I/O buffering
Operating User
System Process 🞂 Without a buffer, Operating system
I/O I
Devic N directly accesses the device when it
e
needs
Operating User
System Process 🞂 Single buffer, Operating system assigns a
I/O I MOV
Devic N E buffer in the main memory for an I/O
e
request
Operating User 🞂 Double buffer, Operating system use two
I/O I
System Process
system buffers instead of one, also
Devic N
MOV
E
known as buffer swapping. A process can
e
transfer data to or from one buffer
while the operating system empties or
Operating User 🞂 fills the other
Circular buffer
buffer, Operating system uses
System Process
two or more buffers. Each individual
I/O I MOV
Devic N .. E buffer is one unit in a circular buffer.
e
Used when I/O operation must keep up
with process
Disk Arm Scheduling Algorithm
Disk scheduling is done by operating systems to schedule I/O requests arriving for the disk. Disk
scheduling is also known as I/O scheduling.
Disk scheduling is important because:

● Multiple I/O requests may arrive by different processes and only one I/O request can be served
at a time by the disk controller. Thus other I/O requests need to wait in the waiting queue and
need to be scheduled.
● Two or more request may be far from each other so can result in greater disk arm movement.
● Hard drives are one of the slowest parts of the computer system and thus need to be accessed
in an efficient manner.
● main goal is to minimize the seek time
Definitions (Internal structure of HDD)
🞂 When the disk drive is operating, the disk is
rotating at constant speed.
🞂 To read or write the head must be positioned
at the desired track and at the beginning of
the desired sector on that track
🞂 Track selection involves moving the head in
a movable-head system or electronically
selecting one head on a fixed-head system
🞂 On a movable-head system the time required
to move the disk arm to the required track is
known as SEEK TIME.
🞂 The delay waiting for the rotation of the disk
to bring the required disk sector under the
read-write head is called ROTATIONAL
DELAY
🞂 The sum of the seek time and the rotational
delay equals the ACCESS TIME.
DISK PERFORMANCE PARAMETERS
🞂 the time taken to transfer the data from the disk. It varies on the rotational speed of the disk. The
faster a disk rotates, the faster we can read data, TRANSFER TIME
no. of bytes transferred / (no. of byte on track X rotation speed)

🞂 the maximum amount of data a disc, disk, or drive is capable holding. Disk capacity is displayed
in MB (megabytes), GB (gigabytes), or TB (terabytes).DISK CAPACITY
no. of cylinders X no. of head X no. of sectors per track X no. of bytes per track
Disk Arm Scheduling Algorithm
🞂 Following are different types of Disk Arm Scheduling Algorithm
1. FCSC (First Come First Serve) / FIFO (First In First Out)
2. SSTF (Shorted Seek Time First)
3. SCAN
4. LOOK
5. C-SCAN (Circular SCAN)
6. C-LOOK (Circular LOOK)
FCFS (First Come First Serve) / FIFO (First In First Out)
🞂 Here requests are served in the order of their arrival.
0 1 9 1 1 3 3 50
1 2 6 4 6 1,
1 36
1 ,
3 16
,
1 6
34
6 3 ,
9 4 9,
12
1
2
🞂 Disk movement will be 11, 1, 36, 16, 34, 9 and 12.
🞂 Total cylinder movement: (11-1) + (36-1) + (36-16) + (34-16) + (34-9) +
(12-9) = 111
FCSC (First Come First Serve) / FIFO (First In First Out)

Example: Suppose the order of request is- (82,170,43,140,24,16,190)


And current position of Read/Write head is : 50

Advantages:
● Every request gets a fair chance
● No indefinite postponement

Disadvantages:
● Does not try to optimize seek time
● May not provide the best possible
service

So, total seek time:


=(82-50)+(170-82)+(170-43)+(140-43)+(140-24)+(24-16)+(190-16)
=642
SSTF (Shortest seek time first)
🞂 We can minimize the disk movement by serving the request closest to
the current position of the head.
0 1 9 1 1 3 3 50
1 2 6 4 6 1,
1 36
1 ,
9 2 16
,
1 34
1 6 ,
3 9,
4 12
3
6
🞂 Disk movement will be 11, 12, 9, 16, 1, 34 and 36.
🞂 Total cylinder movement: (12-11) + (12-9) + (16-9) + (16-1) + (34-1) +
(36-34) = 61
SSTF (Shortest seek time first)
Example: Suppose the order of request is- (82,170,43,140,24,16,190)
And current position of Read/Write head is : 50
Advantages:
● Average Response Time
decreases
● Throughput increases

Disadvantages:
● Overhead to calculate seek
time in advance

So, total seek time:


=(50-43)+(43-24)+(24-16)+(82-16)+(140-82)+(170-
140)+(190-170)
SCAN
🞂 From the current position disk arm starts in up direction and moves towards the end,
serving all the pending requests until end.
🞂 At that end arm direction is reversed (down) and moves towards the other end serving the
pending requests on the way.
🞂 This is also called as elevator algorithm.
SCAN
🞂 Here first it moves in up direction then goes in down direction
0 1 9 1 1 3 3 50
1 2 6 4 6 1,
1 36
1
,
2 1 16
6 3 ,
4 34
3 ,
6 9,
9 50 12
1
🞂 Disk movement will be 11, 12, 16, 34, 36, 50, 9 and 1.
🞂 Total cylinder movement: (12-11) + (16-12) + (34-16) +(36-34) +(50-36)
+ (50-9) + (9-1) = 88
SCAN
Example: Suppose the order of request is- (82,170,43,140,24,16,190)
And current position of Read/Write head is : 50
Advantages:

● High throughput
● Low variance of response
time
● Average response time

Disadvantages:
● Long waiting time for
So, total seek time:
requests for locations just
=(199-50)+(199-16) visited by disk arm
=332
C-SCAN
🞂 From the current position disk arm starts in up direction and moves towards the end,
serving request until end.
🞂 At the end the arm direction is reversed (down), and arm directly goes to other end and
again continues moving in upward direction.
C-SCAN
Example: Suppose the order of request is- (82,170,43,140,24,16,190)
And current position of Read/Write head is : 50
Advantages:
● Provides more uniform wait
time compared to SCAN

So, total seek time:


=(199-50)+(199-0)+(43-0)
=391
LOOK
🞂 It is similar to the SCAN disk scheduling algorithm except for the difference that the disk arm in
spite of going to the end of the disk goes only to the last request to be serviced in front of the
head and then reverses its direction from there only. Thus it prevents the extra delay which
occurred due to unnecessary traversal to the end of the disk.
LOOK
🞂 Here first it moves in up direction then goes in down direction
0 1 9 1 1 3 3 50
1 2 6 4 6 1,
1 36
1
,
2 1 16
6 3 ,
4 34
3 ,
9 6 9,
12
1

🞂 Disk movement will be 11, 12, 16, 34, 36, 9 and 1.


🞂 Total cylinder movement: (12-11) + (16-12) + (34-16) + (36-34) + (36-9)
+ (9-1) = 60
LOOK
Example: Suppose the order of request is- (82,170,43,140,24,16,190)
And current position of Read/Write head is : 50

So, total seek time:


=(190-50)+(190-16)
=314
C-LOOK
🞂 CLOOK is similar to CSCAN disk scheduling algorithm. In CLOOK, the disk arm in spite of going
to the end goes only to the last request to be serviced in front of the head and then from there
goes to the other end’s last request. Thus, it also prevents the extra delay which occurred due to
unnecessary traversal to the end of the disk.
C-LOOK
🞂 Here first it moves in up direction then goes in down direction
0 1 9 1 1 3 3 50
1 2 6 4 6 1,
1 36
1
,
2 1 16
6 3 ,
4 34
3 ,
1 6 9,
12
9

🞂 Disk movement will be 11, 12, 16, 34, 36, 1 and 9.


🞂 Total cylinder movement: (12-11) + (16-12) + (34-16) + (36-34) +(36-
1)+(9-1) = 68
C-LOOK
Example: Suppose the order of request is- (82,170,43,140,24,16,190)
And current position of Read/Write head is : 50

So, total seek time:


=(190-50)+(190-16)+(43-16)
=341
RAID
🞂 RAID (Redundant Array of Independent Disks)
🞂 RAID is a data storage virtualization technology that combines
multiple physical disk drive components into a single logical unit
for the purposes of data redundancy, performance improvement,
large storage capacity or all.
🞂 Data is distributed across the drives in one of several ways, referred
to as RAID levels, depending on the required level of redundancy and
performance.
🞂 All RAID have the property that the data are distributed over drives,
to allow parallel operation.
🞂 There are 7 levels of RAID.
HARDWARE RAID
🞂 Specialized hardware controller is required to install on server machine or on the array .
🞂 It is not dependent on OS
🞂 It does not occupy any server memory
🞂 External controller acts as the interface between the host and the hard disk
🞂 It handles the drives so that the processes are almost transparent to the host computer.
🞂 It has more RAID configuration options including hybrid configurations which may not be
available with certain OS options.
🞂 The hardware RAID is typically expensive and adds a substantial amount to the cost of the
whole system.
SOFTWARE RAID
🞂 RAID where no specialized hardware is required,
🞂 When storage drives are connected to the pc or server without a RAID controller, RAID
configuration is managed by utility software within the OS
🞂 consume server memory
🞂 simpler to implement than hardware RAID
🞂 Numerous operating systems support RAID configuration, including those from Apple,
Microsoft, various Linux flavors also as OpenBSD, FreeBSD, NetBSD, and Solaris Unix.
🞂 The cost is low because no additional
hardware RAID controller is required.
RAID 0 (Striping)
🞂 It splits data (file) into blocks of data.
🞂 Stripe the blocks across disks in the system.
🞂 In the diagram to the right, the odd blocks are
written to disk 1 and the even blocks to disk
2.
🞂 It is easy to implement.
🞂 No parity calculation overhead is involved.
🞂 It provides good performance by spreading the
load across many channels and drives.
🞂 It provides no redundancy or error detection.
🞂 Not true RAID because there is no fault
tolerance. The failure of just one drive will result
in all data in an array being lost.
🞂 After certain amount of drives, performance does
not increase significantly.
RAID 1 (Mirroring)
🞂 A complete file is stored on a single disk.
🞂 A second disk contains an exact copy of
the file.
🞂 It provides complete redundancy of data.
🞂 Read performance can be improved
⮩ same file data can be read in parallel
🞂 Write performance suffers
⮩ must write the data out twice
🞂 Most expensive RAID implementation.
🞂 It requires twice as much storage space.
🞂 In case a drive fails, data do not have to be
rebuild, they just have to be copied to the
replacement drive.
🞂 The main disadvantage is that the effective
storage capacity is only half of the total
RAID 2 (Bit-level striping using a Hamming Code parity)
🞂 It stripes data at bit level (rather than block level) with some disks
storing error checking and correcting (ECC) information.
🞂 It uses ECC (Error Correcting Code) to monitor correctness of information
on disk.
🞂 A parity disk is then used to reconstruct corrupted or lost data.
RAID 2 (Bit-level striping using a Hamming Code parity)
🞂 Imagine splitting each byte into a pair of 4-bit nibbles, then adding
Hamming code to each one to form a 7-bit word, of which bit 1, 2
and 4 were parity bits.
🞂 In RAID 2 each of seven drives needs synchronized in terms of arm
position and rotational position, and then it would be possible to write the 7-
bit Hamming coded word over the seven drives.
🞂 Here, losing one drive did not cause problem, which can be handled by
Hamming code on the fly.
🞂 Big problem is performance
⮩ must have to read data plus ECC code from other disks
⮩ for a write, must have to modify data, ECC, and parity disks
RAID 3 (Byte-level striping with a dedicated parity)
🞂 It uses striping and dedicates
one drive for storing parity
information.
🞂 Here single parity bit is
computed for each data word
and written to a parity drive.
🞂 The embedded ECC information
is used to detect errors.
🞂 As in RAID level 2 the drives must
be exactly synchronized.
RAID 4 (Block-level striping with dedicated parity)
🞂 It uses large stripes (block level
striping), which means you can
read records from any single
drive.
🞂 They do not require
synchronization of drives.
🞂 RAID 4 is like RAID 0, with strip-for-
strip parity written onto an extra
drive.
🞂 If a drive crashes, the lost bytes
can be recomputed from the
parity drive by reading the entire
set of drives.
🞂 This design protects against the
loss of a drive but performs poorly
for small updates, if one sector is
changed, it is necessary to read all
RAID 5 (Block-level striping with distributed parity)
🞂 This level is based on block-level
striping with parity.
🞂 The parity information is striped
across each drive.
🞂 As with RAID level 4, there is a
heavy load in the parity drive, it
may become bottleneck.
🞂 This bottleneck can be
eliminated in RAID level 5 by
distributing the parity bits
uniformly over all the drives.
Disk Cache
🞂 A disk cache is a mechanism for improving the time it takes to read
from or write to a hard disk.
🞂 A disk cache can also be a specified portion of random access memory
(RAM) for disk sectors.
🞂 The disk cache holds data that has recently been read and, in some cases,
adjacent data areas that are likely the request is
If to be accessed next.
satisfied
when an I/O request is YES
via the cache
made for a particular
sector, a check is
made to determine if
the sector is in the disk
cache the requested sector
If NO is read into the disk
cache from the disk

You might also like