计算机操作系统原理和概念学习DAY5——虚拟存储器技术

1.虚拟存储器

(1)引入虚拟存储器的原因:

              1)作业很大,所要求的内存空间超过了内存总容量,作业不能全部被装入内存,致使该作业无法运行。

              2)有大量作业要求运行,但由于内存容量不足以容纳所有的作业,只能将少数作业装入内存,而将大量作业留在外存上。

(2)常规存储器管理方式特征:

一次性 作业在运行前需要一次性全部装入内存
驻留性 作业装入内存后,便一直驻留在内存中,直至作业运行结束

(3)局部性原理:程序的执行总是呈现局部性,即在一个较短的时间内,程序的执行仅限于某个部分,相应的,它所访问的存储空间也局限于某个区域,因此只要保持进程执行所需要的部分程序和数据驻留在内存,一段时间内进程都能顺利执行。

(4)实现虚拟存储的一般过程:

            1)进程运行之前,仅需要将一部分页面或段装入内存,便可启动运行,其余部分暂时保留在磁盘上

            2)进程运行时,如果他所需要访问的页面已经装入内存,则可以继续执行下去

            3)如果其所需要访问的页面(段)尚未装入内存,则发生缺页中断,进程阻塞

            4)此时,系统将启动请求调页功能,将进程所需的页装入内存

            5)如果当前内存已满,无法装入新的页,则还需要利用页的置换功能,将内存中暂时不用的页交换到磁盘上,以腾出足够的内存空间

            6)再将进程所需的页装入内存,唤醒阻塞的进程,使之重新参与调度执行。

 

(5)虚拟存储器的定义:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。

 

 

(6)虚拟存储管理的实现方法:

          1)请求分页存储管理方式:在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。允许之状如部分页面程序,通过调页功能和页面置换功能把运行页面调入内存,置换以页面为单位。

         2)请求分段系统:允许装入若干段用户程序和数据,即可启动运行,再通过调段功能和段的置换功能将暂不运行的段调出。

 

 

(7)虚拟存储器的特征:

多次性 多次性是指一个作业被分成多次调入内存运行
对换性 对换性是指作业的运行过程中进行换进、换出、能有效的提高内存利用率
虚拟性 虚拟性是指能够从逻辑上扩充内存容量,使用户看到的内存容量远大于实际内存容量

 

 

2.请求分页存储管理方式

(1)请求分页原理:请求分页系统是建立在基本分页基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。

(2)请求分页中的硬件支持:

页表机制

(1)请求分页系统中所需要的主要数据结构是页表

(2)页表项的组成由:页号、物理块号、状态位、访问位、修改位、外存地址

缺页中断机构

(1)在请求分页系统中,每当所要访问的页面不在内存时,便产生一缺页中断,请求OS将所缺之页调入内存

(2)地址转换时,检查页面的页表项中的存在位,如果为0,则产生一个缺页中断

地址变换机构 在分页系统地址变换机构的基础上,再为实现虚拟存储器而增加了某些功能形成的

3.内存分配策略和分配算法

(1)最小物理块数确定:保证进程正常运行所需要的最小物理块数

(2)物理块分配策略:

固定分配局部置换

(1)为每个进程分配一定数目的物理块,在整个运行期间不再改变

(2)困难在于每个进程分配物理块数量难以确定

 

可变分配全局置换

(1)先为系统中的每个进程分配一定数目的物理块,而OS自身也保持一个空闲物理块队列

(2)当某进程发现缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程,并将调入的页装入其中。

(3)凡产生缺页的进程,都将获得新的物理块。

 

可变分配局部置换

(1)为每个进程分配一定数目的物理块,但当某个进程发现缺页时,只允许从该进程在的内存页面中选出一页换出,这样就不会影响其他进程的运行

(2)在进程运行过程中统计进程的缺页率,如果缺页率高,则为其增加一定的内存页,否则适当减少其内存的页面数

(3)物理块分配算法:

平均分配算法 将系统中所有可供分配的物理块,平局分配给各个进程
按比例分配算法 根据进程大小按比例分配物理块的算法
考虑优先权的分配算法

将内存中可供分配的所有物理块分为两部分“

(1)一部分按比例分配给各进程

(2)另一部分根据各进程的优先权,适当的增加其相应份额后,分配给各个进程

 

 

(4)页面装入内存:

预调页方式 采用一种以预测为基础的预调页策略,将那些预计在不久之后便会被访问的页面,预先调入内存
请求调页 仅当在进程执行过程中,才通过检查页表发现相应的页表不在内存时,才装入该页面

 

 

(5)调入页面的位置:

系统拥有足够的对换区空间

(1)进程运行前需将全部有关文件从文件区拷贝到对换区

(2)全部从对换区调入所需页,以提高调页的速度

系统缺少足够的对换区空间

(1)凡是不会被修改的文件,都是直接从文件区调入

(2)对于可能被修改的部分,在换出时,必须调到对换区,以后使用时再从对换区调入

 

 

(6)页面调入过程:

                                 1) 每当程序所要访问的页面未在内存时,便向CPU发出一缺页中断

                                 2)中断处理程序首先保留CPU环境,分析中断原因后,转入缺页中断处理程序

                                 3)如果内存已满,按照某种置换算法从内存中选出一页准备换出,如果此页被修改,则必须将他写回磁盘

                                 4)然后再把所缺页调入内存,修改页表表项,存在位置为1,表项写入快表中

                                 5)形成所要访问的数据物理地址,再去访问内存数据 

 

 

(7)页面置换算法:

最优置换法 选择的被淘汰页面,以后永不使用,或许是最长时间内不再被访问的页面
先进先出页面置换算法 淘汰最先进入内存的页面,选择内存中驻留时间最久的页面淘汰
最近最久未使用置换方法 淘汰最近最久未使用的页面
CLOCK置换方法 置换时将未使用的页面换出去
改进CLOCK置换方法 首选在最近没有被使用过、在驻留内存期间没有被修改过的页面作为被置换页面。
最少使用算法

记录页面被访问的频率

页面缓冲算法

需要置换时,将未被修改页挂在*页链表末尾,已修改页面挂在修改页面链表 末尾,但并不立刻换出内存,以防再被访问到。

 

 

上一篇:day5


下一篇:DAY5