FIFO fifo算法模拟?操作系统先进先出和先来先服务(FCFS)有什么区别?( 二 )
system("PAUSE");
return 0;
}
get()
{
int w[12]={1,2,3,4,1,2,5,1,2,3,4,5}; //需要访问的资源序列
int i,n;
for(i=0;i<12;i++) //输出序列
{
printf("%d ",w[i]);
}
}
void FIFO()
{
int time[mSIZE] = {0};//分配的三个页框初始化为0
int i = 0, j = 0;
int m = -1, n = -1;
int max = -1,maxtime = 0;
int count = 0;
for(i = 0; i<pSIZE; i++) //开始循环,在页框中寻找所需资源
{
for(j=0; j<mSIZE; j++)//判断页框中是否满
{
if(memery[j] == 0) //寻找空页框,并且记录页号
{
m = j;
break;
}
}
for(j = 0; j < mSIZE; j++)
{
if(memery[j] == process[i]) //判断页框中是否有进程所需访问的资源
{
n = j;
}
}
for(j = 0; j < mSIZE;j++) //记录在页框中存放最长时间的资源,即第一个进入的资源
{
if(time[j]>maxtime)
{
maxtime = time[j];//将存放最长时间资源的计数器的值赋给maxtime
max = j;
}
}
if(n == -1) //由于没有在页框中找到所需资源,并且也表已满,发生缺页中断 。
{
if(m != -1)
{
memery[m] = process[i]; //没有替换的资源,则它对应的计数器加一
time[m] = 0;
for(j = 0;j <= m; j++)
{
time[j]++;
}
m = -1;
}
else
{
memery[max] = process[i]; //发生缺页中断,从前面的标记中寻找第一个进入页表的资源替换
time[max] = 0;//替换后原来的最长则清0,
for(j = 0;j < mSIZE; j++)
{
time[j]++;//替换后,此资源对应的计数器加一
}
max = -1;
maxtime = 0;
count++;
}
}
else
{
memery[n] = process[i];
for(j = 0;j < mSIZE; j++) //一次分配对所有在页表中的资源的计数器加一
{
time[j]++;
}
n = -1;
}
for(j = 0 ;j < mSIZE; j++)
{
printf("%d ",memery[j]);//输出此次资源访问时页表中资源的情况 。
}
printf("\t%d
",count);
}
}
Q3:操作系统先进先出(FIFO)和先来先服务(FCFS)有什么区别
1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业 。这种调度算法的优点是实现简单,公平 。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多 。
2.先进先出算法(FIFO):按照进程进入就绪队列的先后次序来选择 。即每当进入进程调度,总是把就绪队列的队首进程投入运行 。
Q4:FIFO调度算法和LRU算法?
FIFO:先进先出调度算法
LRU:最近最久未使用调度算法
两者都是缓存调度算法,经常用作内存的页面置换算法 。
打一个比方,帮助你理解 。
你有很多的书,比如说10000本 。
由于你的书实在太多了,你只能放在地下室里面 。
你看书的时候不会在地下室看书,而是在书房看书 。
每次,你想看书都必须跑到地下室去找出来你想看的书,
然后抱回来放到书桌上,之后才开始看 。
还有就是,有一些书你会反复的看,今天看了也许过几天又要看 。
总之,你自己是不知道你哪天会需要看哪本书的 。
你的老师每天下课的时候会给你布置一个书单,让你晚上回去去看哪本书 。
(假设你老师让你看的书在你的地下室里面都有)
跑地下室当然是非常麻烦的,所以你希望你的经常看的那些书最好放在书桌上 。
但是你的书房的书桌同时只能摆放10本书(这个是假设的啊) 。
那么,问题来了 。
到底把哪些说留在书桌上最好呢?
这里说的最好,就是说你尽量少的跑地下室去找书 。
为了解决这个问题,人们发明了很多的算法 。
其中,比较常见的就是上面这两种:FIFO算法和LRU算法 。
FIFO算法
很简单,我把书桌上的10本书按照放置时间先后堆放成一堆 。
这里的放置时间,就是说这本书在我的书桌上放了几天了 。
每次要看书的时候,我先在书桌上找,找到就直接可以读了 。
读完之后放回原来的位置就可以,不打乱顺序 。
如果书桌上面没有我要读的书,就去地下室找 。
找来之后,我就把书桌上放的时间最长的那本(也就是
书堆里面最下面的那本书)放回地下室 。
然后把我今天需要看的这本书放在书堆的最上面 。
LRU算法
推荐阅读
- 反向传播算法过程 什么事反向传播算法
- 图像识别算法的核心技术~人脸识别的识别算法
- seo的意思是什么,搜索引擎seo算法介绍
- seo好做吗,seo工作前景分析
- 排名点击算法和链接算法 seo算法分享
- 微美全息研究基于多视图的三维重建算法
- 人工智能图像识别技术原理,图像识别的算法是什么
- 关键词密度算法,网站关键词密度多少合适
- fifo原则?fifo管理是指什么?
- 人脸算法最佳综述 人脸检测综述
