《鴻蒙智能互聯(lián)設備開發(fā)(微課版)》 課件 5.3.1 進程管理_第1頁
《鴻蒙智能互聯(lián)設備開發(fā)(微課版)》 課件 5.3.1 進程管理_第2頁
《鴻蒙智能互聯(lián)設備開發(fā)(微課版)》 課件 5.3.1 進程管理_第3頁
《鴻蒙智能互聯(lián)設備開發(fā)(微課版)》 課件 5.3.1 進程管理_第4頁
《鴻蒙智能互聯(lián)設備開發(fā)(微課版)》 課件 5.3.1 進程管理_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

5.3.1進程管理通過本節(jié)學習,您可以:了解進程管理進程管理進程是系統(tǒng)資源管理的基本單元。OpenHarmonyLiteOS-A內核提供的進程模塊主要用于實現(xiàn)用戶態(tài)進程的隔離,不涉及內核態(tài)進程。進程模塊主要為用戶提供多個進程,實現(xiàn)了進程之間的切換和通信,幫助用戶管理業(yè)務程序流程。進程采用搶占式調度機制,采用高優(yōu)先級優(yōu)先加同優(yōu)先級時間片輪轉的調度算法。進程一共有32個優(yōu)先級(0-31),用戶進程可配置的優(yōu)先級有22個(10-31),最高優(yōu)先級為10,最低優(yōu)先級為31。高優(yōu)先級的進程可搶占低優(yōu)先級進程,低優(yōu)先級進程必須在高優(yōu)先級進程阻塞或結束后才能得到調度。每一個用戶態(tài)進程均擁有自己獨立的進程空間,相互之間不可見,實現(xiàn)進程間隔離。用戶態(tài)根進程init由內核態(tài)創(chuàng)建,其它用戶態(tài)子進程均由init進程創(chuàng)建而來。1.

進程的概念進程管理進程有多種狀態(tài),各狀態(tài)之間的關系如圖所示:2.進程狀態(tài)初始化(Init):進程正在被創(chuàng)建。就緒態(tài)(Ready):進程在就緒列表中,等待CPU調度。運行態(tài)(Running):進程正在運行。阻塞態(tài)(Pending):進程被阻塞掛起。本進程內所有的線程均被阻塞時,進程被阻塞掛起。僵尸態(tài)(Zombies):進程運行結束,等待父進程回收其控制塊資源。進程管理初始化→就緒態(tài):進程創(chuàng)建或fork時,拿到對應進程控制塊后進入Init狀態(tài),即進程初始化階段,當該階段完成后進程將被插入調度隊列,此時進程進入就緒狀態(tài)。就緒態(tài)→運行態(tài):發(fā)生進程切換時,就緒列表中優(yōu)先級最高且獲得時間片的進程被執(zhí)行,從而進入運行態(tài)。若此時該進程中已無其它線程處于就緒態(tài),則進程從就緒列表刪除,只處于運行態(tài);若此時該進程中還有其它線程處于就緒態(tài),則該進程依舊在就緒隊列,此時進程的就緒態(tài)和運行態(tài)共存,但對外呈現(xiàn)的進程狀態(tài)為運行態(tài)。

初始化就緒態(tài)阻塞態(tài)運行態(tài)僵尸態(tài)進程管理運行態(tài)→阻塞態(tài):進程在最后一個線程轉為阻塞態(tài)時,進程內所有的線程均處于阻塞態(tài),此時進程同步進入阻塞態(tài),然后發(fā)生進程切換。阻塞態(tài)→就緒態(tài):阻塞進程內的任意線程恢復就緒態(tài)時,進程被加入到就緒隊列,同步轉為就緒態(tài)。就緒態(tài)→阻塞態(tài):進程內的最后一個就緒態(tài)線程轉為阻塞態(tài)時,進程從就緒列表中刪除,進程由就緒態(tài)轉為阻塞態(tài)。

初始化就緒態(tài)阻塞態(tài)運行態(tài)僵尸態(tài)進程管理運行態(tài)→就緒態(tài):有更高優(yōu)先級的進程創(chuàng)建或者恢復后,會發(fā)生進程調度,此刻就緒列表中最高優(yōu)先級進程變?yōu)檫\行態(tài),那么原先運行的進程由運行態(tài)變?yōu)榫途w態(tài)。若進程的調度策略為LOS_SCHED_RR(時間片輪轉),且存在同一優(yōu)先級的另一個進程處于就緒態(tài),則該進程的時間片消耗光之后,該進程由運行態(tài)轉為就緒態(tài),另一個同優(yōu)先級的進程由就緒態(tài)轉為運行態(tài)。

初始化就緒態(tài)阻塞態(tài)運行態(tài)僵尸態(tài)進程管理運行態(tài)→僵尸態(tài):當進程的主線程或所有線程運行結束后,進程由運行態(tài)轉為僵尸態(tài),等待父進程回收資源。

初始化就緒態(tài)阻塞態(tài)運行態(tài)僵尸態(tài)進程管理進程管理主要是合理的分配各個進程使用CPU的時間。用戶態(tài)進程由Init進程分解而來,如圖所示。fork進程時會將父進程的進程虛擬內存空間克隆到子進程,子進程實際運行時通過寫時復制機制將父進程的內容按需復制到子進程的虛擬內存空間。3.進程運行機制用戶態(tài)進程

多線程用戶態(tài)進程

多線程Init進程

多線程進程管理OpenHarmonyLiteOS-A內核的進程管理模塊提供了進程組、用戶組、進程創(chuàng)建等接口。4.進程接口功能分類接口名接口描述獲取進程IDLOS_GetCurrProcessID獲取當前進程的進程ID進程組LOS_GetProcessGroupID獲取指定進程的進程組IDLOS_GetCurrProcessGroupID獲取當前進程的進程組ID用戶及用戶組LOS_GetUserID獲取當前進程的用戶IDLOS_GetGroupID獲取當前進程的用戶組IDLOS_CheckInGroups檢查指定用戶組ID是否在當前進程的用戶組內進程管理功能分類接口名接口描述進度調度參數(shù)控制LOS_GetProcessScheduler獲取指定進程的調度策略LOS_SetProcessScheduler設置指定進程的調度參數(shù),包括優(yōu)先級和調度策略LOS_SetProcessPriority設置進程優(yōu)先級LOS_GetProcessPriority獲取進程優(yōu)先級系統(tǒng)支持的最大進程數(shù)LOS_GetSystemProcessMaximum獲取系統(tǒng)支持的最大進程數(shù)目LOS_GetUsedPIDList獲得已使用的進程ID列表進程管理功

溫馨提示

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

評論

0/150

提交評論