OpSy-03-ch-51

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 39

Chapter 5.

1: Input and Output


Chapter 5 : Input & Output
• I/O hardware (classification, device drivers)
• I/O techniques (programmed, interrupt
driven, DMA)
• Structuring I/O software
• Disks (performance, arm scheduling,
common disk errors)
• RAID configurations

Ceng 334 - Operating Systems 5-1

1
I/O Hardware
I/O Hardware

• Classification of I/O devices


• Device controllers

Ceng 334 - Operating Systems 5-2

2
Classification of I/O Devices
Classification of I/O Devices
• Block devices
– Information is stored in fixed size blocks
– Block sizes range from 128-1024 bytes
– I/O is done by reading/writing blocks
– Hard disks, floppies, CD ROMS, tapes are in this
category
• Character devices
– I/O is done as characters (ie., no blocking)
– Terminals, printers, mouse, joysticks are in this
category
Ceng 334 - Operating Systems 5-3

3
Device Controllers
Device Controllers
Disk

CPU Memory Controller Controller Controller

System bus
Motherboard

• A controller is an electronic card (PC’s) or a unit


(mainframes) which performs blocking, analog signal
generation (to move the disk arm, to drive CRT tubes in
screens), execution of I/O commands
Ceng 334 - Operating Systems 5-4

4
I/O Techniques
I/O Techniques

• Programmed I/O
• Interrupt-driven I/O
• Direct memory access (DMA)

Ceng 334 - Operating Systems 5-5

5
Programmed I/O
Programmed I/O

• The processor issues an I/O command on


behalf of a process to an I/O module
• The process busy-waits for the operation to
be completed before proceeding

Ceng 334 - Operating Systems 5-6

6
Interrupt-driven I/O
Interrupt-driven I/O

• The processor issues an I/O command on


behalf of a process
• The process is suspended and the I/O starts
• The processor may execute another process
• When the I/O is finished, the processor is
interrupted to notify that the I/O is over

Ceng 334 - Operating Systems 5-7

7
DMA
Direct Memory Access (DMA)
• A DMA module controls the exchange of
data between main memory and an I/O
device
• The processor sends a request for the
transfer of a block of data to the DMA
module (block address, memory address
and number of bytes to transfer) and
continues with other work
• DMA module interrupts the processor when
the entire block has been transferred
Ceng 334 - Operating Systems 5-8

8
DMA
DMA (Cont.)

• DMA unit is capable of transferring data


straight from memory to the I/O device
• Cycle Stealing: DMA unit makes the CPU
unable to use the bus until the DMA unit
has finished
• Instruction execution cycle is suspended,
NOT interrupted

Ceng 334 - Operating Systems 5-9

9
Structuring I/O Software
Structuring I/O Software
I/O request I/O reply

User space software I/O system calls (library)

Device-independent Naming, protection, blocking,


software buffering, allocation

Device drivers Setup device registers; check status

Interrupt handlers Wakeup driver when I/O completed

Hardware Perform I/O operation

Ceng 334 - Operating Systems 5-10

10
User-sapece; I/O Software
User-Space I/O Software

• Library of I/O procedures (ie., system calls)


such as
bytes-read = read (file_descriptor, buffer,
bytes to be read)
• Spooling provides virtual I/O devices

Ceng 334 - Operating Systems 5-11

11
Device-Independents I/O Software
Device-Independent I/O Software

• Uniform interface for device drivers (ie.,


different devices)
• Device naming
– Mapping of symbolic device names to proper
device drivers
• Device protection
– In a multi-user system you can not let all users
access all I/O devices
Ceng 334 - Operating Systems 5-12

12
Device-Independents I/O Software
Device-Independent I/O Software
(Cont.)
• Provide device independent block size
– Physical block sizes for different devices may
differ, so we have to provide the same logical
block sizes
• Buffering
• Storage allocation on block devices such as
disks
• Allocating and releasing dedicated devices
such as tapes
Ceng 334 - Operating Systems 5-13

13
Device-Independents I/O Software
Device-Independent I/O Software
(Cont.)

