Application I/O Interface Chapter 13: I/O...

7
1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition, Chapter 13: I/O Systems 13.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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 ©2009 Operating System Concepts – 8th Edition 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 ©2009 Operating System Concepts – 8th Edition I/O Hardware Incredible variety of I/O devices Common concepts Port Bus (daisy chain or shared direct access) Controller (host adapter) I/O instructions control devices Devices have addresses, used by Direct I/O instructions Memory-mapped I/O 13.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition A Typical PC Bus Structure 13.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Device I/O Port Locations on PCs (partial)

Transcript of Application I/O Interface Chapter 13: I/O...

Page 1: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

1

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition,

Chapter 13: I/O Systems

13.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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 ©2009 Operating System Concepts – 8th Edition

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 ©2009 Operating System Concepts – 8th Edition

I/O Hardware

  Incredible variety of I/O devices   Common concepts

  Port   Bus (daisy chain or shared direct access)   Controller (host adapter)

  I/O instructions control devices   Devices have addresses, used by

  Direct I/O instructions   Memory-mapped I/O

13.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

A Typical PC Bus Structure

13.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Device I/O Port Locations on PCs (partial)

Page 2: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

2

13.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Polling

  Determines state of device   command-ready   busy   Error

  Busy-wait cycle to wait for I/O from device

13.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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   Based on priority   Some nonmaskable

  Interrupt mechanism also used for exceptions

13.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Interrupt-Driven I/O Cycle

13.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Intel Pentium Processor Event-Vector Table

13.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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 ©2009 Operating System Concepts – 8th Edition

Six Step Process to Perform DMA Transfer

Page 3: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

3

13.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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

  Character-stream or block   Sequential or random-access   Sharable or dedicated   Speed of operation   read-write, read only, or write only

13.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

A Kernel I/O Structure

13.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Characteristics of I/O Devices

13.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Block and Character Devices

  Block devices include disk drives   Commands include read, write, seek   Raw I/O or file-system access   Memory-mapped file access possible

  Character devices include keyboards, mice, serial ports   Commands include get, put   Libraries layered on top allow line editing

13.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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   Includes select functionality

  Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes)

13.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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

Page 4: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

4

13.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Blocking and Nonblocking I/O

  Blocking - process suspended until I/O completed   Easy to use and understand   Insufficient 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 use   I/O subsystem signals process when I/O completed

13.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Two I/O Methods

Synchronous Asynchronous

13.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Kernel I/O Subsystem

  Scheduling   Some I/O request ordering via per-device queue   Some 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”

13.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Device-status Table

13.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Sun Enterprise 6000 Device-Transfer Rates

13.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Kernel I/O Subsystem

  Caching - fast memory holding copy of data   Always just a copy   Key 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 deallocation   Watch out for deadlock

Page 5: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

5

13.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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

13.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

I/O Protection

  User process may accidentally or purposefully attempt to disrupt normal operation via illegal I/O instructions   All I/O instructions defined to be privileged   I/O must be performed via system calls

 Memory-mapped and I/O port memory locations must be protected too

13.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Use of a System Call to Perform I/O

13.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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

13.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

UNIX I/O Kernel Structure

13.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

I/O Requests to Hardware Operations

  Consider reading a file from disk for a process:

  Determine device holding file   Translate name to device representation   Physically read data from disk into buffer   Make data available to requesting process   Return control to process

Page 6: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

6

13.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Life Cycle of An I/O Request

13.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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: - STREAM head interfaces with the user process - driver end interfaces with the device- zero or more STREAM modules between them.

  Each module contains a read queue and a write queue

  Message passing is used to communicate between queues

13.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

The STREAMS Structure

13.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Performance

  I/O a major factor in system performance:

  Demands CPU to execute device driver, kernel I/O code   Context switches due to interrupts   Data copying   Network traffic especially stressful

13.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Intercomputer Communications

13.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

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

Page 7: Application I/O Interface Chapter 13: I/O Systemspeople.uncw.edu/ricanekk/teaching/spring09/csc342/slides/ch13... · Chapter 13: I/O Systems ... Discuss the principles of I/O hardware

7

13.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition

Device-Functionality Progression

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition,

End of Chapter 13