220 likes | 304 Views
5. Device Management. Input/Output Devices. Output Device. Processor. Input Device. The Device Driver Interface. … write(…); …. Device Interface. Terminal Driver. Printer Driver. Disk Driver. Terminal Controller. Printer Controller. Disk Controller.
E N D
5 DeviceManagement Operating Systems: A Modern Perspective, Chapter 5
Input/Output Devices Output Device Processor Input Device Operating Systems: A Modern Perspective, Chapter 5
The Device Driver Interface … write(…); … Device Interface Terminal Driver Printer Driver Disk Driver Terminal Controller Printer Controller Disk Controller Operating Systems: A Modern Perspective, Chapter 5
Device Management Organization Application Process System Interface File Manager Device-Independent Device-Dependent Hardware Interface Command Status Data Device Controller Operating Systems: A Modern Perspective, Chapter 5
System Call Interface • Functions available to application programs • Abstract all devices (and files) to a few interfaces • Make interfaces as similar as possible • Block vs character • Sequential vs direct access • Device driver implements functions (one entry point per API function) Operating Systems: A Modern Perspective, Chapter 5
Example: BSD UNIX Driver open Prepare dev for operation close No longer using the device ioctl Character dev specific info read Character dev input op write Character dev output op strategy Block dev input/output ops select Character dev check for data stop Discontinue a stream output op Operating Systems: A Modern Perspective, Chapter 5
Overlapping the Operation of a Device and the CPU . . . startRead(dev_I, “%d”, x); . . . While(stillReading()) ; y = f(x) . . . . . . read(dev_I, “%d”, x); y = f(x) . . . Data on device Variable x Register Device dev_I Memory CPU Operating Systems: A Modern Perspective, Chapter 5
Overlapping CPU-Controller Operations in a Process App I/O Ctlr t1 t2 t3 t4 t5 t6 t7 t8 t9 Operating Systems: A Modern Perspective, Chapter 5
Overlapping Processing and I/O App 1 App 2 I/O Ctlr t1 t2 t3 t4 Operating Systems: A Modern Perspective, Chapter 5
Driver-Kernel Interface • Drivers are distinct from main part of kernel • Kernel makes calls on specific functions, drivers implement them • Drivers use kernel functions for: • Device allocation • Resource (e.g., memory) allocation • Scheduling • etc. (varies from OS to OS) Operating Systems: A Modern Perspective, Chapter 5
The Pure Cycle Water Company Customer Office Water Company Returning the Empties Water Producer Water Consumers Delivering Water Operating Systems: A Modern Perspective, Chapter 5
Hardware Buffering Process Process Process Controller Controller Controller Data A B A B Device Device Device Process reads bi-1 Controller reads bi Process reads bi Controller reads bi+1 Unbuffered Operating Systems: A Modern Perspective, Chapter 5
Double Buffering in the Driver Process Process A B A B Driver Controller Controller A B A B Hardware Device Device Operating Systems: A Modern Perspective, Chapter 5
Circular Buffering To data consumer Buffer i Buffer j From data producer Operating Systems: A Modern Perspective, Chapter 5
Rotating Media Cylinder (set of tracks) Track (Cylinder) Sector (a) Multi-surface Disk (b) Disk Surface (b) Cylinders Operating Systems: A Modern Perspective, Chapter 5
Storage Device Device Driver API • Driver • Get disk description • Set SCSI parms • read/write ops • Interrupt hander • SCSI API • commands • bits per byte • etc. Controller (SCSI) Magnetic Disk Operating Systems: A Modern Perspective, Chapter 5
Compute vs I/O Bound Compute-bound Time I/O-bound Operating Systems: A Modern Perspective, Chapter 5
Disk Optimizations • Transfer Time: Time to copy bits from disk surface to memory • Disk latency time: Rotational delay waiting for proper sector to rotate under R/W head • Disk seek time: Delay while R/W head moves to the destination track/cylinder • Access Time = seek + latency + transfer Operating Systems: A Modern Perspective, Chapter 5
Optimizing Seek Time • Multiprogramming on I/O-bound programs => set of processes waiting for disk • Seek time dominates access time => minimize seek time across the set • Tracks 0:99; Head at track 75, requests for 23, 87, 36, 93, 66 • FCFS: 52+ 64 + 51 + 57 + 27 = 251 steps Operating Systems: A Modern Perspective, Chapter 5
Optimizing Seek Time (cont) • Requests = 23, 87, 36, 93, 66 • SSTF: (75), 66, 87, 93, 36, 23 • 9 + 21 + 6 + 57 + 13 = 106 steps • Scan: (75), 87, 93, 99, 66, 36, 23 • 12 + 6 + 6 + 33 + 30 + 13 = 100 steps • Look: (75), 87, 93, 66, 36, 23 • 12 + 6 + 27 + 30 + 13 = 87 steps Operating Systems: A Modern Perspective, Chapter 5
Optimizing Seek Time (cont) • Requests = 23, 87, 36, 93, 66 • Circular Scan: (75), 87, 93, 99, 23, 36, 66 • 12 + 6 + 6 + home + 23 + 13 + 30 = 90 + home • Circular Look: (75), 87, 93, 23, 36, 66 • 12 + 6 + home + 23 + 13 + 30 = 84 + home Operating Systems: A Modern Perspective, Chapter 5