设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
linux0.11进程共享同一个页目录问题
返回列表
发新帖
linux0.11进程共享同一个页目录问题
[复制链接]
11
|
2
|
2021-1-27 06:27:39
|
显示全部楼层
|
阅读模式
linux0.11版本,所有进程共享同一个页目录而各自使用不同的页表,该共享的页目录就放在物理地址最前面的4k。但我有一个疑惑,如果所有进程共享一个页目录的话,为什么不会产生冲突。例如,进程A访问线性地址0X00f59f50,假设这是第一次访问该地址,系统就会根据线性地址(高10位的页目录项和中间10位的页表项)和新申请的物理地址等等,去设置页目录表和页表中相应的项,这个没有问题;但进程B也访问自己的线性地址空间0X00f59f50时,系统按照同样的方法去做,发现对应的页目录项P位为1,继续查看对应的页表项,发现已经被占用,这时,系统会做什么?还是我上面说的不对?如何体现进程A和进程B对各自线性地址0X00f59f50的访问会使用各自页表?因为这个地址都已经确定了页目录表中的项,也确定了页表中的项,怎么会不冲突呢。
分 -->
回复
使用道具
举报
千问
|
2021-1-27 06:27:39
|
显示全部楼层
谁说所有进程共享一个页目录的?下面是我写的0.11中的内存布局
内存开始的布局
idt
.
.
.
256*8
gdt(前四项)
NULL0x00
code0x08
data0x10
sys0x18
.
.
.
初始化后页目录中的值
0x00001007
0x00002007
0x00003007
0x00004007
0x00000000
.
.
.
0x00000000页表和页目录刚开始是清0的,所以没用到的页目录都是0,这方便刚开始分配内存
以上是页目录,其实页目录里面存的是页表的地址,后12位存的是页表的属性
回复
使用道具
举报
千问
|
2021-1-27 06:27:39
|
显示全部楼层
页目录是和线性地址对应的,nr×64M
应该是几个页目录对应一个进程,不是所有的页目录都用于一个进程
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行