1.覆盖技术
程序显然比内存要大的
因为A的话要调用很多,bc ,所以把A放在了常驻区域,然后bc 再同一个分区,如果B调用的话那么这50k就是b在调用,DEF的话三的共享,需要的话就从内存中划拨出来。C在调E的时候,DF是不可能去执行的
另外一种是这样
交叉分配
缺点是由程序员分化出各个小的模块,耗时耗力,模块从外装入内存,时间开销大,时间换空间;
2.交换技术
要把整个不用的程序写到硬盘里,要执行的时候还要导回来,频繁交换性能影响大
换入换出的消耗大,需要把进程的整个地址空间都换进换出,增加cpu的开销
所遇到的问题
页表建立好了物理地址不一样也可以;
两者的比较
覆盖技术 :主要是通过一个程序的不同模块,来进行共享分区的
交换技术:在内部完成,不需要程序员干预,力度较大,多个程序执行
3.虚存技术
像p3那样,只有两个内存页在内存中,其余都在硬盘中(绿色)
例子
内存是连续的,所以连续的效率高,ij,按照一行遍历
概念
基本特征:
大内存,部分交换,地址的不连续
页号对帧号