COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10...

34
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran and William D. Leahy Jr.

Transcript of COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10...

Page 1: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

COMPUTER SYSTEMSAn Integrated Approach to Architecture and Operating Systems

Chapter 10Input/Output and Stable Storage

©Copyright 2008 Umakishore Ramachandran and William D. Leahy Jr.

Page 2: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.1 Communication between the CPU and the I/O devices

Device Controller

Input/Output Device

Computer

Page 3: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.1.1 Device controller

Page 4: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.1.2 Memory Mapped I/O

CPU

Main memory

Address

Data

Data register(address = 5000)

Ready

0 7

IF IE …

0 7

Keyboard controller

Status register(address = 5002)

Page 5: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.2 Programmed I/O

Page 6: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.3 DMA

Command

DMA controller

Buffer 256 bytes

Status

Device address Memory buffer address

Count

Memory

Memory bus

CPU

Go

Page 7: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.4 Buses

• System Bus (or Memory Bus) is key resource in entire design.

• Functionally, bus has following components:– Address lines– Data lines– Command lines– Interrupt lines– Interrupt acknowledge lines– Bus arbitration lines

Page 8: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.4 Buses

Memory

System bus

CPU

PCI bus

Controller

Bridge

Controller Controller

Page 9: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.5 I/O Processor

SharedMemory

System bus

CPU

I/O bus

Controller

I/O processor

Controller Controller

Bridge

Page 10: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.6 Device Driver

Page 11: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.6.1 An ExampleCommand Controller Actionpan(±ɵ) Pan the camera view by ±ɵtilt(±ɵ) Tilt camera position by ±ɵzoom(±z) Zoom camera focus by ±zStart Start camera Stop Stop cameramemory buffer(M)

Set memory buffer address for data transfer to M

number of frames (N)

Set number of frames to be captured and transferred to memory to N

enable interrupt Enable interrupt from the devicedisable interrupt

Disable interrupt from the device

start DMA Start DMA data transfer from camera

Page 12: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.6.1 An Example// device driver: camera// The device driver performs several functions:// control_camera_position;// convey_DMA_parameters;// start/stop data transfer;// interrupt_handler;// error handling and reporting;

// Control camera positioncamera_position_control

(angle pan_angle; angle tilt_angle; int z) {pan(pan_angle);tilt(tilt_angle);zoom(z);

}  // Set up DMA parameters for data transfercamera_DMA_parameters(address mem_buffer;int num_frames) {

memory_buffer(mem_buffer);capture_frames(num_frames);

}

Page 13: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.6.1 An Example// Start DMA transfercamera_start_data_transfer() {

start_camera();start_DMA();

} // Stop DMA transfercamera_stop_data_transfer() {

// automatically aborts data transfer// if camera is stopped;stop_camera();

} // Enable interrupts from the devicecamera_enable_interrupt() {

enable_interrupt();} // Disable interrupts from the devicecamera_disable_interrupt() {

disable_interrupt();}

Page 14: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.6.1 An Example// Device interrupt handlercamera_interrupt_handler() {

// This will be coded similar to any// interrupt handler we have seen in// chapter 4.//// The upshot of interrupt handling may// to deliver “events” to the upper layers// of the system software (see Figure 10.9)// which may be one of the following:// - normal I/O request completion// - device errors for the I/O request//

}

Page 15: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.7 Peripheral DevicesDevice Input/output Human in

the loopData rate (circa 2008)

PIO DMA

Keyboard Input Yes 5-10 bytes/sec XMouse Input Yes 80-200 bytes/sec XGraphics display Output No 200-350 MB/sec XDisk (hard drive) Input/Output No 100-200 MB/sec X

Network (LAN) Input/Output No 1 Gbit/sec X

Modem Input/Output No 1-8 Mbit/sec X

Inkjet printer Output No 20-40 KB/sec X XLaser printer Output No 200-400 KB/sec XVoice (microphone/speaker)

Input/Output Yes 10 bytes/sec X

Audio (music) Output No 4-500 KB/sec XFlash memory Input/Output No 10-50 MB/sec X

CD-RW Input/Output No 10-20 MB/sec X

DVD-R Input No 10-20 MB/sec X

Page 16: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.8 Disk Storage

Head AssemblyAll heads move

together Platter

Sector

Top and bottom Surfaces

Head Spindle Track

Shaft Arm

Page 17: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.8 Disk Storage

Cylinder X: Track X

from all 12 surfaces

(2 per platter)

