Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMSC 421 Section 0202 I/O Systems Chapter 13: I/O Systems.

Similar presentations


Presentation on theme: "CMSC 421 Section 0202 I/O Systems Chapter 13: I/O Systems."— Presentation transcript:

1 CMSC 421 Section 0202 I/O Systems Chapter 13: I/O Systems

2 Silberschatz, Galvin and Gagne  2002 13.2 Operating System Concepts Outline I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Streams Performance

3 Silberschatz, Galvin and Gagne  2002 13.3 Operating System Concepts I/O Hardware There is an incredible variety in I/O devices There are shared common concepts  Device communicates with system using a connection point  Port  Bus (daisy chain or shared direct access)  Controller (host adapter)  Handshake between CPU and device controller done with polling/interrupts  Offloading to DMA for large I/O Device-registers (control, state, data) accessible via the controller of device allow a computer to control a device I/O instructions control devices Devices have addresses, used by  Direct I/O instructions  Memory-mapped I/O

4 Silberschatz, Galvin and Gagne  2002 13.4 Operating System Concepts A Typical PC Bus Structure

5 Silberschatz, Galvin and Gagne  2002 13.5 Operating System Concepts Device I/O Port Locations on PCs (partial)

6 Silberschatz, Galvin and Gagne  2002 13.6 Operating System Concepts Polling Computer system determines state of device using  Polling  Interrupts Polling determines state of device using certain commands  command-ready bit  Busy bit  Error bit  Command register  Data in/out registers Busy-wait cycle to wait for I/O from device

7 Silberschatz, Galvin and Gagne  2002 13.7 Operating System Concepts Interrupts CPU’s Interrupt Request Line is triggered by I/O device, and CPU checks after each instruction, and device sets interrupt address  Device raises interrupt  CPU catches interrupt and dispatches it  Handler clears the interrupt Interrupt handler receives interrupts Maskable to ignore or delay some interrupts Interrupt vector to dispatch interrupt to correct handler  Based on priority  Some unmaskable  Chaining of handlers Interrupt mechanism also used for exceptions

8 Silberschatz, Galvin and Gagne  2002 13.8 Operating System Concepts Interrupt-Driven I/O Cycle

9 Silberschatz, Galvin and Gagne  2002 13.9 Operating System Concepts Intel Pentium Processor Event-Vector Table

10 Silberschatz, Galvin and Gagne  2002 13.10 Operating System Concepts Direct Memory Access Used to avoid programmed I/O for large data movement Requires DMA controller Bypasses CPU to transfer data directly between I/O device and memory CPU writes DMA control block DMA controller interacts with device using  DMA-request raised by device to signal the DMA controller that device has data  DMA-acknowledge raised by DMA to tell device to put data on data bus

11 Silberschatz, Galvin and Gagne  2002 13.11 Operating System Concepts Six Step Process to Perform DMA Transfer

12 Silberschatz, Galvin and Gagne  2002 13.12 Operating System Concepts Application I/O Interface I/O system calls encapsulate device behaviors in generic classes Device-driver layer hides differences among I/O device controllers from kernel Devices vary in many dimensions  Character-stream or block  Sequential or random-access  Sharable or dedicated  Speed of operation  read-write, read only, or write only

13 Silberschatz, Galvin and Gagne  2002 13.13 Operating System Concepts A Kernel I/O Structure

14 Silberschatz, Galvin and Gagne  2002 13.14 Operating System Concepts Characteristics of I/O Devices

15 Silberschatz, Galvin and Gagne  2002 13.15 Operating System Concepts Block and Character Devices Block devices include disk drives  Commands include read, write, seek  Raw I/O (device is viewed as a linear array of logical blocks) or file-system access  Memory-mapped file access possible  Executing a program can be done with memory- mapping of the executable to VM Character devices include keyboards, mice, serial ports  Commands include get, put  Libraries layered on top allow line editing

