《进程调度Linux内核分析ppt课件》由会员分享,可在线阅读,更多相关《进程调度Linux内核分析ppt课件(26页珍藏版)》请在人人文库网上搜索。

1、Linux操作系统分析,陈香兰 Fall 2010,12/25/2020,Linux操作系统分析,2,12/25/2020,Linux操作系统分析,3,12/25/2020,Linux操作系统分析,4,第二种分类 交互式进程(interactive process) 需要经常与用户交互,因此要花很多时间等待用户输入操作 响应时间要快,平均延迟要低于50150ms 典型的交互式程序:shell、文本编辑程序、图形应用程序等,12/25/2020,Linux操作系统分析,5,批处理进程(batch process) 不必与用户交互,通常在后台运行 不必很快响应 典型的批处理程序:编译程序、科学计算。

2、 实时进程(real-time process) 有实时需求,不应被低优先级的进程阻塞 响应时间要短 典型的实时进程:视频/音频、机械控制等,12/25/2020,Linux操作系统分析,6,Linux中的进程调度,Linux既支持普通的分时进程,也支持实时进程 Linux中的调度是多种调度策略和调度算法的混合。 什么是调度策略? 是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行 Linux的调度基于分时和优先级 随着版本的变化,分时技术在不断变化,12/25/2020,Linux操作系统分析,7,Linux的进程根据优先级排队 根据特定的算法计算出进程的优先级,用一个值表示 这个值。

3、表示把进程如何适当的分配给CPU Linux中进程的优先级是动态的 调度程序会根据进程的行为周期性的调整进程的优先级 较长时间未分配到CPU的进程,通常 已经在CPU上运行了较长时间的进程,通常,12/25/2020,Linux操作系统分析,8,与调度相关的系统调用,nice getpriority/setpriority sched_getscheduler/sched_setscheduler sched_getparam/sched_setparam sched_yield sched_get_priority_min/sched_get_priority_max sched_rr_ge。

4、t_interval,12/25/2020,Linux操作系统分析,9,采用常规分时时,时间片的选择,时间片的长短对系统性能非常关键,它既不能太长也不能太短 太短: 频繁的切换会造成系统开销过大 假如切换时间为1ms,时间片设置为1ms,那就没空执行进程了,12/25/2020,Linux操作系统分析,10,太长 几乎每个进程都一次运行完 并发的概念基本消失 普通进程需要等待很长时间才能运行 时间片大小的选择总是一种折衷。Linux采取单凭经验的方法,即选择尽可能长的时间片,同时能保持良好的响应时间,12/25/2020,Linux操作系统分析,11,调度算法,Linux 2.4的调度算法 需。

5、要遍历可运行队列,算法O(n) Epoch,基本时间片,动态优先级 Linux 2.6.17的调度算法(2.6.23之前) 采用双队列(Active;expire ),按照优先级组队,O(1) Linux 2.6.26的调度算法 非实时:CFS,vruntime,红黑树 实时:优先级队列 Linux进程可以指定该进程所采用的调度策略 调度算法根据进程的调度策略,采用不同的调度算法,12/25/2020,Linux操作系统分析,12,Linux 2.6.26中的调度策略:Policy,调度类型,include/linux/sched.h 在task_struct中,使用数据项policy来表达该。

6、进程采用的调度策略,12/25/2020,Linux操作系统分析,13,查看各个policy的使用情况,12/25/2020,Linux操作系统分析,14,kernel/sched.c,12/25/2020,Linux操作系统分析,15,调度类型,阅读const struct sched_class,调度类 rt_sched_class fair_sched_class idle_sched_class,rt_sched_class,fair_sched_class,idle_sched_class,kernel/sched_idletask.c,kernel/sched_fair.c,ker。

7、nel/sched_rt.c,12/25/2020,Linux操作系统分析,16,阅读2.6.26的schedule函数,调度函数的关键: 调度算法的关键 入列 CFS根据vruntime的值入列,其关键在于vruntime值的计算 RT根据优先级入列,kernel/sched.c,参见函数schedule(),kernel/sched_fair.c,update_curr,12/25/2020,Linux操作系统分析,17,Linux2.6.26中的优先级,优先数范围为0139,其中099为实时优先数 普通任务和批处理任务的优先数在100139之间 优先数越大,优先级越低。,12/25/20。

8、20,Linux操作系统分析,18,Linux2.6.26中的nice值,Nice值用来调整进程的优先级 Nice值的范围在-2019之间。,Thanks!,The end.,12/25/2020,Linux操作系统分析,20,以下内容作为参考:2.4的调度算法,epoch linux调度算法把CPU时间划分为时期(epoch) 在一个单独的时期内,每个进程有一个指定的时间片 一个进程用完它的时间片时,就会被强占 只要进程的时间片没有用完,就可以被多次调度运行 当所有的进程用完它的时间片的时候,一个时期才结束,此时要重新计算所有进程的时间片,并重新开始一个新的时期,12/25/2020,Lin。

