1. 设备分配的改进

Q: 如何改进设备分配程序以提高灵活性?
A:

  1. 增加设备的独立性:使用逻辑设备名请求 I/O,允许系统在同类设备中选择空闲设备进行分配。
  2. 考虑多通路情况:在多通路 I/O 系统中,允许系统在多个控制器和通道中选择空闲资源进行分配。

Q: 设备分配过程中需要访问哪些数据结构?
A: SDT → DCT → COCT → CHCT

Q: 成功分配一个设备需要满足哪些条件?
A: 设备可用、控制器可用、通道可用。

2. 用户缓冲区和内核缓冲区

Q: 什么是用户缓冲区?
A: 用户缓冲区是用户进程申请的一块内存区域,用于存放从内核读取的数据,目的是减少系统调用次数,降低用户态与核心态切换的开销。

Q: 什么是内核缓冲区?
A: 内核缓冲区是操作系统内核维护的一块内存区域,用于缓存磁盘数据,目的是提高磁盘 I/O 效率,优化磁盘写操作。

Q: 用户进程读写数据时如何与内核缓冲区交互?
A:

  • 读取数据时,内核先将数据从磁盘读取到内核缓冲区,再将数据从内核缓冲区复制到用户缓冲区。
  • 写入数据时,内核先将数据写入内核缓冲区,再在适当的时机将数据从内核缓冲区写入磁盘。