其他分享
首页 > 其他分享> > 操作系统(五)虚拟存储器管理

操作系统(五)虚拟存储器管理

作者:互联网

在这里插入图片描述

一学期的可也算是基本上完了,不知道大家学的怎样。
应朋友之约,我来总结一下这学期学的操作系统课程,方便大家复习。
总纲:https://blog.csdn.net/qq_43762191/article/details/106411766 (带思维导图)

文章目录

概述

虚拟存储器就是使用虚拟技术从逻辑上对存储器进行扩充。

局部性原理

一次性和驻留性严重地降低内存的利用率,显著地减少了系统吞吐量。
研究表明,程序在执行过程中呈现局部性原理。

时间局部性

一条指令被执行后,那么它可能很快会再次被执行

空间局部性

若某一存储单元被访问,那么与该存储单元相邻的单元可能也会很快被访问

局部性原理使得虚拟存储技术的实现成为可能。一个程序特别是一个大型程序的一部分装入内存是可以运行的。

虚拟存储器的特征

可以把一个程序分多次装入内存,每次装入当前运行需要使用的部分——多次性;
在程序执行过程中,可以把当前暂不使用的部分换出内存,若以后需要时再换进内存——交换性即非驻留性;
程序在内存中可分段存放,每一段是连续的——离散性。
虚拟存储器还有一个最重要的特征——虚拟性,从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

虚拟存储器定义

所谓虚拟存储器,是指仅把程序的一部分装入内存便可运行程序的存储器系统。具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。

虚拟存储器并非可以无限大,其容量受外存大小和指令中地址长度两方面的限制。

分页虚拟存储管理方式

分页虚拟存储管理

基本原理

分页虚拟存储管理方式是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的虚拟存储器系统。
在分页虚拟存储管理时使用的页表,是在原来页表的基础上发展起来的,包括以下内容:物理块号、状态位、访问位、修改位、外存地址 。

缺页中断

每当要访问的页面不在内存时,便产生一缺页中断,请求操作系统把所缺页面调入内存。,请求操作系统把所缺页面调入内存。缺页中断作为中断,它同样需要经历诸如保护CPU现场环境、分析中断原因、转入缺页中断处理程序进行处理、恢复CPU环境等几个步骤。

缺页中断与与一般的中断的区别

-在指令执行期间产生和处理中断信号。
-一条指令在执行期间,可能产生多次缺页中断。

地址变换

在分页存储管理方式中的地址变换机构的基础上,增加了产生和处理缺页中断,以及从内存中换出一页等功能。具体过程:

页面置换算法

如果内存空间己被装满而又要装入新页时,必须按某种算法将内存中的一些页淘汰出去,以便调入新页,这个工作称为“页面置换”。选择被淘汰页的方法成为页面置换算法。

下面都看这张图,并思考如何实现

在这里插入图片描述

最佳置换算法

-算法:淘汰那些以后永不使用,或者是在最长时间内不再被访问的页
-无法实现的,只能作为其它置换算法的衡量标准

先进先出算法

-算法:每次淘汰最先进入内存的页
-优点:简单,易于实现
-缺点:效率不高,可能产生“抖动”现象

先进先出算法

-算法:每次淘汰最先进入内存的页
-优点:简单,易于实现
-缺点:效率不高,可能产生“抖动”现象

最近最久未使用(LRU)算法

-算法:淘汰那些在最近一段时间里最久未被使用的一页
- LRU算法是较好的一个算法,但是开销太大,要求系统有较多的支持硬件(移位寄存器或栈)

改进型Clock置换算法

-算法:除了考虑到页面的使用情况外,还增加了置换代价,选择换出页面时,既要是未使用过的页面,又要是未被修改过的页面把同时满足两条件的页面作为首选被淘汰的页。
-该算法与简单Clock算法比较,可减少磁盘的I/O操作次数 ,但实现该算法本身的开销将有所增加

分页虚拟存储器

内存分配策略和分配算法

最小物理块数
物理块的分配策略
固定分配局部置换
可变分配全局置换
可变分配局部置换

调页策略

请求调页策略

抖动问题

-进程的大部分时间,都用于页面的换进换出,而几乎不能再去做任何有效的工作,从而导致发生处理机利用率急剧下降,而趋于零的现象,我们称此时系统处于抖动状态。
-产生抖动的原因
产生抖动的根本原因是,系统中进程的数量太多,因此分配给每个进程的物理块数量太少,使得每个进程在运行时频繁的发生缺页中断
-工作集
所谓工作集就是指在某段时间间隔∆内,进程访问页面的集合。为了使进程有较低的缺页率,应在该段时间内把进程的全部工作集装入内存中

预防抖动的方法
采用局部置换策略
利用工作集算法防止抖动
利用“L=S”准则调节缺页率
挂起某些进程	  

分段虚拟存储管理

基本原理

-分段虚拟存储管理原理同分页虚拟存储管理原理一样,在程序运行前,不必调入所有分段,只需先调入若干个分段便可启动运行。当所访问的段不在内存中时,可请求操作系统将所缺的段调入内存
-分段虚拟存储管理中的段表包括:段名、段长、段的基址、存取方式、访问位、修改位、存在位、增补位和外存地址

缺段中断

-在分段虚拟存储管理系统中,如果访问的段不在内存中,系统将产生一个缺段中断,请求操作系统将该段调入到内存
-缺段中断和缺页中断一样 ,但段是信息的逻辑单位,所以不可能出现一条指令和一组信息被分割在两个段里的情况

段的共享

-利用段的动态链接很容易实现段的共享,一个共享段在不同作业中可具有不同的段号
-设立一张共享段表对段的共享进行集中管理

标签:操作系统,管理,中断,算法,内存,虚拟存储器,进程,缺页,页面
来源: https://blog.51cto.com/u_15197573/2772388