本節我們將從實時操作系統來講解,主要是從下面3個方面進行講解: 1.操作系統的分類 2.實時操作系統 3.嵌入式實時操作系統的基本概念 一、操作系統分類: 目前廣泛使用的操作系統有三個: A.多道批處理操作系統 B.分時操作系統 C.實時操作系統 這三種系統雖然都很重要,但是我們接觸最多的是實時操作系統,所以下面重點將介紹實時操作系統。 二、實時操作系統: 1.實時操作系統具有如下特點: a) 異步的事件響應 b) 切換時間和中斷延遲時間確定 c) 優先級中斷和調度 d) 搶占式調度 e) 內存鎖定 f) 連續文件 g) 同步 實時操作系統總的來說是事件驅動的,能對來自外界的作用和信號在限定的時間范圍內做出響應。它強調的是實時性、可靠性和靈活性,與實時應用軟件相結合成為有機的整體起著核心作用,由它來管理和協調各項工作,為應用軟件提供良好的運行軟件環境及開發環境。 從實時系統的應用特點來看實時操作系統可以分為兩種: a.一般實時操作系統 b.嵌入式實時操作系統 2.實時操作系統的特點 一般實時操作系統應用于實時處理系統的上位機和實時查詢系統等實時性較弱的實時系統,并且提供了開發、調試、運用一致的環境 嵌入式實時操作系統應用于實時性要求較高的實時控制系統,而且應用程序的開發過程是通過交叉開發來完成的,即開發環境與運行環境是一致。嵌入式實時操作系統具有規模小(一般在幾K~幾十K內)、可固化使用實時性強(在毫秒或微秒數量級上)的特點。 三、嵌入式實時操作系統的基本概念 下面主要認識一下幾個嵌入式實時操作系統的基本概念,這也是學習操作系統的基礎。 1、前后臺系統:對基于芯片的開發來說,應用程序一般是一個無線循環,可稱為前臺系統或超循環系統。 2、操作系統:是計算機中最基本的程序。操作系統負責計算機系統中全部軟硬件資源的分配與回收、控制與協調等并發的活動;操作系統提供用戶接口,是用戶獲得良好的工作環境;操作系統為用戶擴展新的系統功能提供軟件平臺。 3、實時操作系統(RTOS):實時操作系統是一般在嵌入式系統啟動后首先執行的背景程序,用戶的應用程序是運行于RTOS之上的各個任務,RTOS根據各個任務的要求,進行資源(包括存儲器、外設等)管理、消息管理、任務調度、異常處理等工作。在RTOS支持的系統中,每個任務均有一個優先級,RTOS根據各個任務的優先級,動態地切換各個任務,保證對實時性的要求。 4、代碼臨界區:也稱為臨界區,指處理時不可分割的代碼,運行這些代碼不允許被打斷。一旦這部分代碼開始執行,則不允許任何中斷打入(這不是絕對的,如果中斷不調用任何包含臨界區的代碼,也不訪問任何臨界區使用的共享資源,這個中斷可能可以執行)。為確保臨界區代碼的執行,在進入臨界區之前要關中斷,而臨界區代碼執行完成以后要立即開中斷。 5、資源:程序運行時可使用的軟、硬件環境統稱為資源。資源可以是輸入設備。也可以是一個變量、一個結構或一個數組等。 6、共享資源:可以被一個以上的任務使用的資源。為了防止數據被破壞,每個任務在與共享資源打交道時,必須獨占該資源,這叫做互斥。 7、任務:一個任務也稱作一個線程,是一個簡單的程序,該程序可以認為CPU完全屬于該程序自己。實時應用程序的設計過程,包括如何把問題分割成多個任務,每個任務都是整個應用的某一部分,每個任務被賦予一定的優先級,有它自己的一套CPU寄存器和自己的棧空間。 8、任務切換:當多任務內核決定運行另外的任務時,它保證正在運行任務的當前狀態,即CPU寄存器中的全部內容。這些內容保存在任務的當前狀態保存區,也就是任務自己的棧區之中。入棧工作完成以后,就把下一個將要運行的任務的當前狀態從任務的棧中重裝如CPU的寄存器,并開始下一個任務的運行,這個過程就稱任務切換。做任務切換所需要的時間取決于CPU有多少寄存器要入棧。 9、內核:多任務系統中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通信。內核提供的基本服務是任務切換。使用實時內核可以大大簡化應用系統的設計,是因為實時內核允許將應用分成若干個任務,由實時內核來管理它們。內核提供必不可少的系統服務,如信號量、消息隊列、延時等。 10、調度:調度是內核的主要職責之一。調度就是決定該輪到哪個任務運行了。通過優先級來實行調度(非占先式還是占先式)。 11、非占先式內核:要求每個任務自我放棄CPU的所有權。非占先式調度法也稱作合作型多任務,各個任務彼此合作共享一個CPU。異步事件還是由中斷服務來處理。中斷服務可以使一個高優先級的任務由掛起狀態變為就緒狀態。但中斷服務以后控制權還是回到原來被中斷了的那個任務,知道該任務主動放棄CPU的使用權時,那個高優先級的任務才能獲得CPU的使用權。 12、占先式內核:當系統響應時間很重要時,要使用占先式內核。因此絕大多數商業上銷售的實時內核都是占先式內核。最高優先級的任務一旦就緒,總能得到CPU的控制權。當一個運行著的任務使一個比它優先級高的任務進入了就緒狀態,當前任務的CPU使用權就被剝奪了,或者說被掛起了,那個高優先級的任務立刻得到了CPU的控制權。如果是中斷服務子程序使一個高優先級的任務進入就緒態,中斷完成時,中斷了的任務被掛起,優先級高的那個任務開始運行。 13、任務優先級:任務的優先級是表示任務被調度的優先程度。每個任務都具有優先級。任務越重要,賦予的優先級應越高,越容易被調度而進入運行態。 14、中斷:中斷是一種硬件機制,用于通知CPU有個異步事件發生了。中斷一旦被識別,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳轉到專門的子程序,稱為中斷服務子程序(ISR)。中斷服務子程序做事件處理,處理完成后,程序回到: A. 在前后臺系統中,程序回到后臺程序; B.對非占先式內核而言,程序回到被中斷了的任務; C.對占先式內核而言,讓進入就緒態的優先級最高的任務開始運行。 15、時鐘節拍: 時鐘節拍是特定的周期性中斷。這個中斷可以看作是系統心臟的脈動。中斷之間的時間間隔取決于不同應用,一般在10ms到200ms之間。時鐘的節拍式中斷使得內核可以將任務延時若干個整數時鐘節拍,以及當任務等待事件發生時,提供等待超時的依據。時鐘節拍率越快,系統的額外開銷就越大。 |