作業系統學習筆記 實時系統

2021-07-09 18:12:11 字數 1998 閱讀 2739

一、概述

實時系統不僅要求計算結果正確,而且要求結果必須在乙個特定的截止期限內產生,否則即使正確也沒有意義。比如一些嵌入式系統,安全關鍵系統。

實時計算有兩種型別:硬實時系統和軟實時系統。硬實時系統有最嚴格的要求,保證關鍵實時任務在最後期限內完成。軟實時系統限制較少,僅僅指關鍵實時任務將獲得優先於其他任務的權利,並且會保留優先順序直到完成。

二、系統特性

實時系統的典型特性:

1、目標單一

2、體積小

cpu、記憶體常常都很小,所以空間占用很小,通常用於家電裝置和消費裝置中。

3、批量生產成本低

常常是cpu、記憶體(或快取)、儲存器管理單元、usb都包含在單積體電路中

4、特定的時間要求

三、實時核心特性

實時核心的特性就是越簡單越好,摒棄許多通用作業系統才有的功能。

就連虛擬記憶體,也要採用與實時系統不同的途徑來實現:

1)cpu直接生成實體地址,優點是快,但需要程式設計師為程式指定物理位置

2)動態重定位暫存器,優點是可以輕鬆實現邏輯位址與實體地址的轉換,缺點是缺少程序間的記憶體保護

3)採用通用操作作業系統的方法

四、實現實時作業系統

實現實時作業系統必須的特性:

1、基於優先順序的搶占式排程演算法

2、搶占式核心

非搶占式核心不允許在核心模式下執行的程序被搶占;核心模式的程序將一直執行,直到它退出核心模式,阻塞或自願放棄對cpu的控制。相反,搶占式核心允許在核心模式下的任務被搶占。

有很多方法可以使核心成為可搶占。一種是在長期的系統呼叫中插入搶占點,到了這個點就檢查有無高優先順序程序需要執行,有的話就上下文切換。等高優先順序程序終止,原先被中斷的程序繼續執行。

另一種就是核心被搶占後,核心資料有保護機制,免於被修改,則核心即使被搶占也沒事。

3、延遲最小化

有兩個延遲影響實時系統的效能:

1)中斷延遲

2)排程延遲

必須將它們最小化。

影響中斷延遲的乙個關鍵因素是,當核心的資料結構正在更新時,遮蔽中斷的時間。實時作業系統要求中斷只能被遮蔽很短的時間。

而應對排程延遲的最佳方法是搶占式核心。

4、網路支援(可選)

五、實時cpu排程

軟實時系統排程不能保證乙個關鍵程序被排程,只能保證相對非關鍵的程序可以獲得優先權。硬實時系統有更嚴格的要求:一項任務必須在期限內處理,否則如同根本沒有服務一樣。

硬實時系統中,程序具有週期性,即以固定的間隔(週期)請求cpu。每個週期性程序有乙個固定的處理時間讓cpu處理、乙個截止期限和乙個週期。排程程式要麼接納該程序,保證按時完成,否則拒絕。

其中,0 <= 處理時間 <= 截止期限 <= 請求週期。含義為,在下乙個請求週期發起前,一定要處理完(截止期限),而這個過程中,可以有多次cpu處理。

1、單調速率排程

使用靜態搶占式優先策略排程週期性任務。

系統中執行的程序被分配乙個與週期長短相反的優先順序。周期短,優先順序高,否則就低。並且該程序每次獲得cpu的執行持續時間都相同。高優先順序發起週期請求時,可以搶占低優先順序。不過,不管高低,它們都保證能在截止期限前被處理完成。

單調速率排程理論山是最理想的演算法,但要綜合考慮截止期限和請求週期,但有時會出現程序無法被排程。

2、最早截止期限優先排程演算法(edf)

根據截止期限動態分配優先順序。截止期限越早,優先順序越高;否則越低。在這個演算法裡面,程序的優先順序可能會經常被調整。比如說,本來程序a的優先順序比程序b高,當它發起週期請求時,程序b正在處理,但由於這時b的截止期限比a的短,於是b的優先順序反而更高,b繼續處理剩餘部分。

理論上,edf演算法能讓cpu使用率100%,但由於程序間上下文切換和中斷處理的占用,不可能達到這個值。

3、按比例分享排程

將所有應用程式分為若干份執行,排程程式只接納請求份額低於當前可用份額的申請。

4、pthread排程

posix(portable operating system inte***ce,可移植作業系統介面) pthread api。

作業系統學習筆記

這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...

作業系統學習 筆記

單道批處理評價 資源利用率差 互動性差 等 多道批處理 w為了提高系統的利用率 出現多道批處理 多道 是指 某時刻 多個應用程式再主存中,按照某些原則去處理,逐個執行程式。批處理 使用者提交一批作業,首先存放再外存,排成乙個佇列,然後排程程式按一定的演算法去排程從該佇列 中選取佇列中的乙個或若干個作...

作業系統學習筆記

為什麼需要多執行緒?乙個程序有不同的任務,譬如說乙個程式有不同的方法,有些任務需要等待其他資源的排程 io排程 此時的cpu會空閒等待,加入多執行緒之後,程序分為不同的執行緒去執行不同的任務,使得cpu的利用率大大提高。多執行緒和多程序的區別 多程序是執行不同的程式,多程序切換需要中斷 記錄斷點等資...