Loading

复习笔记|第六章 设备管理《操作系统原理教程》

参考教材:《操作系统原理教程(第4版)》刘美华 翟岩龙著

大纲问题回答(精简版)

1. I/O设备通常大致可分为哪两大类?各自传输的信息单位有什么特点?

◆字符设备、块设备
字符设备:人机交互设备。是以字符为单位发送和接收数据的,通信速度比较慢。
块设备:外部存储器。以块为单位传输数据。常见块尺寸:512B~32KB。如磁盘、磁带、光盘等。

2. 常用的四种数据传输方式。

◆程序查询方式、中断方式、直接存储器访问(DMA)方式、通道控制方式
image.png
image.png
3. 直接存储器访问(DMA)
◼ 通常CPU控制地址总线。
◼ 允许DMA接管地址总线,挪用CPU工作周期,控制控制器内的数据缓冲区与主存之间交换数据。
◼ 仅在开始和结束时需要CPU干预。
image.png
image.png
4. 通道控制方式
◼ 与DMA方式相比,通道所需的CPU干预更少,且可以做到一个通道控制多台设备,进一步减轻了CPU的负担。
◼ 通道是一种专用的I/O处理机。
◼ 通道有自己的指令系统,若干条通道命令形成通道程序。
CPU、通道和I/O设备并行工作

3. 根据设备的使用方式,设备被分为几种类型?何为虚拟设备?它是通过什么技术实现的?

◆Spooling技术
① 字符设备:人机交互设备。是以字符为单位发送和接收数据的,通信速度比较慢。键盘和显示器、鼠标、扫描仪、打印机、绘图仪等。
② 块设备:外部存储器。以块为单位传输数据。常见块尺寸:512B~32KB。如磁盘、磁带、光盘等。
③ 网络通信设备:主要用于与远程设备的通信。传输速度比字符设备快,比块设备慢。如网卡、调制解调器等。
④ 时钟:按预先规定好的时间间隔产生中断。
◼ 虚拟设备:是指设备本身是独占设备,经过虚拟技术处理,可以把它改造成共享设备。
Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
假脱机输出:以打印机为例
Spooling技术。进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓存到一个磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。

4. 按照设备管理的层次结构,I/O软件划分为几层?各层主要实现哪些功能?

◆用户层的I/O接口、独立于设备的软件、设备驱动程序、中断处理程序
1. 用户层的I/O接口
2. 独立于设备的软件
① 设备命名
② 设备保护
③ 提供与设备无关的块尺寸
④ 缓冲技术
⑤ 设备分配
⑥ 出错处理
3. 设备驱动程序
4. 中断处理程序
5. I/O硬件

  1. 用户层的I/O接口
    ❖ 大部分I/O软件都包含在操作系统中,有一小部分是由与用户程序连接在一起的库函数构成的。
    2. 独立于设备的软件
    (1)设备命名。负责把设备的符号名映射到正确的设备驱动程序。
    (2)设备保护。将所有的I/O指令定义为特权指令,用户通过系统调用命令使用设备。
    (3)提供与设备无关的块尺寸。应向上层软件提供大小统一的块尺寸。上层软件只与抽象设备打交道,使用等长的逻辑块。
    (4)缓冲技术
    ◼ 缓和CPU与I/O设备间速度不匹配的矛盾。
    ◼ 每个缓冲区有一个缓冲控制块。
    ◼ 以空间换取时间
    1. 单缓冲:OS为I/O请求分配一个缓冲区。
    2. 双缓冲:建立两个缓冲区,可以平滑I/O设备和进程之间的数据流,改善系统效率。
    3. 多缓冲和缓冲池:多进程共享缓冲池。当内核收到I/O请求时,会首先检查缓冲池里是否有。
    (5)负责设备分配
    ◼ 静态分配:进程运行前分配设备。动态分配:在进程运行过程中,分配设备。设备利用率高。
    ◼ 虚拟设备:是指设备本身是独占设备,经过虚拟技术处理,可以把它改造成共享设备。
    Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
    (6)出错处理
    ◼ 绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。
    ◼ 设备驱动程序处理不了的错误(重试几次操作后,仍有错误),上传至调用者。
    3. 设备驱动程序
    ❖ 每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码组成。提供一些与文件类似的API:open, close, read, write,control等。
    ❖ 是OS中唯一知道设备控制器的配置情况,如设置有多少个寄存器以及这些寄存器作用。
    ❖ 通常包含三部分功能:①初始化设备。②启动设备传输数据。③中断处理。
    4. 中断处理程序
    ① 进程在启动一个I/O操作后阻塞起来,I/O操作完成,设备控制器产生一个中断。
    ② CPU响应中断,执行中断处理程序。
    ③ 检查设备状态。
    a) 若正常完成,就唤醒等待的进程。然后检查是否还有待处理的I/O请求,有就启动。
    b) 若传输出错,再发启动命令重新传输;或向上层报告“设备错误”信息。
    ④ 返回被中断的进程,或转进程调度。

