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