页面置换实习报告uo8ut7sj.docxVIP

  • 69
  • 1
  • 约8.31千字
  • 约 17页
  • 2018-09-13 发布于湖北
  • 举报
页面置换实习报告uo8ut7sj

PAGE HYPERLINK /index.php/archives/3 \o Permanent Link to 操作系统课程设计-银行家算法的实现 实习报告页面置换算法 一、设计目的: 加深对请求页式存储管理实现原理的理解,掌握页面置换算法。 二、设计内容   设计一个进程,可以实现用户可以为程序指定内存块数,自由设置程序的页面访问顺序,还可以在OPT、FIFO和LRU算法自由选择一个,并能观看到页面置换过程。 三、开发环境 windows环境,VC6.0平台。 四、分析设计 <一>实验原理 为提高内存利用率,提供了内外存进程对换机制;内存空间的分配和回收均以页为单位进行:一个进程只需将其中一部分(段或页)调入内存变可运行;还支持请求调页的存储管理方式。 当进程在进行中需要访问某部分程序和数据时,发现其所在的页面不在内存,就立即提出请求(向CPU发出中断),由系统将其所需页面调入内存。这种页面调入方式叫做请求调页。 当CPU接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中断处理程序。该程序通过查找页表,得到该页所在外存的物理块号。如果此时内存未满,能容纳新页,则启动磁盘I/O将所缺之页调入内存,然后修改页表。如果内存已满,则需按照某种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调入,修改页表。利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入程序对用户是透明的。 下面把我所用到的页面置换算法:最佳置换算法(OPT)、先进先出页面置换算法(FIFO)、最近最少使用页面置换算法(LRU),并对这些原理进行描述: 最佳置换算法(OPT)原理: 选择淘汰的页面,将是以后永不使用的,或者是最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常课保证最低缺页率。 先进先出页面置换算法(FIFO)原理: 该算法总是先淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。 最近最少使用页面置换算法(LRU)原理: 由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似。选择最近最久未使用的页面予以淘汰,该算法赋予每个页面一个访问字段,用来记录一个页面自上次呗访问以来所经历的时间t,当必须淘汰一个页面时,选择现有页面中其t最大的,即最近最少使用页面予以淘汰。 <二>程序结构 我的程序分为三部分: 第一部分:键盘输入数据作为测试用例 用for循环进行数据的连续输入 第二部分:算法的实现 算法的实现也分为三部分: 1. 算法1最佳置换算法(OPT) (1). 数据刚入栈,物理块数都为缺页数 (2). 超过分配的物理块数,如果有与栈内的数据一致的称为命中数据,并把栈内数据打印出来:Print(Num),并用一个m=1标记有命中数据 (3) 超过分配的物理块数,如果没有与栈内的数据一致的数据,则调用findspace()函数,让栈内的数与后面的数进行比较,如果有相同的数就用pos1[j]记下他们的标号i(j从0开始),如果有一个没有命中,则把此数换出去,而如果物理块都有命中,则比较pos1[j]中那个数最大,把最大的数换出去,因为此时这个数是最长(未来)时间内不再被访问的页面,并且缺页次数++。 (4)计算缺页率并打印出来 2. 算法2先进先出页面置换算法(FIFO): (1). 数据刚入栈,物理块数都为缺页数 (2). 超过分配的物理块数,如果有与栈内的数据一致的称为命中数据,并把栈内数据打印出来:Print(Num),并用一个m=1标记有命中数据 (3) 超过分配的物理块数,如果没有与栈内的数据一致的数据,则把先进栈的数换出去,让栈内的数从第二数开始往前移,然后把刚入栈的数据放入栈尾,打印出来,并且缺页次数++。 (4)计算缺页率并打印出来 3.算法3 最近最少使用页面置换算法(LRU): (1). 数据刚入栈,物理块数都为缺页数 (2). 超过分配的物理块数,如果有与栈内的数据一致的称为命中数据,并把栈内数据打印出来:Print(Num),并用一个m=1标记有命中数据 (3) 超过分配的物理块数,如果没有与栈内的数据一致的数据,则把先进栈的数换出去,让栈内的数从第二数开始往前移,然后把刚入栈的数据放入栈尾,打印出来,并且缺页次数++。 (4)计算缺页率并打印出来 第三部分:程序的运行 (1). 输入进程物理块数 (2). 输入进程页面地址数 (3) 输入进程页面地址流,即测试的数据 (4)把置换的结果、缺页次数和缺页率打印到屏幕上 <三>一些全局数据的设置: 先为物理块分配空间,然后在根据用户需求进行输入物理块的大小: #define pNum 100//全局变量 而每种算法都要对缺页次数和缺页次数进行统计,

文档评论(0)

1亿VIP精品文档

相关文档