目录
1.虚拟内存的起因
2.覆盖技术
A放在常驻内存中,它会往下调用B和C.
B和C相互不会调用,分在一个区;
同理,D,E,F也分在一个区.
ABCDEF一共190K,内存是110K,有图2中的两种方式,注释给出的方式更加节省时间.
覆盖技术对编程者的要求很高,对编程语言有要求还有运行时都有要求,增加了程序员的负担.
3.交换技术
随着硬件的发展和操作系统能力的进一步增强,操作系统鼻祖UNIX提供了交换技术,
基本的设计思路就是:
当多个程序在内存中运行的时候可以让操作系统进行管理,而不是程序员自己去管理.
操作系统可以管理当前应该放哪个程序在内存中运行,在内存空间不够的情况下,可以
把暂时不能运行的程序先导入到磁盘中(以运行的程序为单位),这样本来放在内存中的
那段程序的空间都空出来了,正在运行的程序就可以利用空出来的空间去执行自己的程序.
这里需要注意一点是换入换出的粒度是“一个运行的程序”,这个与程序的大小有关,如果程序
比较大,那么开销就比较大,如果程序比较小,那么开销就比较小.相对来说,粒度都会大于1个页,
甚至几十页几百页,所以这个开销相对来说还是比较大的.
4.虚拟内存技术
4.1虚存技术的目标
4.2 程序的局部性原理
4.3 虚存技术的设计理念
4.4 虚拟技术的基本特征
操作系统的内核中占用的内存是不能够被换出的,它如果被换出,整个系统会收到相当大的影响,