当前位置:文档之家› 操作系统的设备管理

操作系统的设备管理


DC=0 ?
Y 请求中断
N
17
4. 通道控制方式
与DMA方式相比,通道所需的CPU干预 更少,且可以做到一个通道控制多台设备, 进一步减轻了CPU的负担。
通道是一种专用的I/O处理机。 通道有自己的指令系统,若干条通道命令
连接成通道程序。
18
CPU
主存储器
总线
字节多路通道 数组多路通道 选择通道
终端 控制器
磁盘控制器
磁盘控制器
打印机 控制器 读卡机 控制器
磁带控制器 软盘控制器
磁盘控制器
CPU、通道和I/O设备并行工作 19
通道的三种类型
1. 字节多路通道:以字节为单位传输信息,可以分 时地执行多个通道程序,一个通道程序对应一台 设备。主要用来连接大量慢速设备。
2. 选择通道:以成组方式工作,即每次传送一批数 据,故传送速度很高。在一段时间内只能执行一 个通道程序,只允许一台设备传输数据。可用于 连接高速设备,如固定头磁盘等。
3. 数组多路通道:结合了选择通道传送速度高和字 节多路通道能够分时的优点。先为一台设备执行 一条通道指令,自动转接,再为另一台设备执行 一条通道指令。可连接多台活动头磁盘机。
20
工作过程: 1. CPU向I/O通道发出一条I/O指令,给出
所要执行的通道程序的首地址和要访问 的I/O设备。 2. 通道接到CPU发来的指令,通过执行通 道程序便可完成CPU指定的I/O任务。 3. 完成任务后,通道与设备一起发出中断 请求信号,请求CPU处理。
操作系统的设备管理
1
目标和功能
I/O管理是操作系统的主要功能之一,负责 管理所有I/O设备。计算机系统中存在着大 量的I/O设备,其性能和应用特点可能完全 不同,所以要建立一个通用的、一致的设 备访问接口,使用户和应用程序开发人员 能够方便地使用I/O设备,而无须关心每种 设备各自的特性。
I/O管理是管理I/O设备,控制I/O操作
一个地址空间
内存
9
内存映射I/O--混合方案
▪ 内存映射I/O的数据缓冲
区,
▪ 控制器寄存器则具有单独
的I/O端口。
▪ Pentium处理器使用的就
是这一体系结构。
两个地址空间
内存 I/O端口
10
计算机系统对I/O设备的4种控制方式
1. 程序查询方式(轮询(polling)) 2. 程序中断方式 3. 直接存储器访问(DMA)方式 4. 通道控制方式
(2)设备命名。把设备的符号名映射到正 确的设备驱动上。UNIX,/dev/tty01i节 点主设备号(用来定位终端设备驱动程 序),次设备号(作为参数用来确定设备 驱动程序要读/写的具体终端)。
29
(3)设备保护。防止无权存取设备的用户 使用设备。 UNIX的I/O设备作为文件用 “rw”位进行保护。禁止用户进程对I/O 设备直接访问,必须通过OS提供的系统 调用命令进行I/O操作。
11
1. 程序查询方式
向I/O控制器发读命令 CPUI/O 读I/O控制器的状态 I/OCPU
检查状态
出错
未就绪
就绪
从I/O控制器中读入字节 I/OCPU
向存储器中写字节 CPU内存
传送完成
未完 是,停止设备
CPU忙等 串行工作
从外部设 备读取一 块数据到 存储器, 每次读几 个字节的 数据。
12
2) CPU响应中断,执行中断处理程序。 3) 检查设备状态。若是正常完成,就唤醒等
待该I/O的进程。然后检查是否还有I/O请 求,若有,就启动下一个请求。若传输出 错,再发启动传输命令,或向上层报告 “设备错误”的信息。
26
2. 设备驱动程序
❖ 每个设备驱动程序处理一种类型设备。由一些
与设备密切相关的代码组成。提供一些与文件 类似的API:open, close, read, write, control等
体技术。它利用可共享磁盘的一部分空间,模拟 独占的输入/输出设备。以空间换时间。
34
假脱机输出:以打印机为例
Spooling实际是一种缓冲技术。进程要打 印时,系统并不为它分配打印机,而是 在磁盘上申请一个空闲区,把待打印的 数据缓冲到空闲区,再把打印请求挂到 打印队列上。打印机空闲时,从打印队 列上取出一个请求,再从磁盘上的指定 区域取出数据,送打印机打印。这种技 术又叫缓输出技术。
2. 将请求转换成应向控制器发送的命令和设备的具 体参数。
3. 通常,驱动程序进程等待命令完成,阻塞自己, 直到中断处理时将其唤醒。有时不必等待,如滚 屏操作,把几个字节写到控制器中即可。
4. 检查数据传输是否有错;向上层传送数据。 5. 继续未完1)基本任务:实现所有设备都需要的公 共功能,且向用户级软件提供一个统一接 口。
传送字节个数计数器DC
DMA控制器
16
DMA工作过程:
每当磁盘把一块数 据读入控制器的数 据缓冲区时,检验 校验和。DMA控 制器取代CPU,接 管地址总线的控制 权,直接控制与主 存的数据交换。使 CPU访问总线时速 度会变慢。
设置MAR和DC初值
启动DMA传送命令
挪用CPU工作周期传送数据
主存地址增1 数据计数器减1
21
6.2 I/O软件的组成
I/O软件的基本思想:按分层构建,较低 层的软件为较高层的软件服务,使较高 层软件独立于硬件,为用户提供统一接 口。
22
6.2.1 I/O软件的目标
1. 设备独立性。用户在编写使用磁盘上文件的程 序时,无需为不同的设备类型而修改程序,就 可以使用。用户程序中给出的是一个逻辑设备 名,由OS实现逻辑设备与物理设备的映射。
▪ 磁盘控制器:从磁盘驱动器出来的是一连串的
位流,控制器把串行的位流组装为字节,存入 控制器内部的数据缓冲区中,形成以字节为单 位的块。对块验证后,复制到主存。
7
内存映射I/O
▪ 单独的I/O和内存空间
IN R0, 4
MOV R0, 4
前者读取I/O端口4的 内容并将其存入R0, 后者读取内存字4的内 容并将其存入R0。
❖ 是OS中唯一知道设备控制器的配置情况,如设
置有多少个寄存器以及这些寄存器作用的。
❖ 通常包含三部分功能:①设备初始化。②启动设
备进行数据传输例程。③中断处理例程:处理设 备发出的各种中断。
27
工作过程
1. 设备驱动程序接收来自上层软件的抽象请求,并 执行这个请求。若忙,则排到I/O请求队列中。
有 重试或故 障终止
13
3. 直接存储器访问(DMA)
▪ 支持大量数据传输的块设备,其控制器
支持直接存储器存取(DMA,Direct Memory Access)。
▪ 通常,CPU控制地址总线,进行与主存
储器的数据交换。
▪ 允许DMA控制器接管地址总线的控制权,
直接控制与主存的数据交换。
14
DMA方式
2. 程序中断方式
CPU工作情况
CPU/设备 并行工作
向设备控制器
I/O设备工作情况
发写命令
设备驱动程序启动
CPU转去执行其它程序
设备工作
CPU响应中断
设备完成数据传输
将控制传递给中断服务例程 或出错,产生中断
中断服务例程检查 本次传输是否有错
传输有错?


