有关FCFS与SJF的作业算法的理解(操作系统原理)

本文深入浅出地介绍了作业调度中的FCFS(先来先服务)和SJF(最短作业优先)算法。通过具体例子解释了到达时间、等待时间、服务时间、完成时间、周转时间和带权周转时间等关键概念。FCFS算法按照作业到达的顺序执行,而SJF算法则依据作业的运行时间进行调度,以减少平均等待时间。理解这些概念对于优化系统性能至关重要。
摘要由CSDN通过智能技术生成

理解这块内容,需要区分几个概念 到达时间,等待时间,服务时间(运行时间),完成时间,周转时间,带权周转时间。

首先按照FCFS的算法介绍一遍去理解这几个概念:

在一个作业需要被执行的时候,它首先需要被传入存储器当中,那么就存在先后顺序,以此表(单位我们用 s )为例,我们依次执行了ABCD作业(作业其实就是一个进程集合,比如我们要看用电脑视频通话,他调用的进程有摄像头相关,有网络相关,有软件平台相关,由于cpu运行特别快,所以我们对此没什么感觉),A是最先到达内存的,此时A开始执行并且BCD还仍然处于分配内存或者一系列准备工作当中当然也有可能是作业开始的晚,等1s过后,作业B准备好了,由于A的运行时间是4s,所以B需要等待A执行完毕才可以开始(注意,此例用单核cpu举例)此时CD如同B之前的情况做准备工作,4s过去后,A运行完毕,B可以执行,此时B的等待时间是3s(距离它开始执行有4s,其中1s是准备的一个工作这个1s称为到达时间),完成时间是指从准备到结束这一段时间,也就是 【到达时间+等待时间+运行时间    】,在计算当中我们这么计算:

情况一:执行本作业时,它的前一个作业的完成时间 > 本作业的到达时间

                【前一个作业的完成时间+本作业的运行时间】---因为本作业是要等到前一个相邻作业完成才可以开始,并且此时本作业已经准备好了,可以执行,所以说前一个作业的完成时间就已经包括了本作业的等待时间和到达时间,再加上一个运行时间就是想要的结果。

情况二:执行本作业时,前一个作业的完成时间 < 本作业的到达时间

                【到达时间 + 运行时间】--------因为别的作业已经运行完毕了,本作业还在准备,因此本作业的到达时间就包括了,等待时间,一般不这么问。

周转时间【从作业的开始到结束,什么是开始?就是说他已经准备好了,也就是等到时间+运行时间】或者【完成时间  - 到达时间 】在回顾一下,完成时间就是到达时间 + 等待时间 + 运行时间

带权周转时间:提及带权,肯定是要和其他同类进行一个对比,此时我们对比的是一个效率,作业执行的效率,如何计算这个效率?【周转时间 / 运行时间】>= 1,周转时间包括等待时间和运行时间,此时他的等待时间越短,这个效率越接近1,也就是说效率越高越接近1,反之比1越大。

以上过程就已经大致说明了FCFS,其实这俩个算法并不是困难的,难的只是理解这些关键词。

SJF:

和先来先服务不一样的是,SJF是根据作业的运行时间去使得CPU调用相关进程完成作业的,其计算方法并没改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值