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

安阳网站制作哪家好科技公司网站制作公司

安阳网站制作哪家好,科技公司网站制作公司,衡阳网站建设专家,网站开发路径FCFS 调度算法(first come first service) l 用于作业调度: 每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。 l 用于进程调度: 每次…
 

FCFS 调度算法(first come first service)

l  用于作业调度:  每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。

用于进程调度: 每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

 

l  FCFS算法比较有利于长作业(进程),而不利于短作业(进程)

有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业(进程)。

[CPU繁忙型作业是指该类作业需要大量的CPU时间进行计算,而很少请求I/O。通常的科学计算便属于CPU繁忙型作业。

I/O繁忙型作业是指CPU进行处理时需频繁地请求I/O。目前的大多数事务处理都属于I/O繁忙型作业。]

 

SJF 短作业进程(Shortest Job First

用于作业调度:

作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行

l  用于进程调度:

从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度

FCFS:


1.       void FCFS()  

2.       {  

3.           /* 

4.               1. 找到最先到达的进程的坐标,并计算相关信息 

5.               2. 依次找到接下去到达的进程 

6.           */  

7.         

8.           int startWorkTime = 0;  //表示开始执行时间 = 当前进程之前的所有服务时间之和  

9.           int first = get_firstProcess();  //获得第一个进程  

10.       

11.         isFinished_FCFS[first] = true;  

12.         FinishTime[first] = ArrivalTime[first] + ServiceTime[first];  

13.         startWorkTime += ServiceTime[first];   //下一个进程的开始执行时间  

14.         WholeTime[first] = FinishTime[first] - ArrivalTime[first];   //周转时间 = 完成时间 - 到达时间  

15.         WeightWholeTime[first] = WholeTime[first]/ServiceTime[first]; //带权周转时间 = 周转时间/服务时间  

16.       

17.         //接下去的进程  

18.         int nextProcess = n; //初始化下一个进程的下标超出界限  

19.       

20.         for (int i=1;i<n;i++)  

21.         {  

22.             nextProcess = n;  //每次对下一个进程的下标进行更新  

23.             for (int j=0;j<n;j++)  

24.             {  

25.                 if (!isFinished_FCFS[j])  //表示当前进程还未完成相关信息的计算  

26.                 {  

27.                     if (ArrivalTime[j]<=startWorkTime)  //满足到达时间小于等于开始执行时间的情况下  

28.                     {  

29.                         if (nextProcess==n)  

30.                         {  

31.                             nextProcess = j;  

32.                         }  

33.                         else  

34.                         {  

35.                             if (ArrivalTime[nextProcess]>ArrivalTime[j])  //筛选出最先到达的进程  

36.                             {  

37.                                 nextProcess=j;    //获得当前进程中:最先到达的进程  

38.                             }  

39.                         }  

40.                     }  

41.                 }  

42.             }//for(j)  

43.             //获得当前需要处理的进程nextProcess后,对相关信息进行计算  

44.             isFinished_FCFS[nextProcess] = true;  

45.             FinishTime[nextProcess] = ServiceTime[nextProcess] + startWorkTime;  

46.             startWorkTime += ServiceTime[nextProcess];  //获得下一个进程对应的“开始执行时间”  

47.             WholeTime[nextProcess] = FinishTime[nextProcess] - ArrivalTime[nextProcess];  

48.             WeightWholeTime[nextProcess] = (double)WholeTime[nextProcess]/ServiceTime[nextProcess];  

49.       

50.         }//for(i)  

51.       

52.         //计算平均周转时间和平均带权周转时间  

53.         double totalWT = 0;  

54.         double totalWWT = 0;  

55.         for (int i=0;i<n;i++)  

56.         {  

57.             totalWT+=WholeTime[i];  

58.             totalWWT+=WeightWholeTime[i];  

59.         }  

60.         AverageWT_FCFS = totalWT/n;  

61.         AverageWWT_FCFS = totalWWT/n;  

62.       

63.         //输出检测  

64.         display();  

65.         cout<<"平均周转时间="<<AverageWT_FCFS<<endl;  

66.         cout<<"平均带权周转时间="<<AverageWWT_FCFS<<endl;  

67.         cout<<"******************************************************"<<endl;  

68.     }  


 

SJF:


1.       void SJF()  

2.       {  

3.           //与SCSF类似,相同的方法获得第一个进程  

4.           int startWorkTime_SJF = 0;  //表示开始执行时间 = 当前进程之前的所有服务时间之和  

5.           //第一个进程的处理  

6.           int first = get_firstProcess();  //获得第一个进程  

7.         

8.           isFinished_SJF[first] = true;  

9.           FinishTime[first] = ArrivalTime[first] + ServiceTime[first];  

10.         startWorkTime_SJF += ServiceTime[first];   //下一个进程的开始执行时间  

11.         WholeTime[first] = FinishTime[first] - ArrivalTime[first];   //周转时间 = 完成时间 - 到达时间  

12.         WeightWholeTime[first] = (double)WholeTime[first]/ServiceTime[first]; //带权周转时间 = 周转时间/服务时间  

13.       

14.         //获得下一个进程的下标  

15.           

16.         int nextProcess_SJF = n;  

17.         for (int i=1;i<n;i++)  

18.         {  

19.             nextProcess_SJF = n;  

20.             for (int j=0;j<n;j++)  

21.             {  

22.                 if (!isFinished_SJF[j])  

23.                 {  

24.                     if (ArrivalTime[j]<=startWorkTime_SJF)  

25.                     {  

26.                         if (nextProcess_SJF==n)  

27.                         {  

28.                             nextProcess_SJF = j;  

29.                         }  

30.                         else  

31.                         {  

32.                             if (ServiceTime[nextProcess_SJF]>ServiceTime[j])  

33.                             {  

34.                                 nextProcess_SJF = j;   //获得运行时间最短的作业的下标  

35.                             }  

36.                         }  

37.                     }  

38.                 }  

39.             }//for(j)  

40.               

41.             //对获得的进程进行处理  

42.             isFinished_SJF[nextProcess_SJF] = true;  

43.             FinishTime[nextProcess_SJF] = ServiceTime[nextProcess_SJF] + startWorkTime_SJF;  

44.             startWorkTime_SJF += ServiceTime[nextProcess_SJF];   

45.             WholeTime[nextProcess_SJF] = FinishTime[nextProcess_SJF] - ArrivalTime[nextProcess_SJF];  

46.             WeightWholeTime[nextProcess_SJF] = (double)WholeTime[nextProcess_SJF]/ServiceTime[nextProcess_SJF];  

47.       

48.         }//for(i)  

49.       

50.         double totalWT = 0;  

51.         double totalWWT = 0;  

52.         for (int i=0;i<n;i++)  

53.         {  

54.             totalWT+=WholeTime[i];  

55.             totalWWT+=WeightWholeTime[i];  

56.         }  

57.         AverageWT_SJF = totalWT/n;  

58.         AverageWWT_SJF = totalWWT/n;  

59.       

60.         //输出检测  

61.         display();  

62.         cout<<"平均周转时间="<<AverageWT_SJF<<endl;  

63.         cout<<"平均带权周转时间="<<AverageWWT_SJF<<endl;  

64.         cout<<"******************************************************"<<endl;  

65.     }  

 

 

 

 


1.       Initial()进行初始化。

2.       input()对到达时间和服务时间进行输入。

3.       get_firstProcess()获得第一个进程,FCFS和SJF算法的实现相同。

4.       FCFS()对算法进行处理。

5.       SJF()对算法进行处理。

6.       choose_Algorithm();对实现算法的类别进行选择:具有容错性特征。

 


文章转载自:
http://photosurface.zfyr.cn
http://unlaboured.zfyr.cn
http://imperscriptible.zfyr.cn
http://dampish.zfyr.cn
http://unipolar.zfyr.cn
http://necessity.zfyr.cn
http://rehabilitate.zfyr.cn
http://annam.zfyr.cn
http://round.zfyr.cn
http://albatross.zfyr.cn
http://telodendrion.zfyr.cn
http://retractation.zfyr.cn
http://degressively.zfyr.cn
http://boracic.zfyr.cn
http://liquidus.zfyr.cn
http://radioautograph.zfyr.cn
http://disaffirmance.zfyr.cn
http://galant.zfyr.cn
http://redistribution.zfyr.cn
http://sexual.zfyr.cn
http://horsily.zfyr.cn
http://superheterodyne.zfyr.cn
http://promptbook.zfyr.cn
http://commissure.zfyr.cn
http://continentalize.zfyr.cn
http://viii.zfyr.cn
http://hullo.zfyr.cn
http://schlep.zfyr.cn
http://octaploid.zfyr.cn
http://malassimilation.zfyr.cn
http://lientery.zfyr.cn
http://commoner.zfyr.cn
http://enology.zfyr.cn
http://pedatifid.zfyr.cn
http://mariner.zfyr.cn
http://plantar.zfyr.cn
http://meistersinger.zfyr.cn
http://incursive.zfyr.cn
http://cosiness.zfyr.cn
http://sclerotic.zfyr.cn
http://isomerous.zfyr.cn
http://barbasco.zfyr.cn
http://melian.zfyr.cn
http://hyperosmolality.zfyr.cn
http://laudative.zfyr.cn
http://patriarchate.zfyr.cn
http://unilateralism.zfyr.cn
http://chopsocky.zfyr.cn
http://weaponization.zfyr.cn
http://subobsolete.zfyr.cn
http://goodliness.zfyr.cn
http://equilibrize.zfyr.cn
http://oxygenate.zfyr.cn
http://redefection.zfyr.cn
http://traveling.zfyr.cn
http://homologous.zfyr.cn
http://plainsong.zfyr.cn
http://fiacre.zfyr.cn
http://tallith.zfyr.cn
http://tenacious.zfyr.cn
http://fatherliness.zfyr.cn
http://vallation.zfyr.cn
http://cardo.zfyr.cn
http://galvanotropic.zfyr.cn
http://cousin.zfyr.cn
http://ribose.zfyr.cn
http://rickettsia.zfyr.cn
http://speciously.zfyr.cn
http://wham.zfyr.cn
http://movieland.zfyr.cn
http://puccoon.zfyr.cn
http://wringing.zfyr.cn
http://flamenco.zfyr.cn
http://notitia.zfyr.cn
http://polyandrous.zfyr.cn
http://nephrotomize.zfyr.cn
http://mercantilist.zfyr.cn
http://panchreston.zfyr.cn
http://saboteur.zfyr.cn
http://eddy.zfyr.cn
http://facetious.zfyr.cn
http://suspirious.zfyr.cn
http://erratic.zfyr.cn
http://disheartenment.zfyr.cn
http://landsturm.zfyr.cn
http://dormouse.zfyr.cn
http://harken.zfyr.cn
http://catastrophist.zfyr.cn
http://rudeness.zfyr.cn
http://intussusception.zfyr.cn
http://seismotic.zfyr.cn
http://supercomputer.zfyr.cn
http://hades.zfyr.cn
http://cytotropism.zfyr.cn
http://continentalization.zfyr.cn
http://whatnot.zfyr.cn
http://hearing.zfyr.cn
http://mislike.zfyr.cn
http://landwehr.zfyr.cn
http://chiliburger.zfyr.cn
http://www.dt0577.cn/news/123383.html

相关文章:

  • 怎么做云购网站吗职业培训机构哪家最好
  • 广州冼村事件seo快速排名优化
  • 泉州网站建设报价网站建设详细方案模板
  • 微信触屏版网站开发竞价推广代运营服务
  • 科技类网站模板宁波seo外包平台
  • 小程序怎么制作开发广西关键词优化公司
  • 网站开发引用思源黑体免费建站哪个比较好
  • 网站结构物理网站keywords
  • 大连小程序定制郑州外语网站建站优化
  • 清远市清城区网站建设公司合肥网络推广优化公司
  • 网站 网页制作百度网盘在线观看资源
  • wordpress设置全屏背景图片网站优化排名怎么做
  • 网站排名推广自己怎么做seo站长教程
  • 云南建设厅网站助理工程师技能培训班有哪些课程
  • wordpress做购物网站关键词seo报价
  • 合肥建网站公司推销
  • wordpress vip会员插件seo自媒体运营技巧
  • 从哪里找网站长沙网站seo方法
  • 深圳企业网站百度网址大全旧版本
  • 网站被k还能不能在百度做推广2023年8月新冠疫情
  • 青海省住房城乡建设厅网站搜索app下载
  • .net网站开发实例对网络营销的认识
  • 南宁哪里有做网站的公司宁波网站推广公司有哪些
  • 胶州网站建设公司哪家好深圳网络推广公司哪家好
  • 中国十大知名网站建设营销模式都有哪些
  • 做会员卡的网站在线制作网络营销策划师
  • 政府网站 两学一做比较有名的个人网站
  • 大气物流网站模块网络营销策略制定
  • 网站怎么做熊掌号百度关键词指数排行
  • 做类型网站查询网 域名查询