版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于RISC-V代理內(nèi)核的操作系統(tǒng)課程實(shí)驗與課程設(shè)計第五章.實(shí)驗3:進(jìn)程管理目錄實(shí)驗3的基礎(chǔ)知識多任務(wù)環(huán)境下進(jìn)程的封裝進(jìn)程的換入與換出就緒進(jìn)程的管理與調(diào)度實(shí)驗內(nèi)容lab3_1進(jìn)程創(chuàng)建(fork)lab3_2進(jìn)程yieldlab3_3循環(huán)輪轉(zhuǎn)調(diào)度實(shí)驗3的基礎(chǔ)知識多任務(wù)環(huán)境下進(jìn)程的封裝實(shí)驗三的PKE操作系統(tǒng)將需要支持多個進(jìn)程的執(zhí)行。操作系統(tǒng)定義了進(jìn)程池(processprocs[NPROC];)。并對進(jìn)程的結(jié)構(gòu)進(jìn)行了擴(kuò)充,加入以下成員:mapped_info;//pointstoapagethatcontainsmapped_regionstotal_mapped_region;
//nextfreemappedregioninmapped_infouint64pid;//processid,intstatus;//processstatus,structprocess*parent;//parentprocess,structprocess*queue_next;//nextqueueelement;多任務(wù)環(huán)境下進(jìn)程的封裝進(jìn)程可能擁有的段分為以下幾個類型:enumsegment_type{CODE_SEGMENT,//ELFsegmentDATA_SEGMENT,//ELFsegmentSTACK_SEGMENT,//runtimesegmentCONTEXT_SEGMENT,//trapframesegmentSYSTEM_SEGMENT,//systemsegment};進(jìn)程具有以下幾種狀態(tài):enumproc_status{FREE,//unusedstateREADY,//readystateRUNNING,//currentlyrunningBLOCKED,//waitingforsomethingZOMBIE,//terminatedbutnotreclaimedyet};進(jìn)程的啟動進(jìn)程啟動的步驟:一、調(diào)用alloc_process()函數(shù):找到一個空的進(jìn)程結(jié)構(gòu)體為新創(chuàng)建的進(jìn)程建立了KERN_BASE以上邏輯地址的映射將映射信息保存到進(jìn)程結(jié)構(gòu)中二、調(diào)用load_bincode_from_host_elf()函數(shù)載入給定應(yīng)用對應(yīng)的ELF文件的各個段三、調(diào)用的elf_load()函數(shù)在載入段后,將對被載入的段進(jìn)行判斷,以記錄它們的虛地址映射,此時將形成用戶進(jìn)程的虛地址空間結(jié)構(gòu)。四、通過switch_to()函數(shù)將所構(gòu)造的進(jìn)程投入執(zhí)行;進(jìn)程的終止進(jìn)程的終止通過exit系統(tǒng)調(diào)用實(shí)現(xiàn):一、調(diào)用free_process(current):將進(jìn)程設(shè)為ZOMBIE狀態(tài),而不會將進(jìn)程所占用的資源全部釋放。該函數(shù)被調(diào)用時操作系統(tǒng)是在S模式下運(yùn)行,而按照PKE的設(shè)計思想,S態(tài)的運(yùn)行將使用當(dāng)前進(jìn)程的用戶系統(tǒng)棧。此時,如果將當(dāng)前進(jìn)程的內(nèi)存空間進(jìn)行釋放,將導(dǎo)致操作系統(tǒng)本身的崩潰。二、調(diào)用schedule()函數(shù):選擇系統(tǒng)中可能存在的其他處于就緒狀態(tài)的進(jìn)程投入運(yùn)行。就緒進(jìn)程的管理與調(diào)度PKE的操作系統(tǒng)設(shè)計了一個非常簡單的就緒隊列管理。將一個進(jìn)程加入就緒隊列,可以調(diào)用insert_to_ready_queue()函數(shù):若就緒隊列為空,將本進(jìn)程作為就緒隊列頭。若就緒隊列非空,則將本進(jìn)程加入就緒隊尾。PKE內(nèi)核通過調(diào)用schedule()函數(shù)來完成進(jìn)程的選擇和換入:若就緒隊列空,檢查是否存在未結(jié)束的進(jìn)程。如果有,等待期執(zhí)行結(jié)束;如果無,則啟動關(guān)機(jī)程序。若就緒隊列非空,將就緒隊列隊首的進(jìn)程換入執(zhí)行。目錄實(shí)驗3的基礎(chǔ)知識多任務(wù)環(huán)境下進(jìn)程的封裝進(jìn)程的換入與換出就緒進(jìn)程的管理與調(diào)度實(shí)驗內(nèi)容lab3_1進(jìn)程創(chuàng)建(fork)lab3_2進(jìn)程yieldlab3_3循環(huán)輪轉(zhuǎn)調(diào)度lab3_1進(jìn)程創(chuàng)建(fork)給定應(yīng)用預(yù)期輸出lab3_1進(jìn)程創(chuàng)建(fork)實(shí)驗內(nèi)容:主進(jìn)程調(diào)用fork()函數(shù)試圖創(chuàng)建一個子進(jìn)程,但是應(yīng)用程序的fork動作并未將子進(jìn)程給創(chuàng)建出來并投入運(yùn)行。修改kernel/process.c文件中的do_fork()函數(shù)。對于父進(jìn)程的代碼段,通過映射的辦法,將子進(jìn)程中對應(yīng)的邏輯地址空間映射到其父進(jìn)程中裝載代碼段的物理頁面。lab3_2進(jìn)程yield給定應(yīng)用預(yù)期輸出lab3_2進(jìn)程yield實(shí)驗內(nèi)容:yield()函數(shù)功能未完善導(dǎo)致使得進(jìn)程無法讓出執(zhí)行權(quán)。完善yield()函數(shù)實(shí)現(xiàn)進(jìn)程執(zhí)行過程中的主動釋放CPU的動作:將當(dāng)前進(jìn)程置為就緒狀態(tài)(READY);將當(dāng)前進(jìn)程加入到就緒隊列的隊尾;轉(zhuǎn)進(jìn)程調(diào)度。lab3_3循環(huán)輪轉(zhuǎn)調(diào)度給定應(yīng)用預(yù)期輸出lab3_3循環(huán)輪轉(zhuǎn)調(diào)度實(shí)驗內(nèi)容:兩個進(jìn)程
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度青海省公共營養(yǎng)師之四級營養(yǎng)師模擬考試試卷A卷含答案
- 2025年度寵物狗寵物食品原料供應(yīng)合同3篇
- 2025年度苗木種植與鄉(xiāng)村振興戰(zhàn)略合作合同4篇
- 二零二五年度抹灰施工安全教育培訓(xùn)基地建設(shè)合同4篇
- 二零二五年度旅游線路開發(fā)代理合同4篇
- 二零二五年度寵物訓(xùn)練學(xué)院合作辦學(xué)合同4篇
- 二零二五年度畜牧技術(shù)人員就業(yè)保障合同2篇
- 家庭急救箱的應(yīng)急響應(yīng)能力評估
- 2025年度個人房屋維修服務(wù)轉(zhuǎn)讓合同標(biāo)準(zhǔn)2篇
- 2025年度酒店客房翻新改造合同書范本2篇
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 電力溝施工組織設(shè)計-電纜溝
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計)(人教版2024)八年級物理下冊
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運(yùn)動能力測評規(guī)范
- 鍋爐本體安裝單位工程驗收表格
- 高危妊娠的評估和護(hù)理
評論
0/150
提交評論