280 likes | 291 Views
This chapter introduces the concepts of I/O devices, disk storage, buses, and performance measures, as well as discussing the goals and constraints of I/O systems. It also covers the anatomy of a disk drive, reliability considerations, and RAID techniques for improving disk performance and reliability. Additionally, it explores the connectivity of I/O devices through buses and synchronization methods.
E N D
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, …
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
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?