13.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005I/O Hardware Incredible variety of I/O devices Common concepts z Bus daisy chain or sha
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 Hardware
Application I/O Interface
Kernel I/O Subsystem
Transforming I/O Requests to Hardware Operations
Streams
Performance
Trang 313.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
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
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 devices
Common concepts
z Bus (daisy chain or shared direct access)
z Controller (host adapter)
I/O instructions control devices
Devices have addresses, used by
z Direct I/O instructions
z 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
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 handler
z Based on priority
z 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 classes
Device-driver layer hides differences among I/O controllers from
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 drives
z Commands include read, write, seek
z Raw I/O or file-system access
z Memory-mapped file access possible
Character devices include keyboards, mice, serial ports
z Commands include get, put
z 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
z Separates network protocol from network operation
z Includes select functionality
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
ioctl (on UNIX) covers odd aspects of I/O such as clocks and
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
z Easy to use and understand
z Insufficient for some needs
Nonblocking - I/O call returns as much as available
z User interface, data copy (buffered I/O)
z Implemented via multi-threading
z Returns quickly with count of bytes read or written
Asynchronous - process runs while I/O executes
z Difficult to use
z I/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
Scheduling
z Some I/O request ordering via per-device queue
z Some OSs try fairness
Buffering - store data in memory while transferring between
devices
z To cope with device speed mismatch
z To cope with device transfer size mismatch
z 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
z Always just a copy
z Key to performance
Spooling - hold output for a device
z If device can serve only one request at a time
z i.e., Printing
Device reservation - provides exclusive access to a device
z System calls for allocation and deallocation
z Watch out for deadlock
Trang 2513.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
Error 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 reports
Trang 2613.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 2, 2005
I/O Protection
User process may accidentally or purposefully attempt to disrupt
normal operation via illegal I/O instructions
z All I/O instructions defined to be privileged
z I/O must be performed via system calls
Memory-mapped and I/O port memory locations must be protected too
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:
z Determine device holding file
z Translate name to device representation
z Physically read data from disk into buffer
z Make data available to requesting process
z Return 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:
z Demands CPU to execute device driver, kernel I/O code
z Context switches due to interrupts
z Data copying
z Network 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
Improving 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
throughput
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