UNIX内核概念解析
1. 文件inode相关概念
- i_atime :表示文件最后一次被访问的时间。
- i_addr字段 :是一个包含8个指针的数组。每个指针可以引用一个512字节的单个磁盘块,也可以引用一个间接块。每个间接块包含32个指针,这些指针可以指向一个512字节的存储块或者一个双重间接块,双重间接块再指向间接数据块。
- 示例1 :如果inode直接引用两个数据块,文件大小在513 - 1024字节之间。若文件大小小于512字节,则只需要一个数据块,此时i_addr[]数组的元素2 - 7为NULL。
- 示例2 :最大文件大小情况,i_addr[]的每个元素引用一个间接块,每个间接块指向32个双重间接块,每个双重间接块指向32个数据块,最大文件大小为32 * 32 * 32 = 32,768个数据块。
2. 用户模式和内核模式
每个UNIX进程通过硬件保护机制与其他进程和内核隔离开。进程运行时可以处于用户模式或内核模式:
- 用户模式 :进程在自己的栈上运行,执行应用程序二进制文件或其链接库中的指令。
- 内核模式 :当进程需要执行系统调用时,通过发出特殊的硬件指令从用户模式转换到内核模式。进入内核后,系统调用的所有参数会被复制到内核的地址空间,执行在单独的内核栈上进行。如果进程的时间片用完或
超级会员免费看
订阅专栏 解锁全文
9256

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



