跳转至

设备分配技术

在操作系统中,设备的分配和回收是设备管理的重要功能,旨在优化资源使用,避免冲突,提高系统效率。以下是主要的分配和回收策略:

独占设备的分配

  • 静态分配
    • 在作业开始执行前,系统一次性分配该作业所需的全部设备、控制器和通道。
    • 优点:不会出现死锁问题。
    • 缺点:设备利用率较低,因为资源在整个作业期间被独占,即使作业不再需要时也无法释放。
  • 动态分配
  • 在进程执行过程中按需分配设备。当进程需要使用设备时,通过系统调用请求分配,使用完毕后立即释放。
    • 优点:提高设备利用率。
    • 缺点:如果分配策略不当,可能会导致进程死锁。

设备分配的数据结构

为了管理设备分配,系统使用以下几种控制表:

  • 设备控制表(DCT, Device Control Table)
    • 记录设备的基本信息,包括设备类型、状态(如已分配、未分配等)以及设备队列等。
  • 控制器控制表(COCT, Controller Control Table)
    • 记录控制器的使用状态和连接情况。
  • 通道控制表(CHCT, Channel Control Table)
    • 管理通道的使用状态。
  • 系统设备表(SDT, System Device Table)
    • 记录系统中所有设备的基本信息,如设备类型、数量、驱动程序地址等。
  • 逻辑设备表(LUT, Logical Unit Table)
    • 映射逻辑设备名到物理设备名,实现设备的独立性,允许用户通过逻辑名请求设备。

设备的回收

  • 当设备使用完毕后,系统根据设备的状态表修改设备为“未分配”状态,并从等待队列中选择下一个需要使用该设备的进程进行分配。
  • 对于共享设备,系统在每次I/O操作完成后释放设备,让其他等待进程能够及时使用设备。
  • 采用公用缓冲池结构来优化资源利用,避免设备长时间闲置,提升系统整体效率。

设备独立性

  • 设备独立性使得应用程序与具体物理设备分离,用户只需使用逻辑设备名,不关心实际分配的物理设备。
  • 设备驱动程序和设备独立性软件通过统一接口管理所有设备,执行设备分配和回收,提升系统的可扩展性和适应性。