设备的分配与回收

设备的分配与回收

image


一、设备分配时的考虑因素

image

(一)设备的固有属性

  • 独占设备:一个时段只能分配给一个进程(如打印机)
  • 共享设备:可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。
  • 虚拟设备:采用 SPOOLing 技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用 SPOOLing 技术实现的共享打印机)

(二)设备分配算法

  • 先来先服务
  • 优先级高者优先
  • 短任务优先
  • ......

(三)设备分配中的安全性

image

(回顾:第二章的死锁及其处理策略)

(补充:不安全分配方式并不意味着进入了不安全状态(不安全状态见死锁的处理策略))

二、静态分配与动态分配

  • 静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源

    (有了全部资源才能开始运行。破坏了“请求和保持”条件(见死锁产生的四个条件),不会发生死锁)

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

    (可能发生死锁)

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

image

(一)DCT 设备控制表 Device Control Table

image

(二)COCT 控制器控制表 Controller Control Table

image

(三)CHCT 通道控制表 Channel Control Table

image

(四)SDT 系统设备表 System Device Table

image

四、设备分配的步骤

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

image

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

image

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

image

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

image

——重点:

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

五、设备分配步骤的改进

原本的第一步:根据进程请求的物理设备名查找 SDT(注:物理设备名是进程请求分配设备时提供的参数)。

image

改进方法:

建立逻辑设备名物理设备名的映射机制,用户编程时只需提供逻辑设备名。

image

LUT 逻辑设备表 Logical Unit Table 见 5.4 节 I/O 软件层次结构

image

——重点:

最终的设备分配步骤为:

逻辑设备名——(LUT——物理设备名——SDT)——DCT——COCT——CHCT

posted @   Wind_730  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示