嵌入式作業系統(Embedded Operating System,簡稱:EOS)是指用於嵌入式系統的作業系統。下面是嵌入式Linux作業系統中的一些重要概念,為大家提供參考。
程序的同步(直接制約):synchronism
指系統中一些程序需要相互合作,共同完成一項任務。具體說,一個程序執行到某一點時要求另一夥伴程序為它提供訊息,在未獲得訊息之前,該程序處於等待狀態,獲得訊息後被喚醒進入就緒態。同步是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源。
程序的互斥(間接制約)mutual exclusion
由於各程序要求共享資源,而有些資源需要互斥使用,因此各程序間競爭使用這些資源,程序的這種關係為程序的互斥。某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。
相關概念:
互斥:指多個程序不能同時使用同一個資源;
死鎖:指多個程序互不相讓,都得不到足夠的資源;
飢餓:指一個程序一直得不到資源(其他程序可能輪流佔用資源)
臨界資源:系統中某些資源一次只允許一個程序使用,稱這樣的資源為臨界資源或互斥資源或共享變數
臨界區:程序中訪問臨界資源的一段程式碼。
臨界區問題
臨界區(critical section):程序中訪問臨界資源的一段程式碼。
進入區(entry section):在進入臨界區之前,檢查可否進入臨界區的一段程式碼。如果可以進入臨界區,通常設定相應"正在訪問臨界區"標誌
退出區(exit section):用於將"正在訪問臨界區"標誌清除。
剩餘區(remainder section):程式碼中的其餘部分。
使用臨界區應遵循的準則
有空讓進:當無程序在臨界區時,任何有權使用臨界區的程序可進入
無空等待:不允許兩個以上的`程序同時進入臨界區
多中擇一:當沒有程序在臨界區,而同時有多個程序要求進入臨界區,只能讓其中之一進入臨界區,其他程序必須等待
有限等待:任何進入臨界區的要求應在有限的時間內得到滿足
讓權等待:處於等待狀態的程序應放棄佔用CPU
平等競爭:任何程序無權停止其它程序的執行程序之間相對執行速度無硬性規定
Linux下的程序包含以下幾個關鍵要素:
有一段可執行程式;
有專用的系統堆疊空間;
核心中有它的控制塊(程序控制塊),描述程序所佔用的資源,這樣,程序才能接受核心的排程;
具有獨立的儲存空間
程序和執行緒有時候並不完全區分,而往往根據上下文理解其含義。