實(shí)驗(yàn)一進(jìn)程創(chuàng)建模擬報(bào)告_第1頁
實(shí)驗(yàn)一進(jìn)程創(chuàng)建模擬報(bào)告_第2頁
實(shí)驗(yàn)一進(jìn)程創(chuàng)建模擬報(bào)告_第3頁
實(shí)驗(yàn)一進(jìn)程創(chuàng)建模擬報(bào)告_第4頁
實(shí)驗(yàn)一進(jìn)程創(chuàng)建模擬報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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)針對操作系統(tǒng)中進(jìn)程創(chuàng)建相關(guān)理論進(jìn)行實(shí)驗(yàn)。要驗(yàn)者輸入實(shí)驗(yàn)指導(dǎo)書提供的代碼 并進(jìn)行測試。代碼簡化了進(jìn)程創(chuàng)建的多個(gè)步驟和容。進(jìn)程的樹形結(jié)構(gòu)采用廣義二叉樹的方式 進(jìn)行存儲。三、實(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)識符 它唯一地標(biāo)識一個(gè)進(jìn)程。通常包括進(jìn)程號 pid ,父進(jìn)程號 ppid

2、 和用戶號 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)先級(用于描述優(yōu)先使用 cpu 級別的一個(gè)整數(shù),高優(yōu)先級的進(jìn)程先得到 cpu,通常情況下,優(yōu)先值越小優(yōu)先級越高);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) 申請空白 PCB為新進(jìn)程申請獲得唯一的數(shù)字標(biāo)識符,并從 PCB 集合中索取一個(gè)空白 PCB。如果無空白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)識信息;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)建過程中,需要對每一個(gè)新增加的進(jìn)程加入到進(jìn)程樹中,有了清晰的父子關(guān)系,可以使資源繼承或進(jìn)程刪除等操作變得很方便。4) 進(jìn)程總鏈PCB 放入總鏈中,該總鏈可以對破它是一個(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;/信號量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)程的信息,測試命令解釋如下:1) createpc 創(chuàng)建進(jìn)程命令。參數(shù): 1、 pid (進(jìn)程 id) 2 、 ppid(父進(jìn)程 id) 3、prio (優(yōu)先級)。示例: createpc(1,0,1) 。創(chuàng)建一個(gè)進(jìn)程,其進(jìn)程號為 1,父進(jìn)程號為 0,優(yōu)先級為 1. createpc(2,1,2) 。創(chuàng)建一個(gè)進(jìn)程,其進(jìn)程號為 2,父進(jìn)程號為 1,優(yōu)先級為 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)行過程截圖,這五次截圖分 別展現(xiàn)不同類型的父子關(guān)系,并在截圖的下方配文字以說明 自己創(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. 說 明 您 的 關(guān) 鍵 函 數(shù) 的 流 程 : 說 明 createpc(para)函 數(shù) 、 showdetail() 函數(shù)和 main()函數(shù)的功能,并以流程圖或文字 的形式展現(xiàn)。createpc(para)函數(shù):創(chuàng)建進(jìn)程showdetail() 函數(shù):顯示進(jìn)程的細(xì)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論