快速业务通道

进程调度

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-07

以前的时候,系统中只有一个cpu(现在的很多机器也是这样),却要同时完成很多的任务,你既要用qq聊天,又要用飞信聊天,怎样让cpu井井有条完成多个任务,不把你qq聊天的内容发到飞信上,就需要合理的进程调度.

UNIX系统中使用的调度程序被成为多级反馈循环调度,多级的意思就是UNIX系统中,进程有不同的优先级,反馈循环则是这样一种情况:系统中,内核对每个进程分配一个cpu时间片,当一个进程的cpu时间片用完时,它就释放cpu,让别的进程执行,这个进程还没执行完,当它的下一个时间片到来是,它就重新抢占cpu,继续执行.

系统中的进程优先级分为两种,用户优先级和系统优先级,这两类优先级的分界线是一个优先级阈值.进程调度算法的核心是从"就绪"和"被抢先"状态中的进程中,选取优先权最高的进程分配cpu执行.

进程的用户级优先级是动态的,系统中的时钟处理程序每隔一个时间段就会重新计算所有用户级进程的优先级,所有的进程都有执行的机会.用户优先级是基于cpu的函数: priority = (recentCPUtime/2) basePriority 这样,一个进程等待的时间越长,他的"recentCPUtime"就越趋向于0,这样它的优先级就越趋向于阈值,变得越来越高.

系统不允许具有用户级优先级的进程跨越阈值获得系统级优先级,进程获得系统级优先级一般是这种情况:进程进行系统调用,进入睡眠状态,从而获得系统级优先级.

有时候还会出现这种情况,系统对进程进行分组,然后让某一组的优先级高于另一组.这种情况下,系统采用了一种"公平共享调度"策略:对每一组分配一个组时间片参数,加入到上面提到的优先级计算公式中,如果当前执行的进程属于该组,那么最内的其他进程就共享执行进程的cpu时间,这意味着当进程执行完该时间片后,组内其他进程的优先权降低了,这样cpu就可能被其他组的进程抢占过去,从而实现优先权高的组的进程的频繁执行.

本文出自 “莫等老去,空怀念梦想” 博客,谢绝转载!

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号