操作系统实验六

您所在的位置:网站首页 请求分页实验报告 操作系统实验六

操作系统实验六

2024-07-08 05:50| 来源: 网络整理| 查看: 265

介绍

1.理解虚拟内存管理下的 LRU 算法原理

这种算法的基本思想是,如果某一页被访问了,那么它很可能马上又被访问;反之,如

果某一页很长时间没有被访问,那么最近也不太可能会被访问。这种算法考虑了程序设计的局部性原理。其实质是,当需要置换一页时,选择在最近一段时间最久未使用的页面予以淘汰。

2.掌握近似 LRU 算法的原理,即 clock 算法 在存储分块表(或页表)中设一个“引用位”,当存储分块表中的某一页被访问时,该 位由硬件自动置 1,并由页面管理软件周期性把所有引用位置 0。这样,在一个时间周期 T 内,某些被访问过的页面其引用位为 1,而未被访问过的页面其引用位为 0。根据引用位的 状态来判别各页面最近的使用情况。当需要置换一页面时,选择其引用位为 0 的页。

3.用 C 语言编写程序采用 clock 算法实现下题中作业运行情况,要求程序运行后根据输 入物理块的个数,输出运用该算法后 F、f 的值。 在一个请求分页系统中,采用简单 clock 算法时,假如一个作业的页面走向为 4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数 M 发生变化时, 访问过程中发生的缺页次数和缺页率为多少。

代码 /* 如果内存中有该页,那么访问位置1,指针指向该位置+1 如果内存中没有该页,那么顺着指针循环遍历 遇到访问位为1的置0,遇到访问位为0的置换页面,且指针+1。 */ #include #include #include #include using namespace std; int n, m; //物理块个数、作业页面个数 int page[20]; //需要访问的页面 struct Mem { //内存 int pnum; //页面号 int visit; //访问位 }mem[10]; int idx = 1; //内存指针 int lack_cnt; //缺页次数 //输入一个页面号,返回内存中的位置,返回-1则没有 int find(int x) { for(int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3