重点 三种设备使用方法
| 方法 | 描述 | 应用场景 |
|---|
| 独占使用 | 独占设备一次只分配给一个进程 | 打印机、磁带机 |
| 共享使用 | 可同时被多个进程使用,通过调度交替访问 | 磁盘(通过文件系统) |
| 虚拟使用(SPOOLing) | 用共享设备模拟独占设备,将独占设备转化为共享设备 | 共享打印机 |
独占设备
- 分配给一个进程后,其他进程不能使用,直到释放
- 典型的独享设备:打印机、扫描仪、磁带机
- 需要设备分配和释放机制
- 可能导致死锁(进程 A 占用打印机等进程 B 的扫描仪,进程 B 占用扫描仪等进程 A 的打印机)
- 分配方式:静态分配(进程运行前分配)和动态分配(运行时按需申请)
共享设备
- 多个进程交替访问同一个设备
- 通过设备驱动和调度实现并发访问
- 典型的共享设备:磁盘
- 进程请求交错执行,由磁盘调度算法决定服务顺序
- 特点:设备利用率高,无死锁风险
重点 SPOOLing 技术(虚拟设备技术)
- Simultaneous Peripheral Operations On-Line(联机同时外设操作)
- 核心思想:用磁盘等共享设备模拟独占设备
- 组成:
- 输入井:磁盘上模拟输入设备的缓冲区
- 输出井:磁盘上模拟输出设备的缓冲区
- 输入进程:负责将数据从物理输入设备读入输入井
- 输出进程:负责将数据从输出井写到物理输出设备
- 工作流程:
- 进程请求独占设备时,系统在磁盘上分配缓冲区(输入井/输出井)
- 进程与缓冲区交互,感觉自己在独占设备
- SPOOLing 后台进程实际与物理设备交互
- 典型应用:共享打印机
- 多个进程同时提交打印任务
- 各进程的输出写入磁盘输出井(各自独占输出井)
- SPOOLing 输出进程按顺序将输出井内容打印到物理打印机
- 用户感知:每个进程都有一台专用打印机(虚拟化)
- 优点:
- 将独占设备转化为共享设备,提高设备利用率
- 消除了设备分配中的死锁问题
- 通过磁盘缓冲平滑 I/O 速度差异