1、试说明I/O系统的基本功能

  1. 方便用户使用I/O设备
  2. 提高cpu与I/O设备的利用率
  3. 保证用户在使用设备时提供方便,保证系统能够有条不紊的运行

2、简要说明I/O软件四个层次的功能

  1. 用户层软件:提供与用户交互接口,用户可以直接调用接口以对设备进行操作
  2. 设备独立性软件:设备命名保护分配释放,提供数据存储空间
  3. 设备驱动软件:将上层发来的**“抽象的”I/O请求,转成“具体的”请求,再发给设备控制器**
  4. 中断处理程序:保护中断进程的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、嵌套中断

在设置了“中断优先级”的系统中,使用此规则

  1. 当有多个中断请求时,cpu先响应优先级高的中断
  2. 任何时候,高优先级中断可以抢占当前运行的低级中断

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、对独立设备的分配与回收