• Error reporting
– When a bad block is encountered, the driver
repeats the I/O request several times and issues
an error message if data can not be recovered

Ceng 334 - Operating Systems 5-14

14
Device Drivers
Device Drivers

• One driver per device or device class


• Device driver
– Issues I/O commands
– Checks the status of I/O device (eg. Floopy
drive motor)
– Queues I/O requests

Ceng 334 - Operating Systems 5-15

15
Interrupt Handlers
Interrupt Handlers

• When an I/O is issued, the process is


suspended until I/O is finished
• When the I/O is finished, the hardware
causes an interrupt and the execution is
directed to a special routine (interrupt
handler)
• Interrupt handler notifies the device driver
which in turn passes this to the upper layers
Ceng 334 - Operating Systems 5-16

16
Disks
Disks
Sector
Track Cylinder

Heads

Ceng 334 - Operating Systems 5-17

17
Disk Performance
Disk Performance Parameters

Seek Rotational Data Transfer


Delay

Access time

• Seek time: Time to move disk arm to the


required track
• Rotational delay (rotational latency): Wait
for the correct block to be under the head
Ceng 334 - Operating Systems 5-18

18
Formulas for Disk Performance
Approximate Formulas for Disk
Performance Parameters
• Seek time (Ts) = m * n + s
where m = a constant depending on the disk drive
n = number of tracks traversed
s = startup time
• Rotational delay (Tr) = 1 / (2*r)
where r is the rotation speed in revolutions per
second
• Transfer time (Tt) = b / (r*N)
where b = number of bytes to be transferred
N = number of bytes on a track
• Average access time (Ta ) = Ts + Tr + Tt
Ceng 334 - Operating Systems 5-19

19
File Stored Contigiously

File is Stored Contiguously

• Time to read one track is


seek + latency + data transfer (1 track - one
revolution) =
20 msec + 8.3 msec + 16.7 msec = 45 msec
• No seek time for the other 7 tracks
• All tracks = first track + other 7 tracks
45 msec + 7 * 25 (8.3+16.7) = 220 msec
Ceng 334 - Operating Systems 5-21

20
Randomly Stored Files
Randomly Stored

• Time to read one sector (randomly) is


seek + latency + data transfer (1 sector) =
20 msec + 8.3 msec + 0.5 msec = 28.8 msec

• Time to read 256 sectors = 256 * 28.8 =


7.37 seconds

Ceng 334 - Operating Systems 5-22

21
Disk Scheduling
Disk Scheduling Policies
• The order in which sectors are read from the
disk has a tremendous effect on I/O
performance)
• Scheduling Algorithms
– FIFO
– SSF (Shortest seek first)
– SCAN (Elevator algorithm)
– C-SCAN (One-way elevator)
– FSCAN

Ceng 334 - Operating Systems 5-23

22
FIFO
First in, First out (FIFO)
• Disk driver accepts request one at a time and
carries them in that order
• No starvation
• Example: Requests for 1, 36, 16, 34, 9, 12 when
positioned on cylinder 11 (mean movement = 18.5
cylinders)
0 10 20 30 40

1 9 11 12 16 34 36

Ceng 334 - Operating Systems 5-24

23
SSF
Shortest Seek First (SSF)

• Request which requires shortest seek is chosen


• Possibility of starvation (if requests are clustered)
• Same example : mean movement = 10.2 cylinders

0 10 20 30 40

1 9 11 12 16 34 36

Ceng 334 - Operating Systems 5-25

24
Scan
SCAN (Elevator Algorithm)
• Disk arm moves in one direction, performing all
requests until no more are needed in that direction,
then turns around and comes back
• Same example : mean movement = 10.0 cylinders

0 10 20 30 40

1 9 11 12 16 34 36

Ceng 334 - Operating Systems 5-26

25
Scan
SCAN (Cont.)

• Favours
–Tracks nearest to both innermost
and outermost cylinders
–Latest-arriving requests

Ceng 334 - Operating Systems 5-27

26
C-Scan
C-SCAN (One-way Elevator)

• Modification of SCAN where scanning


direction is one way only