5. 何为设备的独立性?

设备独立性是指用户及用户程序不受系统配置的设备类型和具体设备的编号的影响。用户只是使用逻辑设备,具体的映射由操作系统完成。

6. 什么是SPOOLING技术?以输出为例,说明它的实现原理。(SPOOLING技术是以空间换时间)

Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
假脱机输出:以打印机为例
Spooling技术。进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓存到一个磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。

7. 一个特定磁盘上的信息如何进行编址?

盘面号、磁道号和扇区号(或柱面号、磁头号和扇区号)。

8. 要将磁盘上一个块的信息传输到主存需要系统花费哪些时间?

寻道时间、旋转延迟时间和读/写传输时间

9. 常用的磁盘调度算法:先来先服务、最短寻道时间优先、扫描法(SCAN, C_SCAN,LOOK, C_LOOK)。

◼ 先来先服务:
优点:最简单,易实现,又公平合理
缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间
◼ 最短寻道时间优先:在将磁头移向下一请求磁道时,总是选择移动距离最小的磁道。改善了磁盘平均服务时间。
◼ 扫描法:读/写磁头在由磁盘的一端向另一端移动时,随时处理所到达磁道上的服务请求。
① SCAN:扫描,改进成LOOK
② C-SCAN:循环扫描,改进成C-LOOK
◼ C-LOOK(循环查询)

大纲问题回答

1. I/O设备通常大致可分为哪两大类?各自传输的信息单位有什么特点?

◆字符设备、块设备
字符设备:人机交互设备。是以字符为单位发送和接收数据的,通信速度比较慢。
块设备:外部存储器。以块为单位传输数据。常见块尺寸:512B~32KB。如磁盘、磁带、光盘等。

2. 常用的四种数据传输方式。(2)

  1. 程序查询方式:向设备控制器发写命令,读设备控制器的状态,若完成,则从内存读数据并向设备控制器写入,否则循环判断设备控制器是否完成;此方式 CPU和设备串行工作,循环等待的过程会造成 CPU 忙等;
  2. 中断方式:向设备控制器发写命令后,CPU 转去执行其他程序,同时设别驱动程序启动设备工作,直至传输完成发出中断;CPU 响应中断,中断当前服务的例程,之后检查传输是否出错,无错则完成,有错则重试或故障终止;此方法传送完一部分就要让 CPU 中断一次,效率仍不够高;
  3. 直接存储器访问 DMA:让 DMA 控制器接管地址总线控制权,直接控制控制器内部缓冲区与主存进行数据交换;其仅在开始和结束时需要 CPU 干预,中间 CPU可做其他事,减少了中断次数,提高了 CPU 运行效率;
  4. 通道控制方式:使用专用的 I/O 处理机——通道处理多个设备的 I/O 请求,有自己的指令系统,若干条通道命令连接成通道程序,其所需的 CPU 干预更少,且可做到一个通道控制多台设备;

image.png
image.png
3. 直接存储器访问(DMA)
◼ 通常CPU控制地址总线。
◼ 允许DMA接管地址总线,挪用CPU工作周期,控制控制器内的数据缓冲区与主存之间交换数据。
◼ 仅在开始和结束时需要CPU干预。
image.png
image.png
4. 通道控制方式
◼ 与DMA方式相比,通道所需的CPU干预更少,且可以做到一个通道控制多台设备,进一步减轻了CPU的负担。
◼ 通道是一种专用的I/O处理机。
◼ 通道有自己的指令系统,若干条通道命令形成通道程序。
CPU、通道和I/O设备并行工作

3. 根据设备的使用方式,设备被分为几种类型?何为虚拟设备?它是通过什么技术实现的?(2)

设备:独占性设备——对应临界资源,共享时只允许一个进程在某时间段内使用;
共享设备——共享时允许多个进程的交叉访问;
虚拟设备——设备本身是独占设备,但通过虚拟技术处理后可改造成共享设备。

Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
假脱机输出:以打印机为例
Spooling技术。进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓存到一个磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。
注:独占性设备——虚拟技术(设备)—→共享设备

4. 按照设备管理的层次结构,I/O软件划分为几层?各层主要实现哪些功能?(5)

