04/18/2007CSCI 315 Operating Systems Design1 Mass Storage Structure Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating Systems Concepts with Java, by Silberschatz, Galvin, and Gagne (2007). Many, if not all, of the illustrations contained in this presentation come from this source.
04/18/2007CSCI 315 Operating Systems Design2 Output without Spooling printer process A process B process C A text B text A text C text A text (A text, time=0), (A text, time=1), (A text, time=2), (A text, time=4), (A text, time=5), (A text, time=7), (A text, time=8), (A text, time=9) (B text, time=3) (C text, time=6)
04/18/2007CSCI 315 Operating Systems Design3 Output with Spooling printer process A process B process C A text B text A text C text A text (A text, time=0), (A text, time=1), (A text, time=2), (A text, time=4), (A text, time=5), (A text, time=7), (A text, time=8), (A text, time=9) (B text, time=3) (C text, time=6) Spooler
04/18/2007CSCI 315 Operating Systems Design4 Error Handling OS can recover from disk read, device unavailable, transient write failures. Most return an error number or code when I/O request fails. System error logs hold problem reports.
04/18/2007CSCI 315 Operating Systems Design5 I/O Requests to Hardware Operations Consider reading a file from disk for a process: –Determine device holding file. –Translate name to device representation. –Physically read data from disk into buffer. –Make data available to requesting process. –Return control to process.
04/18/2007CSCI 315 Operating Systems Design6 Life Cycle of An I/O Request
04/18/2007CSCI 315 Operating Systems Design7 Performance I/O a major factor in system performance: –Demands CPU to execute device driver, kernel I/O code. –Context switches due to interrupts. –Data copying. –Network traffic especially stressful.
04/18/2007CSCI 315 Operating Systems Design8 Intercomputer Communications
04/18/2007CSCI 315 Operating Systems Design9 Improving Performance Reduce number of context switches. Reduce data copying. Reduce interrupts by using large transfers, smart controllers, polling. Use DMA. Balance CPU, memory, bus, and I/O performance for highest throughput.
04/18/2007CSCI 315 Operating Systems Design10 Device-Functionality Progression
04/18/2007CSCI 315 Operating Systems Design11 Disk Structure sector track read/write head arm direction of rotation direction of movement Points to consider: Sector sizes (number of bits per sector) should be fixed. The density of the magnetic material is constant on the surface of the disk. Size of the sector gets smaller as the radius of the track gets smaller. The disk rotates at a constant speed. To find a block, the head is moved to the appropriate track, and then the correct sector is found as the disk rotates. Organization of a disk surface
04/18/2007CSCI 315 Operating Systems Design12 Disk Structure sector track read/write head arm direction of rotation direction of movement The disk rotation is given in rotations per minute (RPM). The time to find a track is proportional to the distance the head must travel. The average time to find a sector within a track is roughly half the time for a full rotation. Question: If the time to move from track i to track (i+1) is given by , assuming that the disk head is at track 0 (all the way out), could you calculate the time to get to sector 4 in track 5? Organization of a disk surface
04/18/2007CSCI 315 Operating Systems Design13 Disk Structure direction of movement direction of rotation Multi-surface disk arm read/write heads cylinder A cylinder is the collection of all the same tracks across all the multiple disk surfaces. There is a time associated with turning heads on and off so that a different surface can be accessed. We call this overhead the head- switching time. The time to move the arm to read another cylinder is due to the mechanics of the arm. It is certainly much large than the head-switching time, which is due to electronics only. Question: How should one organize data across multiple surfaces to minimize access overhead?
04/18/2007CSCI 315 Operating Systems Design14 Disk Scheduling