Each circle represents

two tracks: one for top surface

and one for bottom surface

Page 18: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.8 Disk Storage

(a) Normal (Non zoned) recording (b) Zoned recording

Page 19: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.8.1 Saga of Disk Technology

Disk recording: (a) Longitudinal recording; (b) PMR

Page 20: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9 Disk Scheduling AlgorithmsName Notation Units Description

Throughput n/T Jobs/sec System-centric metric quantifying the number of I/O requests n executed in time interval T

Avg. Turnaround time (tavg)

(t1+t2+…+tn)/n Seconds System-centric metric quantifying the average time it takes for a job to complete

Avg. Waiting time (wavg)

((t1-e1) + (t2-e2)+ … + (tn-en))/n or(w1+w2+ … +wn)/n

Seconds System-centric metric quantifying the average waiting time that an I/O request experiences

Response time/ turnaround time

ti Seconds User-centric metric quantifying the turnaround time for a specific I/O request i

Name Notation Units DescriptionVariance in Response time

E[(ti – tavg)2] Seconds2

User-centric metric that quantifies the statistical variance of the actual response time (ti) experienced by an I/O request i from the expected value (tavg)

Variance in Wait time

E[(wi – wavg)2] Seconds2

User-centric metric that quantifies the statistical variance of the actual wait time (wi) experienced by an I/O request i from the expected value (wavg)

Starvation - - User-centric qualitative metric that signifies denial of service to a particular I/O request or a set of I/O request due to some intrinsic property of the I/O scheduler

Page 21: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

Assumptions for Disk Scheduling Algorithms

• Disk has 200 tracks numbered 0 to 199 – (with 0 being outermost and 199 being

innermost). • Head when in its fully retracted position is on

track 0. • Head assembly extends to its maximum span

from its resting position when it is on track 199.

Page 22: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.1 First-Come First Served

t3 t1 t4 t2

head

Page 23: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.2 Shortest Seek Time First

t3 t1 t4 t2

head

Page 24: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.3 Scan (elevator algorithm)

t3 t1 t4 t2 head

Outermost track Innermost

track

t6 t5

Page 25: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.4 C-Scan (Circular Scan)

t3 t1 t4 t2 head

Outermost track Innermost

track

t6

t5

Retract

Page 26: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.5 Look and C-Look

Page 27: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.6 Disk Scheduling Summary

• Choice of scheduling algorithm depends on a number of factors including expected layout, storage allocation policy, and electro-mechanical capabilities of disk drive.

• Typically, some variant of LOOK or C-LOOK is used for disk scheduling. We covered other algorithms more from the point of completeness than as viable choices for implementation in a real system.

Page 28: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.9.7 Comparison of the Algorithms

RequestsFCFS

Response time SSFT

LOOK

R1 (cyl 20) 3 7 155R2 (cyl 17) 6 10 158R3 (cyl 55) 44 48 32R4 (cyl 35) 64 28 12R5 (cyl 25) 74 2 2R6 (cyl 78) 127 71 55R7 (cyl 99) 148 92 76Average 66.4 36 70

Page 29: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.10 Solid State Drive

Page 30: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.11 Evolution of I/O Buses and Device Drivers

• Plug and Play (Solves 3rd party problem)• Parallel Buses (e.g. PCI)• Serial Buses

– USB (Microsoft/Intel)• USB 1.0: 1.5Mb/s• USB 2.0: 60Mb/s

– Firewire (Apple)• 100 Mb/s

– Why serial?• Smaller• Cheaper• No cross-talk• Serial signaling can be operated faster than parallel (Higher frequencies)

• Graphics Connections (connecting 3-D graphics controller card to motherboard)– Advanced Graphics Port (AGP)– PCI Express (PCI-e)

Page 31: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.11.1 Dynamic Loading of Device Drivers

• Device drivers can be Plug and Play• New device is connected, generates interrupt• OS looks through its list of device drivers and

finds correct one*• Dynamically Loads and links driver into

memory

*If no driver found has to request user supply driver

Page 32: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.11.2 Putting it all Together

Page 33: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.11.2 Putting it all Together

Page 34: COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 10 Input/Output and Stable Storage ©Copyright 2008 Umakishore Ramachandran.

10.12 Summary

• Mechanisms for communication between processor and I/O devices including programmed I/O and DMA.

• Device controllers and device drivers.• Buses in general and evolution of I/O buses in

particular, found in modern computer systems.

• Disk storage and disk-scheduling algorithms.