当前位置: 首页 > news >正文

权威的网站建设公司城市模拟建设游戏网站

权威的网站建设公司,城市模拟建设游戏网站,wordpress做个游戏,sql注入网站源码名人说#xff1a;莫听穿林打叶声#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)#xff08;一个喜欢古诗词和编程的Coder#xff09; 目录 一、效果图二、代码#xff08;带注释#xff09;三、说明 一、效果图 二、代码#xff08;带… 名人说莫听穿林打叶声何妨吟啸且徐行。—— 苏轼《定风波·莫听穿林打叶声》 Code_流苏(CSDN)一个喜欢古诗词和编程的Coder 目录 一、效果图二、代码带注释三、说明 一、效果图 二、代码带注释 //创作者Code_流苏CSDN //未经允许禁止转载发布可自己学习使用 //代码实现时期大二操作系统期末 #include stdio.h #include stdlib.h #include time.h #include windows.h #define N 320 //指令数 #define M 32 //页数 #define P 4 //内存块数 #define Q 10 //每页指令数 int i, m, m1, m2, choice; int order[N]; //指令序列数组//OPT算法 void OPT(int order[]) {int i, j, k, max, index, count 0;int memory[P]; //内存块数组int flag[M]; //标记数组记录每个页面是否在内存中int next[M]; //记录每个页面下一次出现的位置//初始化内存块和标记数组for (i 0; i P; i)memory[i] -1;for (i 0; i M; i)flag[i] 0;//遍历指令序列for (i 0; i N; i){int page order[i] / Q; //计算当前指令所在的页面号if (flag[page] 1) //如果页面已经在内存中显示物理地址{printf(指令%d的物理地址为%d\n, order[i], memory[page] * Q order[i] % Q);}else //如果页面不在内存中发生缺页{count; //缺页次数加一int empty -1; //记录是否有空闲的内存块for (j 0; j P; j){if (memory[j] -1) //找到空闲的内存块{empty j;break;}}if (empty ! -1) //如果有空闲的内存块直接调入页面{memory[empty] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], empty * Q order[i] % Q);}else //如果没有空闲的内存块需要进行页面置换{//计算每个页面下一次出现的位置for (j 0; j M; j){next[j] N 1; //默认为无穷大for (k i 1; k N; k){if (order[k] / Q j) //找到下一次出现的位置{next[j] k;break;}}}//找到下一次出现最晚的页面即最佳置换页面max next[memory[0]];index 0;for (j 1; j P; j){if (next[memory[j]] max){max next[memory[j]];index j;}}//置换该页面并显示物理地址flag[memory[index]] 0;memory[index] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], index * Q order[i] % Q);}}}printf(OPT算法的缺页率为%.2f%%\n, count * 100.0 / N); //显示缺页率 }//FIFO算法 void FIFO(int order[]) {int i, j, index, count 0;int memory[P]; //内存块数组int flag[M]; //标记数组记录每个页面是否在内存中int queue[P]; //队列数组记录每个内存块中的页面进入的先后顺序//初始化内存块、标记数组和队列数组for (i 0; i P; i)memory[i] -1;for (i 0; i M; i)flag[i] 0;for (i 0; i P; i)queue[i] -1;//遍历指令序列for (i 0; i N; i){int page order[i] / Q; //计算当前指令所在的页面号if (flag[page] 1) //如果页面已经在内存中显示物理地址{printf(指令%d的物理地址为%d\n, order[i], memory[page] * Q order[i] % Q);}else //如果页面不在内存中发生缺页{count; //缺页次数加一int empty -1; //记录是否有空闲的内存块for (j 0; j P; j){if (memory[j] -1) //找到空闲的内存块{empty j;break;}}if (empty ! -1) //如果有空闲的内存块直接调入页面并更新队列{memory[empty] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], empty * Q order[i] % Q);for (j 0; j P; j){if (queue[j] -1){queue[j] empty;break;}}}else //如果没有空闲的内存块需要进行页面置换{//找到队列头部的内存块即最先进入的内存块作为置换对象index queue[0];//置换该内存块中的页面并显示物理地址flag[memory[index]] 0;memory[index] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], index * Q order[i] % Q);//更新队列将队列头部的元素移到队尾for (j 0; j P - 1; j)queue[j] queue[j 1];queue[P - 1] index;}}}printf(FIFO算法的缺页率为%.2f%%\n, count * 100.0 / N); //显示缺页率 }//LRU算法 void LRU(int order[]) {int i, j, min, index, count 0;int memory[P]; //内存块数组int flag[M]; //标记数组记录每个页面是否在内存中int last[M]; //记录每个页面最近一次出现的位置//初始化内存块和标记数组for (i 0; i P; i)memory[i] -1;for (i 0; i M; i)flag[i] 0;//遍历指令序列for (i 0; i N; i){int page order[i] / Q; //计算当前指令所在的页面号if (flag[page] 1) //如果页面已经在内存中显示物理地址并更新最近一次出现的位置{printf(指令%d的物理地址为%d\n, order[i], memory[page] * Q order[i] % Q);last[page] i;}else //如果页面不在内存中发生缺页{count; //缺页次数加一int empty -1; //记录是否有空闲的//内存块for (j 0; j P; j){if (memory[j] -1) //找到空闲的内存块{empty j;break;}}if (empty ! -1) //如果有空闲的内存块直接调入页面并更新最近一次出现的位置{memory[empty] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], empty * Q order[i] % Q);last[page] i;}else //如果没有空闲的内存块需要进行页面置换{//找到最近一次出现最早的页面即最近最久未使用的页面作为置换对象min last[memory[0]];index 0;for (j 1; j P; j){if (last[memory[j]] min){min last[memory[j]];index j;}}//置换该页面并显示物理地址并更新最近一次出现的位置flag[memory[index]] 0;memory[index] page;flag[page] 1;printf(指令%d的物理地址为%d\n, order[i], index * Q order[i] % Q);last[page] i;}}}printf(LRU算法的缺页率为%.2f%%\n, count * 100.0 / N); //显示缺页率 }void menu() {while (1) //使用一个循环让用户可以多次选择算法{system(cls);printf(请选择使用哪种算法\n);printf(1. OPT算法\n);printf(2. FIFO算法\n);printf(3. LRU算法\n);printf(0. 退出程序\n);printf(我的选择是);scanf(%d, choice); //输入选择switch (choice) //根据选择调用相应的算法{case 1:printf(使用OPT算法\n);OPT(order);break;case 2:printf(使用FIFO算法\n);FIFO(order);break;case 3:printf(使用LRU算法\n);LRU(order);break;case 0:printf(已退出程序感谢您的使用\n);return ; //退出程序default:printf(输入错误请重新输入\n);break;}printf(按任意键回到菜单页\n);system(pause);Sleep(100);} }//主函数 int main() {int flag0;srand(time(NULL)); //设置随机数种子//生成指令序列m rand() % N; //随机选取一条起始执行指令其序号为morder[0] m; //将其放入指令序列数组中for (i 1; i N; i){if (i % 4 1) //顺序执行下一条指令即序号为m1的指令{m;order[i] m;}else if (i % 4 2) //通过随机数跳转到前地址部分[0m-1]中的某条指令处其序号为m1{m1 rand() % m;order[i] m1;}else if (i % 4 3) //顺序执行下一条指令即序号为m11的指令{m1;order[i] m1;}else //通过随机数跳转到后地址部分[m12319]中的某条指令处其序号为m2{m2 rand() % (N - m1 - 2) m1 2;order[i] m2;}}printf(指令序列为\n);for (i 0; i N; i)printf(%d , order[i]);printf(\n);printf(是否进入菜单(1代表是0代表否)\n);printf(请输入您的选择);scanf(%d,flag);if(flag1){menu();}return 0; }三、说明 上述代码实现的是一个模拟操作系统页面置换算法的程序。主要实现了三种页面置换算法最佳置换OPT、先进先出FIFO和最近最久未使用LRU。此外还包含一个生成指令序列的部分和一个简单的用户界面来选择不同的置换算法。下面是对代码主要部分的解释 程序流程 首先程序使用随机数生成器生成一个模拟的指令序列。接着程序提供了一个菜单让用户选择要使用的页面置换算法。根据用户的选择程序将展示所选算法的页面置换过程和缺页率。 页面置换算法的实现 OPT算法在页面置换时选择将来最长时间内不会被访问的页面进行置换。FIFO算法按照页面进入内存的顺序进行置换最先进入的页面最先被置换。LRU算法在页面置换时选择最长时间没有被访问的页面进行置换。 关键变量 N指令数。M页数。P内存块数。Q每页指令数。order[]存储指令序列的数组。memory[]表示内存块的数组存储当前各内存块中的页面。flag[]标记数组记录每个页面是否在内存中。 生成指令序列 指令序列生成遵循一定的规则以模拟程序的执行过程。 用户交互 程序通过打印菜单和接收用户输入来控制算法的选择和程序的流程。 输出 对于每一条指令程序将输出其物理地址。在算法执行完毕后程序将输出该算法的缺页率。 这个程序通过实际的模拟和数据可以更好帮助我们理解各种页面置换算法的工作原理和性能差异。 Code_流苏(CSDN)一个喜欢古诗词和编程的Coder 点赞加关注收藏不迷路本篇文章对你有帮助的话还请多多点赞支持
http://www.zqtcl.cn/news/592037/

