Python中的轮询调度算法2025 年 1 月 5 日 | 阅读 9 分钟 引言在本篇文章中,我们将学习 Python 中的轮转调度算法。轮转法是一种 CPU 调度算法,其中每个进程在轮转过程中被分配一个时间片。它是先来先服务(FCFS)CPU 调度算法的抢占版本。 轮转 CPU 调度算法通常侧重于时间共享的进程。进程或任务在抢占模式下允许运行的时间量称为时间量子。队列中的所有进程或任务当前都会被分配 CPU。如果进程在此时间完成执行,则事务将终止。否则,让进程返回等待列表并等待一段时间。下一轮将完成。 什么是轮转调度?轮转调度是一种抢占调度算法,其中每个进程都有一个时间片或量子用于执行。CPU 调度以循环顺序将 CPU 时间分配给进程,因此这种调度算法被称为“轮转”。当进程过期时,它将被取消并添加到等待队列的末尾。下一个程序将获得 CPU 时间片。 每个周期的持续时间或量子通常很小,通常在 10 到 100 毫秒之间。时间小的优点是每个进程获得更多的 CPU 时间,并且通过改变进程的频率可以有效地利用 CPU。 轮转 CPU 调度算法的特点是什么?Python 中的轮转 CPU 调度算法有一些特点,如下所示:
轮转 CPU 调度算法的优点是什么?Python 中的轮转 CPU 调度算法有一些优点,如下所示:
轮转 CPU 调度算法的缺点是什么?Python 中的轮转 CPU 调度算法有一些缺点,如下所示:
轮转调度算法通过示例进行描述。这里我们举例说明 Python 中的轮转调度算法,如下所示: 示例 给定时间量子 = 2,考虑下表中四个进程 P1、P2、P3 和 P4 的到达时间和突发时间。
轮转 CPU 调度算法将按照以下步骤运行 当时间 = 0 时, 执行从进程 P1 开始,突发时间为 6,到达时间为 0。这里,每个操作执行 2 毫秒(量子时间)。P2 和 P3 仍在队列中等待。
当时间 = 2 时, 进程 P2 和 P3 到达就绪队列,P2 开始完成 TQ 周期。
当时间 = 4 时, 进程 P4 到达就绪队列,然后 P3 执行 TQ 周期。
当时间 = 6 时, 然后,P3 进程完成其执行,P1 进程开始在其 TQ 周期内执行,因为它在 b 中排在下一位。
当时间 = 8 时, 当 P4 进程开始运行时,它未达到时间量子周期,因为其突发时间为 1。因此,它仅执行 1 毫秒。
当时间 = 9 时, 然后,P4 进程完成其执行,P2 进程作为就绪队列中的下一个步骤执行 TQ 周期。
当时间 = 11 时, 然后,P2 进程完成其执行,P1 进程成功开始其执行;它仅需 1 毫秒即可完成。
当时间 = 12 时 然后,P1 进程完成了其执行,并且整个进程的执行如下所示。
如何使用轮转 CPU 调度算法计算完成时间 (CT)、周转时间 (TAT) 和等待时间 (WT)?在这里,我们将学习如何在轮转 CPU 调度算法中计算以下时间。 完成时间 (CT) 这是进程执行完成的时间。 周转时间 (TAT) 它指的是进程的完成时间和到达时间之间的时间差。 周转时间 (TAT) = (完成时间 - 到达时间) = (CT - AT) 等待时间 (WT) 它指的是周转时间 (TAT) 和突发时间之间的时间差。 等待时间 = 周转时间 - 突发时间 现在,我们在下表中计算周转时间 (TAT) 和等待时间 (WT)
所以, 现在平均周转时间 = (12 + 10 + 4 + 5) / 4 = 7.75 平均等待时间 = (6 + 6 + 2 + 6) / 4 = 5 编写一个轮转 CPU 调度的程序,其中所有进程的到达时间均为 0。计算等待时间 (WT) 的一些步骤
有了等待时间后,我们就可以计算周转时间或 tat[i] 为等待时间和突发时间的总和,例如,wt[i] + bt[i] 程序代码 在这里,我们编写了 Python 中轮转调度算法的程序代码。代码现在如下所示: 输出 现在,我们在 Python 中编译上述代码,成功编译后运行它。输出如下: Processes Burst Time Waiting Time Turn-Around Time 1 5 7 12 2 3 6 9 3 8 8 16 The Average Waiting Time is 7.00000 The Average Turn Around Time is 12.33333 |
给定一棵具有不同节点(没有两个节点具有相同的数据值)的二叉树。问题是打印从根到节点 x 的路径。如果节点 x 不存在,则打印“无路径”。示例:输入:...
阅读 4 分钟
数据值以键值对的形式存储在字典中。在本教程中,我们将学习如何将字典写入文件。目前,我们只能将字符串写入文件。要写入字典对象,我们必须对其进行序列化或使用 JSON 来...
阅读 3 分钟
? 在接下来的教程中,我们将学习如何使用 Python Imaging Library (PIL) 从 URL 打开图像。但在开始之前,让我们简要了解一下 PIL 是什么。什么是 Python Imaging Library (PIL)? Python Imaging Library,简称 PIL,...
阅读 4 分钟
访问数据库是许多 Python 开发人员的一项关键技能,因为它允许应用程序与持久性数据存储系统进行交互。Python 提供了多个库来与各种类型的数据库接口,包括像 MySQL 和 PostgreSQL 这样的关系数据库,以及像 MongoDB 这样的 NoSQL 数据库。
阅读 4 分钟
简介因此,词嵌入属于最先进的NLP工具,它们允许机器以相当高的准确性处理和生成自然语言文本。该领域中最流行的两种方法是Word2Vec和FastText,如果编程语言是...
阅读 8 分钟
简介 医疗图像 - 由显微镜、扫描仪和其他设备生成的图像与普通图片不同。它们的大小是关键区别之一。这些图片可能相当大。如今,千兆字节大小的演示文稿并不少见。维度的数量是...
阅读 6 分钟
在Python中,count()方法是一个元组方法,用于计算元素在元组中出现的次数。它返回传递给它的元素的出现次数。此方法接受一个参数,该参数表示用户想要计数的元素……
阅读 4 分钟
简介 可视化变量之间的关系对于理解复杂数据集至关重要。Seaborn 的相关性热图提供了一种优雅的方式来揭示这些模式,使您能够识别强相关的特征并指导特征工程和模型选择。它揭示了可能被忽视的隐藏关系...
阅读 3 分钟
Pandas 是 Python 中一个强大的数据操作库,它提供了各种过滤 DataFrame 中数据的方法。在数据分析中,过滤数据至关重要,它允许您根据特定条件提取行。在本文中,我们将探讨不同的方法...
阅读 4 分钟
矩阵或数组求逆是线性代数中的一项关键运算,是众多计算和数学任务的基础。其核心在于,该过程旨在找到给定矩阵或数组的倒数对应物,从而实现一个可以返回原始值的逆变换...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India