一、 I/O系统
I/O设备
类型
按传输速率高低
- 低速设备:每秒几个字节至数百个字节。键盘、鼠标器、语音输入输出设备
- 中速设备:每秒钟数千个字节至数万个字节。打印机、激光打印机
- 高速设备:数百千个字节至数十兆字节。磁带机、磁盘机、光盘机
按信息交换单位
- 块设备:磁盘。传输效率高,可寻址
- 字符设备:用于数据输入输出。打印机、鼠标
系统总线
- ISA总线
- EISA总线
- PCI总线:PCI既可以连接ISA,EISA等总线,又可支持pentium的64位系统 ,我们现在使用的PC基本都是PCI总线。最大传输速率4GB/sec
二、 I/O控制方式:
程序I/O方式
在该方式中,CPU不断地测试I/O设备的状态。由于CPU的高速性和I/O设备的低速性, 致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。就是因为在CPU中无中断机构。
中断驱动I/O控制方式
在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态.
直接存储器访问DMA I/O控制方式
仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
① 数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;
② 所传送的数据是从设备直接送入内存的,或者相反;
③ 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
三、 中断处理程序
- 唤醒被阻塞的驱动程序进程
- 保护被中断的CPU环境
- 转入相应的设备处理程序
- 中断处理
- 恢复被中断的进程的现场
四、设备驱动程序
功能
(1) 接收由I/O进程发来的命令和参数.
(2) 检查用户I/O请求的合法性.
(3) 发出I/O命令,启动I/O设备去完成指定的I/O操作.
(4) 及时响应由控制器或通道发来的中断请求,并根据 其中断类型调用相应的中断处理程序进行处理。
(5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。
流程
五、与设备无关的I/O软件
设计目标
(1)与具体设备无关
(2)统一命名
(3)对错误的处理
(4)缓冲技术
(5)设备的分配和释放
(6)I/O控制方式
层次和功能
六、 磁盘存储器管理
磁盘性能简述
磁盘的类型
- 固定头磁盘:这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。这种结构的磁盘主要用于大容量磁盘上。
- 移动头磁盘:每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。由于其结构简单, 故仍广泛应用于中小型磁盘设备中。
磁盘访问时间
- 寻道时间(移动头磁盘):
这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和, 即
Ts=m×n+s
其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘, m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2 ms。 这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大, 大体上是5~30 ms。 - 旋转延迟时间:
这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400 r/min,每转需时11.1 ms,平均旋转延迟时间Tτ为6.55 ms;如果旋转速度为7200r/min,平均Tτ为4.16 ms。 - 传输时间:
这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。 Tt的大小与每次所读/写的字节数B和旋转速度有关 .
磁盘调度
先来先服务(FCFS)
最短寻道时间优选(SSTF)
扫描算法(SCAN)
SSTF算法虽然能获得较好的寻道性能, 但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达, 且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。对SSTF算法略加修改后所形成的SCAN算法, 即可防止老进程出现“饥饿”现象。
循环扫描算法
磁盘高速缓存
磁盘的告诉缓存形式
是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘, 而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。
- 在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;
- 把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。此时高速缓存的大小不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。