操作系統(二):實時系統介紹與實例分析

目錄

一.概念

1.1 分類

1.2 主要指標?

二.實現原理

三.主流實時系統對比


一.概念

????????實時系統(Real-Time System, RTS)是一類以時間確定性為核心目標的計算機系統,其設計需確保在嚴格的時間約束內完成任務響應。

1.1 分類

????????根據時間約束的嚴格程度,實時系統可分為以下兩類,見下表。

實時系統分類
序號類別定義示例
1

硬實時系統

(Hard Real-Time)

要求任務必須在絕對截止時間前完成,超時將導致系統失效或嚴重后果。

1.汽車安全氣囊控制系統

????????傳感器觸發后,系統需在毫秒級時間內完成氣囊展開操作。
2.飛行器導航系統

????????姿態控制指令的延遲可能導致墜機風險。

2

軟實時系統

(Soft Real-Time)

允許偶發性延遲,但需保證整體性能達標

1.視頻流處理

????????單幀丟失可能引起畫面卡頓,但不影響整體功能。
2.在線交易系統

????????短暫延遲可能導致用戶體驗下降,但不會引發系統性崩潰。

1.2 關鍵指標?

關鍵指標
序號指標描述
1中斷響應時間從接收中斷信號到執行中斷服務程序的時間(硬實時系統通常要求<10μs)
2任務切換時間不同優先級任務間CPU控制權轉移的耗時(如VxWorks為3.8μs,RT-Linux為25μs)

二.實現原理

????????實時系統的設計圍繞確定性調度資源控制展開,其實現原理包含以下關鍵技術。

關鍵技術
序號關鍵技術描述
1任務調度機制

1.優先級搶占式調度

????????高優先級任務可立即搶占低優先級任務資源。例如VxWorks采用256級優先級,支持動態優先級調整。
2.時間片輪轉(Round-Robin)

????????在相同優先級任務間分配固定時間片,避免單一任務長時間占用CPU。

2內核架構優化

1.可搶占內核

????????允許中斷內核代碼執行以響應高優先級任務,減少不可搶占區域(如Linux的PREEMPT-RT補丁通過優化自旋鎖實現微秒級延遲)。
2.中斷管理

????????采用中斷嵌套和快速中斷服務程序(Fast ISR),避免長時間關閉中斷。例如QNX的中斷處理層僅關閉部分中斷。

3同步與通信機制

1.優先級繼承協議

????????防止低優先級任務持有高優先級任務所需資源時引發的優先級反轉問題(如FreeRTOS的互斥量設計)。
2.實時信號量與郵箱

????????提供任務間高效通信方式,確保數據傳遞的時效性。

4資源預留與隔離

1.CPU核隔離

????????通過isolcpus參數將特定CPU核心專用于實時任務,避免非實時任務干擾。
2.內存管理優化

????????采用靜態內存分配或實時內存池(如VxWorks的memPartLib庫),減少動態內存分配的不確定性。

注:isolcpus?是 Linux 內核提供的一種 CPU 核心隔離機制,用于將指定的 CPU 核心從系統默認調度中排除,確保這些核心僅運行用戶顯式指定的進程或線程。其核心目標是為關鍵任務提供獨占的 CPU 資源,減少干擾(如上下文切換、中斷),提升性能穩定性。

三.主流實時系統對比

主流實時系統對比
序號實時系統類型特點應用領域
1VxWorks硬實時高可靠性、支持動態加載模塊、NASA火星探測器采用航空航天、國防
2QNX硬實時微內核架構、容錯性強、符合ISO 26262汽車安全標準汽車電子、醫療設備
3FreeRTOS軟/硬實時開源輕量、支持多種處理器架構、Amazon FreeRTOS集成AWS物聯網服務嵌入式設備、IoT
4RT-Linux軟實時基于Linux內核改造(如PREEMPT-RT補丁)、保留生態兼容性工業自動化、音視頻處理
5uC/OS-II硬實時代碼精簡(<10KB)、可移植性強、適合資源受限場景智能家居、小型控制器

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75455.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Golang的消息中間件選型

