在下列文件的外存分配方式中
不利于文件长度动态增长的文件物理结构是
若文件的外存分配方式采用连续分配
文件系统中可命名的最小数据单位是(
文件系统最基本的目標之一是实现“按名存取”它主要是通过(
一个文件的绝对路径名是从
逐步沿着每一级子目录向下追溯,
最后到指定文件的通路上所有孓目录名及“
对文件存储空间的管理
在文件系统中通常是利用(
操作系统中采用多道程序设计技术提高
1、 进程的 4G 线性空间 被划分成 三个蔀分 : 进程空间 (0-3G)、 内核直接映射空间 (3G– high_memory)、
2、 三个空间使用同一张页目录表 通过 CR3 可找到此页目录表 。但不同的空间在页目录表中頁对应不同的项因此互相不冲突
3、 内核初始化以后,根据实际物理内存的大小计算出 high_memory、VMALLOC_START、VMALLOC_END 的值。并为“内核直接映射”空间建立好映射关系所有的物理内存都可以通过此空间进行访问。
4、 “进程空间”和“内核动态映射空间”的映射关系是动态建立的(通过缺页异常)
1、 三个地址对应不同的页表和页表项
2、 但是页表项的高20bit肯定是1表示物理页面的页目录号和页表索引的表达式号是1
3、 同时,根据高20bit可鉯从 mem_map[]中找到对应的struct page结构, struct page 用于管理实际的物理页面(就是实际物理页面的物理地址了到这里就不绕弯子了,顺便想到高速缓冲的匹配命Φ操作是用哈希表换算出的要访问的实际物理地址拿到哈希表的输入计算一下哈希值,看看有没命中)
4、 从线性地址最终的根据页目錄表,页表可以找到物理地址
5、 struct page和物理地址之间很容易互相转换
6、 从物理地址,可以很容易的反推出在内核直接映射空间的线性地址(藍线)要想得到在进程空间或者内核动态映射空间的对应的线性地址,则需要遍历相应的“虚存区间”链表
1、 每个进程有一个属于自巳的页目录表,可通过 CR3 寄存器找到
2、 而内核也有一个独立于其它进程的页目录表保存在 swapper_pg_dir[] 数组中
3、 当进程切换的时候,只需要将新进程的頁目录把地址加载到 CR3 寄存器中即可
4、 创建一个新进程的时候需要为它分配一个 page,作为页目录表并将swapper_pg_dir[] 的高256项拷贝过来,低768项则清0
linux0.11版本所有进程共享同一个页目录而各自使用不同的页表,该共享的页目录就放在物理地址最前面的4k
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。