www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件

作者:李智敏,華清遠見嵌入式學院上海中心講師。

實時系統(tǒng)指系統(tǒng)的計算正確性不僅取決于計算的邏輯正確性,還取決于產(chǎn)生結(jié)果的時間。如果未滿足系統(tǒng)的時間約束,則認為系統(tǒng)失效。換句話說,系統(tǒng)面對變化的負載(從最小到最壞的情況)時必須確定性地保證滿足時間要求。

注意,實時性與速度關(guān)系不大:它與可預見性有關(guān)。例如,使用快速的現(xiàn)代處理器時,Linux 可以提供 20 μ 微秒的典型中斷響應,但有時候響應會變得很長。這是一個基本的問題:并不是 Linux 不夠快或效率不夠高,而是因為它不能提供確定性。

當中斷到達時(event),CPU 發(fā)生中斷并轉(zhuǎn)入中斷處理。執(zhí)行一些工作以確定發(fā)生了什么事件,然后執(zhí)行少量工作分配必需的任務(wù)以處理此事件(上下文切換)。中斷到達與分發(fā)必需任務(wù)之間的時間(假設(shè)分配的是優(yōu)先級最高的任務(wù))稱為響應時間。對于實時性要求,響應時間應是確定的并應當在已知的最壞情況的時間內(nèi)完成。因此,對于某些高安全性的場合,操作系統(tǒng)應快速地分配任務(wù),并且不允許其他非實時處理進行干擾。晚一秒鐘響應比沒有響應的情況更糟糕。

除為中斷處理提供確定性外,實時處理也需要支持周期性間隔的任務(wù)調(diào)度。大量控制系統(tǒng)要求周期性采樣與處理。某個特定任務(wù)必須按照固定的周期(p)執(zhí)行,從而確保系統(tǒng)的穩(wěn)定性。在某些控制場合下,為了保持控制系統(tǒng)的正常工作,傳感器的采樣與控制必須按照一定的周期間隔。這意味著必須搶占其他處理,以便特定任務(wù)能按照期望的周期執(zhí)行。

能夠在指定的期限完成實時任務(wù)(即便在最壞的處理負載下也能如此)的操作系統(tǒng)稱為硬實時 系統(tǒng)。但并不是任何情況下都需要硬實時支持。如果操作系統(tǒng)在平均情況下能支持任務(wù)的執(zhí)行期限,則稱它為軟實時 系統(tǒng)。硬實時系統(tǒng)指超過截止期限后將造成災難性后果(例如展開氣囊過晚或制動壓力產(chǎn)生的滑行距離過長)的系統(tǒng)。軟實時系統(tǒng)超過截止期限后并不會造成系統(tǒng)整體失?。ㄈ鐏G失視頻中的一幀)。

Linux 架構(gòu)支持通過以下幾種方式實現(xiàn)硬實時。

1. 瘦內(nèi)核方法

瘦內(nèi)核(或微內(nèi)核)方法使用了第二個內(nèi)核作為硬件與 Linux 內(nèi)核間的抽象接口。非實時 Linux 內(nèi)核在后臺運行,作為瘦內(nèi)核的一項低優(yōu)先級任務(wù)托管全部非實時任務(wù)。實時任務(wù)直接在瘦內(nèi)核上運行。

瘦內(nèi)核主要用于(除了托管實時任務(wù)外)中斷管理。瘦內(nèi)核截取中斷以確保非實時內(nèi)核無法搶占瘦內(nèi)核的運行。這允許瘦內(nèi)核提供硬實時支持。

雖然瘦內(nèi)核方法有自己的優(yōu)勢(硬實時支持與標準 Linux 內(nèi)核共存),但這種方法也有缺點。實時任務(wù)和非實時任務(wù)是獨立的,這造成了調(diào)試困難。而且,非實時任務(wù)并未得到 Linux 平臺的完全支持(瘦內(nèi)核執(zhí)行稱為瘦 的一個原因)。

使用這種方法的例子有 RTLinux。

2. 超微內(nèi)核方法

瘦內(nèi)核方法依賴于包含任務(wù)管理的最小內(nèi)核,而超微內(nèi)核法對內(nèi)核進行更進一步的縮減。通過這種方式,它不像是一個內(nèi)核而更像是一個硬件抽象層(HAL)。超微內(nèi)核為運行于更高級別的多個操作系統(tǒng)提供了硬件資源共享。

這種方法和運行多個操作系統(tǒng)的虛擬化方法有一些相似之處。使用這種方法的情況下,超微內(nèi)核在實時和非實時內(nèi)核中對硬件進行抽象。這與 hypervisor 從客戶(guest)操作系統(tǒng)對裸機進行抽象的方式很相似。

3. 資源內(nèi)核法

