1 / 18

Chapter 13: I/O Systems

Chapter 13: I/O Systems. Chapter 13: I/O Systems. Overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations STREAMS Performance. Objectives. Explore the structure of an operating system ’ s I/O subsystem

aronnie
Download Presentation

Chapter 13: I/O Systems

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. Chapter 13: I/O Systems

  2. Chapter 13: I/O Systems • Overview • I/O Hardware • Application I/O Interface • Kernel I/O Subsystem • Transforming I/O Requests to Hardware Operations • STREAMS • Performance

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

  4. Overview • I/O management is a major component of operating system design and operation • Important aspect of computer operation • I/O devices vary greatly • Various methods to control them • Performance management • New types of devices frequent • Ports, busses, device controllers connect to various devices • Device drivers encapsulate device details • Present uniform device-access interface to I/O subsystem

  5. I/O Hardware • Incredible variety of I/O devices • Storage • Transmission • Human-interface • Common concepts – signals from I/O devices interface with computer • Port – connection point for device eg serial port • Bus –set of wires and a rigidly defined protocol that specifies a set of messages. • Daisy chain is a chain of devices connected to the computer system • PCI bus common in PCs and servers, PCI Express (PCIe) • expansionbus connects relatively slow devices • Controller (host adapter) – electronics that operate port, bus, device • Sometimes integrated • Sometimes separate circuit board (host adapter) • Contains processor, microcode, private memory, bus controller, etc • Some talk to per-device controller with bus controller, microcode, memory, etc

  6. A Typical PC Bus Structure

  7. Disk Controller

  8. How does the processor give commands and data to a controller? • Controller has one or more registers for data and control signals. • The processor communicates with the controller by reading and writing bit patterns in these registers. • This is done by special I/O instructions that specify transfer of byte to an I/O port address-programmedI/O • Which in turn triggers bus lines to select the proper device and move bits into or out of device registers • Alternatively memory mapped I/O can be used by device controllers

  9. Device I/O Port Locations on PCs (partial) PCs used both programmed I/O and memory mapped I/O.

  10. Registers used in I/O port • Status: contains bits that can be read by the host. Eg:- whether a command completed • Control: written by the host to start a command o to change the mode of a device: Eg:- changing the type of communication • Data-in: read by host to get input • Data-out: written by host to send output

  11. Polling • Polling is done by handshaking • Example • 2 bits are used to coordinate the producer consumer relationship between the controller and host. Buzy bit with controller and command ready bit by host • For each byte of I/O • The host repeatedly reads the busy bit of the controller until it becomes clear. • When clear, the host writes in the command register and writes a byte into the data-out register. • The host sets the command-ready bit (set to 1). • When the controller senses command-ready bit is set, it sets busy bit. • The controller reads the command register and since write bit is set, it performs necessary I/O operations on the device. If the read bit is set to one instead of write bit, data from device is loaded into data-in register, which is further read by the host. • The controller clears the command-ready bit once everything is over, it clears error bit to show successful operation and reset busy bit (0). • Step 1 is busy-waitcycle to wait for I/O from device • Reasonable if device is fast • But inefficient if device slow

  12. Interrupts • Polling can happen in 3 instruction cycles • Read status, logical-and to extract status bit, branch if not zero • How to be more efficient if non-zero infrequently? • CPU Interrupt-request line triggered by I/O device • Checked by processor after each instruction • Interrupt handlerreceives interrupts • Maskable to ignore or delay some interrupts • Interrupt vector to dispatch interrupt to correct handler • Context switch at start and end • Based on priority • Some nonmaskable • Interrupt chaining if more than one device at same interrupt number

  13. Interrupt-Driven I/O Cycle

  14. Intel Pentium Processor Event-Vector Table

  15. Interrupts (Cont.) • Interrupt mechanism also used for exceptions • Terminate process, crash system due to hardware error • Page fault executes when memory access error • System call executes via trap to trigger kernel to execute request • Multi-CPU systems can process interrupts concurrently • If operating system designed to handle it • Used for time-sensitive processing, frequent, must be fast

  16. Direct Memory Access • Used to avoid programmed I/O (one byte at a time) for large data movement • Requires DMA controller • Bypasses CPU to transfer data directly between I/O device and memory • OS writes DMA command block into memory • Source and destination addresses • Read or write mode • Count of bytes • Writes location of command block to DMA controller • Bus mastering of DMA controller – grabs bus from CPU • Cycle stealing from CPU but still much more efficient • When done, interrupts to signal completion • Version that is aware of virtual addresses can be even more efficient - DVMA

  17. Six Step Process to Perform DMA Transfer

  18. Application I/O Interface • I/O system calls encapsulate device behaviors in generic classes • Device-driver layer hides differences among I/O controllers from kernel • New devices talking already-implemented protocols need no extra work • Each OS has its own I/O subsystem structures and device driver frameworks • Devices vary in many dimensions • Character-streamorblock • Sequentialor random-access • Synchronous or asynchronous (or both) • Sharableordedicated • Speed of operation • read-write, read only, orwrite only

More Related