[QNX 自适应分区用户指南]5.2 如何在分区之间分配CPU时间?
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[QNX 自适应分区用户指南]5.2 如何在分区之间分配CPU时间?相关的知识,希望对你有一定的参考价值。
线程调度器是一个公平共享调度器(a fair-share scheduler)。这意味着它保证分区在需要时接收定义的最小 CPU 时间(它们的预算)。线程调度器也是一个实时调度器。这意味着它是一个抢占式、基于优先级的调度程序。这两个要求似乎是冲突的,但是线程调度程序通过始终通过优先级进行调度来满足这两个要求,因此它不需要限制一个分区来保证其他分区的预算。
对于每个调度操作,线程调度器在选择要运行的线程之前检查每个分区。这发生在每个定时器中断(通常是每毫秒)、每个消息/脉冲发送、接收或回复、每个信号、每个互斥锁操作以及每个栈故障(stack fault)时,包括多次进程管理器操作(进程或线程的创建与销毁,以及路径命名空间元素上的 open() 操作)。
如果一个分区的需求超出其预算(意味着最近100 毫秒时间段中,分区的 CPU 时间消耗超过了分区的大小,但其他分区也需要时间)并且线程要运行,线程调度程序不会运行该线程;它运行其他一些线程。仅当经过足够的时间以致该分区的平均 CPU 时间使用(过去 100 毫秒)低于该分区预算的大小时,调度程序才会运行该线程。但是,线程保证最终运行。
一,Underload - 低负荷
通常地,低负荷的情况发生在,通过平均窗口的计算,分区中CPU时间的需求低于其设置的预算。例如,我们有三个分区:
- 系统分区(Systemÿ
以上是关于[QNX 自适应分区用户指南]5.2 如何在分区之间分配CPU时间?的主要内容,如果未能解决你的问题,请参考以下文章
[QNX 自适应分区用户指南]4 快速入门:自适应分区线程调度器
[QNX 自适应分区用户指南]8 自适应分区线程调度器和其他线程调度器