Module 12: I/O SystemsI/O HardwarePollingInterruptsInterrupt-drive I/O CycleDirect Memory AccessSix step process to perform DMA transferApplication I/O InterfaceBlock and Character DevicesNetwork DevicesClocks and TimersBlocking and Nonblocking I/OKernel I/O SubsystemSlide 14Error HandlingKernel Data StructuresI/O Requests to Hardware OperationsLife Cycle of an I/O RequestExample: Disk StructureDisk ManagementDisk PerformanceSlide 22SpeedPerformanceIntercomputer communicationsImproving Performance1Module 12: I/O SystemsModule 12: I/O SystemsI/O hardwareApplication I/O InterfaceKernel I/O SubsystemTransforming I/O Requests to Hardware OperationsPerformance2I/O HardwareI/O HardwareIncredible variety of I/O devicesCommon conceptsPort Bus (daisy chain or shared direct access)Controller (host adapter)I/O instructions control devicesDevices have addresses, used by Direct I/O instructionsMemory-mapped I/O3PollingPollingDetermines state of device command-readybusyerrorBusy-wait cycle to wait for I/O from device4InterruptsInterruptsCPU Interrupt request line triggered by I/O deviceInterrupt handler receives interruptsMaskable to ignore or delay some interruptsInterrupt vector to dispatch interrupt to correct handlerBased on prioritySome unmaskableInterrupt mechanism also used for exceptions5Interrupt-drive I/O CycleInterrupt-drive I/O Cycle6Direct Memory AccessDirect Memory AccessUsed to avoid programmed I/O for large data movement Requires DMA controllerBypasses CPU to transfer data directly between I/O device and memory7Six step process to perform DMA Six step process to perform DMA transfertransfer8Application I/O InterfaceApplication I/O InterfaceI/O system calls encapsulate device behaviors in generic classesDevice-driver layer hides differences among I/O controllers from kernelDevices vary in many dimensionsCharacter-stream or blockSequential or random-accessSharable or dedicatedSpeed of operationread-write, read only, or write only9Block and Character DevicesBlock and Character DevicesBlock devices include disk drivesCommands include read, write, seek Raw I/O or file-system accessMemory-mapped file access possibleCharacter devices include keyboards, mice, serial portsCommands include get, putLibraries layered on top allow line editing10Network DevicesNetwork DevicesVarying enough from block and character to have own interfaceUnix and Windows/NT include socket interfaceSeparates network protocol from network operationIncludes select functionalityApproaches vary widely (pipes, FIFOs, streams, queues, mailboxes)11Clocks and TimersClocks and TimersProvide current time, elapsed time, timerif programmable interval time used for timings, periodic interruptsioctl (on UNIX) covers odd aspects of I/O such as clocks and timers12Blocking and Nonblocking I/OBlocking and Nonblocking I/OBlocking - process suspended until I/O completedEasy to use and understandInsufficient for some needsNonblocking - I/O call returns as much as availableUser interface, data copy (buffered I/O)Implemented via multi-threadingReturns quickly with count of bytes read or writtenAsynchronous - process runs while I/O executesDifficult to useI/O subsystem signals process when I/O completed13Kernel I/O SubsystemKernel I/O SubsystemSchedulingSome I/O request ordering via per-device queueSome OSs try fairnessBuffering - store data in memory while transferring between devicesTo cope with device speed mismatchTo cope with device transfer size mismatchTo maintain “copy semantics”14Kernel I/O SubsystemKernel I/O SubsystemCaching - fast memory holding copy of dataAlways just a copyKey to performanceSpooling - hold output for a deviceIf device can serve only one request at a time i.e., PrintingDevice reservation - provides exclusive access to a deviceSystem calls for allocation and deallocationWatch out for deadlock15Error HandlingError HandlingOS can recover from disk read, device unavailable, transient write failuresMost return an error number or code when I/O request fails System error logs hold problem reports16Kernel Data StructuresKernel Data StructuresKernel keeps state info for I/O components, including open file tables, network connections, character device stateMany, many complex data structures to track buffers, memory allocation, “dirty” blocksSome use object-oriented methods and message passing to implement I/O17I/O Requests to Hardware OperationsI/O Requests to Hardware OperationsConsider reading a file from disk for a process Determine device holding file Translate name to device representationPhysically read data from disk into bufferMake data available to requesting processReturn control to process18Life Cycle of an I/O RequestLife Cycle of an I/O Request19Example: Disk StructureExample: Disk StructureDisk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer. The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially.Sector 0 is the first sector of the first track on the outermost cylinder.Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost.20Disk ManagementDisk ManagementLow-level formatting, or physical formatting — Dividing a disk into sectors that the disk controller can read and write.To use a disk to hold files, the operating system still needs to record its own data structures on the disk.Partition the disk into one or more groups of cylinders.Logical formatting or “making a file system”.Boot block initializes system.The bootstrap is stored in ROM.Bootstrap loader program.Methods such as sector sparing used to handle bad blocks or interleaving to handle different disk hardware designs21Disk PerformanceDisk PerformanceThe operating system is responsible for using hardware efficiently — for the disk drives, this means having a fast access time and disk bandwidth.Access time has three major componentsSeek time is the time for the disk are to move the heads to the cylinder containing the desired sector.Rotational latency is the additional time waiting for the disk
View Full Document