9、ux操作系统分析,21,基本时间片(base time quantum) 每个进程有一个基本时间片 可以通过nice、setpriority系统调用调整进程的基本时间片 新进程总是继承父进程的基本时间片 时间片的计算公式:,nice缺省为0(在-20到19之间选择),通常,基本时间片的值 为6,由于时钟中断大约10ms左右, 因此基本时间片的长度大约60ms,12/25/2020,Linux操作系统分析,22,2.4调度程序使用的数据结构,进程描述符中: need_resched:是否需要调度 policy:调度策略,先入先出的实时进程,循环轮转的实时进程,普通的分时进程,当一个进程自动放弃运。

10、行时设置,12/25/2020,Linux操作系统分析,23,rt_priority:实时进程的静态优先级,普通进程不用 counter:当前剩余时间片 新时期开始时根据上述计算公式计算 每次时钟中断发生,时间片都会-1,直到为0(则请求调度) 创建一个新的进程时,子进程会继承父进程的一半剩余时间片 nice:对时间片进行调节,12/25/2020,Linux操作系统分析,24,schedule函数,schedule函数实现调度 目的:在运行队列中找到一个进程,把CPU分配给它 调用方法: 直接调用,如sleep_on 松散调用,根据need_resched标记 阅读schedule函数,了解如何区分实时和非实时进程,12/25/2020,Linux操作系统分析,25,2.4调度算法的性能,不适合进程数量很大的情况 重新计算所有进程的动态优先级很耗时 对高负载系统来说,预定义的时间片太长 对于I/O密集型的程序不是很有利 对实时应用的支持是微弱的,12/25/2020,Linux操作系统分析,26,2.6.17中的优先级队列,优先级队列的组织 双队列:active和expired。

linux 2.6.23时钟中断与调度分析,进程调度Linux内核分析ppt课件相关推荐

  1. linux内核分析与移植,内核分析移植

    1.make menuconfig 添加对s3c2440的支持 system  type--> s3c2440 machine--> smdk2440 2.  __lookup_machi ...

  2. linux2.6内核分析,linux2.6内核分析——LRU链表

    LRU链表 本文转自http://liurugongzi.blog.sohu.com/153648100.html lru链表是统称,细分为:活动链表.非活动链表.链表中存放的是属于进程用户态地址空间 ...

  3. 分析Linux内核中进程的调度(时间片轮转)-《Linux内核分析》Week2作业

    1.环境的搭建: 这个可以参考孟宁老师的github:mykernel,这里不再进行赘述.主要是就是下载Linux3.9的代码,然后安装孟宁老师编写的patch,最后进行编译. 2.代码的解读 课上的 ...

  4. linux内核教学的全套视频,中科大老师全程讲解Linux内核分析视频教程《附加介绍+总结》共23节课...

    中科大老师全程讲解Linux内核分析视频教程<附加介绍+总结>共23节课" F4 u& {+ T) p5 G' W  ]; o% m 2 q: ]. j8 I; q' D ...

  5. LINUX内核分析第二周学习总结——操作系统是如何工作的

    LINUX内核分析第二周学习总结--操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  6. Linux内核分析第二周:操作系统是如何工作的

    第一讲 函数调用堆栈 计算机是如何工作的? (总结)--三个法宝 1,存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 2,函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆 ...

  7. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

  8. 《Linux内核分析》 第二节 操作系统是如何工作的

    Linux内核分析 第二周 操作系统是如何工作的 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/UST ...

  9. Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)

    转自:http://blog.csdn.net/gatieme/article/details/51383272 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...

最新文章

  1. python中用来占位的语句是_python占位语句
  2. JoSE:球面上的词向量和句向量
  3. wince 6.0 pb
  4. 机器学习核心概念、常用术语整理(建议收藏)
  5. 被中国人误传了数千年的七句话
  6. 【P2P网络】磁力链接转换为种子文件 magnet to torrent
  7. jmteter 参数提取器-使用正则表达式来提取数据
  8. 实战案例,手把手教你用 Python 构建电商用户画像
  9. 笔记本window7安装虚拟机centos7后通过笔记本无线网卡上网
  10. EV: 致新教育萤火虫父母们
  11. 人不成熟的5大特征,成功人士的7个习惯,成长型思维
  12. 简单excel宏工具对数据进行脱敏
  13. 思科防火墙NAT——实验
  14. PX环境搭建编译px4_fmu-v2_default相关问题的解决方法
  15. 【SpringBoot】十二、@Scheduled定时任务(源码)
  16. 【恩墨学院】京东618大促网关承载十亿调用量背后的架构实践
  17. 乔治亚理工学院计算机专业,乔治亚理工学院计算机专业成功录取
  18. 思科虚拟机服务器,利用Cisco UCS管理虚拟机网络(上)
  19. 用数组存储三个学生对象,并遍历数组
  20. 为什么叫Windows 7?

热门文章

  1. 医疗保健领域的人工智能:2023年的新兴趋势
  2. 同花顺ios与android,iOS与Android的交互差异
  3. 广州大学计算机网络期末考试答案,广州大学2015广州大学计算机网络试卷__A卷和答案...
  4. 【渝粤题库】陕西师范大学164115 ERP原理及应用 作业(高起专)
  5. vue中去掉v-for遍历数组中的最后一个逗号
  6. 新版标准日本语初级_第二十四课
  7. CoinEx Token 项目评级:BB ,展望稳定 | TokenInsight
  8. 如何更改文件(夹)图标?
  9. 键盘没有fn键怎么办?
  10. 短信入门必读之短信验证sdk哪个好?