Linux 文件与进程管理:原理、操作与风险
1. 文件 I/O 排序优化与 FIBMAP
由于文件往往是连续存储的,按逻辑块对 I/O 请求进行排序十分困难。因此,基于文件首个逻辑块的位置进行排序是一种可行的方法。此时, get_nr_blocks() 函数不再必要,应用程序可依据 get_block(fd, 0) 的返回值进行排序。
FIBMAP 方法虽能返回文件所在的实际物理磁盘块,利于排序,但存在明显缺点。它需要 CAP_SYS_RAWIO 权限,即 root 权限,这使得非 root 用户的应用程序无法使用该方法。此外,尽管 FIBMAP 命令是标准化的,但其具体实现由文件系统决定。常见的文件系统如 ext2 和 ext3 支持该命令,但一些特殊的文件系统可能不支持,若不支持, ioctl() 调用将返回 EINVAL 。
2. 进程管理基础概念
在 Unix 系统中,进程是仅次于文件的最基本抽象。它是正在执行的程序,包含二进制映像、虚拟内存实例、内核资源(如打开的文件)、安全上下文(如关联用户)以及一个或多个线程。线程是进程内的活动单元,每个线程都有自己的虚拟处理器,包括栈、寄存器等处理器状态和指令指针。
3. 进程 ID 相关知识
每个进程都由唯一的进程 ID(pid)表示,pid 在任何时刻都是唯一的,但不保证在不同时刻不会被重新分配给其他进程。不过,大多数程序假定内核不会轻易重新分配进程标识符,这种假设通常是合理的。
空闲进程的
超级会员免费看
订阅专栏 解锁全文

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



