关于操作系统分页机制的问题,我想这里的技术含量应该高一些,就到这儿来问了。

natrium11 2001-06-17 11:01:00
INTEL 386处理器,书上是这样说的:

每个进程有一个页目录表(1024*32,表项是一个1024*32的页表,页表的表项是实际的页框),由一个全局寄存器所指向。。。。。。

请问是哪一个全局寄存器?
并且是不是操作系统可将该表放在任何地方,只要合适的设置寄存器的值就行了?
...全文
1433 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ata100 2001-06-30
  • 打赏
  • 举报
回复
西安电子科大的《操作系统》

汤子赢的,比较容易理解,页表部分还成,看看吧
richincsdn1 2001-06-24
  • 打赏
  • 举报
回复
CSDN参与分自动增加器下载(可以把参与分兑换为可用分)http://home.dqt.com.cn/~jera/richincsdn.zip
yueyue 2001-06-23
  • 打赏
  • 举报
回复
高深。
哪位大虾给俺介绍之方面的几本书看看?
zjlcc 2001-06-23
  • 打赏
  • 举报
回复
看看先
brucegong 2001-06-22
  • 打赏
  • 举报
回复




intel网站上的英文资料,讲得很清楚.



natrium11 2001-06-21
  • 打赏
  • 举报
回复
TO singlerace(独行者):
你说的很对,我当时确实没搞懂,不过现在应该已经懂了,呵呵。
natrium11 2001-06-21
  • 打赏
  • 举报
回复
多谢各位的热心回答,我想知道的都已经知道了。

不过必须声明一点,《操作系统:设计与实现》我确实看过了,而且里面也没有涉及这样的细节啊(因CPU而异,而且MINIX又没有用到)。
kevinbear 2001-06-20
  • 打赏
  • 举报
回复
现在的操作系统一般都是以段页式管理内存,先分段,每一段再分成若干页。进程运行时,若缺页,则通过页面置换来提取数据。页面置换由许多种算法,比如AOS,LRU,NRU,FIFO等。在Linux中使用的是计龄换算法,即给每个页面设一个年龄标志,通过对年龄的筛选来置换页面。
bn002 2001-06-20
  • 打赏
  • 举报
回复
nan
azuo_lee 2001-06-19
  • 打赏
  • 举报
回复
Windows根本没用到TSS,即CPU的任务切换功能;页目录寄存器的值也不会变,因为系统实际上只有“一张”页表,进程切换时,不是加载新的页表地址到页目录寄存器,而是使用拷贝的办法复制到那“仅有的一张”页表中。这样做可能是为了页表在物理内存中占用的空间比较少的缘故吧(只占用一张页表的空间)。
Explorer 2001-06-19
  • 打赏
  • 举报
回复
此寄存器是CR3,并且他在运行时是不改变的(至少在W98下是这样的/SOFTICE观测的结果).此地址相对比较固定,一般是相同的,他只和物理内存大小相关.(每次系统启动观测到的数据相同)
liangml 2001-06-19
  • 打赏
  • 举报
回复
是CR3.我写过在win98下读这些页表来映射虚拟地址到物理地址的程序.这和GDT毫无关系.也不要一头钻入那些操作系统的源码去研究这类问题.保护模式下的东西本身就有点繁杂,搞一个大部头来反而淹没了要点. 清华出过一本x86汇编的书里面有不少比较精辟的例子,你可以参考一下.
songyu77 2001-06-19
  • 打赏
  • 举报
回复
CR3存放的是一级页表的首地址(物理地址)
catthunder 2001-06-19
  • 打赏
  • 举报
回复
Maybe in GDT (global descriptor table).
Hyena_lei 2001-06-18
  • 打赏
  • 举报
回复
我以前写过,好象是CR1或CR3保存的,具体记不得了,你可以到www.intel.com下去搜索pentium指令集的文档,里面有说明。另外在装入CR1的时候要操作CR0的分页位。
singlerace 2001-06-18
  • 打赏
  • 举报
回复
恐怕你现在还没有把堆栈、虚拟内存、物理内存的概念真正搞清楚。
niki 2001-06-18
  • 打赏
  • 举报
回复
你知道有一个OS叫minix-vmd吗?
去http://www.minix-vmd.org/,有你要的一切,如果你是真的需要的话。

太简单,去看linux。
kock 2001-06-18
  • 打赏
  • 举报
回复
看LINUX辕马?
应该有这方面的东西。
页表切换可以看WIN DDK,《UNAUTHORIZED WIN98》,《WIN32系统编程奥秘》。
内存合并、移动可以看编译原理的堆管理。
natrium11 2001-06-17
  • 打赏
  • 举报
回复
还有,一般操作系统是怎样处理页表的?比如释放了一些单元后,其对应的页可能很空,这时做不做页表合并?算法如何?或者申请时是申请新的页还是在老页中寻找空间?算法又如何?

唉,这些书上都不讲,好不容易搞来MINIX源代码,才发现他老人家连分页都根本没有用上!!

最多可给300分,拜托各位了!!
tsbob 2001-06-17
  • 打赏
  • 举报
回复
andrew的这两本书很经典,你要是真看过了,居然还会提出这样的问题?我是真的fu了you!
加载更多回复(11)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