[QNX 自适应分区用户指南]1.3.2 系统架构 - 处理设计复杂度

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[QNX 自适应分区用户指南]1.3.2 系统架构 - 处理设计复杂度相关的知识,希望对你有一定的参考价值。

[QNX 自适应分区用户指南] 目录

设计大规模分布式系统本质上是复杂的。典型的系统有着大量相互隔离的子系统、进程和线程。该设计分为不同的系统性能目标、不同的系统优先级以及不同的运行时优化方法等。 

在不同的地理位置和时区进行产品开发会进一步加剧这种情况。一旦所有这些不同的子系统都集成到一个通用的运行时环境中,系统的所有部分都需要在所有操作场景下提供足够的响应,例如: 

  • 正常的系统负载;
  • 波峰周期;
  • 失败的情况;

鉴于并行开发路线,在集成产品时总是会出现系统问题。通常,一旦系统运行,就会发现导致严重性能下降的不可预见的交互问题。当出现这种情况时,通常很少有设计人员或架构师可以在系统级别诊断和解决这些问题。解决方案通常需要进行大量修改(通常通过反复试验,试错)才能得到正确的解决。这就拖延了系统集成,影响了产品的上市时间。

这种性质的问题可能需要话费一周或更长时间来排查解决,并且需要几周时间来调整整个系统的优先级、在重新测试和迭代改进。如果不能有效解决这些问题,产品的可扩展性就会受到限制。

 这主要是因为没有有效的方法来为这些组的 CPU 使用分配“预算”。线程优先级提供了一种确保关键任务运行的方法,但不为重要的非关键任务提供保证的 CPU 时间,这些任务在正常操作中可能会被饿死。此外,建立线程优先级的常用方法很难扩展到大型开发团队中。

 使用线程调度器的自适应分区允许架构师为紧急情况下预留资源储备,例如灾难恢复系统或一个现场调试shell,并定义每个子系统的高级 CPU 预算,允许开发组根据一个给定的预算来实现自己的优先级方案和优化。这种方法让设计团队可以独立开发子系统并简化集成工作。最终效果是缩短上市时间并促进产品扩展。

以上是关于[QNX 自适应分区用户指南]1.3.2 系统架构 - 处理设计复杂度的主要内容,如果未能解决你的问题,请参考以下文章

[QNX 自适应分区用户指南]1 系统架构中的自适应分区

[QNX 自适应分区用户指南]1.4 系统架构 - 自适应分区线程调度器

[QNX 自适应分区用户指南]1.2 系统架构 - 为什么是自适应?

[QNX 自适应分区用户指南]1.3.4 系统架构 - 调试

[QNX 自适应分区用户指南]1.3.1 系统架构 - 工程产品性能

[QNX 自适应分区用户指南]1.3.3 系统架构 - 提供安全保障