Chapter 13-1 I/O SystemsChapter 13-1: I/O SystemsI/O SystemsIntroductionI/O HardwarePortsPort Picture – older deviceMore Modern Port ViewDevice I/O Port Locations on PCs (partial)BusesBuses: Parallel and Serial; Internal and External; Blurring with new technologies…Bus Topology - NetworkExamples of Internal Computer BusesExamples of External BusesBuses - lastlyA Typical PC Bus StructureDevice ControllersDevice Controllers - 2Setting Up I/O – CPU Communications with Device ControllersPort I/O and Memory Mapped I/OI/O Ports – Themselves <book>Programmed I/O : Interrupt-Driven I/O <different source>Polling Protocol (a.k.a. ‘busy waiting.’)Issues in PollingInterrupts – How they WorkEnd of Chapter 13-1Chapter 13-1 I/O SystemsChapter 13-1 I/O Systems13.2Silberschatz, Galvin and Gagne ©2005Operating System ConceptsChapter 13-1: I/O SystemsChapter 13-1: I/O SystemsChapter 13-1I/O HardwareChapter 13-2Application I/O InterfaceKernel I/O SubsystemTransforming I/O Requests to Hardware OperationsStreamsPerformance13.3Silberschatz, Galvin and Gagne ©2005Operating System ConceptsI/O SystemsI/O SystemsOne of the more difficult chapters.This chapter pulls together many things we’ve had, but in significantly more detail.It is divided into some key sections:An overviewI/O HardwareApplication I/O InterfaceKernel I/O SystemTransforming I/O Requests to Hardware OperationsStreamsPerformanceThese will keep us busy. I plan to cover almost all of these sections and will supplement from other sources as I feel the need arises.13.4Silberschatz, Galvin and Gagne ©2005Operating System ConceptsI.I.IntroductionIntroductionImportant to realize just how much of a constraint I/O operations place on a ‘computing system.’Yet I/O is, of course, essential, as we know that the I/O responsibilities include the management and control of I/O operations and devices in an overall computing system where overall performance and efficiency are king.The reality is that I/O devices differ markedly in capability, design, interfacing, and technologies along with the software and hardware that control these.Authors approach I/O operations in the context of an I/O Subsystem – part of the kernel, but treated separately from the rest of the kernel.I/O Subsystem is very complicated.ever-emerging new technologies in the form of specialized I/O devices Gives rise for significant standardization of interfacing and operations.Have basic hardware interfacing elements: ports, buses, and I/O device controllersBut great variability in how all these each define different ways to accommodate I/OHardware must facilitate data transfer with an operating system that craves performance and is software! So, how does the complexity of input / output actually get accommodated such that high performance is maintained in accommodating the slowest, yet perhaps the most essential activity in a computing system: input/output.We will look at all this in detail…13.5Silberschatz, Galvin and Gagne ©2005Operating System Concepts2.2.I/O HardwareI/O HardwarePutting I/O devices into ‘boxes’ we typically haveStorage devices (disks, tapes, etc.)Transmission devices (network cards, modems)Human-interface devices (screens, keyboards, mice, joysticks…)Devices all communicate over cables (or air) with the machine using ‘standard’ connections: Ports, Buses (daisy chained or shared host adaptor), and Device Controllers. They are all different, and I want to diverge and consider them in a bit more detail…13.6Silberschatz, Galvin and Gagne ©2005Operating System ConceptsPortsPortsThe CPU and its supporting circuitry provide Memory-mapped I/O, which involves a range of memory addresses simply set aside and are mapped to device registers.Reads and writes to these memory addresses cause the data to be transferred to and from the device registers. A computer using memory-mapped I/O accesses hardware by reading and writing to specific memory locations using the same assembler language instructions that the computer would normally use to access memory.So to accommodate the I/O devices, areas of CPU’s addressable space must be reserved for I/O (even temporarily) rather than memory. We will return later with more on memory-mapped I/OBut the thinking of memory-mapped I/O can be applied to other devices such as the serial and parallel ports used to connect modems and printers to a computer.Here, the CPU transfers data through these devices by reading and writing a few device registers called an I/O port. Port-mapped I/O usually requires the use of special instructions which are specifically designed to perform I/O operations, such as the IN and OUT instructions found on Intel microprocessors.Here, I/O devices have a separate address space from general memory – either accomplished by an extra I/O pin on the CPU’s physical interface or an entire bus dedicated to I/OI/O ports are simply a few registers supporting data transfer from I/O devices and main memory.Very specific I/O instructions are executed to allow this data transfer to take place between these registers and main memory.So, simply consider a port as a set of hardware addresses whose contents are accessed via specific low-level instructions (ahead).If we access hardware through ports, we are dealing with the hardware directly. Mistakes may be disastrous, however, because there is no validation whether your input is correct or not – in general.I/O ports only accept numbers (byte – 8 bits; or word (16 or 32 bits) This input depends on the hardware you want to deal with.More interest: A computer using memory-mapped I/O accesses hardware by reading and writing to specific memory locations – using the same assembler language instructions that the computer would normally use to access memory.(Access: not every port has both read and write access. Some have read only; some only write access.Interestingly, there may be a port register, which you may view as an array of data inside the hardware)13.7Silberschatz, Galvin and Gagne ©2005Operating System ConceptsPort Picture – older devicePort Picture – older deviceThis picture shows an internal view of some of the I/O ports on the right and a covered view on the left. On the back of computers are several I/O ports. Above, on the very
View Full Document