新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 通过轻型线程提高多核设备中的Linux实时性能

通过轻型线程提高多核设备中的Linux实时性能

作者:MichaelChristofferson 时间:2012-07-13 来源:电子产品世界 收藏

  但请您稍稍考虑一下。采用上文提到的 实时扩展怎么样?是的,PREEMPT_RT 可以解决 内核中存在的许多关于响应性的问题,但不能真正解决多线程问题。实施用户空间 可解决设备驱动器/中断性能问题,但并不能真正解决多线程问题。Linux 实时容器可解决部分问题,但实时容器只是一种基于标准 Linux 的用户空间 Linux 可视化技术,并不能真正解决根本的多线程问题。

本文引用地址:https://www.eepw.com.cn/article/134608.htm

  轻型线程 (LWT) – 复杂 Linux 应用的真正解决方案

  之前针对 Linux 提出了多种轻型线程模型的建议,但没有一种模型能够真正解决问题。原因何在?因为大多数模型的功能都不是很强大。涉及复杂多线程应用的下一代 Linux 解决方案真正需要的是适用于用户空间 Linux 应用的全新 Linux 模型。下文概括介绍了这种名为Linux轻型线程 (LWT) 的解决方案。将高性能、低系统开销、多线程调度器植入 Linux 用户空间,来代替单独的 pthread。原因何在?

  • Pthread 系统开销
           ♦ 进程和 是 Linux 了解的唯一调度实体。
           ♦ LWT pthread 只是一个 Linux 编码执行背景,可用于永久运行 pthread。由于用户空间调度器始终保持控制,因此 pthread 绝不会被挂起 – 省电模式除外。这种情况不在本文的讨论范围。

      该用户空间调度器的运行和操作方式与某些传统 RTOS 高性能、低延迟实施完全相同,但不会涉及到 Linux 内核。

  实施过程利用新用户空间 Linux 实施过程来直接访问硬件。同样也不涉及 Linux 内核。

  上述 LWT 解决方案可在任何 Linux 实时应用中实现动态性能的提升。Enea 已设计出上述 LWT 的一些原型,事实证明,与 Linux 在调度器系统开销、特别是上下文切换和线程间消息发送/通信延迟方面的性能相比,LWT 性能可提高 10 倍。

  但是除了调度性能和线程间通信功能之外,LWT 解决方案还应带来什么?LWT 概念除了在性能方面胜过 Linux 之外,还有更多优势。解决方案稳健性的概念如何?与历史悠久的 RTOS 实时解决方案一样,LWT 也需要具有以下额外 Linux 特性:

  • 决定性调度
  • 调度系统开销低 – 上下文切换成本低
  • 线程间信号系统开销低
  • 线程创建成本低

  多核设备中 Linux 轻型线程模型的结构图

  LWT 实施方案的结构图如下。涉及整个共享内存空间的 Linux 进程可能跨多核设备的多个内核。为了达到最高效率,LWT 模型需要将 Linux 进程中的单个 pthread 锁定至某一个内核,但并不特别要求这样做。LWT 锁定至 pthread 之后,便可迁移到 Linux SMP 需要的任何内核中。  

 

  结论

  高效轻型线程 (LWT) 将成为下一个 Linux 实时性能和行为问题。需要强调的是,并非所有实时应用都需要使用功能强大的类似 LWT 的解决方案。但是一些实时应用,尤其是电信/网络中的应用以及无线接入网、移动基础设施核心/边缘中的那些需要使用某些复杂网络协议的应用、或任何具有类似实时需求的其他系统均可受益于 Linux 轻型线程 – 下一代 Linux 实时扩展。同时,实时嵌入式 Linux 的整个发展过程证明了 Linux 的运行效果与传统 RTOS 解决方案一样优异。Linux 已取得了一些进展,但是作者认为,最重要的电信/网络应用中使用的 Linux 尚未达到预期的要求。但也许通过 Linux 轻型线程,我们可以更接近这一目标。总的来说,Linux 实时嵌入式行业的一个侧重点是研发出可用于要求最高的实时应用的解决方案。下图中描述了该目标:  

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

关键词: Linux pthreads

评论


相关推荐

技术专区

关闭