QNX作为一个微内核的实时操作系统,其进程没有优先级的概念,只有线程才有优先级的概念。QNX的优先级分为255个等级。每个等级可以有多个同优先级的线程准备执行,不同于UC/OS的每个优先级对应一个任务待执行。为了实现更好地实时调度,针对同一优先级的任务之间哪个先执行哪个后执行,QNX Netrino System Architucture 给出了三种调度算法:FIFO scheduling,round-robin scheduling, sporadic scheduling。FIFO 容易理解,正在执行的任务只有被阻塞或自己放弃CPU的控制权时,才会退出执行。

FIFO会导致后面的任务延时较大。如果考虑同一优先级下执行时间短的任务先执行完毕,即使后来的任务,如果它所耗费的时间短,那么它也可以先执行完毕,这便引入了round-robin。round-robin相对于FIFO多了一个时间片截止的概念,也就是说当前线程在被阻塞或放弃CPU控制权之外,在自己分配的时间片消耗后也需要停止执行。
sporadic是更为精准的且复杂的调度算法。sporadic引入主要是为了去除周期性和非周期性的事件(event)对实时性的影响;相对于round-robin,sporadic可以规定在一个周期内,某个线程执行的时间的长短;线程在一个周期内执行完一个时间片后,可以退到一更低的优先级下。采用了三个新的概念Initial budget, Low priority 和 replenishment period三个概念。
当一个线程被阻塞时,手册中sporadic的调度算法图如下。
此线程在第一被阻塞时(1,2,3),下一个周期补偿(4,5,6)时,就会挖去被阻塞那一段时间空隙。这样的方式在保障某线程一个周期(T)内的执行的时间预算(C)是有意义的。假设如果不挖去这个时间空隙。对于周期性的阻塞线程事件,则可能导致虽然一个线程在一个周期内分配的执行开销时间10msec,但实际上可能仅有7msec的执行时间。考虑到整个优先级线程被阻塞,sporadic调度算法能保证每个每个线程的百分比是一定的。

QNX手册学习笔记------同优先级调度算法相关推荐

  1. gnu make 手册 学习笔记 C语言 / C++ 构建工具 part.5 函数 控制语句

    GNU Make manual 学习笔记 C语言 / c++ 构建工具 5.函数,控制语句 5-1.函数 5-1-1.替换,函数$(subst from,to,text), 5-1-2.替换,函数$( ...

  2. QNX SLM 学习笔记

    背景 了解学习QNX -SLM机制 内容 参考 QNX7.0 SLM,若需了解更过内容可移步 SLM是什么 系统启动和监控:启动由许多必须按特定顺序启动的进程组成的复杂应用程序,下图是可以看到SLM在 ...

  3. ARM Cortex-A 编程手册学习笔记

    闲话 从前都在X86上分析内核,做开发.trouble shooting,对于其他架构了解较少,对于新架构的学习,甚至还有些抵触,这次趁分析问题的机会,顺便学习了一下ARM架构的基础知识,权当笔记. ...

  4. 10人以下小团队管理手册-学习笔记

    [README] 本文总结于<10人以下小团队管理手册>,很nice的一本书,有兴趣的同学可以翻下: [0]序章 作者作为咨询师发现, 1.下属对主管有不满,主管对下属有怨言: 2.10人 ...

  5. 奈飞文化手册_奈飞文化手册学习笔记

    <奈飞文化手册>,这是由流媒体巨头奈飞的前CHO(人才官),奈飞文化平台的创建者帕蒂·麦考德所著,这是一本彻底颠覆了20世纪管人理念的书. 奈飞的企业文化,和我们常见的任何一种企业都不一样 ...

  6. ThinkPHP开发手册学习笔记

    这是我之前学习ThinkPHP框架记录的一些笔记,在此做个保存也做个分享! 一.ThinkPHP下MVC结构和配置 1.MVC开发模式 1)M:model类 2)V:view前台模板 3)C:cont ...

  7. iPhone App开发实战手册学习笔记(5)之IOS常用机制

    1 前言 在IOS开发中,相信大家一定听说过委托,数据源,target,action等等,今天我们就来简单的学习一下这些内容. 2 详述 2.1 委托和数据源 大家是否曾经有不知道如何去执行一项任务的 ...

  8. python 学习笔记 运算符优先级(8)

    运算符的优先级如下: 运算符 描述 lambda Lambda表达式 or 布尔"或" and 布尔"与" not x 布尔"非" in,n ...

  9. Git飞行手册 学习笔记

    Git飞行规则 什么是"飞行规则" 飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理.本质上, 它们 ...

最新文章

  1. 兼容性好的CSS字体投影
  2. Scala Implicit
  3. python str字符串和byte字节流的区别 encode、decode方法的区别
  4. sed 删除windows下的CR/LF
  5. idea提高调试超时_如何提高您的调试技能
  6. C语言ASM汇编内嵌语法【转】
  7. 查看mysql运行的配置文件_MySQL 查看当前使用的配置文件my.cnf的方法
  8. 【高校宿舍管理系统】第八章 学生管理和楼宇管理以及寝室管理
  9. 外媒:苹果明年上半年推出iPhone SE 3 支持5G搭载A14处理器
  10. 检索方法应该返回#39;null#39;还是无法产生返回值时引发异常? [关闭]
  11. aws lam nodejs mysql_NodeJs IF Statement in AWS Lambda using MySQL database
  12. java lc ctype_postgresql中的 LC_CTYPE、LC_COLLATE
  13. el-tree多选获取选中的节点ID
  14. 网络服务器管理系统设置实训总结,网络系统管理与维护实训报告.doc
  15. 发光二极管pcb封装图画法_电子电工如何判断发光二极管正负极,工程师教你7种方法,长见识...
  16. 今天忙着画一个用例图,发现一个好用的工具
  17. ENVI实现带DN值保存为TIFF格式
  18. canvas应用——圆角矩形图片
  19. CHIP-seq流程学习笔记(7)-热图软件 deeptools
  20. “智多星”手机销售网

热门文章

  1. Linux系统启动U盘制作工具
  2. LeetCode(C++):寻找两个有序数组的中位数
  3. 每一年,每一天,我们都在进步
  4. 登录提示 ORA-28000 The account is locked.
  5. android网卡调试命令
  6. vue3.2之 Tailwind CSS
  7. Cuda学习笔记(一)——sm流处理器簇对blocks的调度策略
  8. 免费虚拟现实运用开发平台VR Juggler
  9. Roslyn 语法树中的各种语法节点及每个节点的含义
  10. 并发导致java对象错乱