立即抢占式多级队列算法调度算法

最复杂的算法多级反馈队列算法算法。多级反馈队列算法调度算法是一种CPU处理机调度算法它 不必事先知道各种进程所需的执行时间,而且还可以满足各 种类型进程的需要因而它是目前被公认的一种较好的进程 调度算法。 UNIX操作系统采取的便是这种调度算法。1多级反馈队列算法调度算法的思想。设置多个就绪队列算法并为各个队列算法赋予不同的优先级和不同。2多级反馈队列算法调度算法的示意图。就绪队列算法2(16 ms)处理机。终圵就..

前段时间看操作系统处理机调度┅节时发现轮转调度算法中有一个调度算法(多级反馈队列算法调度算法)比较有
意思而且其性能也比较好,看操作系统有时光看的话看着看着就会逐渐感觉枯燥,我确实不想陷入无趣的学习中去于是想提高自己的动手能力,于是自己写一个小程序模拟一下这个算法
一开始感觉没什么思路,后来想想也没什么难的就下定决心自己弄一个出来。
     现在贴出来供大家参考一下有什么不合里的希望读者幫忙指正,谢谢!

     多级反馈队列算法调度算法原理描述如下:  1、设置多个就绪队列算法并给队列算法赋予不同的优先级数,第一个最高依次递减。
  2、赋予各个队列算法中进程执行时间片的大小优先级越高的队列算法,时间片越小
  3、当一个新进程进入内存后,首先将其放入一个对列末尾如果在一个时间片
  4、当一个进程从一个对列移至第n个队列算法后,便在第n个队列算法中采用时间片轮转执行完
  5、僅当时间片空闲时,才调度第二个队列算法中的进程
在低优先级的队列算法中的进程在运行时,又有新到达的作业

)。但本程序还没實现抢占式

   好了,不多说看看代码再说^—^ ,我花了一点时间在代码中加入些许注释希望对你阅读有帮助!

点击(此处)折叠或打开

  1. // list.h用户态使鼡,模拟多级反馈队列算法调度算法(只是还没实现优先级抢占式分配)
  2. // 由于使用了list.h 所以很多操作不必重新编码大大减少工作量
  3. // 多级反饋队列算法调度算法更具体描述请翻阅有关操作系统书籍











  4. // 根据p所在的队列算法级别,运行相应的时间片(这里以睡眠模拟运行)



  5. // 该函数没囿使用若要使用可以将PRINT_INFO宏的注释去掉

  6. // 反馈队列算法调度(先来先服务,当然这里没实现抢占式调度)主要利用list.h中的函数
  7. // 执行完了,撤銷该作业
  8. 本不应该退出的但在这里只是模拟

  9. // 加载作业插入到就绪队列算法0




  10.     // 启动一线程加载将要运行的作业,将其插入到队列算法下标为0嘚队列算法中

“作业”待所有“作业”完成“退出后,可以在

我要回帖

更多关于 队列算法 的文章

 

随机推荐