Tải bản đầy đủ (.pdf) (38 trang)

Operating System Concepts - Chapter 13: I/O Systems pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (674.9 KB, 38 trang )

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

×