-输入输出系统
Posted 吹灭读书灯 一身都是月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-输入输出系统相关的知识,希望对你有一定的参考价值。
第六章 输入输出系统
6.1 I/O系统的功能、模型和接口
I/O系统管理的主要对象: I/O设备,设备控制器。
I/O系统的主要任务: 完成用户提出的I/O请求; 提高I/O速率; 提高设备的利用率;为更高层的进程方便地使用这些设备提供手段;
6.1.1 I/O系统的基本功能
- 隐藏物理设备的细节:隐藏盘面号,扇区号,提供抽象write\\read
- 设备无关型:抽象设备逻辑名,IO命令
- 提高处理机和I/O设备的利用率
- 确保对设备的正确共享
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 设备控制器
- 基本功能
- 把CPU从控制设备的事务中解脱出来
- 数据交换:CPU和控制器、控制器和设备之间
- 地址识别
- 数据缓冲
- 差错控制
- 识别和报告设备的状态
6.2.4 I/O通道
-
I/O通道设备的引入
- 使数据的传送、I/O操作的组织、管理、结束处理独立于CPU
- 是专属输入/输出的特殊的处理机
他负责控制设备与内存直接进行数据交换
-
通道类型
- 字节多路通道-低速设备(通过分时系统传输)
- 数组选择通道——高速设备(一段时间只能执行一道通道程序,块交换设备,利用率低)
- 数组多路通道——结合前两者优点,分时+块为单位
-
瓶颈问题:通道价格昂贵,树且少
解决:增加设备与主机之间的通路:一个设备连接多个控制器,一个控制器连多个设备(多通路I/O系统)
6.3 中断机构和中断处理程序
6.3.1 中断简介
-
中断和陷入
-
中断:CPU对I/O设备发来的中断信号的一种响应
暂停正在执行的程序,执行该I/O的中断处理程序
若由外部设备引起,称为外中断——异步
可以使用中断控制器、可被屏蔽
-
陷入:(异常、内中断)由CPU内部引起中断,如非法指令、地址越界等;
不适用中断控制器,也不能被屏蔽
-
-
中断向量和中断优先级
- 对多中断源的处理
6.3.2 中断处理程序
6.4 设备驱动程序
6.5 与设备无关的I/O软件
6.6 用户层的I/O软件
用户层软件通过一组系统调用来取得操作系统服务
6.6.2 假脱机系统
多道技术将一台物理CPU虚拟为多台逻辑CPU
SPOOLing技术将一台物理I/O设备虚拟为多台逻辑I/O设备
- 通过进程模拟外围机实现I/O过程
-
组成
1)输入井(收容用户程序的输出数据)在磁盘开辟,收容I/O设备输入的数据
2)输入和输出缓冲区:在内存开辟
- 输入进程SPi和输出进程SP0
-
井管理程序
由井管理程序控制从输入井中读信息或将信息输出到输出井
- 特点
- 提高I/O速度
- 将独占设备改为共享设备,没有实际分配设备,只是在输入/输出井为进程分配一个存储区和建立一个I/O请求表
- 实现虚拟设备功能
6.7 缓冲管理
凡是数据到达率与数据离去率不同的地方都可以设置缓冲区
缓冲区是以空间来换时间
分为:
- 单缓冲区和双缓冲区
- 环形缓冲区
- 缓冲池
6.8 磁盘存储器的性能和调度
如何改善磁盘系统的性能?
- 选择好的磁盘调度算法,减少磁盘寻道时间
- 提高磁盘的I/O速度,提高文件的访问速度
- 采取冗余技术,提高磁盘的可靠性
6.8.1 磁盘性能的组织和格式
磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface,每个盘面上有若干个磁道(Track) 。为使处理简单起见,在每条磁道上可存储相同数目的二进制位。读取或写入时,磁头必须被定位在期望的磁道,并从所期望的柱面和扇区的开始。
- 数据的组织和格式
-
磁盘的类型
固定头磁盘:每条磁道一个读/写头,可并行
移动头磁盘:每个盘面仅有一个,移动以寻道,只能串行
-
磁盘访问时间
寻道时间: 定位到期望的磁道所花费的时间
旋转延迟: 从零扇区开始处到达目的地花费的时间
平均旋转延迟时间::磁盘旋转一周时间的一半
磁盘I/O传输时间: T a = T s + 1 2 r + b r N T_a = T_s + \\frac12r + \\fracbrN Ta=Ts+2r1+rNb
其中 T a T_a Ta 表示寻道时间, 1 2 r \\frac12r 2r1与磁盘转速有关, b r N \\fracbrN 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)算法
以上是关于-输入输出系统的主要内容,如果未能解决你的问题,请参考以下文章