我被要求写一个程序,一个用 C 编写的运行时调度算法的抽象。我遇到的问题是“优先级调度”。它像其他算法一样从用户那里获取运行时间,除了它也有优先级这些进程的问题。令我困扰的是我无法将优先级与运行时间联系起来。我应该如何在优先级和运行时间之间建立关系?根据算法,它首先运行优先级最高的那个。我只需要知道如何建立这种联系,谢谢。
最佳答案
编辑:-
将优先级存储在一个数组中,并根据优先级递减对数组进行排序,并将每个优先级与它的时间映射起来!然后,简单地显示从开始排序的数组及其与处理时间的映射。
如果进程是在运行时添加的,则需要采用贪心算法来解决该问题。按照进入时间的递增顺序选择具有最高优先级的进程。
检查此以了解更多信息 Interval Scheduling Algorithm
顺便说一句,为了实现真正的调度算法:-
如果第一个进程当前正在运行,然后出现一个具有相同或更低优先级的新进程,那么您应该只将新进程添加到 FIFO 数据结构(队列)以便它得到执行在下一个(同等/次要优先级)。
如果第一个进程当前正在运行,并且具有更高优先级的新进程到达并请求内存,则必须将当前进程即将执行的指令传递到堆栈并执行更高优先级的进程,然后将中断返回给执行即将到来的指令!
我希望您对以特殊方式实现的 DATA-STRUCTURES
感到困惑。此外,优先级(更高)的使用也很重要!
关于c - 运行时调度抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235330/