Linux操作系统:从起源到实用指南
1. 磁盘I/O管理与错误处理
在管理磁盘I/O设备时,包括USB、并行和串行端口I/O以及文件系统I/O,内核并不直接处理对磁盘的物理访问,而是管理各个运行程序提交的磁盘I/O请求。内核将这些请求传递给文件系统,如EXT[2,3,4]、VFAT、HPFS、CDFS(CD - ROM文件系统)或NFS(网络文件系统)等,并管理文件系统与请求程序之间的数据传输。
错误处理是内核的重要功能之一。错误不可避免,内核需要在错误发生时识别它们,并采取相应的措施,比如重试失败的操作、向用户显示错误消息以及将错误消息记录到日志文件中。在很多情况下,内核可以在无需人工干预的情况下从错误中恢复,但有些情况则需要人工干预。例如,当用户试图卸载正在使用的USB存储设备时,内核会检测到该情况,并向umount程序发送消息,umount程序通常会将错误消息发送到用户界面。此时,用户需要采取必要的操作,确保存储设备不再被使用,然后再次尝试卸载该设备。
下面是内核处理磁盘I/O请求和错误的流程图:
graph LR
A[运行程序提交磁盘I/O请求] --> B[内核接收请求]
B --> C[内核将请求传递给文件系统]
C --> D[文件系统处理请求]
D --> E[数据在文件系统和程序间传输]
F[发生错误] --> G[内核识别错误]
G --> H{是否可自动恢复}
H -- 是 --> I[内核自动恢复]
H -- 否 --> J[向用户显示错误消息]
J --> K[用户
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



