范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

FCFS,SJF以及PSA进程调度算法的比较

  实现
  下面是用 Java 程序比较 FCFS,SJF 和 PSA 算法效率的示例代码:  FCFS思路
  对于 FCFS 算法,我们可以定义一个 Process 类来表示一个进程,其中包含进程名称、到达时间和执行时间三个属性。然后我们可以定义一个 FCFS 类,其中包含一个 ArrayList 来存储所有的进程,并实现调度算法的逻辑。  源码
  `  public class FCFS {     private ArrayList processList;      public FCFS(ArrayList processList) {         this.processList = processList;     }      public void schedule() {         // 按照进程的到达时间升序排序         Collections.sort(processList, (p1, p2) -> p1.arrivalTime - p2.arrivalTime);           int currentTime = 0;         int waitingTime = 0;         int turnaroundTime = 0;           for (Process p : processList) {             if (currentTime < p.arrivalTime) {                 currentTime = p.arrivalTime;             }             waitingTime += currentTime - p.arrivalTime;             turnaroundTime += currentTime - p.arrivalTime + p.executionTime;             currentTime += p.executionTime;         }           double averageWaitingTime = (double) waitingTime / processList.size();         double averageTurnaroundTime = (double) turnaroundTime / processList.size();           System.out.println("平均等待时间:" + averageWaitingTime);         System.out.println("平均周转时间:" + averageTurnaroundTime);     } }
  `  解释
  在 FCFS 算法的示例代码中,我们定义了一个 Process 类来表示一个进程,包含进程名称、到达时间和执行时间三个属性。然后我们定义了一个 FCFS 类,其中包含一个 ArrayList 来存储所有的进程,并实现调度算法的逻辑。
  调度算法的逻辑如下:  首先,将进程列表按照到达时间升序排序。  然后,遍历每一个进程  如果当前时刻小于进程的到达时间,则将当前时刻更新为进程的到达时间。  然后,计算等待时间和周转时间:  等待时间 = 当前时刻 - 进程的到达时间  周转时间 = 当前时刻 - 进程的到达时间 + 进程的执行时间  最后,将当前时刻更新为当前时刻 + 进程的执行时间。
  在遍历完所有的进程之后,我们可以计算平均等待时间和平均周转时间,以此来评估 FCFS 算法的性能。
  最后,调用 FCFS 类的 schedule 方法来执行调度算法即可。  SJF思路
  对于 FCFS 算法,我们可以定义一个 Process 类来表示一个进程,其中包含进程名称、到达时间和执行时间三个属性。然后我们可以定义一个 FCFS 类,其中包含一个 ArrayList 来存储所有的进程,并实现调度算法的逻辑。  源码public class SJF {     private ArrayList processList;       public SJF(ArrayList processList) {         this.processList = processList;     }       public void schedule() {         int currentTime = 0;         int waitingTime = 0;         int turnaroundTime = 0;           while (!processList.isEmpty()) {             // 找到当前时刻最先到达的,执行时间最短的进程             Process p = processList.stream()                     .filter(process -> process.arrivalTime <= currentTime)                     .min((p1, p2) -> p1.executionTime - p2.executionTime)                     .get();               waitingTime += currentTime - p.arrivalTime;             turnaroundTime += currentTime - p.arrivalTime + p.executionTime;             currentTime += p.executionTime;               processList.remove(p);         }           double averageWaitingTime = (double) waitingTime / processList.size();         double averageTurnaroundTime = (double) turnaroundTime / processList.size();           System.out.println("平均等待时间:" + averageWaitingTime);         System.out.println("平均周转时间:" + averageTurnaroundTime);     } }  解释
  在 SJF 算法的示例代码中,我们定义了一个 Process 类来表示一个进程,包含进程名称、到达时间和执行时间三个属性。然后我们定义了一个 SJF 类,其中包含一个 ArrayList 来存储所有的进程,并实现调度算法的逻辑。
  调度算法的逻辑如下:  使用 stream API 的 filter 和 min 方法来找到当前时刻最先到达的,执行时间最短的进程。  然后,计算等待时间和周转时间:  等待时间 = 当前时刻 - 进程的到达时间  周转时间 = 当前时刻 - 进程的到达时间 + 进程的执行时间  最后,将当前时刻更新为当前时刻 + 进程的执行时间。
  在遍历完所有的进程之后,我们可以计算平均等待时间和平均周转时间,以此来评估 SJF 算法的性能。
  最后,调用 SJF 类的 schedule 方法来执行调度算法即可。  PSA思路
  对于 PSA 算法,我们需要在 Process 类中增加一个优先级的属性,并在调度算法的逻辑上进行相应的修改。
  如果进程在等待 CPU 时间的时间越长,就将它的优先级设为越高。这样,当进程获得 CPU 时间的机会时,就能够优先执行。这种算法能够有效地应对突发性的高优先级作业。  首先,为每个进程设定一个初始优先级。  然后,每当进程等待 CPU 时间超过一定的阈值,就将进程的优先级提高。  当进程获得 CPU 时间时,按照优先级的高低进行调度。
  需要注意的是,当进程执行完成后,需要将进程的优先级恢复为初始值。  源码public class PSA {     private ArrayList processList;       public PSA(ArrayList processList) {         this.processList = processList;     }       public void schedule() {         int currentTime = 0;         int waitingTime = 0;         int turnaroundTime = 0;           while (!processList.isEmpty()) {             // 找到当前时刻最先到达的,优先级最高的进程             Process p = processList.stream()                     .filter(process -> process.arrivalTime <= currentTime)                     .max((p1, p2) -> p1.priority - p2.priority)                     .get();               waitingTime += currentTime - p.arrivalTime;             turnaroundTime += currentTime - p.arrivalTime + p.executionTime;             currentTime += p.executionTime;               processList.remove(p);         }           double averageWaitingTime = (double) waitingTime / processList.size();         double averageTurnaroundTime = (double) turnaroundTime / processList.size();           System.out.println("平均等待时间:" + averageWaitingTime);         System.out.println("平均周转时间:" + averageTurnaroundTime);     } }  解释
  首先,在示例代码中,我们定义了一个 Process 类来表示一个进程,包含进程名称、到达时间、执行时间和剩余执行时间四个属性。然后我们定义了一个 PSA 类,其中包含一个 ArrayList 来存储所有的进程,并实现调度算法的逻辑。
  调度算法的逻辑如下:  首先,将进程列表按照到达时间升序排序。  然后,循环执行以下步骤,直到进程列表为空:  从进程列表中取出第一个进程,并将其从列表中移除。  如果当前时刻小于进程的到达时间,则将当前时刻更新为进程的到达时间。  如果进程的剩余执行时间大于时间片,则执行时间片的长度;否则,执行进程剩余的所有时间。  计算等待时间和周转时间:  等待时间 = 当前时刻 - 进程的到达时间  周转时间 = 当前时刻 - 进程的到达时间 + 进程的执行时间  如果进程的剩余执行时间为 0,则将进程从进程列表中移除;否则,将进程插入进程列表的末尾。  将当前时刻更新为当前时刻 + 执行的时间。
  在遍历完所有的进程之后,我们可以计算平均等待时间和平均周转时间,以此来评估 PSA 算法的性能。
  最后,调用 PSA 类的 schedule 方法来执行调度算法即可。  三种方法效率比较
  都以相同的开始时间、进行时间、以及优先级进行比较
  arr[0]={0,20,2};
  arr[1]={5,15,1};
  arr[2]={10,5,4};
  arr[3]={15,10,3};
  优先级是为了比较PSA的两种抢占效率(抢占式、非抢占式).  FCFS
  SJF
  PSA抢占式
  非抢占式
  总结:
  FCFS 算法是一种简单的调度算法,它按照进程的到达时间顺序依次执行进程,不考虑进程的执行时间。由于不能有效地应对短作业,因此 FCFS 算法的效率并不高。
  SJF 算法是一种较高效的调度算法,它优先执行执行时间较短的进程,能够有效地应对短作业。但是,SJF 算法不能有效地应对突发性的高优先级作业。
  PSA 算法是一种动态调度算法,它根据进程的等待时间动态调整进程的优先级,能够有效地应对突发性的高优先级作业。但是,PSA 算法的实现较为复杂,因此其运行效率略低于 SJF 算法。
  总的来说,SJF 算法的效率略高于 PSA 算法,而 FCFS 算法的效率较低。不同的调度算法适用于不同的场景,应根据实际需要选择合适的调度算法。

烧光1105亿元后,华为迎来大突破!美媒不可能因受到美国单方面的限制,华为一直无法在5G芯片领域大展拳脚,其自主设计的华为海思芯片没有代工厂愿意生产,整个业务线几近陷入停滞,不过这并没有让华为放弃海思半导体研发部门。华为持续高写作一年我得到了什么最初开始写作,源于对自由职业的向往,我羡慕那些一个背包走天下,可以一边工作,一边用脚丈量世界的人。都说眼界宽了,心也就宽了,我不愿困守一方天地,让心囿于一角,画地为牢。我睁着渴望的华为P60系列概念机曝光土豪金全系4nm芯片,售价却不妥协哈喽,您好!我是原呵呵,点点关注吧,更多精彩内容等着您华为P系列以提供具有尖端功能和最新规格的最重要的移动手机而闻名。华为P60Pro将成为这款华丽智能手机的名称。新的华为旗舰手机新机预告,vivoX90系列即将发布对于vivo这款系列的新机观众应该挺期待的,因为现在发出的信息就已经有三个首发了。第一个首发是天玑的高端芯片9200首发,跑分已经跑到了128w,目前好像是跑分最高的,不知道具体到天玑8200发布在即,跑分突破百万大关,红米vivo新机提前预定今年对于联发科来说喜忧参半,虽然高端市场天玑9000系列雷声大雨点小,冲击高端领域没有成功,好在天玑8100成功获封中端神U。现在新一代天玑8200得到曝光,有望在12月初正式亮相vivo天玑9200新机若准备入手,三个亮点要留意到目前为止,iPhone14系列的风头算是告一段落了。而国产手机厂商这边开始发力了,也就是说在今年11月份12月份都将会有国产新旗舰机正式推出。就拿最近备受关注的vivo天玑920魅族20系列曝光,魅友再不回归真的扛不住了提到魅族大家会不由自主地想到情怀,想当年那也是一机难求,昨天和一个同事聊到魅族,没用过魅族手机,你永远不知道什么叫流畅,Flyme系统的轻便简洁依然让我很怀念。但是对于魅族而言,真21对话BangampampampOlufsen亚太区总裁ArnaudDeSchuytter中国市场前景广阔,高质量宅家需求带来新机遇21世纪经济报道记者吴斌上海报道作为世界第二大经济体和人口大国,中国的蓬勃发展正给越来越多的海外企业带来巨大的发展空间和机遇,各大细分领域的先端品牌正在中国市场挖掘成长空间。全球奢OPPO或在研发第二款旗舰平板采用新屏幕并将搭载天玑9000处理器今年是OPPO先后推出了OPPOPad和OPPOPadAir两款平板电脑,开始在平板市场全面发力,最近有消息透露,OPPO已开展了第二款旗舰平板电脑的开发工作,处理器和屏幕都将有较原创远方在哪里原创远方在哪里写在疫情赖着不走的日子20221119hr曾经以为没有去过的地方都叫做远方可是现在所有家以外的地方都叫做远方曾经以为梦想总会有一天照进现实可是现在现实总在每一天找寻梦数智金融向新而生新华三出席2022年第五届中国金融科技产业大会金融是现代经济的血脉,亦是数字化变革的重要阵地。11月1719日,由中国信通院苏州市金融科技协会主办,紫光股份旗下新华三集团特别支持的2022年第五届中国金融科技产业大会丨第四届中
妈妈信偏方致宝宝毳(cu)毛硬如猪毛网友投胎是门技术活投胎还真是门技术活,遇上没有文化的父母,孩子可要跟着遭罪了。女子听信偏方,一番操作猛如虎,致使宝宝扎得哇哇大叫,究竟怎么回事?点注不迷路。小编就和大家一起聊聊浙江温州女子小美听信偏存储之王到来,DNA存储技术突破,常温下可保存信息上千年你相信吗?敦煌壁画可以被存入DNA中,并且在常温下可保存上千年。日前,天津大学合成生物学团队创新了DNA存储算法,将十幅精选敦煌壁画存入DNA中,通过加速老化实验验证壁画信息在实验中央最新发布!鼓励全国各城市,学习深圳作者子非鱼01鼓励全国学深圳10月13日,国家发改委官方网站挂出了国家发展改革委关于推广借鉴深圳综合改革试点首批授权事项典型经验和创新举措的通知,明确提出为进一步发挥试点的示范带动中国名山之十大城市名山01hr青岛崂山海上第一名山神仙窟宅道教发祥地5A景区国家风景名胜区国家森林公园山东省青岛市崂山区梅岭路29号青岛崂山是闻名遐迩的海上名山,素有海上名山第一神仙窟宅灵异之府之称,最安徽人除了喝古井贡,还喜欢这5款平价酒,大家看看都喝过吗提到安徽你会想到什么?是烟波瀚渺的湖光山色?还是小桥流水人家的古镇水乡?安徽真的称得上是粗狂雄浑和巧笑俊逸相辅相成的地方,既有金陵屏障建康锁钥雄伟粗狂的山川峰峦,也有一袭烟雨罩江南林子祥前妻回国与儿子团聚,头发花白气质优雅,和准儿媳亲密无间近日,有媒体报道,林子祥的儿子林德信在商场举办了一场小型音乐会,吸引了不少粉丝前来捧场。当天,林德信打扮时尚休闲,身穿夏威夷花衬衫,下身搭配黑色牛仔裤,戴着橘色墨镜,看起来十分帅气中国空间站第一个国外女航天员是她?意航天员发中文点评,引热议天宫课堂第三课完成之后,中国的梦天实验舱也进入到了发射倒计时阶段,计划说的是10月发射那就是即将发射了。所以,中国空间站又将迎来新一轮的计划。而随着中国空间站的建设,我们又看到了一篮网首胜!骑士双枪爆发,步行者获惊喜!快船2连败,太阳捡到宝仅仅一夜,NBA季前赛又迎来了8组对决,这其中,篮网首胜,骑士双枪爆发,步行者收获惊喜,太阳捡到宝!骑士双枪爆发在刚刚结束的一场季前赛中,骑士队最终以10599击败了前来挑战的老鹰曼联希望在一月份签下英格兰前锋,如果C罗离开如果克里斯蒂亚诺罗纳尔多离开俱乐部,曼联将在一月份的转会窗口签下布伦特福德前锋伊万托尼。到目前为止,托尼在布伦特福德度过了一个出色的赛季,甚至赢得了他第一次被英格兰队征召。许多人质盘点即将下岗失业的四位巨星球员,他们还有机会重返NBA舞台吗每年许许多多的年轻球员通过选秀大会进入到NBA联盟中,新人的加入注定着老将的退出。大家好,这里是篮球小小卢,本期小编给大家盘点了一下有可能面临下岗失业的四位暮年巨星球员,让我们一起拒绝斯通,再见火箭!利拉德伸出橄榄枝,小马丁恐将欣然接受近日开拓者球星利拉德接受了TheRinger记者LoganMurdock专访时透露,詹姆斯此前曾经邀请他前往家中做客,他们一起讨论了联手打球的可能性,他当时确实产生了加盟湖人队的想