chapter 13 i o systems
Skip this Video
Download Presentation
Chapter 13: I/O Systems

Loading in 2 Seconds...

play fullscreen
1 / 55

Chapter 13: I/O Systems - PowerPoint PPT Presentation

  • Uploaded on

Chapter 13: I/O Systems. 13.2 I/O Hardware I/O 硬件 13.3 Application I/O Interface 应用程序 I/O 接口 13.4 Kernel I/O Subsystem 核心 I/O 子系统 13.5 Transforming I/O Requests to Hardware Operations 转换 I/O 请求为硬件操作

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Chapter 13: I/O Systems' - zonta

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
chapter 13 i o systems
Chapter 13: I/O Systems
  • 13.2 I/O Hardware I/O硬件
  • 13.3 Application I/O Interface 应用程序I/O接口
  • 13.4 Kernel I/O Subsystem 核心I/O子系统
  • 13.5 Transforming I/O Requests to Hardware Operations 转换I/O请求为硬件操作
  • 13.6 STREAMS 流
  • 13.7 Performance 性能

Operating System Concepts

13 1 overview
13.1 Overview
  • Main job of a computer:I/O and processing
  • Role of the I/O system
    • Manage and control I/O operations and I/O devices
  • Two conflicting trends:
    • Increasing standardization of software and hardware interfaces
    • Increasingly broad variety of I/O devices

Operating System Concepts

    • 种类多
    • 差异大(控制和速度)
  • 外设管理目的包括:
    • 外设资源的控制
    • 外设资源的共享
    • 提高外设资源的利用率。

Operating System Concepts


1. 按交互对象分类

  • 人机交互设备:视频显示设备、键盘、鼠标、打印机
  • 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器
  • 计算机间的通信设备:网卡、调制解调器

Operating System Concepts

2. 按交互方向分类
  • 输入(可读):键盘、扫描仪
  • 输出(可写):显示设备、打印机
  • 输入/输出(可读写):磁盘、网卡

3. 按外设特性分类

  • 使用特征:存储、输入/输出、终端
  • 数据传输率:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘)
  • 信息组织特征:单个字符或数据块
  • 字符设备(如打印机)
  • 块设备(如磁盘)

Operating System Concepts

13 2 i o hardware
13.2 I/O Hardware
  • Incredible variety of I/O devices 难以置信的I/O设备种类
    • Storage devices
    • Transmission devices
    • Human-interface devices
  • Common concepts 基本概念
    • Port 端口 – a connection point between a device and a computer
    • Bus (daisy chain or shared direct access)


    • Controller (host adapter) 控制器(主机适配器)
      • A collection of electronics that can operate a port, a bus, or a device
      • Serial-port controller, SCSI bus controller …

Operating System Concepts

fig 13 1 a typical pc bus structure
Fig 13.1 A Typical PC Bus Structure

Operating System Concepts

13 2 i o hardware i o
13.2 I/O Hardware I/O控制技术
  • I/O instructions control devices I/O指令控制设备
  • Devices have addresses, used by 设备的寻址方式
    • Direct I/O instructions直接I/O指令
    • Memory-mapped I/O存储器映射I/O指令
      • Device-control registers are mapped into the address space of the CPU
      • Such as screen buffer of the graphic controller
  • An typical I/O port include 4 registers:
    • Status
    • Control
    • Data-in
    • Data-out

Operating System Concepts


1. 程序控制I/O(programmed I/O)

  • I/O操作由程序发起,并等待操作完成。数据的每次读写通过CPU。常用的技术:轮询(polling)
  • 缺点:在外设进行数据处理时,CPU只能等待。

2. 中断驱动方式(interrupt-driven I/O)

  • I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。
  • 优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。
  • 缺点:CPU每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备。

Operating System Concepts

3 dma direct memory access
3. 直接存储访问方式(DMA, Direct Memory Access)
  • 由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作。而后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。
  • 优点:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适于高速设备。

Operating System Concepts

4 channel control
4. 通道控制方式(channel control)
  • 通道控制器(Channel Processor)有自己的专用存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。
  • 优点:执行一个通道程序可以完成几批I/O操作。
    • 选择通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设
    • 多路通道(multiplexor channel):可以并发访问多个外设。分为字节多路(byte)和数组多路(block)通道。

Operating System Concepts

13 2 1 polling
13.2.1 Polling 轮询
  • Determines state of device 决定设备的状态
    • command-ready(等待命令)
    • Busy(忙)
    • Error(错误)
  • Busy-wait cycle to wait for I/O from device


  • I/O操作由程序发起,并等待操作完成。数据的每次读写通过CPU。
  • 缺点:在外设进行数据处理时,CPU只能等待。

Operating System Concepts

13 2 2 interrupts
13.2.2 Interrupts 中断
  • CPU Interrupt request line triggered by I/O device CPU的中断需要有I/O设备的触发
  • Interrupt handler receives interrupts中断处理例程接收中断
  • Maskable to ignore or delay some interrupts通过屏蔽来忽略或者延迟某些中断
    • Some un-maskable 某些中断不可屏蔽
      • Maskable
      • nonmaskable

