块设备 I/O 与缓冲区管理及网络编程相关知识
1. 块设备 I/O 与缓冲区管理
在块设备 I/O 和缓冲区管理中,涉及到磁盘控制器、磁盘中断、虚拟磁盘等多个方面。
1.1 磁盘控制器
磁盘控制器是主进程的子进程,它与 CPU 端通过管道进行通信。通信管道包括以下几种:
-DataOut:写操作时从 CPU 到磁盘控制器的数据输出。
-DataIn:读操作时从磁盘控制器到 CPU 的数据输入。
-IntStatus:从磁盘控制器到 CPU 的中断状态。
-IntAck:从 CPU 到磁盘控制器的中断确认。
流程图如下:
graph LR A[CPU] -->|DataOut| B[磁盘控制器] B -->|DataIn| A B -->|IntStatus| A A -->|IntAck| B1.2 磁盘中断
磁盘控制器到 CPU 的中断通过SIGUSR1(#10)信号实现。每次 I/O 操作结束时,磁盘控制器会发送kill(ppid, SIGUSR1)系统调用,向父进程发送SIGUSR1信号,作为对虚拟 CPU 的中断。为避免竞争条件,磁盘控制器必须在收到 CPU 的中断确认后才