首页 > 其他 > 详细

操作系统-虚拟内存

时间:2021-01-03 22:29:00      阅读:40      评论:0      收藏:0      [点我收藏+]

为什么要引入虚拟内存?

扩充逻辑上的内存,使得程序不需要全部,而是部分装入也能运行。

虚拟内存空间由什么因素决定,计算机的地址线数决定。

虚拟内存会解决什么问题,会带来什么问题

解决多道程序中可能存在内存不够的问题。利于多道程序的并发

掌握虚拟内存解决问题的思想,了解几种替换算法的优劣,熟练掌握虚实地址的转换

虚拟内存的基本概念

传统存储方式的特征:

都是把多个进程同时装入内存,以便允许多道程序设计。它们都具有一下两个共同的特征:

一次性:

作业一次性装入内存后,才开始运行。

这样会导致两种情况:1作业很大不能全部装入内存,使得该作业无法运行。2大量作业要求运行,内存不够全部装入容纳所有作业,只能使得少量作业先运行,导致多道程序度的下降。

驻留性:作业被装入内存后,就一直驻留在内存里,其任何部分都不会被换出,直到作业运行结束。运行中的进程会因等待IO而被阻塞,可能处在长期等待的状态。

局部性原理

时间局部性,刚用过的页面可能不久再用

空间局部性:因为数组向量链表等形式导致集中在一个局部访问

 

虚拟存储器的定义的特征:

叫这个名字部分因为

系统提供了 装入一部分,请求调入需要的那部分 和满的时候,置换功能 后(用户不可见),导致的结果就是

用户感觉全部的作业都装进了内存。好像有一个比实际的物理内存大得多的存储器。

存储器的大小也是由计算机的地址结构决定,不是内存外存简单相加。

如8根地址线。

决定装入一部分,是根据局部性原理,把常访问的装入内存。其余的留在外存,即可执行程序了。执行的时候访问的信息不在内存的时候,

操作系统把所需要的部分调进来,接着执行。同时操作系统又把不用的部分调出去,调外存,腾出空间装将要调入内存的信息。

 

特征(与传统的存储方式对比):

多次:作业没必要一次性装入内存,允许被分成多次调入内存

对换:作业运行时没必要常驻内存,允许作业在运行过程中,进行换进和换出

虚拟:逻辑上扩充内存容量

 

技术的实现:

可以采用连续分配或者离散分配内存管理方式基础上,但是连续分配导致空间利用率不高,浪费空间。

1请求分页

2请求分段

3请求段页式存储管理

需要操作系统,也需要硬件支持

1, 一定容量的内存和外存

2, 页表机制作为主要的数据结构

3, 中断机构,如果用户程序访问的部分没调入内存,该机构中断

4, 地址变换机构,逻辑地址到物理地址的变换

 

请求分页管理方式:

建立在基本分页系统基础上,为了支持虚拟存储器 而增加了请求调页和页面置换功能。请求分页是目前常用的实现虚拟存储器的方法。

 

具体操作:

页表机制:

和基本分页系统不同的是,

发现和处理 要访问的页面不在内存中这种情况是请求分页系统必须处理的问题

页表项为此增加了四个字段:

状态位:指示该页是否被调入内存,供程序访问时参考。

访问字段:记录本页在一段时间内被访问的次数,置换算法参考

修改位:标识该页调入内存后是否被修改过

外存地址,指出该页在外存的地址,物理块号,供调入该页时参考。

缺页中断机构:

访问的页不在内存时,产生一个缺页中断,请求操作系统把所缺的页调入内存。此时应将缺页的进程阻塞,如果内存里有空闲块,分配一个块把调入的页装入该块,并修改该页表项,若此时没有,需要淘汰某页。

缺页中断作为中断,同样要经历诸如保护cpu环境,分析中断原因,转入缺页中断处理程序,恢复cpu环境等几个步骤

 

它与一般的中断还有区别:

一条指令执行期间,可能产生多次缺页中断。

指令执行期间而不是执行后产生处理中断信号,属于内部中断。

 

地址变换机构

这个地址变换机构是在基本分页基础上,为了实现虚拟内存,增加某些功能而形成的。

 

请求分页的:

地址变换时,先检索快表。

如果找到要访问的页,修改页表项中的访问位

 

页面置换算法(决定应该换入哪页,换出哪页)

好的页面置换算法应该是较低的页面更换频率,不要经常换进换出,导致更换的时间比程序执行的时间都长。

下面是几种页面置换算法:

1.最佳置换算法(理想的)

 

 

操作系统-虚拟内存

原文:https://www.cnblogs.com/yizhizhangBlog/p/14227148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!