Device Management
So far…
We have covered CPU and memory
management
Computing is not interesting without I/Os
Device management: the OS component
that manages hardware devices
Provides a uniform interface to access devices
with different physical characteristics
Optimize the performance of individual devices
I/O hardware
 I/O device hardware
 Many varieties
 Device controller
Conversion a block of bytes and I/O operations
Performs error correction if necessary
Expose hardware registers to control the device
Typically have four registers:
• Data-in register to be read to get input
• Data-out register to be written to send output
• Status register (allows the status of the device to be
checked)
• Control register (controls the command the device
performs)
Device Addressing
 How the CPU addresses the device
registers?
 Two approaches
Dedicated range of device addresses in the
physical memory
Requires special hardware instructions associated with
individual devices
Memory-mapped I/O: makes no distinction
between device addresses and memory addresses
Devices can be accessed the same way as normal
memory, with the same set of hardware instructions
Device Addressing Illustrated
Primary
memory
Device 1
Device 2
Memory
addresses
Memory-mapped I/Os
Primary
memory
Device
addresses
Separate device
addresses
Ways to Access a Device
How to input and output data to and from
an I/O device?
Polling: a CPU repeatedly checks the
status of a device for exchanging data
+ Simple
- Busy-waiting
Ways to Access a Device
Interrupt-driven I/Os: A device controller
notifies the corresponding device driver
when the device is available
+ More efficient use of CPU cycles
- Data copying and movements
- Slow for character devices (i.e., one interrupt
per keyboard input)
Ways to Access a Device
Direct memory access (DMA): uses an
additional controller to perform data
movements
+ CPU is not involved in copying data
- I/O device is much more complicated (need to
have the ability to access memory).
- A process cannot access in-transit data
Ways to Access a Device
Double buffering: uses two buffers.
While one is being used, the other is being
filled.
Analogy: pipelining
Extensively used for graphics and animation
So a viewer does not see the line-by-line scanning
Device Driver
An OS component that is responsible for
hiding the complexity of an I/O device
So that the OS can access various
devices in a uniform manner
Types of IO devices
 Two categories
 A block device stores information in fixed-size blocks, each
one with its own address
 e.g., disks
 A character device delivers or accepts a stream of
characters, and individual characters are not addressable
 e.g., keyboards, printers, network cards
 Device driver provides interface for these two types of
devices
 Other OS components see block devices and character
devices, but not the details of the devices.
 How to effectively utilize the device is the responsibility of the
device driver
Device Driver Illustrated
User applications
Various OS components
Device drivers
Device controllers
I/O devices
User level
OS level
Hardware level
Disk as An Example Device
30-year-old storage technology
Incredibly complicated
A modern drive
250,000 lines of micro code
Disk Characteristics
Disk platters: coated with magnetic
materials for recording
Disk
platters
Disk Characteristics
Disk arm: moves a comb of disk heads
Only one disk head is active for reading/writing
Disk
platters
Disk arm
Disk heads
Hard Disk Trivia…
Aerodynamically designed to fly
As close to the surface as possible
No room for air molecules
Therefore, hard drives are filled with
special inert gas
If head touches the surface
Head crash
Scrapes off magnetic information
Disk Characteristics
Each disk platter is divided into concentric
tracks
Disk
platters
Disk arm
Disk heads
Track
Disk Characteristics
A track is further divided into sectors. A
sector is the smallest unit of disk storage
Disk
platters
Disk arm
Disk heads
Track
Sector
Disk Characteristics
A cylinder consists of all tracks with a
given disk arm position
Disk
platters
Disk arm
Disk heads
Track
Sector
Cylinder
Disk Characteristics
Cylinders are further divided into zones
Disk
platters
Disk arm
Disk heads
Track
Sector
Cylinder
Zones
Disk Characteristics
Zone-bit recording: zones near the edge
of a disk store more information (higher
bandwidth)
Disk
platters
Disk arm
Disk heads
Track
Sector
Cylinder
Zones
More About Hard Drives Than You Ever
Want to Know
 Track skew: starting position of each track is
slightly skewed
Minimize rotational delay when sequentially transferring
bytes across tracks
 Thermo-calibrations: periodically performed to
