文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于进程时间片的计算

关于进程时间片的计算

时间:2009-03-16  来源:fengyetang

关于进程时间片的计算
    进程的时间片time_slice是基于进程静态优先级的。
    静态优先级越高(值越小),时间片就越大。
    计算时间片是通过函数task_timeslice()(kernel/sched.c)来完成的。
    通过优先级来计算时间片的等式为:
        timeslice=MIN_TIMESLICE+((MAX_TIMESLICE-MIN_TIMESLICE)*(MAX_PRIO-1-(p)->static_prio)/(MAX_USER_PRIO-1))
    这样的话就可以将100~139 的优先级映射到200ms~10ms 的时间片上去,优先级数值越大,则分配的时间片越小。

在Kernel2.6中时间片的计算是分散的,具体的计算既可以用task_timeslice(),也可以用其他方法。
    进程创建时,将父进程的时间片分一半给子进程,同时父进程的时间片减半。
    进程用完时间片以后,需要重新计算时间片,并将进程插入到相应的运行队列。
    进程退出时,根据first_timeslice的值来决定是否将子进程的时间片返还给父进程。

平均等待时间sleep_avg
    平均等待时间sleep_avg既决定了进程优先级,又影响了进程交互程度。
    进程的平均等待时间(以nanosecond 为单位),在0 到NS_MAX_SLEEP_AVG 之间取值,初值为0。
    这个值是动态优先级计算的关键因子,sleep_avg 越大,计算出来的进程优先级也越高(数值越小)。
相关阅读 更多 +
排行榜 更多 +
开局一个小兵最新版

开局一个小兵最新版

休闲益智 下载
火柴人联盟2腾讯qq登录版

火柴人联盟2腾讯qq登录版

体育竞技 下载
tsuki odyssey游戏(月兔冒险奥德赛)

tsuki odyssey游戏(月兔冒险奥德赛)

休闲益智 下载