嵌入式實時操作系統(tǒng)第2章進程管理-wax_第1頁
嵌入式實時操作系統(tǒng)第2章進程管理-wax_第2頁
嵌入式實時操作系統(tǒng)第2章進程管理-wax_第3頁
嵌入式實時操作系統(tǒng)第2章進程管理-wax_第4頁
嵌入式實時操作系統(tǒng)第2章進程管理-wax_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Wax526@163.com嵌入式實時操作系統(tǒng)內(nèi)容

嵌入式操作系統(tǒng)概述

進程管理

同步與互斥調(diào)度SmallRTOS——任務(wù)管理SmallRTOS——同步與互斥SmallRTOS——時間管理SmallRTOS應(yīng)用進程管理進程的基本概念進程與程序的區(qū)別進程控制進程的基本概念1)進程是程序的一次執(zhí)行。2)進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。3)進程是程序在一個數(shù)據(jù)集合上的運行過程,它是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。程序的順序執(zhí)行一個有四條語句的程序段:S1:a:=x+2;S2: b:=y+4;S3: c:=a+b;S4:d:=c+b;程序的順序執(zhí)行s1s2s3s4程序順序執(zhí)行的特征順序性封閉性可再現(xiàn)性順序性:處理機的操作嚴格按照程序所規(guī)定的順序執(zhí)行,即每一個操作必須在下一操作之前結(jié)束。封閉性:程序在封閉環(huán)境下執(zhí)行,結(jié)果不受外界因素影響。可再現(xiàn)性:只要環(huán)境和初始條件相同,程序重復(fù)執(zhí)行時總得到相同結(jié)果。程序并發(fā)執(zhí)行一個有四條語句的程序段:S1:a:=x+2;S2: b:=y+4;S3: c:=a+b;S4:d:=c+b;程序的并發(fā)執(zhí)行s1s2s3s4程序并發(fā)執(zhí)行的特征間斷性:共享、合作、制約導(dǎo)致:執(zhí)行—暫?!獔?zhí)行失去封閉性:資源狀態(tài)由多程序改變不可再現(xiàn)性:相同環(huán)境和初始條件,重復(fù)執(zhí)行結(jié)果不同。

程序AM1:N:=N+1gotoM1程序BM2:PRINT(N);N:=0;gotoM2設(shè)共享變量N初值為8,則會產(chǎn)生三種執(zhí)行結(jié)果:9,9,08,0,18,9,0進程的特征結(jié)構(gòu)特征動態(tài)性并發(fā)性獨立性異步性結(jié)構(gòu)特征進程結(jié)構(gòu)PCB進程控制塊程序段數(shù)據(jù)段動態(tài)特征的集中反映描述要完成的功能操作對象及工作區(qū)動態(tài)性進程最基本的特征是動態(tài)性進程的生命周期:進程由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡的過程。并發(fā)性:多個進程同在內(nèi)存中,且能在一段時間內(nèi)同時運行。獨立性:進程是一個能獨立運行、獨立分配資源、獨立接受調(diào)度的基本單位。異步性:進程按各自獨立的、不可預(yù)知的速度向前推進。進程與程序的主要區(qū)別1)程序是指令的有序集合,它是一個靜態(tài)的概念。而進程是程序在處理機上的一次執(zhí)行過程,它是一個動態(tài)概念。2)進程具有并行特征,程序沒有。3)程序的存在是永久的。而進程則是有生命期的。4)程序僅是指令的有序集合。而進程則由程序段、相關(guān)數(shù)據(jù)段進程控制塊(PCB)組成。5)進程與程序之間不是一一對應(yīng)。程序進程概念靜態(tài)動態(tài)所在存儲器外存內(nèi)存存在時間永久有生命期組成有序指令程序段,數(shù)據(jù)段,PCB對應(yīng)關(guān)系一個程序可對應(yīng)多個進程一個進程可對應(yīng)多個程序進程與程序的主要區(qū)別進程的三種基本狀態(tài)就緒狀態(tài)執(zhí)行狀態(tài)阻塞狀態(tài)就緒狀態(tài)進程已經(jīng)分配了除處理機以外的所有必要資源,只要再獲得處理機就能夠執(zhí)行的狀態(tài)。這樣的進程可能有多個,通常排成一個隊列,稱就緒隊列。執(zhí)行狀態(tài)已經(jīng)獲得CPU,正在運行。在單處理機系統(tǒng)只有一個進程處于執(zhí)行狀態(tài)。多處理機系統(tǒng)則有多個處于執(zhí)行狀態(tài)。阻塞狀態(tài)正在執(zhí)行的進程由于發(fā)生某事件而暫時無法繼續(xù)執(zhí)行時,放棄處理機而進入的狀態(tài),又稱等待狀態(tài)。引起阻塞的事件:請求I/O,申請緩存。進程的基本狀態(tài)轉(zhuǎn)換就緒阻塞執(zhí)行I/O請求I/O完成時間片完進程調(diào)度進程控制塊進程結(jié)構(gòu)PCB進程控制塊程序段數(shù)據(jù)段進程控制塊PCB是OS中最重要的記錄型結(jié)構(gòu)。OS用PCB對并發(fā)進程進行管理和控制。PCB是進程存在的唯一標志。PCB常駐內(nèi)存。OS專門開辟PCB區(qū)將所有的PCB組織成若干個鏈表或隊列。PCB中的信息(1)進程標志符:由系統(tǒng)創(chuàng)建進程時分配給進程的唯一標識號,通常為一整數(shù),稱為進程號,用于區(qū)分不同的進程。其所屬用戶通常也為一整數(shù),稱為用戶號。(2)處理機狀態(tài)(斷點信息):即處理機中各種寄存器(通用寄存器、PC、PSW,用戶棧指針等)的內(nèi)容(3)進程調(diào)度信息:記錄了進程調(diào)度的相關(guān)信息(狀態(tài)、優(yōu)先級、事件等)。(4)進程控制信息:記錄了系統(tǒng)對進程控制的信息(程序和數(shù)據(jù)的地址、同步機制、資源清單、鏈接指針)PCB的組織方式(1)鏈接方式把同一狀態(tài)的PCB,用其中的鏈接字鏈接成一個隊列。如:就緒隊列、阻塞隊列(根據(jù)不同阻塞原因)、空白隊列。(2)索引方式建立就緒索引表、阻塞索引表等。把索引表在內(nèi)存的首地址放在內(nèi)存的專用單元中。鏈接方式執(zhí)行指針

