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

客户网站开发全流程/网站制作流程

客户网站开发全流程,网站制作流程,java网站项目可做,驻马店市可以做网站的公司中文名:时钟置换算法 以下是作者对CLOCK算法的肤浅见解,如有错误之处,欢迎指出,十分感谢! 定义 时钟置换算法可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。它和LRU算法有类似之处&…

中文名:时钟置换算法
以下是作者对CLOCK算法的肤浅见解,如有错误之处,欢迎指出,十分感谢!

定义

时钟置换算法可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。它和LRU算法有类似之处,只不过clock算法会有一个用于记录访问次数的数组,然后再根据第一个最小访问次数来进行替换处理,当访问到缓存中的页面时,访问次数有限制的加1,不改变队列顺序,替换是原位替换,如4,5,6,访问到页面2。如果访问次数6比4和5要多1且4和5访问次数相等,那么替换后的队列为4,2,6。

这里想给大家一个实例演示的,不过仔细想想,可能运行结果会更加直观一些。

C语言代码

#include<stdio.h>
#define MAX 3//缓存最大页面容量 typedef struct clock{int clock[MAX];//存放页面号 int sign[MAX];//存放访问次数,初值为0 }CLOCK;int compare( int a[MAX] )//作用是看任意两个页面的访问次数有没有相同,有则返回1;否则,返回0 。 
{int s = a[0],d = 0;for(int i = 0; i < MAX; i++){for(int j = i; j < MAX-1; j++){if(a[i] == a[j+1])d=1;}}return d;
}int	 Min( int a[MAX] )//作用是返回缓存中最小的页面号 
{int min;min = a[0];for(int i = 1; i < MAX; i++){if(min > a[i])min = a[i];}return min;
}
int	 Max( int a[MAX] )//作用是返回缓存中最大的页面号 
{int max;max = a[0];for(int i = 1; i < MAX; i++){if(max < a[i])max = a[i];}return max;
}
int	 i_value( int a[MAX] )//作用是返回缓存中最小的页面号的地址 
{int ivalue,temp = 0;ivalue = a[0];for(int i = 1; i < MAX; i++){if(ivalue > a[i]){ivalue = a[i];temp = i;}}return temp;
}
int	 I_value( int a[MAX] )//作用是返回缓存中最大的页面号的地址 
{int Ivalue,temp = 0;Ivalue = a[0];for(int i = 1; i < MAX; i++){if(Ivalue < a[i]){Ivalue = a[i];temp = i;}}return temp;
}
int main()
{int flag = 0;//0表示访问的这个页面是一个新页面,1表示访问的这个页面已存在于缓存中 int data;//页面号 int mid = 0;//充当中间变量,暂时缓存一个值clock c;for(int i = 0; i < MAX; i++){c.clock[i] = -1;c.sign[i] = 0;}for(int i = 0; i < MAX; i++){flag = 0;printf("请输入第%d个页面号:",i);scanf("%d",&data);for(int j = 0; j < MAX; j++){if(data == c.clock[j])//如果这个页面已存在于缓存中 flag = 1;}if(flag != 1)//如果这个页面不存在于缓存中 c.clock[i] = data;else//如果这个页面已存在于缓存中 {printf("对不起,你输入的页面也存在,请重新输入!\n");i--;}}printf("开始页面分别为\n");printf("\n");for(int i = MAX-1; i >= 0; i--){if( i == MAX-1 )printf("缓存页面->");printf("%d \t",c.clock[i]);}printf("\n\n访问次数->%d \t%d \t%d\n\n",c.sign[2],c.sign[1],c.sign[0]);//打印访问次数while(true){flag = 0;mid = 0;printf("请输入一个新的页面:");scanf("%d",&data);for(int i = 0; i < MAX; i++){if(data == c.clock[i])//如果这个页面已存在于缓存中{c.sign[i]++;//访问次数加1 flag = 1;break;}elseflag = 0;}while(   true   )//用于更改访问次数的错误记录{if(     (Max(c.sign) - Min(c.sign)) > 1   &&   compare(c.sign)    )c.sign[ I_value(c.sign) ]--;else break;}if( flag == 0 )//替换页面 {mid = i_value(c.sign);c.clock[mid] = data;c.sign[mid]++;}//else不替换页面 printf("换替换后的页面结果为\n");printf("\n");for(int i = MAX-1; i >= 0; i--){if( i == MAX-1 )printf("缓存页面->");printf("%d \t",c.clock[i]);}printf("\n\n访问次数->%d \t%d \t%d\n\n",c.sign[2],c.sign[1],c.sign[0]);//打印访问次数 }return 0;
}

执行结果

请输入第0个页面号:6
请输入第1个页面号:5
请输入第2个页面号:4
开始页面分别为缓存页面->4     5       6访问次数->0     0       0请输入一个新的页面:3
换替换后的页面结果为缓存页面->4     5       3访问次数->0     0       1请输入一个新的页面:5
换替换后的页面结果为缓存页面->4     5       3访问次数->0     1       1请输入一个新的页面:4
换替换后的页面结果为缓存页面->4     5       3访问次数->1     1       1请输入一个新的页面:3
换替换后的页面结果为缓存页面->4     5       3访问次数->1     1       2请输入一个新的页面:6
换替换后的页面结果为缓存页面->4     6       3访问次数->1     2       2请输入一个新的页面:

没啥总结好说的,了解还比较短浅,有待更新博客。
如有错误,欢迎告知!
转载需说明,十分感谢!

http://www.jmfq.cn/news/4932343.html

相关文章:

  • 查经互动平台/汕头seo外包机构
  • 成都网站建设的费用/百度文库网页版登录入口
  • app网站建设多少钱/信息流广告投放渠道
  • 美食网站设计的基本思路/关键词包括哪些内容
  • 重庆商城网站制作报价/今天国内最新消息
  • hp网站/华为手机软文范文300
  • 电子商务网站开发与应用/软文广告经典案例300字
  • 大美南京网站/营销案例最新
  • 政府网站建设管理/兰州网络seo
  • 做pc端网站机构/佛山抖音seo
  • 怎么做公司的网站宣传/今日新闻事件
  • 合肥网站建设公司/谷粉搜索谷歌搜索
  • wordpress更换端口/什么是关键词排名优化
  • 资源网站都有哪些/杭州百度人工优化
  • 自己做购物网站推广/seo关键词排名优化专业公司
  • 国内摄影作品网站/西安百度网站排名优化
  • 网站建设推广注册公司/考研培训机构排名前十
  • 个人网站制作源代码下载/企业品牌网站营销
  • 平台网站建设需要什么技术/网站测试的内容有哪些
  • 微信号 网站模板/谷歌paypal官网入口
  • 模块化网站建设系统/推广普通话宣传周
  • 国内做网站需要做icp备案吗/网络营销网课
  • 兖州中材建设有限公司网站/怎样在百度上发表文章
  • 东西湖区网站建设公司/如何做推广
  • 做网站网络营销注意/北京seo公司
  • visio画网站开发类图/交换链接的其它叫法是
  • 做网站用身份证/seo网站推广免费
  • wordpress精华主题/安卓优化大师下载安装
  • 做网站嘉兴/宁波seo自然优化技术
  • 网站怎么做免费推广/南京seo优化培训