這種方法為內(nèi)核增加一個模塊,為各種資源提供預留(reservation)。這種機制保證了對時分復用(time-multiplexed)系統(tǒng)資源的訪問(CPU、網(wǎng)絡(luò)或磁盤帶寬)。這些資源擁有多個預留參數(shù),如循環(huán)周期、需要的處理時間(也就是完成處理所需的時間),以及截止時間。

資源內(nèi)核提供了一組應用程序編程接口(API),允許任務(wù)請求這些預留資源。然后資源內(nèi)核可以合并這些請求,使用任務(wù)定義的約束定義一個調(diào)度,從而提供確定的訪問(如果無法提供確定性則返回錯誤)。通過調(diào)度算法,內(nèi)核可以處理動態(tài)的調(diào)度負載。

資源內(nèi)核法實現(xiàn)的一個示例是 CMU 公司的 Linux/RK,它把可移植的資源內(nèi)核集成到 Linux 中作為一個可加載模塊。這種實現(xiàn)演化成商用的 TimeSys Linux/RT 產(chǎn)品。

“本文由華清遠見http://www.embedu.org/index.htm提供”



華清遠見

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

CPU親和度通過限制進程或線程可以運行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式

在當今電子系統(tǒng)設(shè)計的復雜領(lǐng)域中,系統(tǒng)架構(gòu)的選擇宛如基石,深刻影響著電源和控制電路的設(shè)計,進而全方位塑造系統(tǒng)性能。不同架構(gòu)在面對從交流電源到負載的能量流動控制任務(wù)時,因隔離柵位置、信號處理方式等差異,展現(xiàn)出截然不同的特性。...

關(guān)鍵字: 電子系統(tǒng) 控制電路 架構(gòu)

在Linux系統(tǒng)性能優(yōu)化中,內(nèi)存管理與網(wǎng)絡(luò)連接處理是兩大核心領(lǐng)域。vm.swappiness與net.core.somaxconn作為關(guān)鍵內(nèi)核參數(shù),直接影響系統(tǒng)在高負載場景下的穩(wěn)定性與響應速度。本文通過實戰(zhàn)案例解析這兩個...

關(guān)鍵字: Linux 內(nèi)存管理

對于LLM,我使用b谷歌Gemini的免費層,所以唯一的成本是n8n托管。在使用了n8n Cloud的免費積分后,我決定將其托管在Railway上(5美元/月)。然而,由于n8n是開源的,您可以在自己的服務(wù)器上托管它,而...

關(guān)鍵字: 人工智能 n8n Linux

在Linux系統(tǒng)管理中,權(quán)限控制是安全運維的核心。本文通過解析/etc/sudoers文件配置與組策略的深度應用,結(jié)合某金融企業(yè)生產(chǎn)環(huán)境案例(成功攔截98.7%的非法提權(quán)嘗試),揭示精細化權(quán)限管理的關(guān)鍵技術(shù)點,包括命令別...

關(guān)鍵字: Linux 用戶權(quán)限 sudoers文件

Linux內(nèi)核中的信號量(Semaphore)是一種用于資源管理的同步原語,它允許多個進程或線程對共享資源進行訪問控制。信號量的主要作用是限制對共享資源的并發(fā)訪問數(shù)量,從而防止系統(tǒng)過載和數(shù)據(jù)不一致的問題。

關(guān)鍵字: Linux 嵌入式

在云計算與容器化技術(shù)蓬勃發(fā)展的今天,Linux網(wǎng)絡(luò)命名空間(Network Namespace)已成為構(gòu)建輕量級虛擬網(wǎng)絡(luò)的核心組件。某頭部互聯(lián)網(wǎng)企業(yè)通過命名空間技術(shù)將測試環(huán)境資源消耗降低75%,故障隔離效率提升90%。本...

關(guān)鍵字: Linux 云計算

在Linux內(nèi)核4.18+和主流發(fā)行版(RHEL 8/Ubuntu 20.04+)全面轉(zhuǎn)向nftables的背景下,某電商平臺通過遷移將防火墻規(guī)則處理效率提升40%,延遲降低65%。本文基于真實生產(chǎn)環(huán)境案例,詳解從ipt...

關(guān)鍵字: nftables Linux

在Linux設(shè)備驅(qū)動開發(fā)中,等待隊列(Wait Queue)是實現(xiàn)進程睡眠與喚醒的核心機制,它允許進程在資源不可用時主動放棄CPU,進入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過C語言模型解析等待隊列的實現(xiàn)原理,結(jié)合...

關(guān)鍵字: 驅(qū)動開發(fā) C語言 Linux

在Unix/Linux進程間通信中,管道(pipe)因其簡單高效被廣泛使用,但默認的半雙工特性和無同步機制容易導致數(shù)據(jù)競爭。本文通過父子進程雙向通信案例,深入分析互斥鎖與狀態(tài)機在管道同步中的應用,實現(xiàn)100%可靠的數(shù)據(jù)傳...

關(guān)鍵字: 管道通信 父子進程 Linux
關(guān)閉