我是 XV6 的新手,所以请耐心等待:D。我想制作一个新的调度器,它混合了两个调度器多级反馈队列(MLFQ)和另一个调度器彩票调度器。
基本思想很简单:构建一个两级调度器,首先将作业放入高优先级队列。当作业在第一个队列上使用其时间片时,将其移动到较低优先级的队列;低优先级队列上的作业应该在放弃 CPU 之前运行两个时间片。一个进程拥有的票越多,它运行的越多。每个时间片,随机抽奖决定抽奖的中奖者;该获胜过程是在该时间片内运行的过程。
我需要几个新的系统调用来实现这个调度器。
第一个是 int settickets(int num) ,它设置调用进程的票数。默认情况下,每个进程应该得到一张票;调用此例程使得进程可以增加它收到的票证数量,从而获得更高比例的 CPU 周期。如果成功,此例程应返回 0,否则返回 -1(例如,如果用户传入小于 1 的数字)。
第二个是 int getpinfo(struct pstat *) 。此例程返回有关每个正在运行的进程的一些基本信息,包括它被选择运行的次数及其进程 ID,以及它所在的队列(高或低)。
有什么帮助吗?任何可以帮助的lniks。