设备的分配与回收


设备的分配与回收

知识总览

设备分配时应考虑的因素

在这里插入图片描述

设备的固有属性

设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。

独占设备
一个时段只能分配给一个进程(如打印机)

共享设备一一可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。

虚拟设备一一采用 SPOOLing技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用 SPOOLing技术实现的共享打印机)

设备分配算法

先来先服务
优先级高者优先
短任务优先
。。。。。

设备分配中的安全性

在这里插入图片描述

动静态分配

静态分配:进程运行前为其分配全部所需资源,运行结東后归还资源,
破坏了“请求和保持”条件,不会发生死锁

动态分配:进程运行过程中动态申请设备资源

设备分配管理中的数据结构

在这里插入图片描述
一个通道可控制多个设备控制器,每个设备控制器可控制多个设备。

设备控制表
控制器控制表

通道控制表
系统设备表

设备分配步骤

①根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)

在这里插入图片描述

②根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。

在这里插入图片描述

③根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。

在这里插入图片描述

④根据COCT找到CHCT,若通道忙碌则将进程PcB挂到通道等待队列中,不忙碌则将通道分配给进程

在这里插入图片描述

注:只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可后动/O设备进行数据传送

设备分配步骤的改进

缺点:
①用户编程时必须使用“物理设备名”,底层细节对用户不透
明,不方便编程
②若换了一个物理设备,则程序无法运行
③若进程请求的物理设备正在忙碌,则即使系统中还有同类型的设备,进程也必须阻塞等待

改进方法: 建立逻辑设备名与物理设备名的映射机制,用户编程时只需提供逻辑设备名


①根据进程请求的逻辑设备名査找SDT(注:用户编程时提供的逻辑设备名其实就是“设备类型”)
②査找SDT,找到用户进程指定类型的、并且空闲的设备,将其分配给该进程。操作系统在逻辑设备表(LUT)中新增一个表项
③根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。
④根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。

在这里插入图片描述

总结

在这里插入图片描述


文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录