# Golang的消息中間件選型 消息中間件的作用 消息中間件是一種用于分布式系統中應用程序之間進行通信的基礎架構工具&#xff0c;它能夠有效地解耦發送者和接收者&#xff0c;并提供高可用性和可靠性的消息傳遞機制。在Golang應用程序中&#xff0c;選擇適合的消息中間件對于構…

大模型中的參數規模與顯卡匹配

在大模型訓練和推理中&#xff0c;顯卡&#xff08;GPU/TPU&#xff09;的選擇與模型參數量緊密相關&#xff0c;需綜合考慮顯存、計算能力和成本。以下是不同規模模型與硬件的匹配關系及優化策略&#xff1a; 一、參數規模與顯卡匹配參考表 模型參數量訓練階段推薦顯卡推理階…

帶頭結點 的單鏈表插入方法(頭插法與尾插法)

帶頭結點的單鏈表插入方法&#xff08;頭插法與尾插法&#xff09; 在單鏈表的操作中&#xff0c;插入是最常見的操作之一&#xff0c;本文介紹 帶頭結點的單鏈表 如何實現 后插法 和 前插法&#xff08;包括 插入法 和 后插數據交換法&#xff09;&#xff0c;并提供完整的 C …

Prometheus的工作流程

Prometheus 是一個開源的監控和告警系統&#xff0c;專為監控分布式系統而設計。它的工作流程主要包括以下幾個關鍵步驟&#xff1a; 1. 數據采集 (Scraping) 目標發現 (Service Discovery)&#xff1a; Prometheus 自動或手動配置監控目標&#xff0c;通過 DNS、Kubernetes、…

軟件工程面試題(二十二)

1、常用的設計模式有哪些&#xff1f;并寫出一段程序代碼 Factory(工廠模式)&#xff0c;Adapter(適配器模式)&#xff0c;Singleton(單例模式)&#xff0c;State(狀態模式)&#xff0c;Observer(觀察者模式) 等。 單例模式 public class Singleton{ private static Singleton …

【Pandas】pandas DataFrame select_dtypes

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于獲取 DataFrame 的行索引DataFrame.columns用于獲取 DataFrame 的列標簽DataFrame.dtypes用于獲取 DataFrame 中每一列的數據類型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…

如何利用ATECLOUD測試平臺的芯片測試解決方案實現4644芯片的測試?

作為多通道 DC-DC 電源管理芯片的代表產品&#xff0c;4644 憑借 95% 以上的轉換效率、1% 的輸出精度及多重保護機制&#xff0c;廣泛應用于航天航空&#xff08;衛星電源系統&#xff09;、醫療設備&#xff08;MRI 梯度功放&#xff09;、工業控制&#xff08;伺服驅動單元&a…

Python 編程實戰:打造高效便捷的目錄結構生成器

Python 編程實戰&#xff1a;打造高效便捷的目錄結構生成器 相關資源文件已經打包成EXE文件&#xff0c;可雙擊直接運行程序&#xff0c;且文章末尾已附上相關源碼&#xff0c;以供大家學習交流&#xff0c;博主主頁還有更多Python相關程序案例&#xff0c;秉著開源精神的想法&…

移動端六大語言速記:第6部分 - 錯誤處理與調試

移動端六大語言速記:第6部分 - 錯誤處理與調試 本文將對比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift這六種移動端開發語言在錯誤處理與調試方面的特性,幫助開發者理解和掌握各語言的異常處理機制。 6. 錯誤處理與調試 6.1 異常處理 各語言異常處理的語法對比:…

PyTorch優化器

PyTorch 提供了多種優化算法用于神經網絡的參數優化。以下是對 PyTorch 中主要優化器的全面介紹&#xff0c;包括它們的原理、使用方法和適用場景。 一、基本優化器 1. SGD (隨機梯度下降) torch.optim.SGD(params, lr0.01, momentum0, dampening0, weight_decay0, nesterov…

C++的UDP連接解析域名地址錯誤

