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