BIO 的提交与完成流程是块 I/O 最核心的完整链路,贯穿用户态、内核态、硬件设备三层。完整 BIO 流程分为五大阶段:阶段一:用户态请求发起用户态应用通过标准系统调用(read、write、pread、pwrite)发起文件读写请求。应用调用后触发用户态到内核态的切换,CPU 将进程权限从用户态切换为内核态,将读写参数传递至内核 VFS 层。此时请求仅为文件逻辑读写请求,未涉及任何磁盘物理操作。阶段二:内核态 BIO 封装与初始化VFS 层接收系统调用请求后:文件合法性校验、权限校验、偏移量校验调用文件系统底层函数,将文件逻辑偏移量转化为磁盘物理扇区地址若读写数据未命中页缓存,内核初始化 BIO 结构体填充设备号、起始扇区、读写长度、数据缓冲区、操作类型等核心参数写请求:内核先将数据写入页缓存,标记为脏页,延迟落盘读请求:直接生成读类型 BIO,准备从磁盘读取数据阶段三:通用块层调度下发BIO 提交至通用块层后:请求标准化处理(校验、参数修正)BIO 合并为 request(同设备、同方向、扇区连续/邻近)request 进入 request_queue 排队I/O 调度器排序优化阶段四:硬件设备执行调度器将优化后的 request 下发给设备驱动:驱动将标准化请求转化为硬件可识别指令
