操作系统之分页式内存管理1

1.分页内存管理的核心就是:页面的翻译。

对于任何一个虚拟页面,系统要知道该页面是否在物理内存中?如果在的话,对应的物理页面是哪一个?如果不在,就会产生一个缺页中断,并将该虚页从磁盘转到内存,然后将分配给它的物理页面号返回。虚拟页面到物理页面的映射,这个翻译过程由内存管理单元MMU完成。MMU接收CPU发出的虚拟地址,将其翻译为物理地址后发给内存。MMU对虚拟地址的翻译只是对页面号的翻译,而对于偏移值则不进行任何操作,这是因为虚拟页表和物理页表大小完全一样,虚拟页面里的偏移值和物理页面里的偏移值完全一样,因此无需翻译。


2.页表在分页管理系统中的地位?

  页表记录的条数与虚拟页面数相同。对于32位寻址的虚拟地址,如果页面大小为4KB,则页表的记录条数最多可以达到1048576条。内存管理单元依赖页表来进行一切与页面有关的管理活动,例如,判断某一页面号是否在内存中,页面是否受保护,页面是否非法空间。

3.页表记录了那些内容?


4.页面翻译过程?

5.分页内存管理的缺点与解决方法?

   页表会很大,占用大量的内存空间,如1048576个页面的记录,每个记录又会占用多个字节,这样一个页表所占的内存空间就很大了。

   1)多级页表



 2) 反转页表

6.如何提高翻译效率?

  如果使用单级页表,则每次内存访问变为两次内存访问,先访问页表,在访问实际的物理内存,如果使用多级页表或反转页表,则每次内存访问变为更多次的内存访问,这样效率会越来越低。为了提高这种内存翻译的效率,我们想出了一些方法。

在一段时间内,程序所要访问的地址空间有一点的空间局限性,如果一个页面被访问,则有些页面被访问的可能性很大,这样我们可以将这些页面的翻译结果存在缓存里,如是可以大大提高系统效率。




 TLB通常由CPU制造商提供,但TLB的更换算法则有可能由操作系统提高。

7.缺页中断处理?

8.锁住页面:如果一个页面非常重要,可以把它锁住,从而防止不必要的页面替换。

9.一个进程内的碎片空间称为内部空间,页面越大,内部碎片就可能越大。而页面越小,则页表尺寸将越大,所以页面尺寸的大小要在内部碎片和页表大小之间平衡。

10.内存抖动的概念?

   在更换页面时,如果更换的页面是一个很快就会被访问的页面,则在此次缺页中断后很快又会发生新的缺页中断,最坏的情况是,每次新的访问都是对一个不在内存的页面进行访问,即每次内存访问都会产生缺页中断,这样每次的内存访问其实变成可磁盘访问,磁盘的访问速度可能会比内存慢几百万倍,因此整个系统的效率急剧下降,这种现象称为内存抖动。发生内存抖动是,系统几乎看不到任何进展的现象,CPU的资源绝大部分将消耗在缺页中断上。

 

 

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值