实验七 操作系统页面调度算法
printf(\);
for(i=0;i printf(\号块:\ for(j=0;j printf(\ printf(\ } printf(\); printf(\缺页情况:\ for(i=0;i printf(\); printf(\发生缺页的次数=%d\\n\ printf(\缺页中断率=%.2f%%%\\n\} 测试结果: - 17 - 实验七 操作系统页面调度算法 2、LRU页面置换算法: 算法思想:在算缺页率之前首先进行判断,找到缺页的页面后用“*”进 - 18 - 实验七 操作系统页面调度算法 行标记,并保存在页表中,在访问过程中,查看页表,看是否缺页,如果缺页,则在最下面进行标记。知道缺页的页面后,更改每个块中的页面号,以块为单位进行修改,将需要淘汰的页面替换掉,即可得到所需要的结果了。然后利用标记幸好的页面的个数,来算出缺页率。 #include \#define n 15 #define m 4 void main() { int a[n],i,j,q,b[m]={0},c[m][n],count=0; char flag,f[n]; printf(\请输入页面访问序列:\\n\ for(i=0;i for(i=0;i while((a[i]!=b[q])&&(q!=m)) q++; if(q==m) { flag='*'; count++; }//缺页,则置标志flag为'*' else flag=' '; for(j=q;j>0;j--) b[j]=b[j-1]; b[0]=a[i]; for(j=0;j - 19 - 实验七 操作系统页面调度算法 f[i]=flag; if(c[j][3]==0) { printf(\ } else { printf(\被淘汰的页面是:=\\n\ } } printf(\输出结果为下表(0代表为空,*代表有缺页):\\n\ printf(\******\\n\ printf(\页面走向:\ for(i=0;i printf(\******\\n\ for(i=0;i printf(\号块:\ for(j=0;j printf(\ printf(\ } printf(\******\\n\ printf(\缺页情况:\ for(i=0;i - 20 - 实验七 操作系统页面调度算法 printf(\ printf(\ printf(\******\\n\ printf(\发生缺页的次数=%d\\n\ printf(\缺页中断率=%.2f%%%\\n\} 测试结果: 七、实验结论(可写个人体会,或相关理论知识) 本次试验我知道了先进先出页面置换算法是按照作业到来的顺序进行处理,以下 是源代码的,所以在编写程序的时候,一定要注意页面的进入顺序问题。而最近最久未使用算法则在编写程序时需要注意,首先为每个页面分配一定的空间,事先判断是否有缺页的页面,并将却也得页面进行标记,这样就可以知道缺页的哪些页面,也更加容易算出缺页率。 - 21 -