UNIX文件系统架构解析
1. SVR4文件系统相关概念
在SVR4文件系统中,存在多种段类型。其中, segvn 段类型对文件系统开发者最为重要。此外,还有用于管理用户区域的 seg_u 、供内核虚拟内存分配器使用的 seg_kmem ,以及用于使应用程序能够对设备进行内存映射的 seg_dev 。
内核地址空间的管理方式与用户地址空间类似,内核变量 k_as 引用了其自身的地址空间结构,该结构指向多个不同的段,其中一个段代表了SVR4页面缓存。
1.1 匿名内存
当进程开始执行时,数据段可能会被修改,一旦从文件中读取数据后,数据就会失去与文件的关联。所有 segvn 段都包含对原始文件的引用,数据必须从该文件中读取,同时还包含对一组匿名页面的引用。
每个匿名页面在交换设备上都有预留空间。如果内存不足,需要将匿名页面换出时,可以将它们写入交换设备,并在以后再读回内存。匿名页面由 anon 结构描述,该结构包含一个引用计数以及指向实际页面的指针,还指向 si_anon[] 数组中的一个条目,每个交换设备都有一个这样的数组。该数组中的位置决定了如果需要将内存页面换出时,页面在交换设备上的位置。
1.2 SVR4 VFS层的文件I/O
SVR4实现了通常所说的页面缓存,所有文件数据都通过该缓存进行读写。页面缓存与缓冲区缓存、DNLC和其他类型的固定大小缓存有很大
超级会员免费看
订阅专栏 解锁全文
3073

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



