180 likes | 197 Views
Device Mgmt. Device Management Organization. Multiple layers Application Operating System Driver Controller Device Tradeoffs of layering Loss of efficiency Increased generalization and flexibility
E N D
Device Management Organization • Multiple layers • Application • Operating System • Driver • Controller • Device • Tradeoffs of layering • Loss of efficiency • Increased generalization and flexibility • Reduced cost of maintenance and development for all (driver writers, O/S writers, app writers and users)
Device Management Organization-2 read,write read,write read,write Applications API Deviceindependent O/S DeviceDriver DeviceDriver DeviceDriver Devicedependent ControllerFirmware Devices
The API • Simple set of abstract operations • read, write, seek, control • Direct vs Sequential • Disks vs tapes, printers, etc • Block vs Character • Disk vs keyboard • Blocking vs Non-blocking
Handling I/O • Polling • Program loops until device signals completion • No other program can run • CPU runs, but no work gets done! • Interrupt driven • Program starts I/O • Program decides to wait or not • O/S switches to another thread or process
Key concepts • CPU cycles are wasted during a wait • Devices are independent • Multitasking (or threading) is possible • Why not overlap I/O with CPU • Threads can decide when to wait • Non-thread programs can also decide • System throughput is increased
Driver/Kernel Interface • Drivers merged with kernel (sometimes) • Kernel makes function calls to drivers • Kernel functions used by drivers: • Device allocation • Resource (e.g., memory) allocation • Scheduling • Others: depends on O/S
System bottlenecks • Compute bound processes • no devices get started until time-slice used up • Only one process/thread gets service • I/O bound processes • CPU under-utilized • Solution: • "Good" mix of applications • Pre-emptive scheduling (more later)
Overlapped I/O P1 Apps th1 th1 th1 th1 th1 P2 th2 th2 th2 Device t1 t2 t3 t4 t5 t6 t7 t8 t9 Non-Blocking I/O Blocking I/O
Buffering • Provides a means for speed-matching • Many methods • Lists • 1 way, 2 way, circular • Arrays • Fixed size • Variable size • Circular • Problems • Overflow • Protected access • Synchronization – more in another chapter
Example of using buffers Customer Office Water Company Returning the Empties Water Producer Water Consumers Production qty? Delivering Water Consumption qty? Inventory Classic "Producer-Consumer"
Hardware Buffering • In the Device controller • In the Device itself = "double-buffering" • Reduces system overhead from: • Buffer mgmt • Buffer content • Synchronizing
Disk I/O • Goal – minimize access time • Mixed solution: h/w & s/w = (X + Y*K) + latency + transfer • Seek time: head movement delay • for 1 cylinder (X) ≈10 ms (device dependent) • For Y cylinders = Y * K (K is device dependent) • Latency: rotational delay • 5400R/M*1M/60s= 90R/s .01 s/R = 10ms/R • 7200 R/M*1M/60s=120R/s .008 s/R= 8ms/R • Transfer time: delay between disk and RAM • Bus speed (currently) 400 Mhz or 800 Mhz • Access Time = seek + latency + transfer
Access Algorithms • FCFS • No optimization • SSTF – min seek from current position • Starvation can occur (from local minimization) • Scan/Look • No starvation • Requests may wait a full scan (0-n-0) • Circular Scan/Look • No starvation • Requires fast-reposition to 0
Serial I/O • Must convert • Parallel (bytes) to serial (bit-by-bit) • Digital (1/0) to analog (+/- voltages) • And back again at the other end • Protocol: RS-232
MS-bootable disk layout 0x00-0x02 jump inst to 0x1e 0x03-0x0a PC manufacturer name 0x0b-0x0c sectors/cluster 0x0d-0x0f reserved for boot record 0x10-0x10 # of FAT's 0x11-0x12 # root directory entries 0x13-0x14 # logical sectors 0x15-0x15 media descriptor 0x16-0x17 sectors/FAT 0x18-0x19 sectors/track 0x1a-0x10b # surfaces (heads) 0x1c-0x1d # hidden sectors 0x1e-… boot program
Mainframe Device Mgmt CPU Channel ControllerHardware Devices
Channel programming SIO devaddr Channel Program Seek Search Read/write Channel Address Word Device