操作系统内存管理中的内存分页管理与分段管理的地址结构有何区别。

分页管理的地址结构是一部分为页号,一部分为偏移地址。但又有个公式P=A整除页表长。d=A对页表长取余。A代表地址。请问既然地址分成了两部分,页号(P)和偏移地址(d),为... 分页管理的地址结构是一部分为页号,一部分为偏移地址。但又有个公式P=A整除页表长。d=A对页表长取余。A代表地址。请问既然地址分成了两部分,页号(P)和偏移地址(d),为什么还要整除和取余来求得?另分段管理的地址结构也 是分段号和偏移地址。那看起来分页和分段到底有什么区别?粗看起来我真没看出区别来。难道分页的时候,一部分为页号,一部分为偏移地址是个假设概念,其实他们是一个整体。只有在通过公式求得后才分开的?
请你们弄点建设性的意见好不?
展开
 我来答
1718展览网
推荐于2016-05-12 · TA获得超过1105个赞
知道答主
回答量:84
采纳率:0%
帮助的人:101万
展开全部
1。操作系统最大的功能就是管理功能,管理进程调度、管理内存、管理文件系统、管理I/O,...。其中最核心的功能是进程管理,但管理的基础是内存管理,只有把内存管理好了,才能使进程在这个广阔的舞台上自由表演。

2。系统工作模式有三种:实模式、保护模式、虚拟8086模式,其中保护模式又分为:分段保护模式、分段分页保护模式,不同模式下的物理内存管理方式不同。

3。分段保护模式(segmentation):
为了管理好内存,把内存分而治之,划分成小块,这样易于才易于管理。如何划分呢?分段保护模式是把物理内存分段,分成一段一段的区域,每段大小固定/不固定,每段都有不同的用途,这就需要对每个段进行描述,以记录该段有哪些属性或特点,这样在使用该段时才能操作正确。对每个段的描述信息放在“段描述符”中,所有的“段描述符”统一放在一起组成系统的“段描述符表”。“段描述符表”分为“全局描述符表GDT”,“中断描述符表IDT”,“局部描述符表LDT”。当操作系统要访问内存中的某一个段时,先在描述符表中找到该段的描述符,这样就知道了该如何使用该内存段了。简言之,分段是对物理内存分段划分,GDT,LDT,IDT是操作系统使用物理内存的参照依据。

4。段页保护模式(paging):
这是在分段保护模式的基础上,再加上分页功能。把以前的对物理内存的分段改为对虚拟地址空间的分段,把4G的虚拟地址空间分段,段信息仍保存在GDT,LDT,IDT中。然后把物理内存分页,用二级页表结构来描述和记录物理内存分页后的各个页的信息。当使用物理内存时就参照二级页表。

5。使用分页机制的目的:
(1)当系统内存被分成许多凌乱的块时,分页机制可以建立一个大而连续的内存空间映象,程序员不用操心和管理这些分散的内存块。
(2)页地址变换建立在段变换基础上,任何分页机制的保护措施并不会取代段变换的保护措施,而只是进行更进一步的检查操作。
(3)分页机制增强分段的性能。

6。虚拟内存
实现虚拟内存的手段是使用“需求加载Load on demand”和“页换入换出”。所谓的“需求加载”是指:运行一个磁盘上的文件时,操作系统为新进程创建4G线形地址空间,并为其环境参数和命令行参数分配和映射一定数量的物理页,此外并没有给执行程序分配其他任何物理内存页面,也没有从磁盘文件中加载代码和数据。但是,一旦程序从设定的入口点(mian函数)开始运行,就会立刻引起CPU产生一个缺页中断,此时内核中的缺页处理程序才会根据引起缺页异常的具体线形地址把磁盘文件中相关的代码和数据从文件系统中加载到物理内存页面中,并定位到进程逻辑地址中指定的页面位置。这种仅在需要时才加载执行文件中页面的方法称为需求加载技术或需求分页(demand paging)技术。
“页换入和换出”是指:当CPU要寻址的指令或数据不在缓存和物理内存中时,通过需求加载技术把页面加到物理内存,但此时如果物理内存已被全部占用,则必须把物理内存中最近不使用的页面换出到磁盘中,以腾出空间给新页面,这种现在就称为页换入和换出。

7。何时产生GDT,LDT,IDT、二级页目录结构,以及它们位于物理内存的什么位置?
在引导启动程序head.s中初始化GDT,IDT和二级页表,它们放在物理内存从地址0x0开始的地方。
淡淡的雅兴
推荐于2016-11-04 · TA获得超过1.6万个赞
知道大有可为答主
回答量:4172
采纳率:86%
帮助的人:471万
展开全部
分区是把一个硬盘分成几个区来存储文件。像C盘,D盘都分区分出来的。
NT服务器的内存有多大,它总是显得不够充足。当物理RAM从低端开始运行时,Windows NT使用了分页文件Pagefile.sys。为了运行不同的进程和应用程序,Pagefile.sys给物理内存分配了一些空间。在这些空间内允许交换数据页。
默认分页文件在C盘根目录下,这个文件的大小与你的虚拟内存是一样大的,不以删除。一般建议将虚拟内存改在D盘。减少对系统分区的占用,也减少对系统分区的频繁读写。
程序分段的好处。cpu中的段寄存器中保存了段址(base)和偏移值的上限(limit)。段址:有效地址 中,如果有效地址大于limit,便会引发异常。这样就可以限制程序不能范围当前段外的数据,不能访问其他程序的数据。总之就是不能访问它不能访问的数据。
面向对象的好处。对象就是一块连续的内存中的数据吧。这点跟上面一点类似。通过限制访问,就做到了private的效果吧。

分段与分页:
(1)内存分段和内存分页一样都是一种内存管理技术,分段是为了权限保护,分页是为了虚拟内存.
(2)分段后,程序员可以定义自己的段,各段有独立的地址空间,象进程的地址空间互相独立一样.
(3)同一个类的实例分配在一个段中,只有该类的方法可以访问,如果其他类的方法去访问,会因为段保护而出错.可以从硬件上实现类的数据保护和隐藏。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式