◆用户层的I/O接口、独立于设备的软件、设备驱动程序、中断处理程序
1. 用户层的I/O接口——用于发出一些系统调用如读文件;
2. 独立于设备的软件——实现所有设备都需要的功能,如设备命名、保护、提供与设备无关的块尺寸、缓冲技术解决主存与设备速度不匹配的问题、设备分配与调度、出错处理等;
3. 设备驱动程序——每种设备驱动程序处理一种类型的设备;
4. 中断处理程序——处理中断,检查设备状态,若正常完成,则唤醒等待进程,并处理后面可能的待处理 I/O 请求,若传送出错,则重新传输或向上层报告设备错误信息;

  1. 用户层的I/O接口
    ❖ 大部分I/O软件都包含在操作系统中,有一小部分是由与用户程序连接在一起的库函数构成的。
    2. 独立于设备的软件——实现所有设备都需要的功能,如设备命名、保护、提供与设备无关的块尺寸、缓冲技术解决主存与设备速度不匹配的问题、设备分配与调度、出错处理等;
    (1)设备命名。负责把设备的符号名映射到正确的设备驱动程序。
    (2)设备保护。将所有的I/O指令定义为特权指令,用户通过系统调用命令使用设备。
    (3)提供与设备无关的块尺寸。应向上层软件提供大小统一的块尺寸。上层软件只与抽象设备打交道,使用等长的逻辑块。
    (4)缓冲技术
    ◼ 缓和CPU与I/O设备间速度不匹配的矛盾。
    ◼ 每个缓冲区有一个缓冲控制块。
    ◼ 以空间换取时间
    1. 单缓冲:OS为I/O请求分配一个缓冲区。
    2. 双缓冲:建立两个缓冲区,可以平滑I/O设备和进程之间的数据流,改善系统效率。
    3. 多缓冲和缓冲池:多进程共享缓冲池。当内核收到I/O请求时,会首先检查缓冲池里是否有。
    (5)负责设备分配
    ◼ 静态分配:进程运行前分配设备。动态分配:在进程运行过程中,分配设备。设备利用率高。
    ◼ 虚拟设备:是指设备本身是独占设备,经过虚拟技术处理,可以把它改造成共享设备。
    Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
    (6)出错处理
    ◼ 绝大多数错误是与设备密切相关的,一般由设备驱动程序来处理。
    ◼ 设备驱动程序处理不了的错误(重试几次操作后,仍有错误),上传至调用者。
    3. 设备驱动程序
    ❖ 每个设备驱动程序处理一种类型设备。由一些与设备密切相关的代码组成。提供一些与文件类似的API:open, close, read, write,control等。
    ❖ 是OS中唯一知道设备控制器的配置情况,如设置有多少个寄存器以及这些寄存器作用。
    ❖ 通常包含三部分功能:①初始化设备。②启动设备传输数据。③中断处理。
    4. 中断处理程序
    ① 进程在启动一个I/O操作后阻塞起来,I/O操作完成,设备控制器产生一个中断。
    ② CPU响应中断,执行中断处理程序。
    ③ 检查设备状态。
    a) 若正常完成,就唤醒等待的进程。然后检查是否还有待处理的I/O请求,有就启动。
    b) 若传输出错,再发启动命令重新传输;或向上层报告“设备错误”信息。
    ④ 返回被中断的进程,或转进程调度。

5. 何为设备的独立性?(3)

设备独立性是指用户及用户程序不受系统配置的设备类型和具体设备的编号的影响。用户只是使用逻辑设备,具体的映射由操作系统完成。

6. 什么是SPOOLING技术?以输出为例,说明它的实现原理。(SPOOLING技术是以空间换时间)(2)

Spooling技术是实现虚拟设备的一种技术。它利用可共享的磁盘空间,来模拟独占的I/O设备。以空间换时间
假脱机输出:以打印机为例
Spooling技术。进程要打印时,系统并不为它分配打印机,而是把待打印的数据缓存到一个磁盘文件上,形成待打印文件队列。之后,Spooling系统一次一个地将打印队列上的文件送打印机打印。这种技术又叫缓输出技术。

7. 一个特定磁盘上的信息如何进行编址?

盘面号、磁道号和扇区号(或柱面号、磁头号和扇区号)。

8. 要将磁盘上一个块的信息传输到主存需要系统花费哪些时间?(3)

寻道时间、旋转延迟时间和读/写传输时间

9. 常用的磁盘调度算法:先来先服务、最短寻道时间优先、扫描法(SCAN, C_SCAN,LOOK, C_LOOK)。(5)

◼ 先来先服务:
优点:最简单,易实现,又公平合理
缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间
◼ 最短寻道时间优先:在将磁头移向下一请求磁道时,总是选择移动距离最小的磁道。改善了磁盘平均服务时间。
◼ 扫描法:读/写磁头在由磁盘的一端向另一端移动时,随时处理所到达磁道上的服务请求。
① SCAN:扫描,改进成LOOK
② C-SCAN:循环扫描,改进成C-LOOK
◼ C-LOOK(循环查询)

posted @ 2023-08-07 13:51  LateSpring  阅读(176)  评论(0编辑  收藏  举报