16 Silberschatz, Galvin and Gagne  2002 13.16 Operating System Concepts Network Devices Varying enough from block and character to have own interface Unix and Windows NT/9x/2000 include socket interface  Similar to electric sockets  Local and remote sockets and connecting them with addresses  Separates network protocol from network operation  Includes select functionality that manage a set of sockets and informs the CPU which socket have data or are ready to accept more data Approaches vary widely  pipes, FIFOs, streams, queues, mailboxes

17 Silberschatz, Galvin and Gagne  2002 13.17 Operating System Concepts Clocks and Timers Provide current time, elapsed time, timer Programmable Interval Timer can be used for implementing timers (via periodic interrupts)  OS can implement many timers using a single Programmable timer ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers

18 Silberschatz, Galvin and Gagne  2002 13.18 Operating System Concepts Blocking and Nonblocking I/O Blocking - process suspended until I/O completed  Easy to use and understand  Insufficient for some needs Nonblocking - I/O call returns as much data as available  User interface, data copy (buffered I/O)  Implemented via multi-threading  Returns quickly with count of bytes read or written Asynchronous - process runs while I/O executes  Difficult to use  I/O subsystem signals process when I/O completed

19 Silberschatz, Galvin and Gagne  2002 13.19 Operating System Concepts Kernel I/O Subsystem Scheduling to improve performance  Some I/O request ordering via per-device queue  Some OSs try fairness Buffering - store data in memory while transferring between devices  To cope with device speed mismatch  To cope with device transfer size mismatch  To maintain “copy semantics”  To allow programmer to overwrite user I/O buffer as soon as I/O command returns, without having to worry about when data have been output to the device  Can also be implemented with VM and copy-on-write

20 Silberschatz, Galvin and Gagne  2002 13.20 Operating System Concepts Sun Enterprise 6000 Device-Transfer Rates

21 Silberschatz, Galvin and Gagne  2002 13.21 Operating System Concepts Kernel I/O Subsystem Caching - fast memory holding copy of data  Always just a copy  Key to performance  Sometimes can be used together with buffering Spooling - hold output for a device  If device can serve only one request at a time  i.e., printers, tape drives, etc Device reservation - provides exclusive access to a device  System calls for allocation and deallocation of devices  Watch out for deadlocks

22 Silberschatz, Galvin and Gagne  2002 13.22 Operating System Concepts 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

23 Silberschatz, Galvin and Gagne  2002 13.23 Operating System Concepts Kernel Data Structures Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many, many complex data structures to track buffers, memory allocation, “dirty” blocks, etc Some use object-oriented methods and message passing to implement I/O

24 Silberschatz, Galvin and Gagne  2002 13.24 Operating System Concepts UNIX I/O Kernel Structure

25 Silberschatz, Galvin and Gagne  2002 13.25 Operating System Concepts 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

26 Silberschatz, Galvin and Gagne  2002 13.26 Operating System Concepts Life Cycle of An I/O Request

27 Silberschatz, Galvin and Gagne  2002 13.27 Operating System Concepts STREAMS STREAM – a full-duplex communication channel between a user-level process and a device A STREAM consists of:  STREAM head that interfaces with the user process using read/write or get/put message in a synchronous manner  driver end that interfaces with the device  and zero or more STREAM modules between them, that communicate via message passing in asynchronous manner Each module contains a read queue and a write queue Message passing is used to communicate between queues, and may implement flow control STREAMs provide a modular and incremental approach to developing device drivers and protocols

28 Silberschatz, Galvin and Gagne  2002 13.28 Operating System Concepts The STREAMS Structure

29 Silberschatz, Galvin and Gagne  2002 13.29 Operating System Concepts Performance I/O is 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

30 Silberschatz, Galvin and Gagne  2002 13.30 Operating System Concepts Intercomputer Communications

31 Silberschatz, Galvin and Gagne  2002 13.31 Operating System Concepts 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 But where should I/O functionality be implemented?  User process?  Kernel?  Device driver?  Device controller?

32 Silberschatz, Galvin and Gagne  2002 13.32 Operating System Concepts Device-Functionality Progression


Download ppt "CMSC 421 Section 0202 I/O Systems Chapter 13: I/O Systems."

Similar presentations


Ads by Google