Presentation is loading. Please wait.

Presentation is loading. Please wait.

I/O Systems CSCI 444/544 Operating Systems Fall 2008.

Similar presentations


Presentation on theme: "I/O Systems CSCI 444/544 Operating Systems Fall 2008."— Presentation transcript:

1 I/O Systems CSCI 444/544 Operating Systems Fall 2008

2 Agenda n I/O Hardware l Storage devices (disks, tapes) l Transmission devices (network cards, modems) l Human-interface devices (monitor, keyboard, mouse) n Application I/O Interface n Kernel I/O Subsystem n Transforming I/O Requests to Hardware Operations n Performance

3 Objectives n Explore the structure of an operating system’s I/O subsystem n Discuss the principles of I/O hardware and its complexity n Provide the performance aspects of I/O hardware and software

4 I/O Hardware n Incredible variety of I/O devices n Common concepts l Port l Bus (daisy chain or shared direct access) l Controller (host adapter) n I/O instructions control devices n Devices have addresses, used by l Direct I/O instructions l Memory-mapped I/O (no special I/O instructions needed)

5 A Typical PC Bus Structure

6 Device I/O Port Locations on PCs (partial)

7 Registers in an I/O Port n Data-in register: is read by the host to get input n Data-out register: is written by the host to send output n Status register: contains bits indicating the states of the I/O device n Control (Command) register: can be written by the host to start a command or change the mode

8 Polling n Determines state of device l command-ready  Host signals its wish through this bit in command register l Busy  Controller indicates its state through this bit in status register Error n Busy-wait cycle to wait for I/O from device

9 Interrupts n CPU Interrupt-request line (a wire) triggered by I/O device n Interrupt handler receives interrupts n Maskable to ignore or delay some interrupts n Interrupt vector to dispatch interrupt to correct handler l Based on priority l Some nonmaskable n Interrupt mechanism also used to support exceptions

10 Interrupt-Driven I/O Cycle

11 Intel Pentium Processor Event- Vector Table

12 Direct Memory Access n Used to avoid programmed I/O for large data movement n Requires DMA controller n Bypasses CPU to transfer data directly between I/O device and memory

13 Six Step Process to Perform DMA Transfer

14 Application I/O Interface n I/O system calls encapsulate device behaviors in generic classes n Device-driver layer hides differences among I/O controllers from kernel n Devices vary in many dimensions l Character-stream or block l Sequential or random-access l Sharable or dedicated l Speed of operation l read-write, read only, or write only

15 A Kernel I/O Structure

16 Block and Character Devices n Block devices include disk drives l Commands include read, write, seek l Raw I/O or file-system access l Memory-mapped file access possible n Character devices include keyboards, mice, serial ports Commands include get, put l Libraries layered on top allow line editing

17 Network Devices n Varying enough from block and character to have own interface n Unix and Windows NT/9x/2000 include socket interface l Separates network protocol from network operation Includes select functionality  Manage a set of sockets n Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes)

18 Blocking and Nonblocking I/O n Blocking (synchronous) - process suspended (waits) until I/O completed l Easy to use and understand l Insufficient for some needs n Nonblocking - I/O call returns as much as available l User interface, data copy (buffered I/O) l Implemented via multi-threading l Returns quickly with count of bytes read or written n Asynchronous - process runs while I/O executes l An asynchronous call returns immediately, without waiting for I/O l I/O subsystem signals process when I/O completed  Data transfer will be performed in its entirety but will complete at some future time

19 Two I/O Methods Synchronous Asynchronous

20 Kernel I/O Subsystem n Scheduling l Some I/O request ordering via per-device queue l Some OSs try fairness n Buffering - store data in memory while transferring between devices l To cope with device speed mismatch l To cope with device transfer size mismatch l To maintain “copy semantics”

21 Kernel I/O Subsystem n Caching - fast memory holding copy of data l Always just a copy l Key to performance n Spooling - hold output for a device l If device can serve only one request at a time l i.e., Printing n Device reservation - provides exclusive access to a device l System calls for allocation and deallocation l Watch out for deadlock

22 Error Handling n OS can recover from disk read, device unavailable, transient write failures n Most return an error number or code when I/O request fails n System error logs hold problem reports

23 I/O Protection n User process may accidentally or purposefully attempt to disrupt normal operation via illegal I/O instructions l All I/O instructions defined to be privileged l I/O must be performed via system calls  Memory-mapped and I/O port memory locations must be protected too

24 Kernel Data Structures n Kernel keeps state info for I/O components, including open file tables, network connections, character device state n Many, many complex data structures to track buffers, memory allocation, “dirty” blocks n Some use object-oriented methods and message passing to implement I/O

25 UNIX I/O Kernel Structure

26 I/O Requests to Hardware Operations n Consider reading a file from disk for a process: l Determine device holding file l Translate name to device representation l Physically read data from disk into buffer l Make data available to requesting process l Return control to process

27 Life Cycle of An I/O Request

28 Performance n I/O a major factor in system performance: l Demands CPU to execute device driver, kernel I/O code l Context switches due to interrupts l Data copying l Network traffic especially stressful

29 Improving Performance n Reduce number of context switches n Reduce data copying n Reduce interrupts by using large transfers, smart controllers, polling n Use DMA n Balance CPU, memory, bus, and I/O performance for highest throughput

30 Device-Functionality Progression


Download ppt "I/O Systems CSCI 444/544 Operating Systems Fall 2008."

Similar presentations


Ads by Google