《 操作系统原理A 》实验报告 - 10 -
}
Busy_head=Busy; Busy_tail=Busy;
else { }
Busy_tail->next=temp; Busy_tail=temp;
for(k=0;k { MemoryStatus[k][i]=MemoryStatus[k][i-1]; } else { int min=vp[pp[0].pn].time; temp=&pp[0]; for(k=1;k vp[temp->pn].pfn=-1; vp[currentpage].pfn=temp->pfn; temp->pn=currentpage; if(vp[pp[k].pn].time min=vp[pp[k].pn].time; temp=&pp[k]; } MemoryStatus[temp->pfn][i]=currentpage; for(k=0;k 《 操作系统原理A 》实验报告 - 11 - } } } { } MemoryStatus[temp->pfn][i]=currentpage; MemoryStatus[k][i]=MemoryStatus[k][i-1]; countime++; vp[currentpage].time=countime; } int main() { int i,j,flag=1,L; while(flag) { printf(\请输入实页的个数:\scanf(\ struct Page pp[L]; //定义一个存放5个实页的数组 ,在底下还要将其串成链表 int MemoryStatus[L][N]; init(pp,MemoryStatus,L); printf(\算法:\\n\srand(time(0)); for(i=0;i printf(\ FIFO(L,MemoryStatus); //运行 FIFO() 算法 queue[i]=rand(); printf(\ //显示依次访问20个虚页时对应的内存状态,即MemoryStatus数组的值。 《 操作系统原理A 》实验报告 - 12 - for(i=0;i for(j=0;j if(NotInMemory[j]==1) //当访问的这个虚页不在内存时,显示将其调入内存后的详细内存信息 printf(\ else printf(\当访问的这个虚页在内存时,内存状态未发生改变,故无需再显示一遍。本例用空格代替,其中 32 是空格的ASCII码 } } rate=0; init(pp,MemoryStatus,L); printf(\ printf(\算法:\\n\for(i=0;i printf(\ } printf(\缺页数为:=\float rate=count/(float)N*100; printf(\缺页率为:%g%%\\n\ printf(\ LRU(pp,MemoryStatus,L); for(i=0;i for(j=0;j if(NotInMemory[j]==1) //当访问的这个虚页不在内存时,显示将其调入内存后的详细内存信息 printf(\ 《 操作系统原理A 》实验报告 - 13 - else printf(\当访问的这个虚页在内存时,内存状态未发生改变,故无需再显示一遍。本例用空格代替,其中 32 是空格的ASCII码 } } } printf(\缺页数为:=\ rate=count/(float)N*100; printf(\缺页率为:%g%%\\n\ printf(\继续操作? 1---->继续 0---->停止\\n\scanf(\printf(\} return 0; 五、程序运行结果 六、实验体会 本次实验是为了熟悉页面调度的两种算法即FIFO算法和LRU算法,首先老师已经给出了FIFO算法,要求我们给出LRU算法,并将程序中的实页数改为由用户自行输入的为准,这就有两种方式,其一:是将L作为全局变量,将其大小设为100,使其满足输入的输入的数字,这样做的缺点是浪费空间,但在编程实现上十分便利,其二,将L改有键盘输入,之后再分配相应的空间,这样做的优点是节约空间,但在编程时比较麻烦。 总体来说,由于老师已经将FIFO算法实现,所以本次试验比较简单,相对容易实现。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库虚拟存储器管理 页面置换算法模拟实验(3)在线全文阅读。
相关推荐: