Presentation is loading. Please wait.

Presentation is loading. Please wait.

Outline Device Management Device Manager Design Buffering

Similar presentations


Presentation on theme: "Outline Device Management Device Manager Design Buffering"— Presentation transcript:

1 Outline Device Management Device Manager Design Buffering
Device Drivers I/O Strategies Polling vs. interrupt-driven I/O Device Manager Design Buffering Optimizing Access for Rotating Devices Device Management in Linux

2 Announcements We are going to have a quiz at the end of the class on Sept. 18, 2003 It will be a closed book and closed notes quiz It will cover System calls and how to use them Lecture notes up to Today (Sept. 16) Related materials in the book Tomorrow’s recitation session is optional You are not required to come I will mainly answer questions related to Lab 1 4/6/2019 COP4610

3 Review: 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 4/6/2019 COP4610

4 Device Management Organization
Application Process File Manager Device Controller Command Status Data Hardware Interface System Interface Device-Independent Device-Dependent 4/6/2019 COP4610

5 Review: Direct I/O vs. Direct-Memory Access
4/6/2019 COP4610

6 Review: 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 4/6/2019 COP4610

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

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

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

10 Review: Interrupt Handling
At the end of each instruction cycle, we check if an interrupt has occurred 4/6/2019 COP4610

11 Interrupt-Driven Direct-Memory Access – cont.
4/6/2019 COP4610

12 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 4/6/2019 COP4610

13 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 4/6/2019 COP4610

14 I/O-CPU Overlap Through interrupt-driven I/O 4/6/2019 COP4610

15 I/O-CPU Overlap – cont. Sequential operation and overlapped operation
4/6/2019 COP4610

16 I/O-CPU Overlap – cont. - I/O-CPU overlap through overlapped operation
and polling 4/6/2019 COP4610

17 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 4/6/2019 COP4610

18 Phases of a Process Compute-bound I/O-bound Time 4/6/2019 COP4610

19 Device Manager Design Device drivers
Application programming interface Coordination among application processes, drivers, and device controllers Performance optimization 4/6/2019 COP4610

20 BSD UNIX Driver Functions
4/6/2019 COP4610

21 The Kernel Interface 4/6/2019 COP4610

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

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

24 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 4/6/2019 COP4610

25 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 4/6/2019 COP4610

26 CPU-device Interactions
4/6/2019 COP4610

27 Buffering Buffering A technique to keep slower I/O devices busy during times when a process is not requiring I/O operations Input buffering Output buffering 4/6/2019 COP4610

28 The Pure Cycle Water Company
Customer Office Water Company Returning the Empties Water Producer Water Consumers Delivering Water 4/6/2019 COP4610

29 Buffering – cont. 4/6/2019 COP4610

30 Double Buffering 4/6/2019 COP4610

31 Multiple Buffers - Producer-consumer problem 4/6/2019 COP4610

32 Spooling A spool is a buffer that holds output for a device that cannot accept interleaved data streams Printer is an example 4/6/2019 COP4610

33 Device Characteristics
Character devices vs. block devices Communication devices Sequentially accessed storage devices Randomly accessed storage devices 4/6/2019 COP4610

34 Communication Devices
Generic Controller Local Device Communications Cabling connecting the controller to the device Printer Modem Network Bus 4/6/2019 COP4610

35 Randomly Accessed Devices
4/6/2019 COP4610

36 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 4/6/2019 COP4610

37 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 4/6/2019 COP4610

38 Optimizing Access to Rotating Devices
First-Come-First-Served (75), 66, 87, 93, 36, 23 = 251 steps 4/6/2019 COP4610

39 Optimizing Access to Rotating Devices – cont.
Shortest-Seek-First-First - SSTF: (75), 66, 87, 93, 36, 23 = 107 steps 4/6/2019 COP4610

40 Optimizing Access to Rotating Devices – cont.
-Scan/Look - Scan: (75), 87, 93, 99, 66, 36, 23 = 100 steps - Look: (75), 87, 93, 66, 36, 23 = 87 steps 4/6/2019 COP4610

41 Optimizing Access to Rotating Devices – cont.
Circular Scan/ Circular Look Circular Scan: (75), 87, 93, 99, 23, 36, 66 home = 90 + home Circular Look: (75), 87, 93, 23, 36, 66 home = 84 + home 4/6/2019 COP4610

42 Serial Port Printer Terminal Modem Mouse etc. CPU Serial Memory Device
4/6/2019 COP4610

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

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

45 Serial Communication Device Driver Serial Device RS-232 Modem
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 4/6/2019 COP4610

46 Exploiting the Phone Network
Comm Device Memory CPU Modem Phone Switched Telephone Network Logical Communication 4/6/2019 COP4610

47 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 4/6/2019 COP4610

48 Summary Device Management Organization I/O Strategies
Device is the bottleneck for I/O-bound processes Overlap between I/O and CPU will increase the system’s throughput rate Buffering Access Optimization for Disks 4/6/2019 COP4610


Download ppt "Outline Device Management Device Manager Design Buffering"

Similar presentations


Ads by Google