Operating System Concepts

Interrupts 中断
  • Interrupt vector to dispatch interrupt to correct handler


    • Based on priority 以优先级为基础
      • Interrupt priority levels
  • Interrupt mechanism also used for exceptions

中断机制也用于异常处理, 如:除零,访问不存在的内存地址等

  • Software interrupt (or a trap)

Operating System Concepts

13 2 3 direct memory access
13.2.3 Direct Memory Access直接内存存取
  • Used to avoid programmed I/O for large data movement 用来避免编程I/O来传输大量的数据
  • Requires DMA controller需要DMA控制器
  • Bypasses CPU to transfer data directly between I/O device and memory


  • Cycle stealing
  • Memory access
    • Physical memory addresses for DMA
    • Direct virtual-memory access (DVMA), using virtual address

Operating System Concepts

fig 13 6 six step process to perform dma transfer dma
Fig 13.6 Six Step Process to Perform DMA Transfer通过六步来完成DMA传输

Operating System Concepts

dma direct memory access
直接存储访问方式(DMA, Direct Memory Access)
  • 由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作。而后者完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断。
  • 优点:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适用于高速设备。

Operating System Concepts

13 2 4 channel control
13.2.4 通道控制方式(channel control)
  • 通道控制器(Channel Processor)有自己的专用存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制,如网卡上信道访问控制。通道程序通常由操作系统所构造,放在内存里。
  • 优点:执行一个通道程序可以完成几批I/O操作。
    • 选择通道(selector channel):可以连接多个外设,而一次只能访问其中一个外设
    • 多路通道(multiplexor channel):可以并发访问多个外设。分为字节多路(byte)和数组多路(block)通道。

Operating System Concepts

13 3 application i o interface i o
13.3 Application I/O Interface应用程序I/O接口
  • I/O system calls encapsulate device behaviors in generic classes 将I/O子系统设备分为几个常用的类别
  • 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 读写,只读,只写

Operating System Concepts

fig 13 6 a kernel i o structure
Fig 13.6 A Kernel I/O Structure

Operating System Concepts

13 3 1 block and character devices
13.3.1 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字符设备包括键盘,鼠标, Modem和串口设备
    • Commands include get, put 命令有get,put
    • Libraries layered on top allow line editing


Operating System Concepts

13 3 2 network devices
13.3.2 Network Devices网络设备
  • Varying enough from block and character to have own interface从块设备和字符设备变化而来,有独自的接口
  • Unix and Windows NT/9i/2000 include socket interface Unix和Windows/NT包括socket接口
    • Separates network protocol from network operation


    • Includes select functionality包括select功能—manage a set of sockets
  • Approaches vary widely (half-duplex pipes, full-duplex FIFOs, full-duplex streams, queues, mailboxes, socket)


Operating System Concepts

13 3 3 clocks and timers
13.3.3 Clocks and Timers时钟和记时器
  • Provide current time, elapsed time, timer提供当前的时间,经过的时间,定时器
  • If programmable interval time used for timings, periodic interrupts如果把可编程的时间间隔用于计时,那么定期中断
  • programmable interval timer -- the hardware to measure elapsed time and to trigger operations
  • ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers


Operating System Concepts

13 3 4 blocking and nonblocking i o i o
13.3.4 Blocking and Nonblocking I/O阻塞和非阻塞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


Operating System Concepts

13 4 kernel i o subsystem i o
13.4 Kernel I/O Subsystem核心I/O子系统
  • Kernel provide many services related to I/O:
    • Scheduling
    • Buffering
    • Caching
    • Spooling
    • Device reservation
    • Error handling

Operating System Concepts

13 4 1 i o scheduling
13.4.1 I/O Scheduling
  • Improve overall system performance
  • Share device access fairly among processes
  • Reduce the average waiting time for I/O to complete
  • Example: disk arm serves for many processes at same time
  • Rearrange: some I/O request ordering via per-device queue to improve the overall system efficiency。为改善系统性能,某些I/O需要按设备队列的进行排序
  • Some OSs try fairness 某些操作系统尝试着公平

Operating System Concepts

13 4 2 i o buffering
13.4.2 I/O Buffering
  • 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”


Operating System Concepts



1. 引入缓冲技术的目的

  • 匹配CPU或用户应用进程与外设的不同处理速度
  • 减少对CPU的中断次数,提高CPU和I/O设备之间以及各个I/O设备之间的处理并行性。因此,缓冲区所在的位置:内存,控制器或外设。这些在不同位置的缓冲区组合在一起,构成多级缓冲机制。

Operating System Concepts

2. 单方向缓冲
  • 单缓冲(single buffer):一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。
  • 双缓冲(double buffer):两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。
  • 环形缓冲(circular buffer):多个缓冲区,CPU和外设的处理速度可以相差较大。

Operating System Concepts

3 buffer pool
3. 缓冲池(buffer pool)
  • 这是一种双方向缓冲技术;缓冲区整体利用率高。
  • 缓冲区队列:三种:空闲缓冲区,输入缓冲区,输出缓冲区
  • 操作:四种:设备输入,CPU读入,设备输出,CPU写出。上述操作访问各个缓冲区队列时,需要进行相应的互斥操作。

