第章 Linux进程调度

* * SCHED_FIFO 与 SCHED_RR 的区别是: 当进程的调度策略为前者时,当前实时进程将一直占用 CPU 直至自动退出,除非有更紧迫的、 优先级更高的实时进程需要运行时,它才会被抢占 CPU;当进程的调度策略 为后者时,它与其它实时进程以实时轮流算法去共同使用 CPU,用完时间片放到运行队列尾部。 FIFI:运行时间较短 RR:运行时间较长 Sched——YIELD:不是调度策略,表示进程让出CPU * Linux是一个抢占式的多任务操作系统,由Linux调度程序决定何时抢占,然后选择哪个进程。 * FIFI:运行时间较短 RR:运行时间较长 * * 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 调度策略为非SCHED_FIFO的每个进程都有一个运行的时间配额counter 有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 调度策略为非SCHED_FIFO的每个进程都有一个运行的时间配额counter 有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) 在某个时刻,运行队列中的每一个进程都有一个counter数值,当运行队列中的进程的counter都变成0后,表明一轮已经结束,每一个进程的counter 根据各自的nice 重新赋值,然后开始新的一轮的执行过程。占有cpu的进程每一次时钟中断时,counter的数值减1。(Linux2.4) * 进程首次运行时为进程优先级的数值,它随时间变化递减.它的值的含义表示进程处于运行状态时所剩余的时钟滴答数,每次时钟中断到来时,这个值就减1。当它为0时,就把need_resched域置1。 priority:进程的“静态优先级”,它的值就是counter的初值。在Linux2.4版本中取消了这个变量,但是它所代表的默认值20还作为常数继续使用。即进程的静态优先数是20。只有sys_nice( )、sys_setpriority( )系统调用能改变进程静态优先级; * * * * 其中进程的切换是利用switch_to()宏来实现的,它是一个硬件平台相关的代码段,过程很复杂 对于实时进程,其权重为1000+rt_priority;否则,权重为counter。 对于当前进程,可以得到比其它进程稍高的权重,为counter+1。 这样处理是为了在某个进程与当前进程权重相同时可选择当前进程继续执行,以减少进程切换的开销。 * 如果进入调度后,当前普通进程的时间片没有用完,而且仍然位于可运行队列中时,当前进程的权值采用公式(4.3)计算,除了当前进程之外的所有普通进程仍采用公式(4.2)计算权值。 goodness=counter+priority+1 (4.3) 这样,适当增大当前进程的权值,以增加继续使用处理机的可能,可以避免过分频繁的进程切换。 新的普通进程进入可运行队列后,插入到队列尾部,将引起调度,在都使用相同静态优先级的情况下,新进程的权值很大,因此,如果没有实时进程和其他一直未执行过的就绪进程,新建进程投入执行的可能性相当大。可见,Linux系统所采用的这种调度算法优先保证交互性,系统的响应时间比较短。 * 整个调度过程大概可以分为五个部分。首先检测中断,如果有中断运行时,调度过程到此为止,直接退出,如果没有中断运行,关中断,在调度的过程中将不再允许中断。其次处理系统的内核例程。然后对当前进程做相关处理:如果当前进程是时间片用完的进程按照轮转法调度,系统重新赋予时间片并把它移到队列的尾部;如果进程因为等待某个事件而转入等待状态引起调度,调度过程中发现事件已经发生,进程仍然转入就绪状态;如果进程处于其他非可运行态的话,就要从可运行队列中删除。这些都是为开始调度而进行的准备工作。 * * * * Linux并不为这三种调度策略的进程分别设置一个运行队列,而是通过权重的不同计算以及其它的一些队列操作,在一个运行队列中实现这三种不同的调度。 发生进程调度时,调度程序要在运行队列中选择一个

linux 进程调度ppt,第章 Linux进程调度.ppt相关推荐

  1. linux教程第六章,Linux教程(第六章).ppt

    Linux教程(第六章) 1 计算机专业必修课程linux第六章 系统管理 教师: 李晓红 信息科学与工程学院计算机系 2005/8 2 主要内容 性能及内核管理 软件包管理 用户和工作组管理 设备管 ...

  2. linux操作系统 第11章 linux系统管理

                                                                                      第11章    Linux系统管理 ...

  3. 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第五十七章Linux MISC驱动实验 misc的意思是 ...

  4. linux操作系统 第02章 linux操作做基础

                                                                                       第2章    Linux操作基础 ...

  5. 计算机概述.ppt,第一章 计算机概述.ppt

    <第一章 计算机概述.ppt>由会员分享,可在线阅读,更多相关<第一章 计算机概述.ppt(52页珍藏版)>请在人人文库网上搜索. 1.计算机硬件技术基础,计算机系统概述,教学 ...

  6. Linux学习:第二章-Linux安装

    一虚拟机使用 VMware主要特点: 1.不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统 2.本机系统可以与虚拟机系统网络通信 3.可以设定并且随时修改虚拟机操作系统的硬件环境 二安装方 ...

  7. Linux学习:第一章-Linux简介

    一 UNIX发展史 1 1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作 ...

  8. linux教程第五版课后答案第六章,linux基础及应用第六章练习题

    linux基础及应用第六章练习题 1. 下列哪个文件的内容为当前已挂载文件系统的列表? A. /etc/inittab B. /etc/profile C. /etc/mtab D. /etc/fst ...

  9. linux实验报告实验二,Linux实验报告 第二章

    linux实验报告 第二章 linux终端 1,概念 使用linux时并不是直接使用系统,而是通过shell这个中间程序来完成,为了实现在一个窗口中完成用户输入和现实输出,linux系统还有一个叫做终 ...

最新文章

  1. WebFlux基础之响应式编程
  2. Hadoop2.2.0+hive使用LZO压缩那些事
  3. 微机常见硬盘故障分析及检测
  4. 开发高性能的ADO.NET应用
  5. Spring 源码分析 spring-core
  6. C++:18---函数模板(template)
  7. 问题处理:qt.qpa.plugin: Could not find the Qt platform plugin “cocoa“ in ““
  8. acivity 横屏_Activity横竖屏切换时先看到横屏/竖屏再变换回竖屏/横屏
  9. 四年,新华三安全大变样
  10. 电力拖动PLC可编程控制器技能实训QY-DL865
  11. 关于IE11浏览器不能正确调用ActiveX控件的解决办法
  12. html将网页保存成图片,谷歌浏览器保存网页为图片方法_chrome如何将网页保存为图片-win7之家...
  13. 继电器电路原理图,PNP和NPN三极管介绍
  14. Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒
  15. 前端面试题,前端组件化、工程化、模块化的概念
  16. 【汇编 C】循环语句goto、while、dowhile、for
  17. Mac数据恢复首选easyrecovery
  18. php安装protocol buffer 扩展,thinkphp引入protocol buffer
  19. 三七互娱php笔试题,三七互娱笔试
  20. 【考试记录】Apsara Clouder大数据技能认证:MOOC网站日志分析

热门文章

  1. 系统集成项目管理工程师(系统集成基础知识)
  2. 双系统电脑跳过系统选择界面操作步骤
  3. Word 中取消所有的超级链接
  4. Thunderbird刪除重復的信箱(cc轉寄)
  5. NLP方向的论文可投的核心期刊
  6. Process对象必须将UseShellExecute属性设置为False才能使用环境变量解决办法
  7. PYNQ-Z1上手详细教程
  8. java获取该临时文件的Path File.createTempFile(script, .sh);
  9. 杨幂.com被挂出来卖,浏览瞬过700万
  10. 影像阅读教程—新手学习攻略