操作系统复习-输入/输出系统

输入/输出系统

I/O系统的功能,模型与接口

I/O系统的基本功能

I/O系统的模型

I/O设备和设备控制器

I/O设备

设备的类型

  1. 按使用特征分类:(1)存储设备;(2)I/O设备。
  2. 按传输速率分类:(1)低速设备;(2)中速设备;(3)高速设备。

 设备与设备之间的接口

设备控制器

基本功能

  1. 接受和识别命令
  2. 数据交换
  3. 标志和报告设备的状态
  4. 地址识别:设备控制器是一个可编址的设备
  5. 数据缓冲区
  6. 差错控制

设备控制器的组成

内存映像I/O

内存和外设是否是统一编址。

采用特定的I/O指令形式

每个控制器分配给一个I/O端口,端口号是一个8位或16位的整数。即独立编址

采用内存映像I/O形式

即统一编制。

I/O通道

中/大型计算机才配备。I/O通道只有I/O功能。其目的是使得一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的IO任务中解脱出来。在设置了通道之后,CPU只需要向通道之中发送一条I/O指令。通道接收到指令之后,从内存中取出本次需要执行的通道程序,然后执行这一个程序。仅当通道完成了规定的IO任务后,才向CPU发送中断信号。

IO通道是一种特殊的处理机,有独立处理的能力。但是其没有自己的内存,所执行的程序是统一编址的。

通道的类型

1、字节多路通道

不适用于连接高速设备

2、数组选择通道

3、数组多路选择通道

瓶颈问题

I/O设备的控制方式

  1. 使用轮询的可编程I/O方式(基本不用)
  2. 使用中断的可编程I/O方式(广泛采用)
  3. 直接存储器DMA方式
  4. I/O通道方式(一次传输一个数据块)

与设备无关的I/O软件

为了增加设备的独立性

基本概念

通过物理设备名来使用设备

引入逻辑设备名

逻辑设备名是抽象的设备名,比如dev/printer。与设备无关的I/O软件还可以实现I/O重定向,即用于I/O操作的设备可以更换而不必改变应用程序。

实现从逻辑设备名到物理设备名的转换

与设备无关软件的共有操作

  1. 提供设备驱动程序的统一接口
  2. 缓冲管理
  3. 差错控制
  4. 独占设备的分配和回收
  5. 提供独立于设备的逻辑数据块

设备的分配与回收

设备分配中的数据结构

1、设备控制表(DCT)

用于记录设备的情况

2、控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT)

设备分配时应该考虑的因素

  1. 设备的固有属性:独占、共享或虚拟设备
  2. 设备分配算法:FCFS、最高优先级有限算法:优先级高的设备排在队列的前面,优先级相同的按照FCFS排队
  3. 设备分配中的安全性:(1)安全分配方式:破坏请求和保持防止死锁;(2)不安全分配方式:银行家算法。

独占设备的分配程序

基本的分配程序
  1. 分配设备
  2. 分配控制器
  3. 分配通道
改进

使用逻辑设备表LUT

用户层I/O软件

系统调用和库函数

系统调用

操作系统和应用程序的接口。捕捉到系统调用后,会从用户态变为内核态,执行完毕之后再变成用户态。

库函数

只针对C语言和UNIX系统

缓冲区管理

缓冲区的引入

  1. 缓和CPU与I/O设备间速度不匹配的矛盾
  2. 减少CPU中断的频率,放宽对CPU中断响应时间的限制
  3. 解决数据粒度不匹配的问题:数据单元大小不匹配的问题。
  4. 提高CPU和I/O设备之间的并行性

单缓冲区和双缓冲区

单缓冲区

双缓冲区

环形缓冲区

生产者消费者问题使用的就是环形缓冲区

磁盘性能概述和磁盘调度

传统的调度算法

FCFS调度算法

谁先来就调度谁

SSTF调度算法

要求访问的磁道与当前磁道之间的距离最短

基于扫描的磁盘调度算法

SCAN调度算法(电梯调度算法)

上下循环扫描

CSAN调度算法

只进行单向扫描,一个方向从起点到终点后,立刻把磁头返回到起点。

上一篇
下一篇