操作系统页面置换算法与虚拟内存

为了更好的实现计算机对内存资源的管理,操作系统提供了存储管理服务。如果将物理地址直接暴露给进程,用户程序在寻址内存的时候很有可能在无意中破坏操作系统,所以又对存储器做了一定的抽象,让进程间接地的访问物理地址

  • 使用链表对空闲内存的进行管理(链表将存储器大小不等的的空闲地址块连接起来,进程当需要空闲区域时有五种获取规则)
20K 30K 10K 2K 3K 5K 15K 25K

                                          (图中为链表所连接的空白块大小,现在有进程需要24K的区域)

  • 首次适配(first fit):存储管理器按链表进行搜索,找到一个足够大的,24k放第二空白块
  • 下次适配(next fit):工作方式和首次适配相同,不同点是他在找到合适适配区后记录位置下次从记录的位置                       处开始适配(无论所找区域和上次是否相同),而不是像首次适配继续从开头找起
  • 最佳适配  (best fit):找出可以容纳进程最小的取悦区域,最后一块25K
  • 最差适配(worst fit):找出可以容纳的最大区域,第二快30K
  • 快速适配(quick fit):将常用大小的区域单独维护形成新链表如下图;这样寻找起来就会十分快速 ,直接寻                        到所在位置 

5K 10K 15K 20K 25K
                        

  • 虚拟内存
   虚拟内存的思想:每个程序都有自己的地址空间,这个空间被分为很多的块,每一块称作一页或页面,每一页有连续的地址范围,这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。

   页面与页框(块):页面是指将作业的逻辑地址分为一系列大小相同的部分(偏移量),并为每个页进行编号(即虚拟页号),编号从0开始。块是指将物理内存也分为同样大小的地址空间,进行编号从#0开始。页与块相对应,每一个块中存放一页用户作业,实现映射

    页表:虚拟地知道物理地址的一个映射,页表是一个函数,参数是虚拟页号,结果是物理页框号。其中虚拟地址包括虚拟页号和偏移量(低位)虚拟页号是映射物理地址的关键,偏移量就是指前面页面的内容。页面长度和偏移量有关,个数和虚拟页号有关

   页面置换(转+补)

   地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。

1.最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。 

最佳置换算法可以用来评价其他算法。假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:
    7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
进程运行时,先将7, 0, 1三个页面依次装入内存。进程要访问页面2时,产生缺页中断,根据最佳置换算法,选择第18次访问才需调入的页面7予以淘汰。然后,访问页面0时,因为已在内存中所以不必产生缺页中断。访问页面3时又会根据最佳置换算法将页面1淘汰……依此类推,如图3-26所示。从图中可以看出釆用最佳置换算法时的情况。

可以看到,发生缺页中断的次数为9,页面置换的次数为6。

访问页面 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
物理块1 7 7 7 2
2
2

2

2


7

物理块2
0 0 0
0
4

0

0


0

物理块3

1 1
3
3

3

1


1

缺页否






  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值