task_running状态下的进程链表

     早先的linux版本把所有的可运行进程都放在同一个运行队列中(链表),由于维持这个链表按优先级排序时开销过大,因此,早期的调度程序不得在选择最佳可运行进程时扫描整个队列

     linux2.6实现方法有些不同,其目的是在固定时间内选出最佳可运行进程,与队列中的进程数目无关。

     提高调度运行速度的方法是建立多个可运行进程链表,每种进程优先权对应一个不同的链表。如果某个进程的优先权等于k,就把该进程放在优先级为k的进程链表中。

    内核必须为系统中每个运行队列保存大量的数据,不过运行队列的主要数据结构还是组成运行队列的进程描述符链表,所有这些链表都是有哟个单独的prio_array_数据结构实现,其字段说明如下:

   int       nr_active     链表中进程描述符的数量

  unsigned long【5】 bitmap 优先权位图:当且仅当某个优先权的进程链表不为空时设置相应的位标志

 struct list_head[15]  queue 140优先权队列的头结点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值