关于【完成时间、周转时间、平均周转时间、带权周转时间和平均带权周转时间】的公式和计算

    技术2022-07-16  78

    摘要:微信搜索【三桥君】

    本文介绍了计算“完成时间、周转时间、平均周转时间、带权周转时间和平均带权周转时间”的公式,并且用先来先服务(FCFS)、短作业优先(SJF)两种调度算法来分析一个例题。

     一、前言

    这里要补充一些说明,方便大家理解。

    我们做这类题目时,一般都需要画表,完整的表格方式可以是如图:

    一般来说,表的所有列名就8个了,但是实际题目中,列名的个数会缺少,甚至列名的名称也会不一样。但是他们不管名称怎么变,都必须对应上原先的列名,因为每个对应的列名都是有固定的作用和含义的。

    这里举例下经常会变动的列名名称,如作业号改为“进程号”,提交时刻改为“提交时间”、“到达时间”,运行时间改为“服务时间”等等,这样子会导致一开始没看出来题目意思,或者导致混淆题意等。

    因此,这里我强调下,其实他们名称虽然变了,但是要表达的意思和作用是一样的,而且我们公式还要用到这些对应的列名。

     

    二、公式

    周转时间=完成时间-提交时刻 平均周转时间=周转总时间/作业总个数 带权周转时间=周转时间/运行时间 平均带权周转时间=带权周转总时间/作业总个数

    说明:

    这类题目一般有先来先服务(FCFS)、短作业优先(SJF)两种调度算法,只有在作业的完成时间计算上有一些区别,其他时间的计算公式都是相同的。

    三、例题

    (一)题目

    假设有三道作业,它们的提交时间及运行时间由下表给出,

    作业提交时刻(时)运行时间(小时)110721133131

    采用非多道程序设计,并且采用“先来先服务”作业调度算法。指出它们的调度顺序,并分别计算平均周转时间和平均带权周转时间。

    (二)答案

    作业提交时刻运行时间完成时间周转时间平均周转时间带权周转时间平均带权周转时间11071778142113209331312188

    (三)分析

    因为题目是采用“先来先服务”作业调度算法,所以服务顺序根据提交时刻来排序。

    计算步骤:

    1、找出最先到达的作业(该进程的完成时间=提交时间+运行时间);

    2、根据给出的提交时刻,找出下一个到达的作业(该作业的完成时间=上一作业的完成时间+该作业的提交时刻);

    3、重复2,直至完成所有作业的计算。

     

    作业服务顺序:1->2->3。

    作业提交时刻运行时间完成时间周转时间平均周转时间带权周转时间平均带权周转时间110710+7=1717-10=7(7+9+8)/3=87/7=1(1+3+8)/3=4211317+3=2020-11=99/3=3313120+1=2121-13=88/1=8

    四、举一反三

    那么问题来了,如果例题题目要求改为“短作业优先(SJF)”作业调度算法的话,该怎么做呢?

    (一)分析

    因为题目是采用“先来先服务”作业调度算法,所以服务顺序就不是根据提交时刻来排序了,但是第一个服务的作业还是以第一个提交时刻来的。

    计算步骤:

    1、找出最先到达的作业(该进程的完成时间=提交时刻+运行时间);

    2、根据上一作业的完成时间,找到提交时刻在这个完成时间内的作业,并找到这些作业中运行时间最短的那个,然后计算它的完成时间(该作业的完成时间=上一作业的完成时间+该作业运行时间);

    3、重复2,直至完成所有作业的计算。

     

    作业服务顺序:1->3->2。

    作业提交时刻运行时间完成时间周转时间平均周转时间带权周转时间平均带权周转时间110710+7=1717-10=7(7+10+5)/3=7.37/7=1(1+3.3+5)/3=3.1211318+3=2121-11=1010/3=3.3313117+1=1818-13=55/1=5

     

    《参考文章》

    1、完成时间,周转时间,平均周转时间以及带权周转时间和平均带权周转时间

    2、周转时间,平均周转时间,带权周转时间

    3、操作系统进程完成时间,周转时间,带权周转时间, 平均周转时间, 带权平均周转时间计算


    文章整理不易,有帮助请点赞关注支持,谢谢!微信搜索【三桥君 】,回复【关注】有我准备的一份资源大礼包。后续持续更新~~~

    Processed: 0.011, SQL: 9