1 / 52

Device Management and I/O Strategies in Computer Architecture

This announcement discusses signal handling in Unix, device management, device drivers, I/O strategies, and the difference between polling and interrupt-driven I/O.

Download Presentation

Device Management and I/O Strategies in Computer Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Outline • Announcements • Computer Architecture – continued • Signal handling in Unix • Device Management • Device Drivers • I/O Strategies • Polling vs. interrupt-driven I/O

  2. Announcements • We are going to have a quiz at the end of the class on Sept. 18, 2003 • Which is a week from today • It will be a closed book and closed notes quiz • It will cover • System calls and how to use them • Lecture notes up to next Tuesday (Sept. 16) • Related materials in the book COP4610

  3. Announcements – cont. • Next week’s recitation session (Sep. 17) will be optional • I will use that mainly to answer questions related to the first programming assignment • By today we should have covered everything you need to know in order to implement the assignment • You are not required to attend as I will not cover new materials • I will be in LOV 301 as we normally meet for recitation COP4610

  4. Announcements – cont. • Comments regarding the first programming assignment • You can use simple-shell.cc as a starting point or the code in the textbook • You can use the code segments from examples I distributed • Please note that you are not allowed to copy other’s work • Comments on Homework #1 COP4610

  5. Device Drivers • The part of OS that implements device management is called collectively as device manager, which includes device drivers and device driver infrastructure • Device drivers can be complex • However, the drivers for different devices implement a similar interface so that a higher-level component has a uniform interface for different devices COP4610

  6. write(…); … Device Interface Terminal Driver Printer Driver Disk Driver Terminal Controller Printer Controller Disk Controller Device Driver Interface COP4610

  7. Application Process System Interface File Manager Device-Independent Device-Dependent Hardware Interface Command Status Data Device Controller Device Management Organization COP4610

  8. I/O Strategies • Direct I/O • The CPU is responsible for determining when the I/O operation has completed and then for transferring the data between the primary memory and the device controller data registers • Polling or interrupt-driven I/O • This seems not effective for devices with large transfers, such as a disk drive • Direct Memory Access (DMA) COP4610

  9. Direct-Memory Access • Direct memory access controllers • Can read/write data directly from/to primary memory addresses with no CPU intervention after the driver has started the I/O operation COP4610

  10. Direct-Memory Access – cont. COP4610

  11. Direct-Memory Access – cont. COP4610

  12. I/O Strategies – cont. • Direct I/O or DMA for data transferring • Polling or interrupt-driven • I/O strategies • Direct I/O with polling • DMA I/O with polling • Not supported in general • Direct I/O with interrupts • DMA I/O with interrupts COP4610

  13. read(device, …); 1 Data System Interface read function 5 write function 2 3 4 Hardware Interface Command Status Data Device Controller Direct I/O with Polling COP4610

  14. busy done 0 0 idle 0 1 finished 1 0 working 1 1 (undefined) . . . busy done Error code . . . Command Status Data 0 Data 1 Logic Data n-1 Device Controllers – cont. COP4610

  15. // Start the device … While(busy == 1) wait(); // Device I/O complete … done = 0; Software busy done Hardware … while((busy == 0) && (done == 1)) wait(); // Do the I/O operation busy = 1; … Polling I/O COP4610

  16. read(device, …); 9 1 8b Data System Interface Device Status Table 4 7 Device Handler read driver 2 write driver 6 3 8a Interrupt Handler Hardware Interface 5 Command Status Data Device Controller Interrupt-Driven I/O COP4610

  17. Interrupt-Driven Versus Polling • In general, an interrupt-driven system will have a higher CPU utilization than a polling-based system • The CPU time on polling by one process may be utilized by another process to perform computation COP4610

  18. Comparison of Polling and Interrupt-Driven I/O Performance • Polling is normally superior from the viewpoint of a single process • Because overhand of polling is less • Interrupt-driven I/O approach gives better overall system performance COP4610

  19. I/O-CPU Overlap Through interrupt-driven I/O COP4610

  20. I/O-CPU Overlap – cont. • Sequential operation and overlapped operation COP4610

  21. I/O-CPU Overlap – cont. - I/O-CPU overlap through overlapped operation and polling COP4610

  22. I/O-bound and Compute-bound Processes • I/O-bound process • A process’s overall execution time is dominated by the time to perform I/O operations • Compute-bound process • A process’s time on I/O is small compared to the amount of time spent using the CPU • Many processes have I/O-bound and compute-bound phases COP4610

  23. Compute-bound Time I/O-bound Phases of a Process COP4610

  24. Device Manager Design • Device drivers • Application programming interface • Coordination among application processes, drivers, and device controllers • Performance optimization COP4610

  25. BSD UNIX Driver Functions COP4610

  26. The Kernel Interface COP4610

  27. funci(…) dev_func_i(devID, …) { // Processing common to all devices … switch(devID) { case dev0: dev0_func_i(…); break; case dev1: dev1_func_i(…); break; … case devM: devM_func_i(…); break; }; // Processing common to all devices … } Trap Table Device-Independent Function Call COP4610

  28. System call interface open(){…} read(){…} Entry Points for Device j etc. Other Kernel services Driver for Device j Re-configurable Device Drivers COP4610

  29. Handling Interrupts Device driver J Device interrupt handler J Device status table int read(…) { // Prepare for I/O save_state(J); out dev# // Done (no return) } void dev_handler(…) { get_state(J); //Cleanup after op signal(dev[j]); return_from_sys_call(); } J Interrupt Handler Device Controller COP4610

  30. Handling Interrupts – cont. Device driver J Device interrupt handler J int read(…) { … out dev# // Return after interrupt wait(dev[J}); return_from_sys_call(); } void dev_handler(…) { //Cleanup after op signal(dev[j]); } Interrupt Handler Device Controller COP4610

  31. CPU-device Interactions COP4610

  32. Device Management in Linux • While it builds on the same basic principles, it is more complex and with more details • There are a lot of device drivers included and you can also develop your own device drivers for specific purpose devices • Linux divides into char-oriented devices and block oriented devices • fs/blk_dev.c • fs/char_dev.c COP4610

  33. Buffering • Buffering • A technique to keep slower I/O devices busy during times when a process is not requiring I/O operations COP4610

  34. The Pure Cycle Water Company Customer Office Water Company Returning the Empties Water Producer Water Consumers Delivering Water COP4610

  35. Buffering – cont. COP4610

  36. Double Buffering COP4610

  37. Multiple Buffers - Producer-consumer problem COP4610

  38. Spooling • A spool is a buffer that holds output for a device that cannot accept interleaved data streams • Printer is an example COP4610

  39. Bus Generic Controller Communications Controller Local Device Cabling connecting the controller to the device Device • Printer • Modem • Network Communication Devices COP4610

  40. Randomly Accessed Devices COP4610

  41. Optimizing Access to Rotating Devices • Access time has three major components • Seek time – the time for the disk arm to move the heads to the cylinder containing the desired sector • Rotational latency – the additional time waiting for the disk to rotate the desired sector to the disk head • Transfer Time - time to copy bits from disk surface to memory COP4610

  42. 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 COP4610

  43. Optimizing Access to Rotating Devices • First-Come-First-Served (75), 66, 87, 93, 36, 23 • 52+ 64 + 51 + 57 + 27 = 251 steps COP4610

  44. Optimizing Access to Rotating Devices – cont. • Shortest-Seek-First-First • - SSTF: (75), 66, 87, 93, 36, 23 • 11 + 21 + 6 + 57 + 13 = 107 steps COP4610

  45. Optimizing Access to Rotating Devices – cont. • -Scan/Look • - 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 COP4610

  46. Optimizing Access to Rotating Devices – cont. • Circular Scan/ • Circular Look • 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 COP4610

  47. Serial Port CPU Memory Serial Device • Printer • Terminal • Modem • Mouse • etc. COP4610

  48. Device Driver API • Device Driver • Set UART parms • read/write ops • Interrupt hander Software on the CPU Bus Interface • UART API • parity • bits per byte • etc. Serial Device (UART) • RS-232 Interface • 9-pin connector • 4-wires • bit transmit/receive • ... Serial Port COP4610

  49. CPU • Dialing & connecting • Convert analog voice to/from digital • Convert bytes to/from bit streams • Transmit/receive protocol Memory Serial Device Modem Phone Switched Telephone Network Adding a Modem COP4610

  50. Device Driver • Set UART parms • read/write ops • Interrupt hander • Driver-Modem Protocol • Dialing & connecting • Convert analog voice to/from digital • Convert bytes to/from bit streams • Transmit/receive protocol Serial Device RS-232 Modem Serial Communication COP4610

More Related