【操作系统】——虚拟存储

需求背景

计算机系统经常出现内存不够用

1. 覆盖技术

说明

依照程序逻辑结构,将程序划分为若干功能相对独立的模块,将不会同时执行的模块共享同一块内存区域。(必要部分常驻内存、可选部分只在需要时装入内存)

评价

  1. 开发难度增加
  2. 增加执行时间

2. 交换技术

说明

将暂时不能运行的程序放到外存;

  • 换入换出的基本单位:整个进程的地址空间;
  • 换出:一个进程的整个地址空间保存到外存;
  • 换入:一个进程的整个地址空间保存到内存;

评价

以整个进程的地址空间为基本单位,可能出现一个进程要求的内存空间超过了内存总容量

3. 虚拟存储(上面两种解决方案的结合)

局部性原理

CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

说明

程序运行时只将当前要运行的少数页面或者段装入内存。程序在运行时,如果要访问的页(段)已经调入内存,正常执行;如果没有调入内存,便发出缺页(段)请求,此时OS利用请求调页(段)功能调入需要的页(段),如果内存已满,OS再利用置换功能,将暂时不用的页(段)调至外存,腾出空间。

3.1 最佳置换算法

说明

置换未来最长时间内不再被访问的页面。

特点

不可能实现,只能作为评价其他算法的依据。

3.2 先进先出(FIFO)置换算法

说明

置换内存驻留实现最长的页面。

特点

实现简单;
性能较差,调出的页面可能是经常访问的;
分配的物理页数增加,缺页数反而升高(bleady现象)。

3.3 最近最久未使用(LRU)置换算法

说明

置换最长时间未引用的页面。

特点

开销大。

3.4 时钟置换算法

说明

访问过的页面标志位设为1,每次选择置换页面时,标志位1的还原成0,标志位0的置换出去。

特点

FIFO和LRU算法结合。

3.5 最不常用(LFU)置换算法

说明

置换访问次数最少的页面。

(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①、 50%的指令是顺序执行的; ②、 25%的指令是均匀分布在前地址部分; ③、 25%的指令是均匀分布在后地址部分。 具体的实施方法是: ① 在[0,319]的指令地址之间随机选取一起点m; ② 顺序 执行一条指令,即执行地址为m+1的指令; ③ 在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; ④ 顺序执行一条指令,其地址为m’+1; ⑤ 在后地址[m’+2,319]中随机选取一条指令并执行; ⑥ 重复上述步骤,直至执行320次指令。 (2) 将指令序列变换成页地址流 设:①页面大小为1K; ②用户内存容量为4页到32页; ③用户虚存容量为32K; 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页(对应的虚存地址为[0,9]); 第10条~第19条指令为第1页(对应的虚存地址为[10,19]); . 第310条~第319条指令为第31页(对应的虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3) 计算并输出下述各种算法在不同的内存容量下的命中率。 ① 先进先出的算法(FIFO); ② 最近最少使用算法(LRR); ③ 最佳淘汰法(OPT):先淘汰最不常用的页地址; ④ 最少访问页面算法(LFR); ⑤ 最近不经常使用算法(NUR)。 其中③和④为选择内容。 命中率=1-(页面失效次数)/(页地址流长度) 在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值