就緒隊列指針阻塞隊列指針空閑隊列指針PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB911索引方式執(zhí)行指針

就緒表指針阻塞表指針PCB1PCB2PCB3PCB4PCB5PCB6PCB7進程管理中最基本功能是進程控制進程控制任務(wù):進程的創(chuàng)建、終止、進程狀態(tài)的轉(zhuǎn)變等進程控制一般由OS內(nèi)核來實現(xiàn)。進程的控制進程創(chuàng)建DBCAEFGH祖先進程父進程子進程進程圖引起創(chuàng)建進程的事件用戶登錄:在分時OS中,用戶在終端鍵入登錄命令后,如是合法用戶,則系統(tǒng)為該終端創(chuàng)建一進程,并插入就緒隊列。

作業(yè)調(diào)度:在批處理OS中,當(dāng)按某算法調(diào)度一作業(yè)從外存進內(nèi)存,系統(tǒng)為之分配必要資源,同時為該作業(yè)創(chuàng)建一進程,并插入就緒隊列。提供服務(wù):在程序運行中,若用戶需某種服務(wù),則系統(tǒng)創(chuàng)建一進程為用戶提供服務(wù),并插入就緒隊列。

應(yīng)用請求:在運行中,由于應(yīng)用進程本身的需求,自己創(chuàng)建一進程,并插入就緒隊列。由系統(tǒng)內(nèi)核創(chuàng)建由自己創(chuàng)建進程的創(chuàng)建操作系統(tǒng)一旦發(fā)現(xiàn)了要求創(chuàng)建進程的事件后,便調(diào)用進程創(chuàng)建原語create()按以下過程創(chuàng)建一新進程:申請一個空閑的PCB為新進程分配資源對PCB初始化將PCB插入就緒隊列返回一個進程標識號引起進程終止的事件正常結(jié)束

異常結(jié)束

外界干預(yù)

①越界錯誤。②保護錯。③非法指令。④特權(quán)指令錯。⑤運行超時。⑥等待超時。⑦算術(shù)運算錯。⑧I/O故障。

①操作員或os干預(yù)。②被父進程終止

③父進程終止

進程的撤消進程撤消的過程在運行?NYNY由標識符在PCB集中找PCB并讀狀態(tài)歸還占有資源從所在隊列(索引表)撤消PCB中止運行重置調(diào)度標志終止所有子孫進程有子孫進程?引起阻塞和喚醒的事件請求系統(tǒng)服務(wù)啟動某種操作新數(shù)據(jù)尚未到無新工作可做進程的阻塞與喚醒進程阻塞過程入口保存當(dāng)前進程的CPU現(xiàn)場置該進程狀態(tài)(執(zhí)行-阻塞)進入等待隊列轉(zhuǎn)進程調(diào)度由阻塞原語BLOCK

完成進程喚醒過程入口從等待隊列中摘下被喚醒進程修改PCB中的狀態(tài)(阻塞-就緒)進入就緒隊列轉(zhuǎn)進程調(diào)度或返回由喚醒原語WAKEUP

完成注意BLOCK和WAKEUP是一隊作用相反的原語。如果在某進程中調(diào)用了阻塞原語,則必須在與之相合作的另一進程中或其他相關(guān)的進程中,安排喚醒原語,以能喚醒阻塞進程;否則,被阻塞進程將會因不能被喚醒而長久地處于阻塞狀態(tài),從而再無機會繼續(xù)運行。習(xí)題在操作系統(tǒng)中為什么要引入進程概念?PCB的作用是什么?它是怎樣描述進程的動態(tài)性質(zhì)的?3.進程的基本狀態(tài)有哪幾種?試描繪進程狀態(tài)轉(zhuǎn)換圖。4.試從動態(tài)性、并發(fā)性和獨立性上比較進程和程序。

Q&A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論