📌  相关文章
📜  教资会网络 | UGC NET CS 2016 年 7 月 – III |问题 68(1)

📅  最后修改于: 2023-12-03 15:39:55.134000             🧑  作者: Mango

UGC NET CS 2016 年 7 月 – III 问题 68

这道题目是针对计算机科学领域的,具体考察了操作系统中的调度算法。如果你是一名程序员,那么需要掌握操作系统中进程的调度方式,以便于能够更好地编写高效的程序。

问题描述

给定三个进程和各自的执行时间,使用以下调度算法,计算所有进程的等待时间和平均等待时间。

  1. 先来先服务 (First Come First Serve, FCFS)
  2. 最短作业优先 (Shortest Job First, SJF)
  3. 优先级调度 (Priority Scheduling)

给定数据:

| 进程 | 执行时间 | 优先级 | | ---- | ------- | ------ | | P1 | 24 | 2 | | P2 | 3 | 5 | | P3 | 3 | 1 |

解题思路
FCFS

先来先服务是一种简单的调度算法,按照进程到达的顺序进行调度。计算每个进程的等待时间,等待时间为前面所有进程的执行时间之和。

p1_time = 24
p2_time = 24 + 3 = 27
p3_time = 24 + 3 + 3 = 30

p1_wait_time = 0
p2_wait_time = 24
p3_wait_time = 24 + 3 = 27

avg_wait_time = (p1_wait_time + p2_wait_time + p3_wait_time) / 3 = 17
SJF

最短作业优先是按照进程执行时间的长度进行调度,执行时间短的进程先执行。计算每个进程的等待时间,等待时间为前面所有进程的执行时间之和。

p2_time = 3
p3_time = 6
p1_time = 30

p1_wait_time = 6 + 3 = 9
p2_wait_time = 0
p3_wait_time = 3

avg_wait_time = (p1_wait_time + p2_wait_time + p3_wait_time) / 3 = 4
优先级调度

优先级调度按照进程的优先级进行调度,优先级高的进程先执行。计算每个进程的等待时间,等待时间为前面优先级比自己高的进程执行时间之和。

p2_time = 3
p1_time = 24 + 3 = 27
p3_time = 27 + 3 = 30

p1_wait_time = 0
p2_wait_time = 0
p3_wait_time = 27

avg_wait_time = (p1_wait_time + p2_wait_time + p3_wait_time) / 3 = 9
总结

本题考察了操作系统中的进程调度算法,程序员需要掌握常见的调度算法以及如何计算进程等待时间和平均等待时间。在实际编程中,可以根据实际情况选择合适的调度算法,以提高程序的执行效率。