Chapter 13: I/O Systems
Chapter 13: I/O Systems
13.2
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Chapter 13: I/O Systems
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
13.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Objectives
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
13.4
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
I/O Hardware
I/O Hardware
Incredible variety of I/O devices
Common concepts
z Port
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
13.5
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
A Typical PC Bus Structure
A Typical PC Bus Structure
13.6
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Device I/O Port Locations on PCs (partial)
Device I/O Port Locations on PCs (partial)
13.7
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Polling
Polling
Determines state of device
z command-ready
z busy
z Error
Busy-wait cycle to wait for I/O from device
13.8
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Interrupts
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
13.9
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Interrupt
Interrupt
-
-
Driven I/O Cycle
Driven I/O Cycle
13.10
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Intel Pentium Processor Event
Intel Pentium Processor Event
-
-
Vector Table
Vector Table
13.11
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Direct Memory Access
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
13.12
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Six Step Process to Perform DMA Transfer
Six Step Process to Perform DMA Transfer
13.13
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Application I/O Interface
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
Devices vary in many dimensions
z Character-stream or block
z Sequential or random-access
z Sharable or dedicated
z Speed of operation
z read-write, read only, or write only
13.14
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
A Kernel I/O Structure
A Kernel I/O Structure
13.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Characteristics of I/O Devices
Characteristics of I/O Devices
13.16
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Block and Character Devices
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
13.17
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Network Devices
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)
13.18
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Clocks and Timers
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
13.19
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Blocking and Nonblocking I/O
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
13.20
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Two I/O Methods
Two I/O Methods
Synchronous
Asynchronous
13.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Kernel I/O Subsystem
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”
13.22
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Device
Device
-
-
status Table
status Table
13.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Sun Enterprise 6000 Device
Sun Enterprise 6000 Device
-
-
Transfer Rates
Transfer Rates
13.24
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Kernel I/O Subsystem
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
13.25
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7
th
Edition, Jan 2, 2005
Error Handling
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