欢迎来到天天文库
浏览记录
ID:59778080
大小:763.50 KB
页数:26页
时间:2020-11-24
《进程调度Linux内核分析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux操作系统分析陈香兰Fall20108/17/20212Linux操作系统分析8/17/20213Linux操作系统分析第二种分类交互式进程(interactiveprocess)需要经常与用户交互,因此要花很多时间等待用户输入操作响应时间要快,平均延迟要低于50~150ms典型的交互式程序:shell、文本编辑程序、图形应用程序等8/17/20214Linux操作系统分析批处理进程(batchprocess)不必与用户交互,通常在后台运行不必很快响应典型的批处理程序:编译程序、科学计算实时进程(real-timeprocess)有实时需
2、求,不应被低优先级的进程阻塞响应时间要短典型的实时进程:视频/音频、机械控制等8/17/20215Linux操作系统分析Linux中的进程调度Linux既支持普通的分时进程,也支持实时进程Linux中的调度是多种调度策略和调度算法的混合。什么是调度策略?是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行Linux的调度基于分时和优先级随着版本的变化,分时技术在不断变化8/17/20216Linux操作系统分析Linux的进程根据优先级排队根据特定的算法计算出进程的优先级,用一个值表示这个值表示把进程如何适当的分配给CPULinux中进程的
3、优先级是动态的调度程序会根据进程的行为周期性的调整进程的优先级较长时间未分配到CPU的进程,通常↑已经在CPU上运行了较长时间的进程,通常↓8/17/20217Linux操作系统分析与调度相关的系统调用nicegetpriority/setprioritysched_getscheduler/sched_setschedulersched_getparam/sched_setparamsched_yieldsched_get_priority_min/sched_get_priority_maxsched_rr_get_interval8/17/
4、20218Linux操作系统分析采用常规分时时,时间片的选择时间片的长短对系统性能非常关键,它既不能太长也不能太短太短:频繁的切换会造成系统开销过大假如切换时间为1ms,时间片设置为1ms,那就没空执行进程了8/17/20219Linux操作系统分析太长几乎每个进程都一次运行完并发的概念基本消失普通进程需要等待很长时间才能运行时间片大小的选择总是一种折衷。Linux采取单凭经验的方法,即选择尽可能长的时间片,同时能保持良好的响应时间8/17/202110Linux操作系统分析调度算法Linux2.4的调度算法需要遍历可运行队列,算法O(n)Epo
5、ch,基本时间片,动态优先级Linux2.6.17的调度算法(2.6.23之前)采用双队列(Active;expire),按照优先级组队,O(1)Linux2.6.26的调度算法非实时:CFS,vruntime,红黑树实时:优先级队列Linux进程可以指定该进程所采用的调度策略调度算法根据进程的调度策略,采用不同的调度算法8/17/202111Linux操作系统分析Linux2.6.26中的调度策略:Policy,调度类型include/linux/sched.h在task_struct中,使用数据项policy来表达该进程采用的调度策略8/1
6、7/202112Linux操作系统分析查看各个policy的使用情况8/17/202113Linux操作系统分析kernel/sched.c8/17/202114Linux操作系统分析调度类型阅读conststructsched_class,调度类rt_sched_classfair_sched_classidle_sched_classrt_sched_classfair_sched_classidle_sched_classkernel/sched_idletask.ckernel/sched_fair.ckernel/sched_rt.c8
7、/17/202115Linux操作系统分析阅读2.6.26的schedule函数调度函数的关键:调度算法的关键入列CFS根据vruntime的值入列,其关键在于vruntime值的计算RT根据优先级入列kernel/sched.c,参见函数schedule()kernel/sched_fair.c,update_curr8/17/202116Linux操作系统分析Linux2.6.26中的优先级优先数范围为0~139,其中0~99为实时优先数普通任务和批处理任务的优先数在100~139之间优先数越大,优先级越低。8/17/202117Linux操
8、作系统分析Linux2.6.26中的nice值Nice值用来调整进程的优先级Nice值的范围在-20~19之间。8/17/202118L
此文档下载收益归作者所有