相关文章:

  • 无锡网站制作哪家公司好做微信文章的网站
  • 网站 制作信产部网站备案
  • 做流程图表的网站网络营销推广网站收录
  • iis5.1怎么新建网站电子商务网站建设与管理实训内容答案
  • 做网站背景步骤知名的vi设计公司
  • 中国室内设计师联盟网站我注册过的网站
  • 如何给自己的公司做网站网站设计电商首页
  • 成都网站开发培训综合网站开发实训总结
  • 个人备案网站名称文学网站开发
  • 花钱做推广广告哪个网站好泗洪网页设计
  • 望牛墩镇网站建设公司网站建设企业熊掌号
  • 做网站一般会出现的问题静态网站的好处就是安全性好从而
  • 做海鲜代理在什么网站建筑网片钢筋网生产厂家
  • 万网网站建设方案书导购网站开发要多少钱
  • 做网站muse好还是DW好用wordpress %link
  • html5门户网站模版做投标需要知道什么网站
  • 合肥网站制作推广seo引擎搜索网站关键词
  • 陕西建设厅网站wordpress 不显示ip
  • 郑州外贸网站制作营销号视频生成器手机版
  • 绵阳市建设工程质量监督站网站wordpress的插件目录
  • 建设和管理环保网站西安做兼职网站设计
  • 在网站中写小说想要删除如何做婚纱摄影的网站怎么做
  • 重庆自适应网站建设wordpress添加icon文件
  • 目前小说网站排名适合网站设计的gif图片
  • 深圳建立网站wordpress 安装语言
  • 南京做中英文网站海南网站建设哪家专业
  • 做网站用jquerywordpress邮件有什么用
  • 上海网站建设免the 7 wordpress
  • 知名建站的公司微信企业app手机下载安装
  • 鹤山做网站羊毛网站建设视频