操作系统总结之虚存


虚拟内存
前一章内存管理介绍了几种技术如分页分段把一个进程分成多个页,分开存放,在PCB中维持一个页表。进程执行的前提是进程的全部页都已经在内存中了。
虚拟内存技术就解决了这个问题,不需要一个进程把全部的页都放在内存才能执行。
动态载入虽然也解决了这个问题,但是需要程序员完成,非常麻烦。
其实我们发现,一个程序包含了很多条件语句还有异常处理等,这些代码肯定要选择执行的。所以全部调入会显得冗余,增加了磁盘到内存的传输时间。并且减少一个进程的空间可以使得内存容
摘要由CSDN通过智能技术生成

虚拟内存
前一章内存管理介绍了几种技术如分页分段把一个进程分成多个页,分开存放,在PCB中维持一个页表。进程执行的前提是进程的全部页都已经在内存中了。
虚拟内存技术就解决了这个问题,不需要一个进程把全部的页都放在内存才能执行。
动态载入虽然也解决了这个问题,但是需要程序员完成,非常麻烦。
其实我们发现,一个程序包含了很多条件语句还有异常处理等,这些代码肯定要选择执行的。所以全部调入会显得冗余,增加了磁盘到内存的传输时间。并且减少一个进程的空间可以使得内存容纳更多的进程,增加

多道程序的度。
虚拟地址空间就是一个逻辑视图,通过MMU映射到物理地址空间。
稀地址空间:进程的堆和栈之间的空白的虚拟地址空间。
进程虚拟地址空间内容:堆向上伸展,栈向下伸展,代码和数据。中间放共享库。
虚拟内存可以通过共享页将文件或内存共享给多个进程。每个进程都认为库位于自己的虚拟地址空间。
按需调页:一个进程分成多个页,在需要时调入相应的页,也称为懒惰交换。
按需调页对于性能的影响很大,因为会发生页错误,所以尽量减少页错误。
交换是将整个进程看成一个整体,通过交换程序进行交换,而懒惰交换是将一个进程看成多个页,通过调页程序进行交换。   /*pager VS swapper*/
而我们通过有一张页表维护有效-无效位来区分哪些页在内存,哪些页在磁盘。如果在内存且页号有效,则记为v,如果在磁盘上,则为i。
如果访问无效位的页,则通过页错误方式来解决即如果发现要访问的页不在内存,则:
1.终止进程,保存现场,并通知操作系统。
2.寻找空闲帧,如果没找到,用到页面置换技术。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值