




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 進(jìn)程創(chuàng)建模擬實(shí)驗(yàn)學(xué)時(shí): 2實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)要求:必修一、實(shí)驗(yàn)?zāi)康?) 理解進(jìn)程創(chuàng)建相關(guān)理論;2) 掌握進(jìn)程創(chuàng)建方法;3) 掌握進(jìn)程相關(guān)數(shù)據(jù)結(jié)構(gòu)。二、實(shí)驗(yàn)容 本實(shí)驗(yàn)針對(duì)操作系統(tǒng)中進(jìn)程創(chuàng)建相關(guān)理論進(jìn)行實(shí)驗(yàn)。要驗(yàn)者輸入實(shí)驗(yàn)指導(dǎo)書提供的代碼 并進(jìn)行測(cè)試。代碼簡(jiǎn)化了進(jìn)程創(chuàng)建的多個(gè)步驟和容。進(jìn)程的樹形結(jié)構(gòu)采用廣義二叉樹的方式 進(jìn)行存儲(chǔ)。三、實(shí)驗(yàn)原理1) 進(jìn)程控制塊為了描述和控制進(jìn)程的運(yùn)行,系統(tǒng)為每個(gè)進(jìn)程定義了一個(gè)進(jìn)程控制塊(PCB),它是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)管理進(jìn)程最重要的數(shù)據(jù)結(jié)構(gòu)。其主要包含四類信息:(1) 進(jìn)程標(biāo)識(shí)符 它唯一地標(biāo)識(shí)一個(gè)進(jìn)程。通常包括進(jìn)程號(hào) pid ,父進(jìn)程號(hào) ppid
2、 和用戶號(hào) uid 。(2) 處理機(jī)狀態(tài)處理器的狀態(tài)通常由處理機(jī)的各種寄存器中的容組成。 PCB 存放中斷(阻塞,掛起)時(shí)的各 寄存器值,當(dāng)該進(jìn)程重新執(zhí)行時(shí),可以從斷點(diǎn)處恢復(fù)。主要包括:a) 通用寄存器;b) 指令計(jì)數(shù)器;c) 程序狀態(tài)字 PSW;d) 用戶棧指針。(3) 進(jìn)程調(diào)度信息a) 進(jìn)程狀態(tài);b) 進(jìn)程優(yōu)先級(jí)(用于描述優(yōu)先使用 cpu 級(jí)別的一個(gè)整數(shù),高優(yōu)先級(jí)的進(jìn)程先得到 cpu,通常情況下,優(yōu)先值越小優(yōu)先級(jí)越高);c) 其它信息(等待時(shí)間、總執(zhí)行時(shí)間等);d) 事件(等待原因)。(4) 進(jìn)程控制信息a) 程序和數(shù)據(jù)的地址(程序在存和外存中的首址);b) 進(jìn)程同步和通信機(jī)制;c) 資源
3、列表(進(jìn)程除 CPU 以外的所有資源);d) 指針(進(jìn)程隊(duì)列中指向下一個(gè)進(jìn)程的 PCB 首址)。2) 進(jìn)程創(chuàng)建流程(1) 申請(qǐng)空白 PCB為新進(jìn)程申請(qǐng)獲得唯一的數(shù)字標(biāo)識(shí)符,并從 PCB 集合中索取一個(gè)空白 PCB。如果無(wú)空白PCB,可以創(chuàng)建一個(gè)新的 PCB。在本實(shí)驗(yàn)中,每次動(dòng)態(tài)創(chuàng)建 PCB。(2) 為新進(jìn)程分配資源為新進(jìn)程分配存空間和??臻g。(3) 初始化進(jìn)程控制塊a) 初始化標(biāo)識(shí)信息;b) 初始化處理機(jī)狀態(tài)信息;c) 初始化處理機(jī)控制信息。(4) 將新進(jìn)程插入就緒隊(duì)列3) 進(jìn)程樹進(jìn)程樹用于描述進(jìn)程家族關(guān)系,如圖 1-1 中可以看出, 進(jìn)程 P1 創(chuàng)建了進(jìn)程 P2 、P3、P4、P5,而 P2
4、 又創(chuàng)建了 P6 、P7、P8。在進(jìn)程創(chuàng)建過(guò)程中,需要對(duì)每一個(gè)新增加的進(jìn)程加入到進(jìn)程樹中,有了清晰的父子關(guān)系,可以使資源繼承或進(jìn)程刪除等操作變得很方便。4) 進(jìn)程總鏈PCB 放入總鏈中,該總鏈可以對(duì)破它是一個(gè) PCB 鏈表,每一個(gè)新創(chuàng)建的進(jìn)程必須把其 壞的進(jìn)程樹進(jìn)行修復(fù),也方便 PCB 查找。四、可能用到的數(shù)據(jù)結(jié)構(gòu)和操作的部分代碼1. 數(shù)據(jù)結(jié)構(gòu)/process control block :有些 pcb 的容是考慮到以后調(diào)度功能而設(shè)置的 struct pcbint pid;/process idint ppid;/parent process idint prio;/priorityint s
5、tate;/stateint lasttime;/last execute timeint tottime; /totle execute time;/process nodestruct pnodepcb *node; pnode *sub; pnode *brother; pnode *next;/信號(hào)量struct semphore char name5; / 名稱 int count;/ 計(jì)數(shù)值 int curpid;/ 當(dāng)前進(jìn)程 id pnode *wlist; / 等待鏈表;2.操作2.1 / 初始化錯(cuò)誤提示信息;2.2 /create processint createpc(in
6、t *para)/add your code here:/ find ppid of this process/init new pcb/add to process tree/ add to process link/show process detailvoid showdetail()/add your code here/print all pcb info/main 函數(shù)可參考下面的代碼,也可以自己寫void main() initerror(); short cflag/* (命令標(biāo)志) */,pflag/* (參數(shù)標(biāo)志) */; char cmdstr32;proot = new
7、 pnode; / 創(chuàng)建根節(jié)點(diǎn)進(jìn)程 proot-node=new pcb;/初始化根節(jié)點(diǎn)的 pcb proot-node-pid=0; proot-node-ppid=-1; proot-node-prio=0;proot-next=NULL;proot-sub=NULL;proot-brother=NULL;plink=proot;for(;)cflag=0;pflag=0;printf(cmd:);scanf(%s,cmdstr);if(!strcmp(cmdstr,exit) /exit the programbreak;if(!strcmp(cmdstr,showdetail)cfla
8、g = 1;pflag = 1;showdetail();elseint *para;char *s,*s1;s = strstr(cmdstr,createpc); /create processif(s)cflag=1;para = (int *)malloc(3);/getparameters1 = substr(s,instr(s,()+1,strlen(s)-2); /get param string para=strtoarray(s1);/get parameter createpc(para); /create process pflag=1;if(!cflag)geterro
9、r(0);elseif(!pflag)geterror(1);五、實(shí)驗(yàn)步驟完善實(shí)驗(yàn)提供的代碼后,輸入 createpc 命令創(chuàng)建進(jìn)程,輸入 showdetail 顯示每個(gè)進(jìn)程 及其子進(jìn)程的信息,測(cè)試命令解釋如下:1) createpc 創(chuàng)建進(jìn)程命令。參數(shù): 1、 pid (進(jìn)程 id) 2 、 ppid(父進(jìn)程 id) 3、prio (優(yōu)先級(jí))。示例: createpc(1,0,1) 。創(chuàng)建一個(gè)進(jìn)程,其進(jìn)程號(hào)為 1,父進(jìn)程號(hào)為 0,優(yōu)先級(jí)為 1. createpc(2,1,2) 。創(chuàng)建一個(gè)進(jìn)程,其進(jìn)程號(hào)為 2,父進(jìn)程號(hào)為 1,優(yōu)先級(jí)為 2。2) showdetail 顯示進(jìn)程信息命令。3)ex
10、it 退出命令行。六、實(shí)習(xí)報(bào)告容1畫出你所創(chuàng)建的進(jìn)程樹的結(jié)構(gòu)圖(也可以用上述圖1-1)。2. 顯示運(yùn)行結(jié)果:至少有五次運(yùn)行過(guò)程截圖,這五次截圖分 別展現(xiàn)不同類型的父子關(guān)系,并在截圖的下方配文字以說(shuō)明 自己創(chuàng)建的進(jìn)程數(shù)量以及這圖所展示的進(jìn)程家族關(guān)系。createpc(1,0,1)Showdetail以 P1 為第一層,運(yùn)行結(jié)果;createpc(1,0,1)createpc(2,1,2) createpc(3,1,2) Showdetail以 P1為第一層, P2, P3為第二層,且為 P1 的子進(jìn)程,運(yùn)行結(jié)果;createpc(1,0,1) createpc(2,1,2) createpc(3
11、,1,2) createpc(4,2,3) createpc(5,2,3) createpc(6,3,3) createpc(7,3,3) Showdetail以 P1 為第一層, P2,P3 為第二層,且為 P1 的子進(jìn)程; P4, P5, P6,P7 為第三層; P4,P5 為 P2 的子進(jìn)程; P6,P7為 P3 的子進(jìn)程;運(yùn)行結(jié)果;createpc(1,0,1)createpc(2,1,2) createpc(3,1,2)createpc(4,2,3)createpc(5,2,3) createpc(6,3,3) createpc(7,3,3) createpc(8,4,4) crea
12、tepc(9,4,4) createpc(10,6,4) createpc(11,6,4) createpc(12,7,4) createpc(13,7,4) Showdetail以 P1為第一層, P2,P3為第二層,且為 P1 的子進(jìn)程; P4, P5, P6,P7 為第三層; P4,P5 為 P2 的子進(jìn)程; P6,P7為 P3的子進(jìn)程; P8,P9, P10,P11, P12, P13 為第四層,且 P8, P9為 P4的子進(jìn)程; P10, P11為 P6的子進(jìn)程; P12,P13為P7的子進(jìn)程;運(yùn)行結(jié)果;createpc(1,0,1)createpc(2,1,2) createpc(
13、3,1,2)createpc(4,2,3)createpc(5,2,3) createpc(6,3,3)createpc(7,3,3)createpc(8,4,4) createpc(9,4,4) createpc(10,6,4) createpc(11,6,4) createpc(12,7,4) createpc(13,7,4) createpc(14,8,5) createpc(15,8,5) Showdetail以 P1為第一層, P2,P3為第二層,且為 P1 的子進(jìn)程; P4, P5, P6,P7 為第三層; P4,P5 為 P2 的子進(jìn)程; P6,P7為 P3的子進(jìn)程; P8,P9, P10,P11, P12, P13 為第四層,且 P8, P9為 P4的子進(jìn)程; P10,P11為 P6的子進(jìn)程; P12,P13為 P7的子進(jìn)程;運(yùn)行結(jié)果; P14, P15 為第五層,且為 P8的子進(jìn)程,運(yùn)行結(jié)果;3. 說(shuō) 明 您 的 關(guān) 鍵 函 數(shù) 的 流 程 : 說(shuō) 明 createpc(para)函 數(shù) 、 showdetail() 函數(shù)和 main()函數(shù)的功能,并以流程圖或文字 的形式展現(xiàn)。createpc(para)函數(shù):創(chuàng)建進(jìn)程showdetail() 函數(shù):顯示進(jìn)程的細(xì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加強(qiáng)林業(yè)資源保護(hù)重視林業(yè)快速發(fā)展
- 中小學(xué)生法制教育主題班會(huì)
- 跨境電商代理授權(quán)及售后服務(wù)合同
- 汽車銷售公司車輛售后服務(wù)及客戶關(guān)系維護(hù)合同
- 倉(cāng)儲(chǔ)式超市場(chǎng)地租賃合同
- 國(guó)際快遞常年運(yùn)輸合同范本
- 商業(yè)街區(qū)立體停車庫(kù)租賃及運(yùn)營(yíng)管理合同
- 中班健康:我的心情管理
- 陽(yáng)光物業(yè)子公司下屬員工選聘與崗位培訓(xùn)合同
- 餐廳廚房承包與特色調(diào)料研發(fā)合同
- 技術(shù)規(guī)范書【模板】
- 實(shí)驗(yàn)室改造施工合同
- 四大名著文學(xué)常識(shí)單選題100道及答案解析
- 物業(yè)管理師三級(jí)實(shí)操案例題
- 新教科版二年級(jí)科學(xué)下冊(cè)全冊(cè)教案
- 血液系統(tǒng)疾病智慧樹知到答案2024年哈爾濱醫(yī)科大學(xué)附屬第一醫(yī)院
- 遼寧省沈陽(yáng)市沈北新區(qū)2024屆小升初考試數(shù)學(xué)試卷含解析
- 南京市指導(dǎo)服務(wù)企業(yè)安全生產(chǎn)工作指引-加油站現(xiàn)場(chǎng)安全重點(diǎn)檢查指引分冊(cè)
- AQ/T 2077-2020 頁(yè)巖氣井獨(dú)立式帶壓作業(yè)機(jī)起下管柱作業(yè)安全技術(shù)規(guī)范(正式版)
- 【8物(滬科版)】合肥市第四十五中學(xué)2023-2024學(xué)年八年級(jí)下學(xué)期期末物理試題
- 國(guó)家開放大學(xué)(浙江)地域文化(本)作業(yè)1-5
評(píng)論
0/150
提交評(píng)論