Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141005
  • 博文数量: 15
  • 博客积分: 243
  • 博客等级: 入伍新兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-20 08:51
文章分类

全部博文(15)

文章存档

2015年(2)

2014年(6)

2013年(1)

2012年(6)

我的朋友

分类: LINUX

2012-03-27 21:27:15

O(1)调度实现主要依赖于表示进程优先级的数组,实现上体现为以下2个方面:
1,每个优先级数组中有一个bitmap,只要逐个check bitmap的每个位,就能选择优先级最高的进程链表来调度,而bitmap的size是由优先级个数决定,为140个,不为进程数量决定,所以无论有多少个进程需要调度,最多就check 140个bit位
2,调度时对于每个进程时间片的重新计算方式采用了双优先级数组的方式,一个当前active的数组,一个是过期的数组。当进程时间片用完时,加入到过期数组,在加入时,就重新将时间片算好。当active处理完后,只需要将active和过期数组的指针互相交换即可。不用遍历每个进程去计算时间片
阅读(995) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:insert code test

给主人留下些什么吧!~~