c - 运行时调度抽象

标签 c algorithm data-structures

我被要求写一个程序,一个用 C 编写的运行时调度算法的抽象。我遇到的问题是“优先级调度”。它像其他算法一样从用户那里获取运行时间,除了它也有优先级这些进程的问题。令我困扰的是我无法将优先级与运行时间联系起来。我应该如何在优先级和运行时间之间建立关系?根据算法,它首先运行优先级最高的那个。我只需要知道如何建立这种联系,谢谢。

最佳答案

编辑:-

将优先级存储在一个数组中,并根据优先级递减对数组进行排序,并将每个优先级与它的时间映射起来!然后,简单地显示从开始排序的数组及其与处理时间的映射。

如果进程是在运行时添加的,则需要采用贪心算法来解决该问题。按照进入时间的递增顺序选择具有最高优先级的进程。

检查此以了解更多信息 Interval Scheduling Algorithm

顺便说一句,为了实现真正的调度算法:-

  1. 如果第一个进程当前正在运行,然后出现一个具有相同或更低优先级的新进程,那么您应该只将新进程添加到 FIFO 数据结构(队列)以便它得到执行在下一个(同等/次要优先级)。

  2. 如果第一个进程当前正在运行,并且具有更高优先级的新进程到达并请求内存,则必须将当前进程即将执行的指令传递到堆栈并执行更高优先级的进程,然后将中断返回给执行即将到来的指令!

我希望您对以特殊方式实现的 DATA-STRUCTURES 感到困惑。此外,优先级(更高)的使用也很重要!

关于c - 运行时调度抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235330/

相关文章:

c - 非本地跳转是否存在性能问题?

c - 如何使用 C 获取 Unix 文件的所有者

c - fopen 中重试的优化控制

arrays - 在矩阵中定位相邻元素的有效方法

java - (二维数组)Java错误: constant expression required

java - 为什么二叉堆是树结构?

javascript - 树结构未按预期构建

c - 使用一系列管道过滤文本文件

c - C中的链表实现错误

java - 基本的插入排序优化使代码变慢