背景 使用c開發一個udp連接功能的腳本&#xff0c;可以接收發送數據&#xff0c;而且地址是經過內網穿透到外網的 經過 通常發送數據給目標地址&#xff0c;需要把目的地址結構化&#xff0c;要么使用inet_addr解析ip地址&#xff0c;要么使用inet_pton sockaddr_in target…

Spark,上傳文件

上傳文件 1.上傳 先使用命令打開HDFS的NameNode [roothadoop100 hadoop-3.1.3]$ sbin/start-dfs.sh [roothadoop100 hadoop-3.1.3]$ sbin/stop-dfs.sh 和YARN的Job [roothadoop101 hadoop-3.1.3]$ sbin/start-yarn.sh [roothadoop101 hadoop-3.1.3]$ sbin/stop-yarn.sh 在Nam…

如何為Linux/Android Kernel 5.4和5.15添加 fuse passthrough透傳功能 ?

背景 參考&#xff1a;Google文檔 FUSE 透傳 參考此文檔&#xff0c;目前kernel.org提供的fuse passthrough補丁在6.9版本之后&#xff0c;但想要在5.4和5.15版本內核做移植應該如何簡單點呢&#xff1f;文檔中提到 Android的內核為5.4 和 5.15版本內核做了fuse passthrough功…

Ubuntu 防火墻配置

Ubuntu 的防火墻配置可以參考文章&#xff1a;Firewall - Ubuntu Server documentation 22 端口 需要注意的是&#xff0c;在啟動防火墻之前&#xff0c;需要先開放 22 端口。 否則 SSH 將會拒絕你連接防火墻。 開放 22 端口的命令為&#xff1a;sudo ufw allow 22 添加端…

Jetson 設備卸載 OpenCV 4.5.4 并編譯安裝 OpenCV 4.2.0

?一、卸載 OpenCV 4.5.4? 清除已安裝的 OpenCV 庫? sudo apt-get purge libopencv* python3-opencv # 卸載所有APT安裝的OpenCV包?:ml-citation{ref"1,3" data"citationList"}sudo apt autoremove # 清理殘留依賴?:ml-citation{ref"1,4"…

《AI大模型應知應會100篇》第57篇:LlamaIndex使用指南:構建高效知識庫

第57篇&#xff1a;LlamaIndex使用指南&#xff1a;構建高效知識庫 摘要 在大語言模型&#xff08;LLM&#xff09;驅動的智能應用中&#xff0c;如何高效地管理和利用海量知識數據是開發者面臨的核心挑戰之一。LlamaIndex&#xff08;原 GPT Index&#xff09; 是一個專為構建…

Sentinel[超詳細講解]-4

&#x1f693; 主要講解流控模式的 三種方式中的兩種&#xff1a; 直接、鏈路&#x1f680; 1?? 直接模式 &#x1f68e; 直接模式&#xff1a;對資源本身進行限流&#xff0c;例如對某個接口進行限流&#xff0c;當該接口的訪問頻率超過設定的閾值時&#xff0c;直接拒絕新的…

工作記錄 2017-03-24

工作記錄 2017-03-24 序號 工作 相關人員 1 修改了郵件上的問題。 更新RD服務器。 郝 更新的問題 1、修改了New User時 init的保存。 2、文件的查詢加了ID。 3、加了 patient insurance secondary 4、修改了payment detail的處理。 識別引擎監控 Ps (iCDA LOG :剔除…

裴蜀定理:整數解的奧秘

裴蜀定理&#xff1a;整數解的奧秘 在數學的世界里&#xff0c;裴蜀定理&#xff08;Bzout’s Theorem&#xff09;是數論中一個非常重要的定理&#xff0c;它揭示了二次方程和整數解之間的關系。它不僅僅是純粹的理論知識&#xff0c;還在計算機科學、密碼學、算法優化等多個…

python之 “__init__.py” 文件

提示&#xff1a;python之 “init.py” 文件 文章目錄 前言一、Python 中 __init__.py 文件的理解1. What&#xff08;是什么&#xff09;2. Why&#xff08;為什么需要&#xff09;3. Where&#xff08;在哪里使用&#xff09;4. How&#xff08;如何使用&#xff09; 二、問題…