传输完成?

中断返回,继续执
行被中断的进程
5. 设备的分配。涉及到共享设备和独占设备的分 配问题。
24
6.2.2 I/O软件的功能
I/O软件的分层:
1. 中断处理程序 2. 设备驱动程序 3. 独立于设备的软件 4. 用户空间的I/O软件
在I/O软件中, 大部分软件是与
设备无关的。
25
1. 中断处理程序
1) 每个进程在启动一个I/O操作后阻塞起来, I/O操作完成,控制器产生一个中断。
[例] 用户程序中的库函数: count=read(fd, buffer, nbytes); 程序运行期间,库函数read将与该程 序连接在一起形成一个可执行文件装入主存。
(4)提供与设备无关的块尺寸。不同磁盘 可以采用不同的扇区尺寸。应向较高层 的软件掩盖这一事实并提供大小统一的 块尺寸。较高层软件只与抽象磁盘打交 道,使用等长的逻辑块。
30
(5)缓冲技术
缓解CPU与I/O设备间速度不匹配的矛盾,减 少对CPU的中断次数。用户进程发出一个I/O 请求时,OS便在主存分配缓冲区,缓存输入 或输出的数据。以空间换取时间。 1. 单缓冲:OS为I/O请求分配一个缓冲区。 2. 双缓冲:建立两个缓冲区,可以平滑I/O设备 和进程之间的数据流,改善系统效率。 3. 多缓冲和缓冲池:多进程共享缓冲池。
➢ 字符设备:以字符为单位发送和接收字符流。是不可 寻址的。键盘、鼠标、扫描器、打印机、绘图仪、网 络接口等。
❖ 时钟既不是块可寻址的,也不产生或接收字符
流,只是按预先规定好的时间间隔产生中断。
4
6.1.2 设备控制器
❖I/O设备一般由机械和电子两部分组成。机械部
分是设备本身。电子部分叫做设备控制器。
31
高速缓存(补)
(cache)是可以保留数据拷贝的高速内 存。
有时一块内存区域可以同时用于两个目 的。例如,为了有效调度磁盘I/O,在内 存开辟了缓冲区来保留磁盘数据。这些 缓冲区也可以用作高速缓存,可被多个 进程共享。当内核收到I/O请求时,会首 先检查高速缓存里是否有。
32
(6)负责设备分配
➢控制寄存器:被主机用来向设备发送命令。 ➢状态寄存器:包含主机可读取的状态信息。 ➢数据缓冲寄存器
▪ 每个寄存器被分配一个端口号。处理机通过I/O
端口地址找到对应的I/O部件和设备寄存器,以 实现对设备的控制和数据传输。
相关主题