第六章 输入输出系统(一)——I/O系统的组成

I/O系统的主要功能
1.隐藏物理设备细节,方便用户
用户使用抽象的I/O命令即可
2.实现设备无关性,方便用户
用户可用抽象的逻辑设备名来使用设备,同时也提高了OS的可移植性和易适应性。
3.提高处理机和设备的并行性,提高利用率:缓冲区管理
4.对I/O设备进行控制:控制方式、设备分配、设备处理
5.确保对设备正确共享:虚拟设备及设备独立性等
6.错误处理

I/O软件的层次结构
1.用户层软件
实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。
2.设备独立软件
用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
3.设备驱动程序
与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。
4.中断处理程序
用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程。

I/O系统的分层
1.中断处理程序:
处于I/O系统的底层,直接与硬件进行交互
2.设备驱动程序:
处于次底层,是进程和控制器之间的通信程序
功能:将上层发来的抽象I/O请求,转换为对I/O设备的具体命令和参数,并把它装入到设备控制其中的命令和参数寄存器中
3.设备独立性软件:
包括设备命名、设备分配、数据缓冲等软件

在I/O系统与高层接口中,根据设备类型的不同,又进一步分为若干个接口。主要包括:
块设备接口:外存,磁盘,速度快,可寻址
流设备接口:速度低,不可寻址,以字符为单位
网络通信接口

I/O系统的组成包括:
需要用于输入、输出和存储信息的设备;
需要相应的设备控制器;
控制器与CPU连接的高速总线;
有的大中型计算机系统,配置I/O通道;

**设备控制器:**控制一个设备时只有一个地址,若连接多个设备则含有多个设备地址。管理的复杂性因不同设备而异,分为字符设备控制器、块设备控制器。

设备控制器的基本功能
1.接收和识别CPU命令(控制寄存器:存放命令和参数)
2.标识和报告设备的状态(状态寄存器)
3.数据交换(数据寄存器)
4.地址识别(控制器识别设备地址、寄存器地址。地址译码器)
5.数据缓冲(协调I/O与CPU的速度差距)
6.差错控制

设备控制器的组成:
1.设备控制器与处理机的接口
2.设备控制器与设备的接口
3.I/O逻辑

I/O通道为了减轻CPU的负担。
设置通道后,CPU只需向通道发送一条I/O指令即可不再干预后续操作。通道形成通道程序,执行I/O操作,完成后向CPU发中断信号。

通道类型:字节多路通道,数组选择通道,数组多路通道

瓶颈问题:通道价格昂贵,致使数量减少,成为I/O系统的瓶颈,进而造成系统吞吐量下降。
在这里插入图片描述
解决瓶颈问题:增加设备到主机之间的通路而不增加通道。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42361042/article/details/84454551