370 likes | 503 Views
I/O. Chapter 8. Outline. Introduction - 8.1 Disk Storage and Dependability – 8.2 Buses and other connectors – 8.4 I/O performance measures – 8.6. Input / Ouput devices. Communicate between human and computer keyboard, mouse, printer, game controllers, …
E N D
I/O Chapter 8
Outline • Introduction - 8.1 • Disk Storage and Dependability – 8.2 • Buses and other connectors – 8.4 • I/O performance measures – 8.6
Input / Ouput devices • Communicate between human and computer • keyboard, mouse, printer, game controllers, … • Store more than what is on processor • hard drive, thumb drive, … • Enhanced functionality • music, video, …
Constraints • Users intolerant of lost data • Unknown (non-standard) devices • Slow devices (relatively speaking)
Goals • Dependability • Expandability
Taxonomy • Behavior – • Input (read once) • Output (write once, never read) • Storage (read / write / carries state) • Partner • Human or machine on other side? • Data rate (speed) • peak data transfer rate
Measures of Performance • Response time • latency – time a user must wait for task • Bandwidth • I/O operations per unit time • Data transferred per unit time
Outline • Introduction - 8.1 • Disk Storage and Dependability – 8.2 • Buses and other connectors – 8.4 • I/O performance measures – 8.6
Vocabulary • Head – the device that reads data from a disk • Each disk is divided into ________ _______ called _________ • Each track is made up of _________ • cylinder – volume of all _______ that lie under the heads at a given point on all surfaces • nonvolatile – data that remains even when ______ is removed Concentric circles tracks sectors tracks power
Vocabulary • seek – the act of positioning the _____ over the correct ________ • rotational delay or latency – average latency to rotate disk to put the ______ over the correct _______ • transfer time – time required to _________ a block of data • disk controller – controls disk accesses head track head sector send / receive
Example 1 - Performance • What is the average time to read or write a 512-byte sector for a typical disk rotating at 10,000 RPM? The advertised average seek time is 6 ms, the transfer rate is 50 MB/sec, and the controller overhead is 0.2 ms. Assume that the disk is idle, so that there is no waiting time.
seek time: 6ms • rotational delay: ½ rev * 1min / 10,000 rev • transfer time: 512 B * 1 sec / 50*1024*1024 B • controller overhead = 0.2ms • 6ms + 3ms + 0.01ms + 0.2ms = 9.21ms
Reliability • Reliability – measure of a continuously working system • Availability – how often, on average, the system is working properly • MTTF – Mean Time to Failure • MTTR – Mean Time to Repair • MTBF – Mean time between failures
Availability • Availability – how often, on average, the system is working properly • Availability = MTTF / (MTTF + MTTR)
Improving MTTF • Fault avoidance • Fault tolerance • Fault forecasting preventing fault occurrence by construction using redundancy to continue executing in the presence of faults (usually hardware faults) predicting the presence and creation of faults (hardware & software faults)
RAID - Redundant Arrays of Inexpensive Disks • Shift from one large disk to several small disks • Cheaper, smaller, faster • Inherently less reliable • Provide redundancy to counteract lower reliability
RAID 0 • No redundancy!!! • Only a performance increase • Striping (interleaving) – allocation of logically sequential blocks to separate disks to increase performance • Parallel access controlled by disk controller – computer knows nothing about it.
RAID 1 • mirroring – write the identical data to multiple disks • Requires twice as many disks as RAID 0 • If a disk fails, use the backup copy, move to a working set of mirrored space.
RAID 3 • Bit-interleaved parity • Store only enough data to recover original • Group N blocks • Add one bit of parity – xor of all bits. • Lost data can be reconstructed by looking at the rest of the bits in the group.
On a write • Read all blocks of data in parity group • Calculate new parity • Write new block • Write new parity
RAID 4 • More efficient parity update • On write: • Read old data • xor with new data • adjust parity • Write parity, Write new data
RAID 5 • Rotate parity blocks around system • Spread out writing (since parity always written)
Summary • RAID 1 and RAID 5 most common • 80% of server disks use RAID • Repair: • hot swapping – replace disks with power on • Standby spares – spares included in system for immediate reconstruction of data
Outline • Introduction - 8.1 • Disk Storage and Dependability – 8.2 • Buses and other connectors – 8.4 • I/O performance measures – 8.6
Connecting I/O Devices • Much slower than processor / memory • Support lots of heterogeneous devices
Bus • control lines – send / receive commands • data lines – transfer data • processor-memory bus – fast, small bus connecting DRAM to processor • I/O bus – slow, long bus connecting many devices to system through a controller.
Synchrony • Synchronous – clock in control line, fixed protocol is relative to clock. • Asynchronous – no clock – must coordinate through hand-shaking to determine when data is ready to send / receive. • split transaction protocol – bus is released between data request and data response
hand-shaking • Series of steps used to coordinate bus transfers. Both parties must acknowledge they are ready before moving to next step. • Control lines: • ReadReq: proc/device wants to read • DataRdy: dev/proc is ready to send data • Ack: acknowledge ReadReq or DataRdy
Handshaking protocol ReadReq 1 3 Data Address Data 0: Request 2 4: Response 6 Ack 5 7 DataRdy
Outline • Introduction - 8.1 • Disk Storage and Dependability – 8.2 • Buses and other connectors – 8.4 • I/O performance measures – 8.6
Metric Units • Memory: GB = 2^30 • I/O: GB = 10^9 • Be careful when reading specs • For this class, we will pretend that all use base-2 units.
Measuring Performance • Throughput more important than latency • Large database operations (TP – Transaction Processing)
Example 1 • Execution time = 100 seconds • 90 seconds CPU time, 10 sec I/O time • CPU time improves by 50%/yr for 5 years • I/O does not improve • How much faster is program after 5 years? • What percentage of new time is I/O?
New CPU time: 90 / (1.5^5) = 12 seconds • CPU improvement: 90/12 = 7.5 speedup • Overall improvement: 100/22 = 4.5 speedup • Now I/O is 10/22 = 45% of total time
Example 2 • System A: • .005 sec per I/O op • 4 overlapping I/O ops at a time • System B: • .002 sec per I/O op • no overlapping I/O ops • Which has the higher throughput?
Throughput: 4 ops / 0.005 sec = 800 ops/sec • Throughput: 1 op / 0.002 sec = 500 ops / sec