1.虚拟存储器基本工作情况:
程序运行时,若要所访问页(段)已调入内存,便可继续执行下去;但若程序要访问的页(段)尚未调入内存(缺页或缺段),便发出缺页(段)请求,此时OS(操作系统)利用请求调页(段)将其调入内存,使进程能继续执行下去。
2.虚拟存储器的特征:
1>多次性。指一个作业中的程序和数据无需在作业运行时一次性地全部装入内存,而是允许被分成多次调入内存运行;即只需要将当前需要运行的那部分程序和数据装入内存即可开始运行。
2>对换性。指一个作业中的程序和数据无须在作业运行过程中,进行换进换出;即在进程运行期间,运行将那些暂不会使用的代码和数据从内存调至外存对换区(换出),待以后需要时再将它们从外存调至内存(换进)。
3>虚拟性。指从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
3.内存分配策略:
①固定分配局部置换,指为每个进程分配一组固定数目的物理块,进程运行期间不再改变。局部置换指若进程在运行中发现缺页,则只能从分配给该进程的N个页面中选一页换出,然后再调入一页,以保证分配给该进程的内存空间不变。
②可变分配全局置换,指先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加或减少,全局置换指若进程在运行中发现缺页,则将OS所保留的物理块取出一块分配给该进程,或者以所有进程全部物理块为目标,选一块换出,然后将所缺页调入。
③可变分配局部置换,为进程分配一定数目物理块,但当某进程发现缺页时,只允许从该进程在内存的页面中选择一页换出,这样就不会影响其它进程的运行。若频繁发生缺页中断,则再为其分配若干附件物理块。
4.缺页率:
一个进程逻辑空间为N页,系统为其分配的内存物理块数为M(M<=N),若在进程运行过程中,访问页面成功(所访问页在内存中)的次数为S,访问页面失败次数为F,则该进程总的页面访问次数为:A=F+S。进程在运行过程中缺页率为:f=F/A。
缺页率所受影响因素:①页面大小,②进程所分配物理块的数目,③页面置换算法,④程序固有特性。
5.产生抖动的原因:
系统中同时运行的程序太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。
6.工作集的定义:指在某段时间内间隔△里,进程实际所要访问页面的集合。
虽然程序只需要将少量几页在内存便可运行,但为较少产生缺页,应将程序的全部工作集装入内存中。
7.抖动的预防方法:
①采取局部置换策略,进程发生缺页时,只能在分配给自己的内存空间内进行置换,不允许从其他进程去获得新的物理块。
②把工作集算法融入到处理机调度中,作业调度融入工作集算法后,就不会产生因新作业调入而导致缺页率增加的问题。
③利用“L=S”准则调节缺页率。S是平均缺页服务时间,L是缺页之间的平均时间。即用于置换一个页面所需的时间。当L,S接近时,磁盘和处理机都可达到他们的最大利用率。
④选择暂停的进程。通常采取与调度程序一致的策略,即先选择暂定优先级最低的进程。