操作系统课程设计--请求调页存储管理方式的模拟内容摘要:

for i 0。 i total_vp。 i++ pl[i].pn i。 pl[i].pfn INVALID。 /*置页面控制结构中的页号,页面为空 */ pl[i].counter 0。 pl[i].time 1。 /*页面控制结构中的访问次数为 0,时间为 1*/ for i 1。 i total_pf。 i++ pfc[i1].next amp。 pfc[i]。 pfc[i1].pfn i1。 /*建立 pfc[i1]和pfc[i]之间的链接 */ pfc[total_pf1].next NULL。 pfc[total_pf1].pfn total_pf1。 freepf_head amp。 pfc[0]。 /*空页面队列的头指针为 pfc[0]*/ 主函数的算法设计 main int S,i,j,temp。 srand getpid *10。 /*由于每次运行时进程号不同,故可以用来作为初始化随即数队列的 种子 */ S float 319*rand /RAND_+1。 for i 0。 i total_instruction。 i+ 4 /* 产生指令队列 */ a[i] S。 /*任选一指令访问点 */ a[i+1] a[i]+1。 /* 顺序执行一条指令 */ a[i+2] float a[i]*rand /RAND_。 /* 执行前地址指令 m39。 */ a[i+3] a[i+2]+1。 /* 执行后地址指令 */ S float rand * 318a[i+2] /RAND_+a[i+2]+2。 do printf ***************************************\n。 printf 1:给定内存块数的作业模拟 \n。 printf 2:比较不同内存容量下的命中率 \n。 printf 3:退出 \n。 printf ***************************************\n。 printf 请选择需要实现的功能:。 scanf %d,amp。 temp。 printf ***************************************\n。 switch temp case 1:printf 请输入给定的内存块数 432 :。 scanf %d,amp。 j。 printf ***************************************\n。 FIFO j,1。 break。 case 2:for i 4。 i 32。 i++ /* 用户内存 工作区从 4 个页面到 32 个页面 */ printf 内存块数 :%2d ,i。 FIFO i,2。 break。 while temp! 3。 源代码如下 include include include //include //define TRUE 1 //define FALSE 0 define INVALID 1 define total_instruction 320 /* 指令流长 */ define total_vp 32 /* 虚页长 */ //define clear_period 50 /*清零周期 */ typedef struct /* 页面结构 */ int pn,pfn,counter,time。 /*pn 页号 , pfn 块号 , counter 为一个周期内访问页面的次数 ,time 访问时间 */ pl_type。 pl_type pl[total_vp]。 /* 页面结构数组 */ struct pfc_struct /* 页面控制结构 */ int pn,pfn。 struct pfc_struct *next。 typedef struct pfc_struct pfc_type。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。