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

大地保险网站/东莞seo外包公司

大地保险网站,东莞seo外包公司,中华人民共和国中央人民政府网站,建立网站基本知识页面置换模拟程序设计 1、通过软件模拟页面置换过程&#xff0c;加深对请求页式存储管理实现原理的理解 2、理解和掌握OPT、FIFO和LRU三种页面置换算法&#xff0c;深入分析三者之间的优缺点。 #include<stdio.h> #include<stdlib.h>#define VM_PAGE 7 /*假设…

页面置换模拟程序设计

1、通过软件模拟页面置换过程,加深对请求页式存储管理实现原理的理解
2、理解和掌握OPT、FIFO和LRU三种页面置换算法,深入分析三者之间的优缺点。

#include<stdio.h>
#include<stdlib.h>#define VM_PAGE 7      /*假设每个页面可以存放10条指令,则共有32个虚页*/
#define PM_PAGE 4         /*分配给作业的内存块数为4*/
#define TOTAL_INSERT 18
typedef struct
{int vmn;int pmn;int exist;int time;
}vpage_item;
vpage_item page_table[VM_PAGE];vpage_item* ppage_bitmap[PM_PAGE];int vpage_arr[TOTAL_INSERT] = { 1,2,3,4,2,6,2,1,2,3,7,6,3,2,1,2,3,6 };void init_data() //数据初始化
{for (int i = 0; i < VM_PAGE; i++){page_table[i].vmn = i + 1;  //虚页号page_table[i].pmn = -1;    //实页号page_table[i].exist = 0;page_table[i].time = -1;}for (int i = 0; i < PM_PAGE; i++) /*最初4个物理块为空*/{ppage_bitmap[i] = NULL;}
}void FIFO()/*FIFO页面置换算法*/
{int k = 0;int i;int sum = 0;int missing_page_count = 0;int current_time = 0;bool isleft = true;   /*当前物理块中是否有剩余*/while (sum < TOTAL_INSERT){if (page_table[vpage_arr[sum] - 1].exist == 0){missing_page_count++;if (k < 4){if (ppage_bitmap[k] == NULL) /*找到一个空闲物理块*/{ppage_bitmap[k] = &page_table[vpage_arr[sum] - 1];ppage_bitmap[k]->exist = 1;ppage_bitmap[k]->pmn = k;ppage_bitmap[k]->time = current_time;k++;}}else{int temp = ppage_bitmap[0]->time;	/*记录物理块中作业最早到达时间*/int j = 0;                    /*记录应当被替换的物理块号*/for (i = 0; i < PM_PAGE; i++){if (ppage_bitmap[i]->time < temp){temp = ppage_bitmap[i]->time;j = i;}}ppage_bitmap[j]->exist = 0;ppage_bitmap[j] = &page_table[vpage_arr[sum] - 1];      /*更新页表项*/ppage_bitmap[j]->exist = 1;ppage_bitmap[j]->pmn = j;ppage_bitmap[j]->time = current_time;}}current_time++;sum++;}printf("FIFO算法缺页次数为:%d\t缺页率为:%f\t置换次数为:%d\t置换率为:%f", missing_page_count, missing_page_count / (float)TOTAL_INSERT, missing_page_count - 4, (missing_page_count - 4) / (float)TOTAL_INSERT);
}
void LRU()
{int k = 0;int i;int sum = 0;int missing_page_count = 0;int current_time = 0;bool isleft = true;   /*当前物理块中是否有剩余*/while (sum < TOTAL_INSERT) {if (page_table[vpage_arr[sum] - 1].exist == 0) {missing_page_count++;if (k < 4){if (ppage_bitmap[k] == NULL) /*找到一个空闲物理块*/{ppage_bitmap[k] = &page_table[vpage_arr[sum] - 1];ppage_bitmap[k]->exist = 1;ppage_bitmap[k]->pmn = k;ppage_bitmap[k]->time = current_time;k++;}}else {int temp = ppage_bitmap[0]->time;	/*记录物理块中作业最早到达时间*/int j = 0;                    /*记录应当被替换的物理块号*/for (i = 0; i < PM_PAGE; i++){if (ppage_bitmap[i]->time < temp){temp = ppage_bitmap[i]->time;j = i;}}ppage_bitmap[j]->exist = 0;ppage_bitmap[j] = &page_table[vpage_arr[sum] - 1];      /*更新页表项*/ppage_bitmap[j]->exist = 1;ppage_bitmap[j]->pmn = j;ppage_bitmap[j]->time = current_time;}}else {for (i = 0; i < PM_PAGE; i++) {if (ppage_bitmap[i]->vmn == page_table[vpage_arr[sum] - 1].pmn){ppage_bitmap[i]->time = current_time;break;}}}current_time++;sum++;}printf("LRU算法缺页次数为:%d\t缺页率为:%f\t置换次数为:%d\t置换率为:%f", missing_page_count, missing_page_count / (float)TOTAL_INSERT, missing_page_count - 4, (missing_page_count - 4) / (float)TOTAL_INSERT);
}
void OPT()
{int k = 0;int sum = 0;int missing_page_count = 0;int current_time = 0;bool isleft = true;   /*当前物理块中是否有剩余*/while (sum < TOTAL_INSERT) {if (page_table[vpage_arr[sum] - 1].exist == 0) {missing_page_count++;if (k < 4){if (ppage_bitmap[k] == NULL) /*找到一个空闲物理块*/{ppage_bitmap[k] = &page_table[vpage_arr[sum] - 1];ppage_bitmap[k]->exist = 1;ppage_bitmap[k]->pmn = k;ppage_bitmap[k]->time = current_time;k++;}}else {int used[VM_PAGE] = { 0 };int count = 0;for (int i = sum+1; i < TOTAL_INSERT; i++) {if (page_table[vpage_arr[i] - 1].exist == 1) {used[page_table[vpage_arr[i] - 1].vmn-1] = 1;}int count = 0;for (int l = 0; l < VM_PAGE; l++) {if (used[l] == 1) {count++;}}if (count == 3) {break;}}for (int i = 0; i < PM_PAGE; i++) {if (used[ppage_bitmap[i]->vmn-1] == 0) {ppage_bitmap[i]->exist = 0;ppage_bitmap[i] = &page_table[vpage_arr[sum] - 1];ppage_bitmap[i]->exist = 1;ppage_bitmap[i]->pmn = i;ppage_bitmap[i]->time = current_time;}}}}current_time++;sum++;}printf("OPT算法缺页次数为:%d\t缺页率为:%f\t置换次数为:%d\t置换率为:%f", missing_page_count, missing_page_count / (float)TOTAL_INSERT, missing_page_count - 4, (missing_page_count - 4) / (float)TOTAL_INSERT);
}int main()
{int a;printf("请输入需要选择的页面置换算法:1.FIFO\t2.LRU\t3.OPT\t输入0结束\n");do{scanf_s("%d", &a);switch (a){case 1:init_data();FIFO();break;case 2:init_data();LRU();break;case 3:init_data();OPT();break;}} while (a != 0);return 0;
}
http://www.lbrq.cn/news/1579447.html

相关文章:

  • 基础微网站开发可信赖/seo 优化
  • wordpress 修改发帖时间/附子seo
  • 网站更换内容/seo难不难学
  • 网站备案证明/互联网推广方案
  • 工具类网站如何做排名/今日头条新闻最新疫情
  • 小说类型网站怎么做/全案网络推广公司
  • 长沙网站建设王道下拉惠/高端企业网站建设
  • 濮阳做网站推广/杭州seo关键词优化公司
  • 企业网站备案时间/网络营销方式有哪些?
  • 做网站的结论/seo网站推广软件 快排
  • 网上给别人做设计的网站/网站建设报价单
  • 白城市住房建设局网站/营销策划师
  • 程序员做交友网站/商城小程序开发哪家好
  • 河南省汝州市文明建设网站/南宁seo排名外包
  • 松江泖港网站建设/百度关键词代做排名
  • 应用制作下载/怀来网站seo
  • 安徽省建设行业质量与安全协会网站/怎么开一个网站平台
  • 网站服务器多少钱一月/网络营销的优缺点
  • 企业网站设计经典案例/seo实战培训王乃用
  • 教育类网站如何做/合肥seo网站管理
  • 免费b2b网站大全免费黄页/seo课程总结
  • 专业的网站建设公/长沙县网络营销咨询
  • 一站式网站建设与运营/30个免费货源网站
  • 如何建微信商城网站/广州婚恋网站排名
  • 建站域名/营销型网站分析
  • 网站的系统建设方式/网站关键词优化培训
  • 网站淘宝客怎么做的/网上售卖平台有哪些
  • wordpress媒体库删除/网络优化是干什么的
  • 网站 做百度推广有没有效果怎么样/品牌宣传方式
  • 深圳做律师网站公司/深圳网站优化平台
  • springboot+JPA
  • 将黑客拒之物联网网络之外的竞赛
  • 机器学习-决策树(DecisionTree)
  • Linux操作系统从入门到实战(十九)进程状态
  • Java AI生成长篇小说的实用
  • C语言如何安全的进行字符串拷贝