通過輕型線程提高多核設(shè)備中的Linux實(shí)時性能
但請您稍稍考慮一下。采用上文提到的 Linux 實(shí)時擴(kuò)展怎么樣?是的,PREEMPT_RT 可以解決 Linux 內(nèi)核中存在的許多關(guān)于響應(yīng)性的問題,但不能真正解決多線程問題。實(shí)施用戶空間 Linux 可解決設(shè)備驅(qū)動器/中斷性能問題,但并不能真正解決多線程問題。Linux 實(shí)時容器可解決部分問題,但實(shí)時容器只是一種基于標(biāo)準(zhǔn) Linux 的用戶空間 Linux 可視化技術(shù),并不能真正解決根本的多線程問題。
本文引用地址:http://butianyuan.cn/article/134608.htm輕型線程 (LWT) – 復(fù)雜 Linux 應(yīng)用的真正解決方案
之前針對 Linux 提出了多種輕型線程模型的建議,但沒有一種模型能夠真正解決問題。原因何在?因為大多數(shù)模型的功能都不是很強(qiáng)大。涉及復(fù)雜多線程應(yīng)用的下一代 Linux 解決方案真正需要的是適用于用戶空間 Linux 應(yīng)用的全新 Linux 模型。下文概括介紹了這種名為Linux輕型線程 (LWT) 的解決方案。將高性能、低系統(tǒng)開銷、多線程調(diào)度器植入 Linux 用戶空間,來代替單獨(dú)的 pthread。原因何在?
- Pthread 系統(tǒng)開銷
♦ 進(jìn)程和 pthreads 是 Linux 了解的唯一調(diào)度實(shí)體。
♦ LWT pthread 只是一個 Linux 編碼執(zhí)行背景,可用于永久運(yùn)行 pthread。由于用戶空間調(diào)度器始終保持控制,因此 pthread 絕不會被掛起 – 省電模式除外。這種情況不在本文的討論范圍。
該用戶空間調(diào)度器的運(yùn)行和操作方式與某些傳統(tǒng) RTOS 高性能、低延遲實(shí)施完全相同,但不會涉及到 Linux 內(nèi)核。
實(shí)施過程利用新用戶空間 Linux 實(shí)施過程來直接訪問硬件。同樣也不涉及 Linux 內(nèi)核。
上述 LWT 解決方案可在任何 Linux 實(shí)時應(yīng)用中實(shí)現(xiàn)動態(tài)性能的提升。Enea 已設(shè)計出上述 LWT 的一些原型,事實(shí)證明,與 Linux pthreads 在調(diào)度器系統(tǒng)開銷、特別是上下文切換和線程間消息發(fā)送/通信延遲方面的性能相比,LWT 性能可提高 10 倍。
但是除了調(diào)度性能和線程間通信功能之外,LWT 解決方案還應(yīng)帶來什么?LWT 概念除了在性能方面勝過 Linux pthreads 之外,還有更多優(yōu)勢。解決方案穩(wěn)健性的概念如何?與歷史悠久的 RTOS 實(shí)時解決方案一樣,LWT 也需要具有以下額外 Linux 特性:
- 決定性調(diào)度
- 調(diào)度系統(tǒng)開銷低 – 上下文切換成本低
- 線程間信號系統(tǒng)開銷低
- 線程創(chuàng)建成本低
多核設(shè)備中 Linux 輕型線程模型的結(jié)構(gòu)圖
LWT 實(shí)施方案的結(jié)構(gòu)圖如下。涉及整個共享內(nèi)存空間的 Linux 進(jìn)程可能跨多核設(shè)備的多個內(nèi)核。為了達(dá)到最高效率,LWT 模型需要將 Linux 進(jìn)程中的單個 pthread 鎖定至某一個內(nèi)核,但并不特別要求這樣做。LWT 鎖定至 pthread 之后,便可遷移到 Linux SMP 需要的任何內(nèi)核中。
結(jié)論
高效輕型線程 (LWT) 將成為下一個 Linux 實(shí)時性能和行為問題。需要強(qiáng)調(diào)的是,并非所有實(shí)時應(yīng)用都需要使用功能強(qiáng)大的類似 LWT 的解決方案。但是一些實(shí)時應(yīng)用,尤其是電信/網(wǎng)絡(luò)中的應(yīng)用以及無線接入網(wǎng)、移動基礎(chǔ)設(shè)施核心/邊緣中的那些需要使用某些復(fù)雜網(wǎng)絡(luò)協(xié)議的應(yīng)用、或任何具有類似實(shí)時需求的其他系統(tǒng)均可受益于 Linux 輕型線程 – 下一代 Linux 實(shí)時擴(kuò)展。同時,實(shí)時嵌入式 Linux 的整個發(fā)展過程證明了 Linux 的運(yùn)行效果與傳統(tǒng) RTOS 解決方案一樣優(yōu)異。Linux 已取得了一些進(jìn)展,但是作者認(rèn)為,最重要的電信/網(wǎng)絡(luò)應(yīng)用中使用的 Linux 尚未達(dá)到預(yù)期的要求。但也許通過 Linux 輕型線程,我們可以更接近這一目標(biāo)??偟膩碚f,Linux 實(shí)時嵌入式行業(yè)的一個側(cè)重點(diǎn)是研發(fā)出可用于要求最高的實(shí)時應(yīng)用的解決方案。下圖中描述了該目標(biāo):
評論