操作系统笔记(十一)虚拟内存
- 虚拟内存
- 概念:区别逻辑内存和物理内存,对于进程而言,逻辑内存式无限大的连续空间。
- 理论依据:对于一个进程而言,实际执行的存储空间很小。
- 实现:demand paging 和 demand segmentation。
- demand paging
- 本质:按需加载页。lazzy swapper。
- 优势:更少的I/O,更少的内存需求,更快的响应,更多进程。
- 实现
- 如何判断是否在内存里:valid(legal + in memory)invalid(illegal or legal + not in memory)。
- 如何处理illegal的情况:page fault 到内核 ; 查看internal table(PCB)得到page fault serivice routine判断(illegal:终止程序,legal + not in:加载到内核)。
- 如何处理物理内存满的情况:page replacement,使得小的物理内存可以实现大的虚拟内存。注意swap out之后和swap in之后都修改了PTE 。
- (一种优化:设置脏位,按需swap out)
- 页面置换算法
- FIFO 先进先出
- 最优置换:未来最少使用的页。很难实现。
- LRU:最近最少使用。上述的近似,需要硬件记录页的最近使用时间。
- second-chance:硬件提供R(A) 位标记是否最近被使用。0则置换,否则清0给second-chance
- 虚拟内存的原理
- 局部性原理:进程从一个局部转移到另一个局部。缓存的原理。
- 抖动:系统频繁的置换page。 -》 cpu利用率低 -》长期调度提高并发性 -》更多进程加载 -》更严重的page fault。原因sum( sizeof(locality) ) > sizeof(physical memory)
- working set model: 近似地衡量locality。统计working set window期间的应用页(working set),作为locality。根据working set 决定进程占用的frame数目。
相关推荐
GenvenLiang 2020-08-10
ljbhander 2020-08-07
emlinux 2020-06-22
fenxinzi 2020-06-21
bluecarrot 2020-01-06
Proudoffaith 2019-12-08
86206132 2019-12-02
小科的奋斗 2019-11-28
jiangtie 2019-10-20
一叶梧桐 2018-09-18
iamplane 2020-08-07
无能力者只知抱怨 2020-03-23
linuxisperfect 2020-03-11
86236135 2015-05-10
wenjs00 2011-04-08
happygongzhuo 2008-07-08
sdfshfh 2009-11-01
少莫千华 2017-04-02