对操作系统虚拟内存机制的理解

1.如果把二进制程序全部加载到内存中,会出现一种情况就是明明内存还有空间,但是不够二进制程序的大小,所以也加载不了,这样很浪费内存,而且会产生外部碎片。所以就改良成2中描述的方案。

2.采用页表的方式对内存进行管理。分页将物理内存和可执行程序划分成很小的区块,这个区块定义为页,每个页的大小为4k,二进制程序中不足4k的页默认为4k。操作系统会为每个进程维护一个页表。页表主要记录进程的页号与内存中的页号的对应关系。这样的话就没有要求二进制程序加载到物理内存中必须是连续的,不会产生外部碎片,但是因为二进制程序中不足4k的页默认为4k,会浪费一点点内存,称为内部碎片。但是因为内存有限,所以加载的二进制程序有限,所以可以有了3中的方案解决内存有限的问题。

3.虚拟内存:

概念:磁盘空间开辟空间作为内存的补充。

进程可以一部分驻留在内存上,而其他部分存储在虚拟内存上。cpu要执行的虚拟地址从页表中找不到对应的物理页地址时,就会发生页中断(页错误)。此时CPU无法执行,中断处理程序会将虚拟地址所在的虚拟内存的空间,将其加载到内存。CPU再次扫描,程序正常执行。这里会涉及到页面的换入换出,所以讲一下系统抖动。

系统抖动概念:在请求分页存储管理中,从内存刚刚换出某一页面后,根据请求又马上换入该页,这种反复换入换出的现象,叫系统抖动,或系统颠簸。系统抖动是因为页错误太多,频繁出现页中断,浪费CPU大部分时间。为了降低系统抖动,降低页错误次数,就要使用页面置换算法(FIFO),原则是先进先出,但这种算法只是在按顺序访问地址空间时是理想的。因此我们可以使用另一种算法,即最近最久未使用算法(LRU),它是置换最近过去一段时间最久未使用的页面。

虚拟内存的优点: 

a.操作系统同时执行的进程数量会大幅提升。 

b.操作系统可以执行比内存空间大的多的进程。

虚拟内存的缺点: 

a.页中断处理程序执行时,CPU需要等待,会浪费时间。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值