Sie sind auf Seite 1von 31

Roadmap

I/O Buffering Disk Scheduling

No Buffering
Without a buffer, OS directly accesses the device as and when it needs A data area within the address space of the user process is used for I/O

No Buffering
Process must wait for I/O to complete before proceeding busy waiting (like programmed I/O) process suspension on an interrupt (like interrupt-driven I/O or DMA) Problems the program is hung up waiting for the relatively slow I/O to complete interferes with swapping decisions by OS
3

No Buffering
It is impossible to swap the process out completely because the data area must be

locked in main memory before I/O


Otherwise, data may be lost or single-process deadlock may happen
the suspended process is blocked waiting on the I/O event, and the I/O operation is blocked waiting

for the process to be swapped in


4

I/O Buffering
It may be more efficient to perform input transfers in advance of requests being made and to perform output transfers some time after the request is made.

Block-oriented Buffering
For block-oriented I/O devices such as
disks and USB drives

Information is stored in fixed sized blocks Transfers are made a block at a time Can reference data by block number
6

Stream-Oriented Buffering
For stream-oriented I/O devices such as terminals printers communication ports mouse and other pointing devices, and most other devices that are not secondary storage Transfer information as a stream of bytes
7

Single Buffer
OS assigns a buffer in the system portion of main memory for an I/O request

Block Oriented Single Buffer


Input transfers are made to system buffer Block moved to user space when needed The next block is immediately requested, expecting that the block will eventually be needed Read ahead or Anticipated Input A reasonable assumption as data is usually accessed sequentially

Block Oriented Single Buffer


Provide a speedup
User process can be processing one block of data while the next block is being read in

OS is able to swap the process out because the I/O operation is taking place in system memory

10

Block Oriented Single Buffer


Complicate the logic in OS
OS must keep track of the assignment of system buffers to user processes

Affect the swapping logic


Consider both the I/O operation and swapping involve the same disk
Does it make sense to swap the process out after the I/O operation finishes?
11

Stream-oriented Single Buffer


Line-at-time or Byte-at-a-time Terminals often deal with one line at a time with carriage return signaling the end of the line
Also line printer

Byte-at-a-time suits devices where a single keystroke may be significant


Also sensors and controllers Interaction between OS and user process follows the producer/consumer model
12

Double Buffer
Use two system buffers instead of one A process can transfer data to or from one buffer while OS empties or fills the other buffer

13

Circular Buffer
More than two buffers are used Each individual buffer is one unit in a circular buffer Used when I/O operation must keep up with process Follows the bounded-buffer producer/consumer model

14

Buffer Limitations
Buffering smoothes out peaks in I/O demand

But with enough demand eventually all buffers become full and their advantage is lost
In multiprogramming environment, buffering can increase the efficiency of OS and the performance of individual processes

15

Roadmap
I/O Buffering Disk Scheduling

16

Disk Performance Parameters


Currently, disks are at least four orders of magnitude slower than main memory performance of disk storage subsystem is of vital concern A general timing diagram of disk I/O transfer is shown here.

17

Positioning the Read/Write Heads


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.

18

Disk Performance Parameters


Access Time is the sum of: Seek time: The time it takes to position the head at the desired track Rotational delay or rotational latency: The time it takes for the beginning of the sector to reach the head Transfer Time is the time taken to transfer the data (as the sector moves under the head)

19

Disk Performance Parameters


Total average access time Ta
Ta = Ts + 1 / (2r) + b / (rN) where Ts = average seek time b = no. of bytes to be transferred N = no. of bytes on a track r = rotation speed, in revolutions / sec.

Due to the seek time, the order in which sectors are read from disk has a tremendous effect on I/O performance
20

Disk Scheduling Policies


To compare various schemes, consider a disk head is initially located at track 100. assume a disk with 200 tracks and that the disk request queue has random requests in it. The requested tracks, in the order received by the disk scheduler, are

55, 58, 39, 18, 90, 160, 150, 38, 184.

21

First-in, first-out (FIFO)


Process requests sequentially Fair to all processes May have good performance if most requests are to clustered file sectors Approaches random scheduling in performance if there are many processes
disk arm movement

22

Priority
Control of the scheduling is outside the control of disk management software Goal is not to optimize disk use but to meet other objectives Often, short batch jobs & interactive jobs are given higher priority than longer jobs Provide high throughput & good interactive response time Longer jobs may have to wait an excessively long time
23

Last-in, first-out
Good for transaction processing systems The device is given to the most recent user so there should be little arm movement for moving through a sequential file Possibility of starvation since a job may never regain the head of the line

24

Shortest Service Time First


Select the disk I/O request that requires the least movement of the disk arm from its current position Always choose the minimum seek time

25

SCAN
Arm moves in one direction only, satisfying all outstanding requests until it reaches the last track in that direction then the direction is reversed LOOK policy: reverse direction when there are no more requests in a direction

26

SCAN
SCAN is biased against the area most recently traversed does not exploit locality SCAN favors jobs whose requests are for tracks nearest to both innermost and outermost tracks and the latest-arriving jobs
27

C-SCAN (Circular SCAN)


Restricts scanning to one direction only When the last track has been visited in one direction, the arm is returned to the opposite end of the disk and the scan begins again Reduces the maximum delay experienced by new requests

28

N-step-SCAN
With SSTF, SCAN, C-SCAN, the arm may not move if processes monopolize the device by repeated requests to one track: arm stickiness Segments the disk request queue into subqueues of length N Subqueues are processed one at a time, using SCAN New requests are added to other queue when a queue is being processed
29

FSCAN
Two subqueues When a scan begins, all of the requests are in one of the queues, with the other empty During the scan, all new requests are put into the other queue Service of new requests is deferred until all of the old requests have been processed

30

Performance Compared
Comparison of Disk Scheduling Algorithms

31

Das könnte Ihnen auch gefallen