account for changes of disk radius due to
temperature changes
 Typically 100 to 1,000 bits are inserted between
sectors to account for minor inaccuracies
Disk Access Time
Seek time: the time to position disk
heads (~8 msec on average)
Rotational latency: the time to rotate the
target sector to underneath the head
Assume 7,200 rotations per minute (RPM)
7,200 / 60 = 120 rotations per second
1/120 = ~8 msec per rotation
Average rotational delay is ~4 msec
Disk Access Time
Transfer time: the time to transfer bytes
Assumptions:
58 Mbytes/sec
4-Kbyte disk blocks
Time to transfer a block takes 0.07 msec
Disk access time
Seek time + rotational delay + transfer time
Disk Performance Metrics
Latency
Seek time + rotational delay
Bandwidth
Bytes transferred / disk access time
Examples of Disk Access Times
If disk blocks are randomly accessed
Average disk access time = ~12 msec
Assume 4-Kbyte blocks
4 Kbyte / 12 msec = ~340 Kbyte/sec
If disk blocks of the same cylinder are
randomly accessed without disk seeks
Average disk access time = ~4 msec
4 Kbyte / 4 msec = ~ 1 Mbyte/sec
Examples of Disk Access Times
If disk blocks are accessed sequentially
Without seeks and rotational delays
Bandwidth: 58 Mbytes/sec
Key to good disk performance
Minimize seek time and rotational latency
Disk Tradeoffs
Larger sector size  better bandwidth
Wasteful if only 1 byte out of 1 Mbyte is
needed
Sector size Space utilization Transfer rate
1 byte 8 bits/1008 bits (0.8%) 80 bytes/sec (1 byte / 12 msec)
4 Kbytes 4096 bytes/4221 bytes (97%) 340 Kbytes/sec (4 Kbytes / 12 msec)
1 Mbyte (~100%) 58 Mbytes/sec (peak bandwidth)
Disk Controller
Few popular standards
IDE (integrated device electronics)
ATA (AT attachment interface)
SCSI (small computer systems interface)
Differences
Performance
Parallelism
Disk Device Driver
Major goal: reduce seek time for disk
accesses
Schedule disk request to minimize disk arm
movements
Disk Arm Scheduling Policies
First come, first serve (FCFS): requests
are served in the order of arrival
+ Fair among requesters
- Poor for accesses to random disk blocks
Shortest seek time first (SSTF): picks
the request that is closest to the current
disk arm position
+ Good at reducing seeks
- May result in starvation
Disk Arm Scheduling Policies
SCAN: takes the closest request in the
direction of travel (an example of elevator
algorithm)
+ no starvation
- a new request can wait for almost two full
scans of the disk
Disk Arm Scheduling Policies
Circular SCAN (C-SCAN): disk arm
always serves requests by scanning in
one direction.
Once the arm finishes scanning for one
direction
Returns to the 0th track for the next round of
scanning
First Come, First Serve
Request queue: 3, 6, 1, 0, 7
Head start position: 2
Total seek distance: 1 + 3 + 5 + 1 + 7 =
17
Tracks
0
5
4
3
2
1
6
7
Time
Shortest Seek Distance First
Request queue: 3, 6, 1, 0, 7
Head start position: 2
Total seek distance: 1 + 2 + 1 + 6 + 1 =
10
Tracks
0
5
4
3
2
1
6
7
Time
SCAN
Request queue: 3, 6, 1, 0, 7
Head start position: 2
Total seek distance: 1 + 1 + 3 + 3 + 1 = 9
Time
Tracks
0
5
4
3
2
1
6
7
C-SCAN
Request queue: 3, 6, 1, 0, 7
Head start position: 2
Total seek distance: 1 + 3 + 1 + 7 + 1 =
13
Time
Tracks
0
5
4
3
2
1
6
7
Look and C-Look
Similar to SCAN and C-SCAN
 the arm goes only as far as the final request in
each direction, then turns around
 Look for a request before continuing to move in a
given direction.

