3.4 设备管理
3.4.1 基本概念
1.设备管理的功能与目标
设备管理的功能是按用户需求制定分配和使用设备的策略,为I/O操作的进程分配一条传输信息的通路,最大程度地实行并行操作。
要求达到的目标是:
(1)方便性 用户无须了解物理设备的细节,方便地使用设备。
(2)并行性 使CPU与设备,设备与设备之间并行操作。
(3)均衡性 使CPU和I/O设备操作的忙闲程度保持相对平衡。
(4)独立性 用户程序与设备相对独立,用户在程序中只须用相对设备代号。
2.设备分类
可以从不同的角度将设备划分成不同的类型。这里主要提出:
(1)按使用性质分
·独享设备
·共享设备
·虚拟设备
(2)按使用方法分
·物理设备
·逻辑设备
3.I/O控制方式的改进
(1)循环测试I/O方式
(2)程序中断I/O方式
(3)通道I/O方式
4.缓冲技术
缓解CPU与外设之间速度不匹配的矛盾。
3.4.2 设备管理的工作过程
1.通道、控制器和设备
通道、控制器和设备可以采用各种不同的连接形式构成传输信息的通路。系统为每个通道、控制器与设备建立各自的控制块。
2.设备分配程序
当用户进程提出对某I/O设备的请求后,设备分配程序根据当时设备、控制器、通道的忙闲情况选择相应设备组合;若当时没有找到,则把该进程按一定的调度算法插入到申请该设备的队列中等待。对设备的调度算法也有先请求先服务、优先数法等。在分配时还要考虑防止由于分配不当而产生死锁。
3.设备处理程序
主要的功能为:
(1)发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作。
(2)及时响应中断请求,调用相应的中断处理程序。
(3)根据用户的I/O请求,自动构成通道程序。
3.4.3 虚拟设备---假脱机系统
它是一种预输入、缓输出和转储的管理技术,实现外部设备联机并行操作。它必须有高速随机外存储设备的支持,统称采用磁盘。
1.组成
主要有以下三部分:
(1)输入井和输出井
在磁盘上开辟两个存储空间:输入井模拟脱机输入时的磁盘,用于收容外部设备输入的数据;输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
(2)输入缓冲区和输出缓冲区
在内存中开辟两个缓冲区;输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井;输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
(3)输入进程和输出进程
输入进程模拟脱机输入时的卫星机,它将用户要求的数据从输入机通过输入缓冲区再送到输入井(输入收存),当CPU需要输入数据时,直接从输入井读入内存(输入发出);输出进程模拟脱机输出时的卫星机,把用户需要输出的数据先从内存送到输出井(输出收存),待输出设备空闲时,再将输出井中数据,经过输出缓冲区送到输出设备上(输出发送)。
2.效果
(1)提高了I/O的速度
从对低速I/O设备进行的I/O操作演变为对输入井或输出井数据的存取,如同脱机输出/输入一样,提高了I/O速度,缓和了CPU与低速I/O设备之间速度不匹配的矛盾。
(2)将独占设备改造为共享设备
伪脱机系统实际上并没有为任何进程分配设备,它只是在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表,这样就把独占设备改造为共享设备。
(3)实现虚拟设备的功能
在宏观上看,虽然是多个进程在同时使用一台独占设备,但对每一个进程而言,他们都认为自己是独占了一个设备,实际上这只是个逻辑上的设备,因此伪脱机系统实现了将独占设备变换为若干台对应的逻辑设备的功能。