作业调度算法

先来先服务、短进程优先算法

一.目的

  通过使用c对先来先服务、短进程优先算法的实现,进一步理解并掌握调度算法的逻辑过程,以及每种算法分别在进程调度和作业调度中的的处理方法.

二.原理

先来先服务:该算法在每次调度中,都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,位置分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

短进程优先:该调度算法是从后备序列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。

三.流程图

wKioL1abTA_gTdZqAAAbFiNK1R8980.png

wKiom1abS-_D_u2oAAAXr9X5sxE613.png

四.程序清单

五.结果截图

wKiom1abTI_BAn54AAAPJLxG6os388.png

1.先来先服务算法:

wKiom1abTOnQQGMwAAAZyWJBVGo126.png

wKioL1abTS_ylOrVAAAbMASswfE463.png

wKiom1abTQnCLw1gAAAGeUhRfKY053.png

2.短作业优先算法:

wKioL1abTXqy4oU6AAAyQgKQj-A369.png

wKiom1abTVKAEnWQAABG9PzpZ9w903.png

wKioL1abTZbTnGLqAABE-gUlWxo888.png

wKiom1abTW-waphyAABMibs3p50395.png

六.结果分析

  先来先服务算法比较有利于长作业,而不利于短作业。根据先来先服务的实验,短作业C的带权周转时间竟高达100,这是不能容忍的;而长作业D的带权周转时间仅为1.99。就此可知,先来先服务算法有利于CPU繁忙型作业,而不利于I/O繁忙型作业。

  根据测试结果得知,短作业优先调度算法能有效的降低作业的平均等待时间,提高吞吐量。但同时,该算法对长作业不利,更严重的是,如果有一长作业进入系统的后备队列,由于调度程序总是优先调度那些短作业,将导致长作业长期不被调度。该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业会被及时处理。

 

  

posted @   ProLyn  阅读(4340)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示