DOC PREVIEW
UMass Amherst ECE 397A - I/O Systems

This preview shows page 1-2-3-4 out of 13 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware OperationsI/O Hardware Incredible variety of I/O devices Common concepts Port (typically status, control, data-in, data-out) Bus (daisy chain or shared direct access) Controller (host adapter) I/O instructions control devices Devices have addresses, used by  Direct I/O instructions Memory-mapped I/O2A Typical PC Bus StructureDevice I/O Port Locations on PCs (partial)3Device-Functionality ProgressionPolling Determines state of device  command-ready busy Error Busy-wait cycle to wait for I/O from device It is a loop reading the status register over and over again A more efficient approach is through interrupts Let the host be notified by the device4Interrupts CPU Interrupt request line triggered by I/O device Interrupt handler receives interrupts Maskable to ignore or delay some interrupts Can be turned off by CPU Interrupt vector (contains the addresses of interrupt handlers) to dispatch interrupt to correct handler Based on priority Some non-maskable (e.g., reserved for unrecoverable memory memory errors) Interrupt mechanism also used for exceptionsInterrupt-Driven I/O Cycle5Intel Pentium Processor Event-Vector TableDirect 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 memory6Six Step Process to Perform DMA TransferApplication I/O Interface I/O system calls encapsulate device behaviors in generic classes Device-driver layer hides differences among I/O 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 only7A Kernel I/O StructureCharacteristics of I/O Devices8Block and Character Devices Block devices include disk drives Commands include read, write, seek  Raw I/O or file-system access Memory-mapped file access possible Character devices include keyboards, mice, serial ports Commands include get, put Libraries layered on top allow line editingNetwork Devices Varying enough from block and character to have own interface Unix and Windows NT/9i/2000 include socket interface Separates network protocol from network operation Includes select functionality Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes)9Blocking 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 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 completedKernel I/O Subsystem Scheduling 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”10Kernel I/O Subsystem Caching - fast memory holding copy of data Always just a copy Key to performance Spooling - hold output for a device If device can serve only one request at a time  i.e., Printing Device reservation - provides exclusive access to a device System calls for allocation and deallocation Watch out for deadlockError 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 reports11Kernel 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” blocksI/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 process12Life Cycle of An I/O RequestPerformance I/O 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 stressful13Improving 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


View Full Document

UMass Amherst ECE 397A - I/O Systems

Download I/O Systems
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view I/O Systems and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view I/O Systems 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?