虚拟内存起因
程序大,程序多,超过了内存——> 大,快,便宜的内存需求
覆盖技术
缺点:费时费力,以时间换空间(换入换出)
交换技术
目标:多道程序在内存中时,让正在运行的程序或需要运行的程序获得更多的内存资源。
方法:
- 将暂时不能运行的程序送到外存,从而获得空闲内存空间。
- 操作系统把一个进程的整个地址空间的内容保存到外存中(换出swap out),而将外存中的某个进程的地址空间读入到内存中(换入swap in)。换入换出内容的大小为整个程序的地址空间。
问题 :
- 何时交换?内存不够时或有不够的危险时
- 交换区的大小:足够大以拷贝内存镜像,并能对其进行直接读取
- 程序换入时的重定位:换出换入后位置是否一样?采用动态地址映射
缺点:换入换出,增加开销
覆盖与交换的比较
- 覆盖只能发生在那些相互之问没有调用关系的程序模块之间,因此程序员必须给出程序内的各个模块之间的逻辑覆盖盖结构。
- 交换技术是以在内存中的程序大小为单位来进行的,它不需要给出各个校块之间的逻逻辑盖结构。换言之,交换发生在内存内存中程序与成操作系统之间,而覆盖则发生在运行程序的内部。
虚存技术-目标
- 象覆盖技术那样,不是把程序的所有内容邡放在内存中,因而能够运行比当前的今闲内存空间还要人的程序。由操作系统自动来完成,无需程序员操作。
- 象交换技术那样,能够实现进杓在内存与外存之间的交换,因而获得更多的空闲内存空问。只对程序的部分内容,在内存和外存之间进行交换。
程序局部性原理
虚存技术-基本特征
- 大的用户空间:通过把物理内存与外存相结合,提供给用户的虚拟内存空间通常大于实际的物理内存,即实现了这
网者的分离。如32位的虚拟地址理论上可以访问4GB,而可能计算机上仅有256M的物理内存,但硬盘容量大T4GB。
- 部分交换:与交换技术相比较,虛拟存储的凋入和调出是对部分虚拟地址空间进行的;
- 不连续性:物理内存分配的不连续,虚拟地址空间使用的不连续。
页面置换算法
功能:当缺页中断发生,需要调入新的页面而内存已满吋,选择内存当中哪个物理页面被置换。
目标:尽可能地减少页面的换逬换出次数(即缺页中断的次数)。具体来说,把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理指导下依据过去的统计数据来逬行预测;
页面锁定(framelocking):用于描述必须常驻内存的操作系统的关键部分或吋间关键(Umccritical)的应用进程。
实现的方法是:在页表中添加锁定标志位(lockbit)。
种类:
- 局部:最优页面置换,先进先出,最近最久,时钟页面置换,二次机会,最不常有算法
- 全局:工作机,缺页率