• Once arm reaches the end it moves


back to the start

Ceng 334 - Operating Systems 5-28

27
F-Scan
FSCAN
• SSTF, SCAN and C-SCAN may
suffer from "arm stickiness”
(starvation for some requests)
• If multiple new requests keep
arriving for the same track the arm
gets "stuck"
• The solution is to maintain
multiple queues
Ceng 334 - Operating Systems 5-29

28
F-Scan
FSCAN (Cont.)
• Two queues, one being used for the
scan and the other for new requests
during the scan
• When a scan begins, all new requests
are in one of the queues, with the other
being empty
• During the scan, all new requests are
put into the queue that was initially
empty
• Thus, service of new requests is
deferred until all the old requests have
been processed
Ceng 334 - Operating Systems 5-30

29
Common Disk Errors
Common Disk Errors
• Programming error (e.g., request for
nonexistant sector)
– This type of error should not occur if
programming (software development) is
done carefully
– If such an error is encountered, probably
the only thing to do is to terminate the
request and notify the user or
programmer
Ceng 334 - Operating Systems 5-31

30
Common Disk Errors
Common Disk Errors (Cont.)
• Transient checksum error (e.g., usually
caused by dust on the head. Mostly for
floppies)
– The read or write operation is repeated
for a couple of times
– If the operation is not successful the
block is marked as bad (Bad CRC)
– Re-formating may cure the error
Ceng 334 - Operating Systems 5-32

31
Common Disk Errors
Common Disk Errors (Cont.)

• Permanent checksum error (e.g., disk block


physically damaged)
– Bad blocks are marked so that device
drivers do not access them
• Controller error (e.g., controller refuses to
accept commands)

Ceng 334 - Operating Systems 5-33

32
Common Disk Errors
Common Disk Errors (Cont.)
• Seek error (e.g., the arm is directed to
cylinder 6 but it goes to 7)
– The disk arm is positioned on cylinders
by pulses (one pulse per cylinder). When
the arm reaches its destination the
cylinder number is checked (written
when the drive was formatted). If the arm
is in a wrong position then a seek error
occurs
Ceng 334 - Operating Systems 5-34

33
Common Disk Errors
Common Disk Errors (Cont.)
– Some controllers can correct the seek
error by issuing a RECALIBRATE
command
– This command moves the arm as far out
as it will go to reset the arm on cylinder
0. If this does not solve the problem then
the drive has to be repaired (replaced
with a new one?)
Ceng 334 - Operating Systems 5-35

34
RAID
RAID (Redundant Array of
Inexpensive Disks)

• Security (fault tolerance)


• Performance
• 0-5 levels are defined,
• Only levels 0, 1, 3 & 5 are used

Ceng 334 - Operating Systems 5-36

35
RAID 0
RAID 0 Level

• A file is written (distributed) over several


disks
• This permits multiple reads and writes
• Consequently speed is improved
• But no error correction

Ceng 334 - Operating Systems 5-37

36
RAID 1

RAID 1 (Mirroring)
• A file is written on at least two drives
• The other drive becomes a mirror image of
the first drive
• Reading is improved because of two paths
• Writing is slower as the same data has to be
written twice
• Fault tolerance is improved as the failure of
two disks at the same time is low

Ceng 334 - Operating Systems 5-38

37
RAID 3
RAID 3
• A file is distributed on several disks as in RAID 0
• An additional drive contains the parity information
which may be used to reconstruct the file if a drive
fails (See “Hamming Codes” for error correction)
• Reading is fast as all drives can transfer data
(portions of the file) independently
• Good for CAD/CAM & signal processing
• Writing is slower since only one disk is used for
parity information (to write parity all requests
must access this drive)
Ceng 334 - Operating Systems 5-39

38
RAID 5
RAID 5
• Similar to RAID 3 but parity is distributed
to all disks
• Fast read and writes
• Suitable for transaction oriented processing
such as on-line banking, hotel reservations
etc.
• Total capacity for a RAID 5 system with N
disks = capacity of one disk * (N-1)

Ceng 334 - Operating Systems 5-40

39

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy