13.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005Direct Memory Access Used to avoid programmed I/O for large data movement Requires DMA con
Trang 1Chapter 13: I/O Systems
Trang 213.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Chapter 13: I/O Systems
I/O HardwareApplication I/O InterfaceKernel I/O SubsystemTransforming I/O Requests to Hardware OperationsStreams
Performance
Trang 313.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Trang 413.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
I/O Hardware
Incredible variety of I/O devicesCommon concepts
Port Bus (daisy chain or shared direct access) Controller (host adapter)
I/O instructions control devicesDevices have addresses, used by Direct I/O instructions
Memory-mapped I/O
Trang 513.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
A Typical PC Bus Structure
Trang 613.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Device I/O Port Locations on PCs (partial)
Trang 713.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Polling
Determines state of device command-ready
busyError
Busy-wait cycle to wait for I/O from device
Trang 813.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Interrupts
CPU Interrupt-request line triggered by I/O device
Interrupt handler receives interrupts Maskable to ignore or delay some interrupts
Interrupt vector to dispatch interrupt to correct handlerBased on priority
Some nonmaskable
Interrupt mechanism also used for exceptions
Trang 913.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Interrupt-Driven I/O Cycle
Trang 1013.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Intel Pentium Processor Event-Vector Table
Trang 1113.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Direct 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 memory
Trang 1213.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Six Step Process to Perform DMA Transfer
Trang 1313.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Application I/O Interface
I/O system calls encapsulate device behaviors in generic classesDevice-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 only
Trang 1413.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
A Kernel I/O Structure
Trang 1513.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Characteristics of I/O Devices
Trang 1613.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Block and Character Devices
Block devices include disk drivesCommands include read, write, seek Raw I/O or file-system access
Memory-mapped file access possible
Character devices include keyboards, mice, serial ports
Libraries layered on top allow line editing
Trang 1713.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Network Devices
Varying enough from block and character to have own interface
Unix and Windows NT/9x/2000 include socket interface
Separates network protocol from network operation
Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes)
Trang 1813.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Clocks and Timers
Provide current time, elapsed time, timer
Programmable interval timer used for timings, periodic interrupts
timers
Trang 1913.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Blocking and Nonblocking I/O
Blocking - process suspended until I/O completed
Easy to use and understandInsufficient 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 useI/O subsystem signals process when I/O completed
Trang 2013.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Two I/O Methods
Trang 2113.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Kernel I/O Subsystem
SchedulingSome I/O request ordering via per-device queueSome 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”
Trang 2213.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Device-status Table
Trang 2313.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Sun Enterprise 6000 Device-Transfer Rates
Trang 2413.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Kernel I/O Subsystem
Caching - fast memory holding copy of data
Always just a copyKey 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 deallocationWatch out for deadlock
Trang 2513.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Trang 2613.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Trang 2713.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Use of a System Call to Perform I/O
Trang 2813.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Kernel 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” blocks
Some use object-oriented methods and message passing to implement I/O
Trang 2913.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
UNIX I/O Kernel Structure
Trang 3013.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
I/O Requests to Hardware Operations
Consider 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 process
Trang 3113.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Life Cycle of An I/O Request
Trang 3213.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
STREAMS
STREAM – a full-duplex communication channel between a
user-level process and a device in Unix System V and beyond
A STREAM consists of:
- driver end interfaces with the device
Each module contains a read queue and a write queue
Message passing is used to communicate between queues
Trang 3313.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
The STREAMS Structure
Trang 3413.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Performance
I/O a major factor in system performance:
Demands CPU to execute device driver, kernel I/O codeContext switches due to interrupts
Data copyingNetwork traffic especially stressful
Trang 3513.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Intercomputer Communications
Trang 3613.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Trang 3713.37 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Device-Functionality Progression
Trang 38End of Chapter 13