操作系统模拟实验—短作业调度算法(SJF)Python实现

本文介绍了短作业优先法(SJF),一种旨在减少平均周转时间和提高系统吞吐量的调度算法。该算法优先执行预计执行时间较短的作业。然而,它对长作业不利且无法考虑作业紧迫程度。实验部分展示了使用Python3.x环境进行的SJF算法模拟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

短作业优先法

短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。

定义

对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。

SJF的特点

优点:

  • 比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间;
  • 提高系统的吞吐量;

缺点:

  • 对长作业非常不利,可能长时间得不到执行;
  • 未能依据作业的紧迫程度来划分执行的优先级;
  • 难以准确估计作业(进程)的执行时间,从而影响调度性能。
SJF的变型
  • “最短剩余时间优先”SRT(Shortest Remaining Time)(允许比当前进程剩余时间更短的进程来抢占)
  • “最高响应比优先”HRRN(Highest Response Ratio Next)(响应比R = (等待时间 + 要求执行时间) / 要求执行时间,是FCFS和SJF的折衷) ——以上内容出自百度百科
实验

本次实验是基于Python3.x的环境.

# 模拟文件  (作业名字, 作业到达时间, 作业运行时间)
INPUT_DATA = [('A',1,5), ('B',
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值