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

《操作系统》 专栏收录该内容
53 篇文章 9 订阅

摘要:微信搜索【三桥君

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

 一、前言


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

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


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

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

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

 

二、公式


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

说明:

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

三、例题


(一)题目


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

作业提交时刻(时)运行时间(小时)
1107
2113
3131

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


(二)答案

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

(三)分析

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

计算步骤:

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

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

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

 

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

作业提交时刻运行时间完成时间周转时间平均周转时间带权周转时间平均带权周转时间
110710+7=1717-10=7(7+9+8)/3=87/7=1(1+3+8)/3=4
211317+3=2020-11=99/3=3
313120+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.1
211318+3=2121-11=1010/3=3.3
313117+1=1818-13=55/1=5

 

《参考文章》

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

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

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


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

  • 8
    点赞
  • 0
    评论
  • 57
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

1. 实验目的 调度的实质是操作系统按照某种预定的策略来分配资源。进程调度的目的是分配CPU资源。由于进程调度程序执行的频率很高,因此调度算法的好坏直接影响到操作系统的性能。本实验的目的是编程模拟实现几种常用的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间平均带权周转时间,比较各种算法的性能优劣。 2. 实验原理 [1]. 进程调度算法描述 进程调度算法包括先来先服务调度算法、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法4种。(每个人必须做FCFS,然后在后面的三种中任选一种,即每个人必须做2种调度算法的模拟。) [2]. 衡量算法性能的参数 计算进程的平均周转时间平均带权周转时间。 3. 实验内容 (1)编程实现本实验的程序,要求: [1]. 建立进程的进程控制块,进程控制块至少包括: a) 进程名称; b) 进程需要执行时间; c) 进入就绪队列时间; d) 进程执行开始时间 e) 进程执行结束时间 [2]. 编程实现调度算法。 [3]. 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 [4]. 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的流逝。另一种方法是使用系统时钟。 [5]. 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始执行时间、结束时间周转时间带权周转时间,并为整个进程序列计算平均周转时间平均带权周转时间。程序将计算结果按一定的格式显示在计算机屏幕上或输出到文件中。打印出进程调度顺序图。 [6]. 实现数据在磁盘文件上的存取功能。 (2)对下列就绪进程序列分别使用上面的几种算法进行调度,计算每种算法下的平均周转时间平均带权周转时间。 进程号 到达时间 要求执行时间 0 0 1 1 1 35 2 2 10 3 3 5 4 6 9 5 7 21 6 9 35 7 11 23 8 12 42 9 13 1 10 14 7 11 20 5 12 23 3 13 24 22 14 25 31
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值