I/O – Chapter 8 • • • • Introduction - 8.1 Disk Storage and Dependability – 8.2 Buses and other connectors – 8.4 I/O performance measures – 8.6 Input / Ouput devices • __________________________________ – keyboard, mouse, printer, game controllers, … • __________________________________ – hard drive, zip drive, … • __________________________________ – music, video, … Goals & Constraints Taxonomy • Behavior – – Input (____________) – Output (_______________________) – Storage (______________________________) • Partner – Human or machine on other side? • Data rate (speed) – ______________________________________ Measures of Performance • Response time – __________ – time a user must wait for task • Bandwidth – _________________ per unit time – _________________ per unit time Anatomy of a Disk Drive Vocabulary • Head – the device that reads data from a disk • Each disk is divided into ________ _______ called _________ • Each track is made up of _________ sectors • cylinder – volume of all _______ that lie under the heads at a given point on all surfaces • nonvolatile – data that remains even when ______ is removed Vocabulary • seek – the act of positioning the _____ over the correct ________ • rotational delay or latency – average latency to rotate the ______ over the correct _______ • transfer time – time required to _________ a block of data • disk controller – controls disk accesses 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. 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 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 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 • ___________________ – clock in control line, fixed protocol is relative to clock. • _______________________ – no clock – must coordinate through hand-shaking to determine when data is ready to send / receive. hand-shaking • Series of steps used to coordinate bus transfers. Both parties must acknowledge they are ready before moving to next step. • Control lines: • ReadyReq: proc/device wants to read • DataRdy: dev/proc is ready to send data • Ack: acknowledge ReadReq or DataRdy 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. • 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? 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?