Lecture Notes for Device management in Operating Systems

  • 1.
  • 2.
    So far… We havecovered CPU and memory management Computing is not interesting without I/Os Device management: the OS component that manages hardware devices Provides a uniform interface to access devices with different physical characteristics Optimize the performance of individual devices
  • 3.
    I/O hardware  I/Odevice hardware  Many varieties  Device controller Conversion a block of bytes and I/O operations Performs error correction if necessary Expose hardware registers to control the device Typically have four registers: • Data-in register to be read to get input • Data-out register to be written to send output • Status register (allows the status of the device to be checked) • Control register (controls the command the device performs)
  • 4.
    Device Addressing  Howthe CPU addresses the device registers?  Two approaches Dedicated range of device addresses in the physical memory Requires special hardware instructions associated with individual devices Memory-mapped I/O: makes no distinction between device addresses and memory addresses Devices can be accessed the same way as normal memory, with the same set of hardware instructions
  • 5.
    Device Addressing Illustrated Primary memory Device1 Device 2 Memory addresses Memory-mapped I/Os Primary memory Device addresses Separate device addresses
  • 6.
    Ways to Accessa Device How to input and output data to and from an I/O device? Polling: a CPU repeatedly checks the status of a device for exchanging data + Simple - Busy-waiting
  • 7.
    Ways to Accessa Device Interrupt-driven I/Os: A device controller notifies the corresponding device driver when the device is available + More efficient use of CPU cycles - Data copying and movements - Slow for character devices (i.e., one interrupt per keyboard input)
  • 8.
    Ways to Accessa Device Direct memory access (DMA): uses an additional controller to perform data movements + CPU is not involved in copying data - I/O device is much more complicated (need to have the ability to access memory). - A process cannot access in-transit data
  • 9.
    Ways to Accessa Device Double buffering: uses two buffers. While one is being used, the other is being filled. Analogy: pipelining Extensively used for graphics and animation So a viewer does not see the line-by-line scanning
  • 10.
    Device Driver An OScomponent that is responsible for hiding the complexity of an I/O device So that the OS can access various devices in a uniform manner
  • 11.
    Types of IOdevices  Two categories  A block device stores information in fixed-size blocks, each one with its own address  e.g., disks  A character device delivers or accepts a stream of characters, and individual characters are not addressable  e.g., keyboards, printers, network cards  Device driver provides interface for these two types of devices  Other OS components see block devices and character devices, but not the details of the devices.  How to effectively utilize the device is the responsibility of the device driver
  • 12.
    Device Driver Illustrated Userapplications Various OS components Device drivers Device controllers I/O devices User level OS level Hardware level
  • 13.
    Disk as AnExample Device 30-year-old storage technology Incredibly complicated A modern drive 250,000 lines of micro code
  • 14.
    Disk Characteristics Disk platters:coated with magnetic materials for recording Disk platters
  • 15.
    Disk Characteristics Disk arm:moves a comb of disk heads Only one disk head is active for reading/writing Disk platters Disk arm Disk heads
  • 16.
    Hard Disk Trivia… Aerodynamicallydesigned to fly As close to the surface as possible No room for air molecules Therefore, hard drives are filled with special inert gas If head touches the surface Head crash Scrapes off magnetic information
  • 17.
    Disk Characteristics Each diskplatter is divided into concentric tracks Disk platters Disk arm Disk heads Track
  • 18.
    Disk Characteristics A trackis further divided into sectors. A sector is the smallest unit of disk storage Disk platters Disk arm Disk heads Track Sector
  • 19.
    Disk Characteristics A cylinderconsists of all tracks with a given disk arm position Disk platters Disk arm Disk heads Track Sector Cylinder
  • 20.
    Disk Characteristics Cylinders arefurther divided into zones Disk platters Disk arm Disk heads Track Sector Cylinder Zones
  • 21.
    Disk Characteristics Zone-bit recording:zones near the edge of a disk store more information (higher bandwidth) Disk platters Disk arm Disk heads Track Sector Cylinder Zones
  • 22.
    More About HardDrives Than You Ever Want to Know  Track skew: starting position of each track is slightly skewed Minimize rotational delay when sequentially transferring bytes across tracks  Thermo-calibrations: periodically performed to account for changes of disk radius due to temperature changes  Typically 100 to 1,000 bits are inserted between sectors to account for minor inaccuracies
  • 23.
    Disk Access Time Seektime: the time to position disk heads (~8 msec on average) Rotational latency: the time to rotate the target sector to underneath the head Assume 7,200 rotations per minute (RPM) 7,200 / 60 = 120 rotations per second 1/120 = ~8 msec per rotation Average rotational delay is ~4 msec
  • 24.
    Disk Access Time Transfertime: the time to transfer bytes Assumptions: 58 Mbytes/sec 4-Kbyte disk blocks Time to transfer a block takes 0.07 msec Disk access time Seek time + rotational delay + transfer time
  • 25.
    Disk Performance Metrics Latency Seektime + rotational delay Bandwidth Bytes transferred / disk access time
  • 26.
    Examples of DiskAccess Times If disk blocks are randomly accessed Average disk access time = ~12 msec Assume 4-Kbyte blocks 4 Kbyte / 12 msec = ~340 Kbyte/sec If disk blocks of the same cylinder are randomly accessed without disk seeks Average disk access time = ~4 msec 4 Kbyte / 4 msec = ~ 1 Mbyte/sec
  • 27.
    Examples of DiskAccess Times If disk blocks are accessed sequentially Without seeks and rotational delays Bandwidth: 58 Mbytes/sec Key to good disk performance Minimize seek time and rotational latency
  • 28.
    Disk Tradeoffs Larger sectorsize  better bandwidth Wasteful if only 1 byte out of 1 Mbyte is needed Sector size Space utilization Transfer rate 1 byte 8 bits/1008 bits (0.8%) 80 bytes/sec (1 byte / 12 msec) 4 Kbytes 4096 bytes/4221 bytes (97%) 340 Kbytes/sec (4 Kbytes / 12 msec) 1 Mbyte (~100%) 58 Mbytes/sec (peak bandwidth)
  • 29.
    Disk Controller Few popularstandards IDE (integrated device electronics) ATA (AT attachment interface) SCSI (small computer systems interface) Differences Performance Parallelism
  • 30.
    Disk Device Driver Majorgoal: reduce seek time for disk accesses Schedule disk request to minimize disk arm movements
  • 31.
    Disk Arm SchedulingPolicies First come, first serve (FCFS): requests are served in the order of arrival + Fair among requesters - Poor for accesses to random disk blocks Shortest seek time first (SSTF): picks the request that is closest to the current disk arm position + Good at reducing seeks - May result in starvation
  • 32.
    Disk Arm SchedulingPolicies SCAN: takes the closest request in the direction of travel (an example of elevator algorithm) + no starvation - a new request can wait for almost two full scans of the disk
  • 33.
    Disk Arm SchedulingPolicies Circular SCAN (C-SCAN): disk arm always serves requests by scanning in one direction. Once the arm finishes scanning for one direction Returns to the 0th track for the next round of scanning
  • 34.
    First Come, FirstServe Request queue: 3, 6, 1, 0, 7 Head start position: 2 Total seek distance: 1 + 3 + 5 + 1 + 7 = 17 Tracks 0 5 4 3 2 1 6 7 Time
  • 35.
    Shortest Seek DistanceFirst Request queue: 3, 6, 1, 0, 7 Head start position: 2 Total seek distance: 1 + 2 + 1 + 6 + 1 = 10 Tracks 0 5 4 3 2 1 6 7 Time
  • 36.
    SCAN Request queue: 3,6, 1, 0, 7 Head start position: 2 Total seek distance: 1 + 1 + 3 + 3 + 1 = 9 Time Tracks 0 5 4 3 2 1 6 7
  • 37.
    C-SCAN Request queue: 3,6, 1, 0, 7 Head start position: 2 Total seek distance: 1 + 3 + 1 + 7 + 1 = 13 Time Tracks 0 5 4 3 2 1 6 7
  • 38.
    Look and C-Look Similarto SCAN and C-SCAN  the arm goes only as far as the final request in each direction, then turns around  Look for a request before continuing to move in a given direction.