[QNX 自适应分区用户指南]1.2 系统架构 - 为什么是自适应?
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[QNX 自适应分区用户指南]1.2 系统架构 - 为什么是自适应?相关的知识,希望对你有一定的参考价值。
为了提供实时性能并确保防止过载,QNX Neutrino 引入了自适应分区。严格的分区在很少或没有动态部署软件的相对静态的系统中工作得最好。在动态系统中,静态分区可能效率低下。例如,分区之间执行时间的静态划分会浪费 CPU 时间并引起延迟:
- 如果大部分分区是空闲的,其中一个非常繁忙,那么繁忙的分区不会得到任何额外的执行时间,而其他分区中的后台线程会浪费 CPU 时间。
- 如果为分区预定了中断,则必须等到分区运行。这可能会导致不可接受的延迟,尤其是在发生突发中断时。
自适应分区是一组处理共同或相关目标或活动的线程。与静态分区一样,自适应分区也有分配给它的预算,以保证其在 CPU 资源中的最小份额。不像静态分区,一个自适应分区:
- 不会锁定到静态分区中的一组固定代码;你可以根据需要动态添加和配置自适应分区;
- 在正常负载下充当全局硬实时线程调度器,但即使在过载情况下仍可提供最小的中断延迟;
- 通过将分区未使用的预算的,系统未加载的资源分配给需要额外资源的分区,以达到最大限度利用 CPU 资源的目的。
你可以引入自适应分区而无需更改(甚至重新编译)你的的应用程序代码,但你必须重新构建系统的OS镜像。
注意⚠️
你最多可以创建32个分区。在QNX Neutrino,它的线程而不是分区会被调度。
以上是关于[QNX 自适应分区用户指南]1.2 系统架构 - 为什么是自适应?的主要内容,如果未能解决你的问题,请参考以下文章
[QNX 自适应分区用户指南]1.4 系统架构 - 自适应分区线程调度器
[QNX 自适应分区用户指南]1.3.4 系统架构 - 调试
[QNX 自适应分区用户指南]1.3.1 系统架构 - 工程产品性能