第六章-输入输出系统

第六章 输入输出系统

6.1 I/O系统的功能、模型和接口

I/O系统管理的主要对象: I/O设备,设备控制器。

I/O系统的主要任务: 完成用户提出的I/O请求; 提高I/O速率; 提高设备的利用率;为更高层的进程方便地使用这些设备提供手段;

6.1.1 I/O系统的基本功能

  1. 隐藏物理设备的细节:隐藏盘面号,扇区号,提供抽象write\read
  2. 设备无关型:抽象设备逻辑名,IO命令
  3. 提高处理机和I/O设备的利用率
  4. 确保对设备的正确共享

6.1.2 I/O系统的层次结构和模型

在这里插入图片描述

  • 用户层软件

    与用户交互的接口,用户可直接调用该层的库函数对设备进场操作

  • 设备独立性软件

    用于实现用户程序与设备驱动器的统一接口,设备命名,设备保护以及设备分配和释放

  • 设备驱动程序

    与硬件相关,用于具体实现系统对设备发出的操作指令。

  • 中断处理程序

    保存被中断进场的CPU环境,转入相应的中断处理程序进行处理,处理完恢复现场

I/O请求生存周期

在这里插入图片描述

6.2 I/O设备和设备控制器

I/O系统是适用于实现数据输入、输出及数据存储的系统。在 I/O系统中除了需要直接用于I/O和存储信息的设备外,还需要有 相应的设备控制器和高速总线。在有的大、中型计算机系统中, 还配置了I/O通道和I/O处理机。

6.2.1 I/O设备

1. I/O设备的类型
  • 按设备的使用特性分类:
    • 存储设备:用于存储信息的主要设备。
    • 输入/输出设备:可分为输入设备、输出设备和交互式设备
  • 设备按传输速率分类:
    • 低速设备:传输速率仅为每秒钟几个字节至数百个字节的 一类设备。
    • 中速设备:传输速率为每秒钟数千个字节至数万个字节的 一类设备。
    • 高速设备:传输速率为每秒钟数百个千字节至数十兆字节 的一类设备。
  • 设备按信息交换的单位分类:
    • 块设备:用于存储信息。对于信息的存取总是以数据块为单 位。典型例子是磁盘。该类设备基本特征是传输速率较高, 另一特征是可寻址。工作方式常采用DMA方式。
    • 字符设备:用于数据的输入和输出。基本单位是字符。如交 互式终端、打印机等。其基本特征是传输速率较低,另一特 征是不可寻址。工作方式常采用中断方式。
  • 设备按其共享属性分类:
    • 独占设备:指在一段时间内只允许一个用户(进程)访问的 设备,即临界资源。应互斥的访问独占设备。
    • 共享设备:指在一段时间内允许多个进程同时访问的设备。 而某一时刻仍然是一个进程访问。如磁盘。
    • 虚拟设备:指通过虚拟技术将一台独占设备变换为若干台逻 辑设备,供若干个用户(进程)同时使用。
2. 设备与控制器之间的接口

通常设备并不是直接与CPU进行通信,而是与设备控制器通信,在设备 与设备控制器之间有一接口,有三种类型的信号,各对应一条信号线。

在这里插入图片描述

6.2.2 设备控制器

  1. 基本功能
    • 把CPU从控制设备的事务中解脱出来
    • 数据交换:CPU和控制器、控制器和设备之间
    • 地址识别
    • 数据缓冲
    • 差错控制
    • 识别和报告设备的状态

在这里插入图片描述

6.2.4 I/O通道

  1. I/O通道设备的引入

    • 使数据的传送、I/O操作的组织、管理、结束处理独立于CPU
    • 是专属输入/输出的特殊的处理机

    他负责控制设备与内存直接进行数据交换

在这里插入图片描述

  1. 通道类型

    • 字节多路通道-低速设备(通过分时系统传输)
    • 数组选择通道——高速设备(一段时间只能执行一道通道程序,块交换设备,利用率低)
    • 数组多路通道——结合前两者优点,分时+块为单位

在这里插入图片描述

  1. 瓶颈问题:通道价格昂贵,树且少

    解决:增加设备与主机之间的通路:一个设备连接多个控制器,一个控制器连多个设备(多通路I/O系统)

6.3 中断机构和中断处理程序

6.3.1 中断简介

  1. 中断和陷入

    • 中断:CPU对I/O设备发来的中断信号的一种响应

      暂停正在执行的程序,执行该I/O的中断处理程序

      若由外部设备引起,称为外中断——异步

      可以使用中断控制器、可被屏蔽

    • 陷入:(异常、内中断)由CPU内部引起中断,如非法指令、地址越界等;

      不适用中断控制器,也不能被屏蔽

  2. 中断向量和中断优先级

在这里插入图片描述

  1. 对多中断源的处理

在这里插入图片描述

