【问题标题】:How to simulate CPU scheduling(multilevel queue) using pthread library?如何使用 pthread 库模拟 CPU 调度(多级队列)?
【发布时间】:2020-09-12 05:30:28
【问题描述】:
我想使用 pthread 库模拟多级队列调度
我将创建 3 个就绪队列。
第一个队列有循环调度算法(时间量子=2)
第二个队列有循环调度算法(时间量子= 5)
第三个队列有FCFS调度算法。
每个队列都有一个调度进程的线程。
队列优先级:第一个队列>第二个队列>第三个队列
我想知道如何为队列分配优先级。
这是关于使用信号量的同步。
希望高优先级队列的线程先执行。
怎么做?
感谢阅读。
【问题讨论】:
标签:
c
pthreads
cpu
scheduling
【解决方案1】:
引用维基百科p_queue
“priority queue 是一种抽象数据类型,类似于常规的queue 或stack 数据结构,其中每个元素都有一个与之关联的“优先级”。在优先级队列中,高优先级的元素在低优先级的元素之前被提供
...优先级队列可以用堆或其他各种方法来实现,例如无序数组”
网络上到处都是教程,例如here。您可以使用堆实现优先级队列,然后确定源代码中关键部分的位置!只有这样,您才应该通过使用 mutex 或 simaphore 或任何其他 o.s sync 机制锁定这些部分来保护和防止这些部分的竞争条件。