学习总结目录:
I/O系统管理的对象是I/O设备和相应的设备控制器。其最主要的任务是,完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。
I/O系统
I/O系统的概念:是指用于实现数据输入、输出及数据存储的系统。
I/O系统的结构:I/O设备,缓冲区,设备控制器,高速的总线,I/O通道和I/O处理机
I/O系统的任务:完成用户提出的I/O请求,提高I/O速率及利用率
I/O系统的基本功能:
- 1.隐藏物理设备的细节: I/O系统必须通过对设备加以适当的抽象,以隐藏物理设备的实现细节,仅向上层进程提供少量的、抽象的读写命令
- 2.与设备的无关性: 方便用户对设备的使用。一方面,用户不仅可以使用抽象的I/O命令,还可使用抽象的逻辑设备名来使用设备;另一方面,可有效提高OS的可移植性和易适应性。
- 3.提高处理机和IO设备的利用率: 该功能尽可能让处理机和I/O设备并行操作
- 4.对IO设备进行控制: 有四种控制方式:①采用轮询的可编程I/O方式;②采用中断的可编程I/O方式;③直接存储器方式;④IO通道方式
- 5.确保对设备的正确共享: 1)独占设备,进程互斥地访问这类设备,即系统一旦把这类设备分配给某进程后,便由该进程独占,直至用完释放。2)共享设备,一段时间内允许多个进程同时访问的设备。
- 6.错误处理: 临时性错误和持久性错误。对于临时性错误,可通过重试操作来纠正;对于持久性错误,向上层报告。
I/O软件的层次结构:
I/O系统的分层:
- 中断处理程序。处于I/O系统的底层,直接与硬件进行交互。当有IO设备发来中断请求信号时,在中断硬件做了初步处理后,便转向中断处理程序。
- 设备驱动程序。处于I/O系统的次底层,是进程和设备控制器之间的通信程序。将上层发来的抽象ⅣO请求转换为对I/O设备的具体命令和参数,并把它装入到设备控制器中的命令和参数寄存器中,或者相反
- 设备独立性软件。IO软件独立于具体使用的物理设备。
I/O设备的类型:
- 按使用特性分类,I/O设备分为存储设备、IO设备。
- 按传输速率分类,I/O设备分为三类:低速设备、中速设备、高速设备。
设备与控制器之间的接口:数据信号线、状态信号线、控制信号线
设备控制器:
主要功能:控制一个或多个I/O设备,以实现IO设备和计算机之间的数据交换。
基本功能:
- 接收和识别命令,能接收并识别处理机发来的多种命令。
- 数据交换,数据寄存器
- 标识和报告设备的状态,状态寄存器
- 地址识别,识别控制的每个设备的地址,配置地址译码器
- 数据缓冲,在输出时,缓冲区暂存由主机高速传来的数据在输入时,缓冲区暂存从设备送来的数据
- 差错控制
设备控制器的组成:
- 设备控制器与处理机接口:用以实现CPU与设备控制器之间的通信,有三类信号线:数据线、地址线、控制线,通常与两类寄存器相连接:第一类数据寄存器、第二类控制/状态寄存器
- 设备控制器与设备接口
- I/O逻辑
I/O通道设备的引入
I/O通道是一种特殊的处理机,它建立了独立的I/O操作,承担了原来由CPU处理的I/O任务。I/O通道具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。
I/O通道与一般的处理机不同:
- 指令类型单一,主要局限于与I/O操作有关的指令
- 通道没有自己的内存,其所执行的通道程序是放在主机的内存中的
通道类型
- 字节多路通道( Byte Multiplexor Channel):一种按字节交叉方式工作的通道,通产都含有许多非分配行子通道,每个子通道连接一个I/O设备,这些子通道共享主通道。
- 数组选择通道( Block selector Channel):数组选择通道按数组方式进行数据传送,可以连接多台高速设备。然而,它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,其利用率很低。
- 数组多路通道( Block Multiplexor Channel) :数组多路通道将数组选择通道传输速率高和字节多路通道相结合,使得各子通道分时并行操作。它含有多个非分配型子通道。
瓶颈问题及解决方法:通道价格昂贵造成瓶颈;解决瓶颈的办法是:解决方法就是增加设备到主机间的通路而不是增加通道。多通路方式不仅解决了瓶颈问题,而且还提高了系统的可靠性。
I/O设备的控制方式:
早期使用轮询的可编程I/O方式,后来使用中断的可编程I/O方式,随着DMA控制器的出现,又以字节为单位,改为以数据块为单位进行传输,大大改善了I/O设备的性能。
一条宗旨:尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制实物中解脱出来,一遍更多地去完成数据处理任务。
直接存储器访问方式:
1.直接存储器访问方式的特点:
- 数据传输的基本单位是数据块
- 所传送的数据是从设备直接送入内存的
- 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预
2.DMA控制器的组成
- 主机与DMA控制器接口
- DMA控制器与块设备的接口
- I/O控制逻辑
3.DMA的工作流程
4.I/O通道控制方式
I/O通道控制方式的引入:I/O通道方式是DMA方式的发展,可实现CPU、通道和Ⅰ/O设备三者的并行操作,更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向IO通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务
通道程序:由一系列通道指令所构成,通道指令与一般机器指令不同,有以下信息构成:
- 操作码:规定了指令所执行的操作
- 内存地址:标明字符送入内存和从内存取出时的内存首地址
- 计数:表示本条指令所要读写的数据字节数
- 通道程序结束位P:表示通道程序是否结束
- 记录结束标志R:R=0不结束、R=1结束
用户层的I/O软件
假脱机( Spooling)技术
为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输岀技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上或者相反。这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为Spooling(Simultaneaus Periphernal Operating On-line)或称为假脱机操作。
Spooling的组成:
- 输入井和输出、井在磁盘上开辟出来的两个存储区域
- 输入缓冲区和输出缓冲区在内存开辟的两个缓冲区
- 输入进程和输出进程
- 井管理程序
Spooling系统的特点
- 提高了I/O的速度。对数据所执行的I/O操作,已从对低速I/O设备执行的I/O操作演变为对磁盘缓冲区中数据的存取。
- 将独占设备改造为共享设备
- 实现了虚拟设备功能。
假脱机打印机系统
假脱机打印系统有三个部分:磁盘缓冲区、打印缓冲区、假脱机管理进程和假脱机打印进程。
当用户进程请求打印输出时, Spooling系统并不真正立即把打印机分配给该用户进程,而完成两项工作:①在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据送入其中暂存;②为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。
缓冲的引入
引入缓冲的原因:
- 缓和CPU与O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 解决数据粒度不匹配的问题
- 提高CPU和ⅣO设备之间的并行性
1.单缓冲区(Single Buffer)
2.双缓冲区(Double Buffer)
磁盘存储器的性能和调度
磁盘存储器是计算机系统中最重要的存储设备。改善磁盘系统性能的途径:
- (1)通过选择好的磁盘调度算法,以减少磁盘的寻道
- (2)提高磁盘IO速度,以提高对文件的访问速度;
- (3)米取冗余技术,提高磁盘系统的可靠性
数据的组织和格式:
磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface),每个面分若干个磁道(Track),磁道之间有必要的间隙(Gap)
磁盘的类型:
- 固定头磁盘:这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上
- 移动头磁盘:每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。
磁盘访问时间:
- 寻道时间Ts:这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m×n+s
- 旋转延迟时间Tτ:指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400r/min,每转需时11.1ms,平均旋转延迟时间T为555ms;
- 传输时间Tt:把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:
其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时Tt与Tτ相同,因此,可将访问时间Ta表示为:
磁盘调度(目标:使磁盘的平均寻道时间最少)
先来先服务FCFS: 从100号磁道开始
访问请求:55,58,39,18,90,160,150,38,184
平均寻道长度: (45+3+19+21+72+70+10+112+146)/9=55.3特点:公平、简单,每个进程的请求只要依次排队都能得到处理。
会使平均寻道时间较长,有可能出现将要处理的下个进程磁盘请求访问的磁道距离当前的正在访问的磁道很远,而其中有好多是介于这两个磁道中间的访问请求磁道,但由于这些请求访问的磁道是后到来的,因此逃过这些磁道。
仅适用于请求磁盘I/O的进程数目较少的场合。
最短寻道时间优先SSFT: 从100号磁道开始
访问请求:55,58,39,18,90,160,150,38,184
平均寻道长度: (10+32+3+16+1+20+132+10+24)/9=27.5
特点:每次访问的磁道是距离当前访问磁道最近的磁道,因此其磁头平均移动的距离明显低于FCFS调度算法磁头移动的距离,具有更好的寻道性能。
会使某个进程的磁盘访问请求长时间得不到处理。会导致某个进程发生“饥饿”现象。
扫描(SCAN)算法:
原理:沿着上次磁头访问方向移动,直至此方向没访问的磁道,再沿反方向移动,顺序访问。又称电梯调度算法。
访问请求:55,58,39,18,90,160,150,38,184
平均寻道长度: (50+10+24+94+32+3+16+1+20)/9=27.8
特点:不仅考虑到将要访问的磁道与当前正在访问磁道的距离,也考虑到了磁头当前移动的方向。不会出现频繁地变换磁头方向的问题。
SCAN磁盘调度算法易产生的问题: 当磁头刚从里向外移动而越过了某一磁道,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完处于外面的所有需要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大推迟。如 访问请求:18,55,90,100,160,184,18, 150,58,39在访问完100磁道时又到来访问18磁道的请求。
循环扫描(CSCAN)算法:
访问请求:55,58,39,18,90,160,150,38,184
平均寻道长度: 50+10+24+166+20+1+16+3+32)/9=35.8
原理:规定磁道只能单向方向移动,或一直朝着磁道号增加的方向,或一直朝着磁道号减少的方向。每次移动到最外侧的磁道并访问完后,立即返回到最里面的磁道开始重新扫描。
练习题
1、磁盘存储器在计算机系统中进行信息交换的单位是( )。
A.字符 B.比特 C.块 D.记录
2、通道是一种特殊的处理机,具有( )能力。
A.执行I/O指令 B.执行CPU指令
C.传输I/O命令 D.运行I/O进程
3、程序员利用系统调用打开 I/O 设备时,通常使用的设备标识是( )。
A.逻辑设备名 B.物理设备名 C.主设备号 D.从设备号
4、CPU输出数据的速度远远大于打印机的打印速度,为解决这一矛盾可采用( )。
A.并行技术 B. 通道技术 C. 缓冲技术 D. 虚拟技术
5、I/O系统进行分配设备时的过程通常为( )。
A.先分配设备,再分配设备控制器,最后分配通道
B.先分配设备控制器,再分配设备,最后分配通道
C.先分配通道,再分配设备,最后分配设备控制器
D.先分配通道,再分配设备控制器,最后分配设备
6、磁盘设备的I/O控制只要采用( )方式, 打印机的I/O控制主要采用( )方式。
A.中断 B.程序 C.DMA D.通道
7、虚拟设备是靠( )技术来实现的。
A.通道 B.缓冲 C.SPOOLing D.控制器
8、SPOOLing技术的主要目的是( )。
A.提高CPU和设备交换信息的速度 B.提高独占设备的利用率
C.减轻用户编程负担 D.提高主、外存接口
9、SPOOLing系统中,用户进程实际分配到的是( )。
A.用户所要求的外设 B.磁盘空间
C.设备的一部分存储区 D.内存缓冲
10、推动I/O控制方式发展的主要动力是( )。
A.提高CPU和设备交换信息的速度 B.提高设备的利用率
C.减少主机对I/O控制的干预 D.提高CPU和设备的并行程度
11、磁盘调度的目的是为了减少( )时间。
A.启动 B.旋转延迟 C.寻道 D.传送
12、下列算法中可能出现饥饿现象的是( )。
A.循环扫描 B.扫描算法
C.先来先服务 D.最短寻道优先
13、下列算法中可能会随时改变磁头运动方向的是( )。
A.循环扫描 B.扫描算法
C.先来先服务 D.以上答案都不对
14、某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100us, 将缓冲区的数据传送到用户区的时间是50us, CPU对一块数据进行分析的时间为50us。 在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是( )。
A.1500us、1000μs B. 1550us、 1100us
C.1550us、 1550us D.2000μs、 2000us
15、假设磁头当前位于第 105 道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为 35,45,12,68,110,180,170,195,采用 SCAN 调度(电梯调度)算法得到的磁道访问序列是( )。
A.110,170,180,195,68,45,35,12
B.110,68,45,35,12,170,180,195
C.110,170,180,195,12,35,45,68
D.12,35,45,68,110,170,180,195
16、设从磁盘将一块数据传送到缓冲区所用的时间为80微秒,将缓冲区中数据传送到用户区所用时间为40微秒,CPU处理一块数据所用时间为30微秒。如果有多块数据需要处理,采用单缓冲区传送数据,则处理一块数据所用总时间为120微秒。
17、某操作系统采用双缓冲区传送磁盘上的数据。设从磁盘将数据传送到缓冲区的时间为T1,将缓冲区的数据传送到用户区的时间为T2(假设T2远小于T1),CPU处理数据所用时间为T3,则处理该数据系统所用总时间为max(T1,T2+T3)。
答案:
1、C 2、A 3、A 4、C 5、A 6、C、A 7、C 8、B
9、B 10. C 11、C 12、D 13、C 14、B 15A