6.3.2 中断处理程序

在这里插入图片描述

6.4 设备驱动程序

在这里插入图片描述

6.5 与设备无关的I/O软件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.6 用户层的I/O软件

用户层软件通过一组系统调用来取得操作系统服务

6.6.2 假脱机系统

多道技术将一台物理CPU虚拟为多台逻辑CPU

SPOOLing技术将一台物理I/O设备虚拟为多台逻辑I/O设备

  1. 通过进程模拟外围机实现I/O过程

在这里插入图片描述

  1. 组成

    1)输入井(收容用户程序的输出数据)在磁盘开辟,收容I/O设备输入的数据

    2)输入和输出缓冲区:在内存开辟

在这里插入图片描述

  1. 输入进程SPi和输出进程SP0

在这里插入图片描述

在这里插入图片描述

  1. 井管理程序

    由井管理程序控制从输入井中读信息或将信息输出到输出井

在这里插入图片描述

在这里插入图片描述

  1. 特点
    • 提高I/O速度
    • 将独占设备改为共享设备,没有实际分配设备,只是在输入/输出井为进程分配一个存储区和建立一个I/O请求表
    • 实现虚拟设备功能

6.7 缓冲管理

凡是数据到达率与数据离去率不同的地方都可以设置缓冲区

缓冲区是以空间来换时间

分为:

  1. 单缓冲区和双缓冲区
  2. 环形缓冲区
  3. 缓冲池

6.8 磁盘存储器的性能和调度

如何改善磁盘系统的性能?

  1. 选择好的磁盘调度算法,减少磁盘寻道时间
  2. 提高磁盘的I/O速度,提高文件的访问速度
  3. 采取冗余技术,提高磁盘的可靠性

在这里插入图片描述

6.8.1 磁盘性能的组织和格式

磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface,每个盘面上有若干个磁道(Track) 。为使处理简单起见,在每条磁道上可存储相同数目的二进制位。读取或写入时,磁头必须被定位在期望的磁道,并从所期望的柱面和扇区的开始。

  1. 数据的组织和格式

在这里插入图片描述

  1. 磁盘的类型

    固定头磁盘:每条磁道一个读/写头,可并行

    移动头磁盘:每个盘面仅有一个,移动以寻道,只能串行

  2. 磁盘访问时间

    寻道时间: 定位到期望的磁道所花费的时间

    旋转延迟: 从零扇区开始处到达目的地花费的时间

    平均旋转延迟时间::磁盘旋转一周时间的一半

    磁盘I/O传输时间: T a = T s + 1 2 r + b r N T_a = T_s + \frac{1}{2r} + \frac{b}{rN} Ta=Ts+2r1+rNb

    其中 T a T_a Ta 表示寻道时间, 1 2 r \frac{1}{2r} 2r1与磁盘转速有关, b r N \frac{b}{rN} rNb表示旋转延时, 表示传输时间,b表示单次传输的字节数,N表示一个磁道的字节数,r表示磁盘转速。寻道时间和传输时间只能通过硬件层面进行优化,但是我们可以通过优化磁盘访问请求顺序来缩短寻道时间,从而提高磁盘访问性能。

6.8.2 磁盘调度

1.先进先出(FIFO)算法

原理: 按顺序处理请求,公平对待所有进程,在有很多进程的情况下,接近随机调度的性能。

在这里插入图片描述

2. 最短服务时间优先(SSTF)

原理: 选择从磁臂当前位置需要移动最少的I/O请求,总是选择最短寻道时间。

在这里插入图片描述

3. 扫描(SCAN)算法

先由内向外,再由外向内,这样就避免了饥饿现象

SSTF算法的实质是基于优先级的调度算法,因此就可能导致优先级低的进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足。在对SSTF算法略加修改后,则可防止低优先级进程出现“饥饿”现象。

原理:
磁臂在一个方向上移动,访问所有未完成的请求,直到磁臂到达该方向上最后的磁道后调换方向,也称为电梯算法(elevator algorithm)

4. 循环扫描(C-SCAN)算法

规定磁头单向读/写运动,完成后立即返回最小/大磁道号,再进行扫描。

SCAN算法既能获得较好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。但也存在这样的问题:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。

C-SCAN 原理: 限制了仅在一个方向上扫描当最后一个磁道也被访问过了后,磁臂返回到磁盘的另外一端再次进行

5. N步扫描(N-step-SCAN)算法 & 双队列扫描(FSCAN)算法

好的寻道性能,又能防止“饥饿”现象,故被广泛用于大、中、小型机器和网络中的磁盘调度。但也存在这样的问题:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。

C-SCAN 原理: 限制了仅在一个方向上扫描当最后一个磁道也被访问过了后,磁臂返回到磁盘的另外一端再次进行

5. N步扫描(N-step-SCAN)算法 & 双队列扫描(FSCAN)算法

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值