Operating System Concepts

13 4 3 caching
13.4.3 Caching
  • Caching – a region of fast memory holding copies of data


    • Always just a copy 总是数据的拷贝
    • Key purpose: to improve I/O performance and efficiency
    • Caching and buffering are distinct(截然不同的) functions ,but sometimes a region of memory can be used for both purposes
      • Caching: to improve performance
      • Buffering: to cope with device transfer speed and size mismatch 解决设备传输块的速度与大小的不匹配

Operating System Concepts

13 4 4 spooling
13.4.4 Spooling(假脱机技术)
  • A spool is a buffer that holds output for a device, such as a printer, that cannot accept interleaved data streams
  • 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 小心死锁

Operating System Concepts

  • 利用假脱机技术(SPOOLing, Simultaneous Peripheral Operation On Line, 也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。
  • 引入:在多道批处理系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。

Operating System Concepts

  • 假脱机的原理:
    • SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。
    • 在SPOOLing程序中,需要管理两级缓冲区:内存缓冲区和快速外存上的缓冲池,后者可以暂存多批I/O操作的较多数据。
    • 应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为"虚拟I/O"。这时虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。

Operating System Concepts

  • 优点:
    • 高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。
    • 实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。
  • 举例:打印机设备和可由打印机管理器管理的打印作业队列。
    • 如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。

Operating System Concepts

13 4 5 error handling
13.4.5 Error Handling错误处理
  • OS can recover from disk read, device unavailable, transient write failures操作系统可以从有些磁盘读、设备无效等暂时的(transient)失败中恢复过来(例如通过read retry, resend等)。


  • Most return an error number or code when I/O request fails I/O系统调用时,如果I/O失败,大多数返回一个错误码
    • Unix 中,用errno来描述
    • 或者用更为详细信息描述出错信息。例如 在SCSI中,用下列信息描述各种状态:
      • Sense key
      • Additional sense code
      • Additional sense-code qualifier
  • System error logs hold problem reports


Operating System Concepts

13 4 6 kernel data structures
13.4.6 Kernel Data Structures核心数据结构
  • Kernel keeps state info for I/O components, including open file tables, network connections, character device state 核心保存着I/O组件的状态,包括打开文件表,网络连接,字符设备状态
  • Many, many complex data structures to track buffers, memory allocation, “dirty” blocks许多的数据结构是为了记录缓冲、内存分配和“脏”块
  • Some use object-oriented methods and message passing to implement I/O


Operating System Concepts

fig 13 9 unix i o kernel structure
Fig 13.9 UNIX I/O Kernel Structure

Operating System Concepts

In summary, I/O subsystem supervises:
    • The management of the name space for files and devices
    • Access control to files and devices
    • Operation control (for example, a modem can’t seek())
    • File system space allocation
    • Device allocation
    • Buffering, caching and spooling
    • I/O scheduling
    • Device status monitoring, error handling and failure recovery
    • Device driver configuration and initialization

Operating System Concepts

13 5 transforming i o to hardware operations i o
13.5 Transforming I/O to Hardware Operations转换I/O请求为硬件操作

I/O Requests to Hardware Operations I/O请求到硬件操作

  • 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 把控制权返回给进程

Operating System Concepts

13 6 streams
13.6 STREAMS 流
  • STREAM – a full-duplex communication channel between a user-level process and a device
    • Stream (char, no record file) block, record file in file system
  • A STREAM consists of:

- STREAM head interfaces with the user process

- driver end interfaces with the device- zero or more STREAM modules between them.

  • Stream modules
  • Support flow control
  • Each module contains a read queue and a write queue
    • Read(), getmsg() -- when a user process reads data from the streams
    • Write(), putmsg() -- when a user process writes to a device
  • Message passing is used to communicate between queues
  • Benefits of using STREAMS:
    • Provide a framework to a modular and incremental approach to writing device drivers and network protocols

Operating System Concepts

fig 13 11 the streams structure
Fig 13.11 The STREAMS Structure

Operating System Concepts

13 7 performance
13.7 Performance 性能
  • I/O is a major factor in system performance:I/O是系统性能的主要因素
    • Demands CPU to execute device driver, kernel I/O code 需要CPU执行设备驱动,核心I/O代码
    • Context switches due to interrupts


    • Data copying 数据拷贝
    • Network traffic especially stressful


Operating System Concepts

Other system use separate front-end processors for terminal I/O, to reduce the interrupt burden on the main CPU, for example:
    • A terminal concentrator
    • An I/O channel

Operating System Concepts

several principles to improve performance
Several principles to improve performance改进性能几个原则
  • Reduce number of context switches 减少上下文转换数
  • Reduce data copying 减少数据的拷贝量
  • Reduce interrupts by using large transfers, smart controllers, polling 通过使用一次大量数据传输,智能控制器和轮换来减少中断
  • Use DMA 使用DMA
  • Balance CPU, memory, bus, and I/O performance for highest throughput 平衡CPU,内存,总线和I/O性能以达到高吞吐率

Operating System Concepts