【操作系统】第六章问题与解答
1、试说明I/O系统的基本功能
- 方便用户使用I/O设备
- 提高cpu与I/O设备的利用率
- 保证用户在使用设备时提供方便,保证系统能够有条不紊的运行
2、简要说明I/O软件四个层次的功能
- 用户层软件:提供与用户交互接口,用户可以直接调用接口以对设备进行操作
- 设备独立性软件:设备命名、保护、分配与释放,提供数据存储空间
- 设备驱动软件:将上层发来的**“抽象的”I/O请求,转成“具体的”请求,再发给设备控制器**
- 中断处理程序:保护被中断进程的cpu环境,并转入相应的中断处理程序,再恢复被中断进程的cpu环境,并从中断点继续运行。
3、I/O系统接口 与 软件/硬件(RW/HW)接口,分别是什么接口?
1、I/O系统接口
它是I/O系统与**上层系统(文件系统、虚拟存储器系统、用户进程)**之间的接口,向上层提供对设备进行操作的抽象I/O命令,方便上层对设备的使用
I/O系统接口也分为三种接口:块设备接口、流设备接口、网络通信接口
1.1、块设备接口:
块设备管理程序与高层的接口,块设备指**“高速传输速率”、“能指定数据的输入地址及输出地址”、“常用DMA方式”的磁盘、光盘**
1.2、流设备接口:
流设备管理程序与高层的接口,流设备指“低速传输速率”、“不能指定数据的输入地址及输出地址”、“常用中断方式”的打印机、键盘
流设备接口还有两个函数:get与put
- get:从字符缓冲区取得一个字符到内存
- put:从内存中将字符输出到字符缓冲区
2、软件/硬件(RW/HW)接口
它上层是I/O系统,它下层是设备控制器
如下图可以看到,在I/O系统接口与RW/HW接口中间的,是I/O系统
4、设备独立性软件有什么含义?为什么要设置这层?
设备独立性软件,在I/O系统的顶层(如图)
功能:
提供设备命名、保护、分配与释放,也提供了数据存储空间
4.1、含义:
I/O软件独立于具体使用的设备
4.2、好处:
提高了I/O系统的可适应性与扩展性,增加新设备或替换设备时,不需要修改I/O软件
5、说明设备控制器的组成
组成:
5.1、设备控制器与cpu接口
共有三种信号线:数据线、地址线、控制线
5.2、设备控制器与设备的接口
控制器**每连接一个设备,就对应一个设备接口;**每个接口中都有“数据“、”控制“、”状态“三种信号
5.3、I/O逻辑
控制器收到cpu发来的命令和设备地址后,由控制器的I/O逻辑对地址和命令译码,再对所选的设备进行控制
6、为了实现cpu与设备控制器的通信,设备控制器应该有什么功能?
设备控制器
主要功能:
控制一个或多个设备,以实现I/O设备与cpu的数据交换
当控制多个设备时,每个设备对应一个设备地址
具体功能:
1、**识别并接收命令:**接收cpu发来的命令,并存入相应的寄存器中
2、**数据交互:**通过数据总线,cpu并行地把数据写入控制器,或从控制器中读取数据
3、**标识与报道设备状态:**设备控制器中应该有状态寄存器,记录管理的每个设备的状态,并反馈给cpu
4、**数据缓冲:**为了解决I/O设备传输低速与cpu传输高速的差异,缓冲区用来接收cpu发来的数据,再以与I/O设备匹配的速率发送出去;或者接收I/O设备发来的数据,再高速的传给cpu
7、什么是内存映像I/O?如何实现的?
将I/O设备的设备控制器地址也放入内存
如:k在0~n-1时,被认为是内存地址;在n~k时,被认为是某个控制器寄存器地址
8、为什么说中断是OS赖以生存的基础?
因为进程之间的切换是通过中断来完成的。
9、设备中断处理程序通常需要完成哪些工作?
1、保存当前被中断进程的运行环境,将相关资源和命令保存到中断堆栈中
2、让cpu处理当前中断程序
3、恢复被中断进程的运行环境,并从中断点继续运行
10、对多中断源的两种处理方式分别用于何种场合?
1、屏蔽中断
当cpu正在处理一个中断时,会屏蔽其它所有中断,并将中断添加到中断请求队列中。当前中断处理完成后,再从队列中处理下一个中断
2、嵌套中断
在设置了“中断优先级”的系统中,使用此规则
- 当有多个中断请求时,cpu先响应优先级高的中断
- 任何时候,高优先级中断可以抢占当前运行的低级中断
11、说明设备驱动程序具有哪些特点?
1、驱动程序是帮助“设备无关程序”和“设备控制器”通信和转换的程序,它将“抽象的I/O请求“,转成”具体的I/O请求“后再给设备控制器
2、驱动程序与”设备控制器“和”设备硬件“相关,不同设备需要有不同的驱动
3、驱动程序与”设备的控制方式“相关,常用的”控制方式“有中断和DMA
12、驱动需要完成哪些工作?
1、接收来自“设备无关程序”的抽象的I/O请求命令,并转换成具体的I/O命令并给设备控制器
2、检测I/O请求是否合法,如:从打印机请求读取数据即为非法
3、检测设备的状态,**如果设备空闲,即可发送具体的I/O命令,并将自己阻塞,等待中断;**否则在设备等待队列中添加当前I/O命令
4、及时响应由设备控制器发来的中断请求
13、说明推动I/O控制发展的主要原因是?
减少处理机对I/O控制的干预,以提高处理机的利用率,让处理机更多地执行数据处理任务。
14、有几种I/O控制方式?分别应用于什么场合?
1、轮询
cpu一直等待I/O设备完成数据处理,这个过程中,cpu要不断检测I/O设备是否完成
适合传输低速设备
2、中断
cpu将I/O请求交给“设备控制器”后继续处理其它任务,“设备控制器”完成I/O任务后,向cpu发出中断,此时cpu再检测数据是否合法并完成I/O请求
适合传输高速设备
3、DMA
1、数据传输的单位为“数据块”,cpu与I/O设备之间每次至少传输“一个数据块”
2、只有一个或多个数据块传输完成时,才有cpu干预,其它时间由DMA控制器处理
3、传送的数据直接由设备送往内存或者直接从内存送出到设备
15、DMA工作流程
假设命令:cpu从磁盘读取一数据块
1、命令被送到“命令寄存器”
2、数据在磁盘中的起始地址送到“I/O控制逻辑”
3、要读取数据的字节数目送到“数据计数器”
4、数据要存放到内存的起始目标地址送到“地址寄存器”
此后,DMA开始进行数据传输,cpu可以执行其它任务,当全部数据传输完成后,DMA控制器向cpu发出中断
16、为什么要引入设备无关性?如何实现设备无关性?
1、让应用程序使用的设备,不局限于某个具体设备
2、在设备驱动程序上层再设置一个“设备无关性软件”层
17、设备无关性软件包括了哪些公有操作?
1、设备驱动程序需要有统一接口
2、需要有数据缓冲区,以缓和cpu与I/O设备之间的矛盾
3、差错控制
4、对独立设备的分配与回收