非搶占式(nonpreemptive) 讓程序執行直到結束或阻塞的排程方式 容易實現 適合專用系統,不適合通用系統
搶占式(preemptive) 允許將邏輯上可繼續執行的在執行過程暫停的排程方式 可防止單一程序長時間獨佔cpu 系統開銷大(降低途徑:硬體實現程序切換,或擴充主存以貯存大部分程式)
核心搶占(可搶占式核心):即當程序位於核心空間時,有乙個更高優先順序的任務出現時,如果當前核心允許搶占,則可以將當前任務掛起,執行優先順序更高的程序。
非搶占式核心:高優先順序的程序不能中止正在核心中執行的低優先順序的程序而搶占cpu執行。程序一旦處於核心態(例如使用者程序執行系統呼叫),則除非程序自願放棄cpu,否則該程序將一直執行下去,直至完成或退出核心。
搶占式核心的意義:首先,這是將linux應用於實時系統所必需的。實時系統對響應時間有嚴格的限定,當乙個實時程序被實時裝置的硬體中斷喚醒後,它應在限定的時間內被排程執行。而linux不能滿足這一要求,因為linux的核心是不可搶占的,不能確定系統在核心中的停留時間。事實上當核心首席執行官的系統呼叫時,實時程序要等到核心中執行的程序退出核心才能被排程,由此產生的響應延遲,在如今的硬體條件下,會長達100ms級。這對於那些要求高實時響應的系統是不能接受的。而可搶占的核心不僅對linux的實時應用至關重要,而且能解決linux對多**(video, audio)等要求低延遲的應用支援不夠好的缺陷。
作業系統問題總結之程序管理
作業 作業是用於需要計算機完成某項任務,而要求計算機所做工作的集合。乙個作業的完成要經過作業提交,作業收容 作業執行和作業完成4個階段。程序定義 乙個程序是乙個程式對某個資料集的執行過程,是分配資源的基本單位。作業與程序區別 程序狀態 初始狀態 就緒狀態 執行狀態 等待狀態 終止狀態。執行緒定義 執...
思考總結Linux系統下程序間通訊
常見的程序間通訊 1.管道pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。2.命名管道fifo 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。4.訊息佇列messagequeue 訊息佇列是由訊息的鍊錶...
總結 程序管理
程序管理主要有三個部分 程序建立和退出 程序排程 程序間通訊。首先,什麼是程序?程序就是執行著的乙個程式的例項。乙個執行中的程式包含執行狀態 屬性 位址空間等資訊,作業系統把這些東西整合起來看作程序,統一管理。程序建立 對於每個程序,核心都會為這個程序生成 乙個程序描述符 task struct 分...