您的位置:首页 > 其它

[OS复习]虚拟存储管理技术 1

2016-08-13 22:55 218 查看

1.问题的引入

简单存储:要求将一个进程所需的程序和数据全部装入内存方可执行。这样的系统存在两个很严重的问题。其一,对于大进程,如果其所需内存空间超过了内存的最大容量,则无法运行。其二,对于多道程序系统,由于每一个进程需要全部装入内存,使同时驻留内存的进程数量受到限制。虽然也可以通过提高内存容量来解决,但是代价太高。

如果能将一部分价格较低的外存空间当作内存使用,从逻辑上扩充内存容量。那么,将获得更高的性价比。

2.虚拟存储技术的理论依据

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

3.实现虚拟存储的一般过程 

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

step2:进程运行时,如果它所需要访问的页面(段)已经装入内存,则可以继续执行下去;:如果其所需要访问的页面(段)尚未装入内存,则发生缺页(段)中断,进程阻塞。此时,系统将启动请求调页(段)功能,将进程所需的页(段)装入内存。

step3:如果当前内存已满,无法装入新的页(段),则还需要利用页(段)置换功能,将内存中暂时不用的页(段)交换到磁盘上,以腾出足够的内存空间。再将进程所需的页(段)装入内存,唤醒阻塞的进程,使之重新参与调度执行。



3.1什么是虚拟存储?

通过系统提供的缺页/段中断功能和交换技术,动态装入进程的程序代码和数据,使得一个大的用户程序能在一个相对较小的内存空间中运行,也使得有限的内存能同时容纳更多的进程。

习惯上,人们把这种用户感觉上的、由实际内存和部分外存共同构成的存储空间称为虚拟存储器。

3.2虚拟存储技术的技术支持

首先,必须有相应的硬件支持,用以实现虚拟分页或虚拟分段存储管理。

其次,操作系统必须提供相应的软件支持,管理页或段在内存和外存之间的移动。

3.3虚拟存储的基本数据结构 

由于虚拟存储系统中,进程的程序代码和数据只有一部分在内存,另一部分保存在外存。
在页/段表项中增加一个“存在”字段,其值为0或1。增加一个“修改”字段,表明对应页/段自进入内存以来是否被修改过。只有被修改过的页/段才需要保存到外存,若需要将未修改过的页/段换出内存,只需要将新装入的页/段直接覆盖其存储区域,而不必将其内容保存到外存。



3.4虚拟存储的好处

第一,可以运行大程序,包括超过内存实际容量的大程序。

第二,可以在有限的物理内存中运行更多的程序。多道程序系统的度不再受到物理内存空间的限制。

3.5虚拟存储的典型问题 -抖动(thrashing)

当进程要求装入新的页面或程序段时,如果当前没有足够的空闲空间,需要交换一些页面或段到外存。如果被交换出去的页面或段很快将被进程使用,则又需要将其换入内存。如果系统花费大量的时间把程序和数据频繁地装入和移出内存而不是执行用户指令,那么,称系统出现了抖动。出现抖动现象时,系统显得非常繁忙,但是吞吐量很低,甚至产出为零。根本原因:选择的页面或段不恰当。

4.虚拟存储分页技术

建立在简单分页存储管理系统之上,是目前常用的一种虚拟存储管理技术。

4.1地址变换

基于简单存储分页系统增加了某些功能,如产生和处理缺页中断,以及从内存中换出页面等。进程执行时,首先通过根据逻辑地址中的页号,查找快表中是否存在对应的页表项。若快表中不存在该页表项,则再查找页表。检查对应的页面是否在内存中存在。若该页面不在内存,启动缺页中断处理例程,装入需要的页面,并更新页表和快表。若该页面已经在内存中,将对应的页表项插入快表中,更新快表。若快表中存在该表项,则直接取出其中的页框号,加上页内偏移量,计算出物理地址。 



4.2缺页中断处理过程

(1)操作系统接收到进程产生的缺页中断信号,启动中断处理例程,保留处理机现场;

(2)操作系统通知处理机从外存读取指定的页面;

(3)处理机激活I/O设备;

(4) 检查内存有无足够的空闲空间装入该页面?若有,转(6),否则,执行(5);

(5) 利用页面置换算法,选择内存中的某个页面,换出内存;

(6) 将指定页面从外存装入内存;

(7) 更新该进程的页表;

(8) 更新快表;

(9)计算物理地址。

5.虚拟存储分段技术 

建立在简单存储分段系统基础上,利用动态分区技术分配存储空间,并以段作为交换的单位。进程执行之前,系统为之分配几个必要的内存分区,每一个分区中装入一段。当进程执行过程中,出现缺段中断时,操作系统将为进程装入需要的程序段。

5.1数据结构

需要修改段表,增加“存在”字段和“修改”字段,分别标明对应段是否存在于内存,以及内存中的段自装入以来是否被修改过。

5.2地址变换与存储保护

在简单分段系统的地址变换机构基础上形成的。 

越界检查:可能产生一个地址越界中断,进入相应的中断处理例程执行。一般地,当地址越界中断处理完毕,该进程将异常结束。

操作合法性检查:如果属于非法操作,产生非法访问中断,这时也会让进程异常终止。

缺段处理:执行进程被阻塞。并产生一个中断信号,处理机执行缺段中断处理例程。





6.虚拟存储段页式技术 

虚拟存储段页式系统中,程序和数据通常以页面为单位被系统装入和移出内存。因此,一般不需要在段表项中增加“存在”字段和“修改”字段,而将它们放在页表中。段表中需要保留基于段的保护与存储共享等目的的存取控制信息,页表中设置基于页的控制信息。 

6.1地址变换

首先,通过根据段号和页号,查找快表中是否存在对应的页表项。若快表中不存在该页表项,则再查找段表。然后,检索段号对应的段表项,找到对应段的页表起始地址。再根据页号检索该页表,检查对应页面是否在内存。若该页面不在内存,启动缺页中断处理例程,装入需要的页面,并更新页表和快表。若该页面已经在内存中,将对应的页表项插入快表中,更新快表。若快表中存在该表项,则直接取出其中的页框号,加上页内偏移量,计算出物理地址。 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: