重点 三种设备使用方法

方法描述应用场景
独占使用独占设备一次只分配给一个进程打印机、磁带机
共享使用可同时被多个进程使用,通过调度交替访问磁盘(通过文件系统)
虚拟使用(SPOOLing)用共享设备模拟独占设备,将独占设备转化为共享设备共享打印机

独占设备

  • 分配给一个进程后,其他进程不能使用,直到释放
  • 典型的独享设备:打印机、扫描仪、磁带机
  • 需要设备分配和释放机制
  • 可能导致死锁(进程 A 占用打印机等进程 B 的扫描仪,进程 B 占用扫描仪等进程 A 的打印机)
  • 分配方式:静态分配(进程运行前分配)和动态分配(运行时按需申请)

共享设备

  • 多个进程交替访问同一个设备
  • 通过设备驱动和调度实现并发访问
  • 典型的共享设备:磁盘
  • 进程请求交错执行,由磁盘调度算法决定服务顺序
  • 特点:设备利用率高,无死锁风险

重点 SPOOLing 技术(虚拟设备技术)

  • Simultaneous Peripheral Operations On-Line(联机同时外设操作)
  • 核心思想:用磁盘等共享设备模拟独占设备
  • 组成:
    • 输入井:磁盘上模拟输入设备的缓冲区
    • 输出井:磁盘上模拟输出设备的缓冲区
    • 输入进程:负责将数据从物理输入设备读入输入井
    • 输出进程:负责将数据从输出井写到物理输出设备
  • 工作流程:
    • 进程请求独占设备时,系统在磁盘上分配缓冲区(输入井/输出井)
    • 进程与缓冲区交互,感觉自己在独占设备
    • SPOOLing 后台进程实际与物理设备交互
  • 典型应用:共享打印机
    • 多个进程同时提交打印任务
    • 各进程的输出写入磁盘输出井(各自独占输出井)
    • SPOOLing 输出进程按顺序将输出井内容打印到物理打印机
    • 用户感知:每个进程都有一台专用打印机(虚拟化)
  • 优点:
    • 将独占设备转化为共享设备,提高设备利用率
    • 消除了设备分配中的死锁问题
    • 通过磁盘缓冲平滑 I/O 速度差异