![操作系統(tǒng)實(shí)驗(yàn)二進(jìn)程管理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/185570b1-146c-411d-b360-464a2f33a779/185570b1-146c-411d-b360-464a2f33a7791.gif)
![操作系統(tǒng)實(shí)驗(yàn)二進(jìn)程管理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/185570b1-146c-411d-b360-464a2f33a779/185570b1-146c-411d-b360-464a2f33a7792.gif)
![操作系統(tǒng)實(shí)驗(yàn)二進(jìn)程管理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/9/185570b1-146c-411d-b360-464a2f33a779/185570b1-146c-411d-b360-464a2f33a7793.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)二進(jìn)程管理學(xué)號(hào)姓名 班級(jí) 華僑大學(xué)電子工程系實(shí)驗(yàn)?zāi)康?、理解進(jìn)程的概念,明確進(jìn)程和程序的區(qū)別。2、理解并發(fā)執(zhí)行的實(shí)質(zhì)。3、掌握進(jìn)程的創(chuàng)建、睡眠、撤銷等進(jìn)程控制方法。實(shí)驗(yàn)內(nèi)容與要求基本要求:用C語言編寫程序,模擬實(shí)現(xiàn)創(chuàng)建新的進(jìn)程;查看運(yùn)行進(jìn)程;換 出某個(gè)進(jìn)程;殺死進(jìn)程等功能。實(shí)驗(yàn)報(bào)告內(nèi)容1、進(jìn)程、進(jìn)程控制塊等的基本原理。進(jìn)程是現(xiàn)代操作系統(tǒng)中的一個(gè)最基本也是最重要的概念,掌握這個(gè)概念對(duì)于理解操作系統(tǒng)實(shí)質(zhì),分析、設(shè)計(jì)操作系統(tǒng)都有其非常重要的意義。為了強(qiáng)調(diào)進(jìn)程的并發(fā)性和動(dòng)態(tài)性,可以給進(jìn)程作如下定義: 進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單
2、位。進(jìn)程又就緒、執(zhí)行、阻塞三種基本狀態(tài),三者的變遷圖如下:由于多個(gè)程序并發(fā)執(zhí)行,各程序需要輪流使用CPU當(dāng)某程序不在 CPU上運(yùn)行時(shí),必須保留其被中斷的程序的現(xiàn)場,包括:斷點(diǎn)地址、程序狀態(tài)字、通用寄存器的內(nèi)容、堆棧內(nèi)容、程序當(dāng)前狀態(tài)、程序的大小、運(yùn)行時(shí)間等信息,以便程序再次獲得CPU時(shí),能夠正確執(zhí)行。為了保存這些內(nèi)容,需要建立一個(gè)專用數(shù)據(jù)結(jié)構(gòu),我們稱這個(gè)數(shù)據(jù)結(jié)構(gòu)為進(jìn)程控制塊PCB(Process Con trol Block)。進(jìn)程控制塊是進(jìn)程存在的惟一標(biāo)志,它跟蹤程序執(zhí)行的情況, 表明了進(jìn)程在當(dāng)前時(shí)刻的塊。在通常的操作系統(tǒng)中, PCB應(yīng)包含如下一些信息: 進(jìn)程標(biāo)識(shí)信息。為了標(biāo)識(shí)系統(tǒng)中的各個(gè)進(jìn)
3、程,每個(gè)進(jìn)程必須有惟一的標(biāo)識(shí)名或標(biāo)識(shí)數(shù)。 位置信息。指出進(jìn)程的程序和數(shù)據(jù)部分在內(nèi)存或外存中的物理位置。 狀態(tài)信息。指出進(jìn)程當(dāng)前所處的狀態(tài),作為進(jìn)程調(diào)度、分配CPU的依據(jù)。 進(jìn)程的優(yōu)先級(jí)。一般根據(jù)進(jìn)程的輕重緩急其它信息。這里給出的只是一般操作系統(tǒng)中PCB所應(yīng)具有的內(nèi)容,不同操作系統(tǒng)的 PCB吉構(gòu)是不同的,我們將在節(jié)介紹 Linux系統(tǒng)的PCB結(jié)構(gòu)。程度為進(jìn)程指定一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)用優(yōu)先數(shù)表示。 進(jìn)程現(xiàn)場保護(hù)區(qū)。當(dāng)進(jìn)程狀態(tài)變化時(shí)(例如一個(gè)進(jìn)程放棄使用CPU ,它需要將當(dāng)時(shí)的CPU現(xiàn)場保護(hù)到內(nèi)存中,以便再次占用CPU時(shí)恢復(fù)正常運(yùn)行,有的系統(tǒng)把要保護(hù)的CPU現(xiàn)場放在進(jìn)程的工作區(qū)中,而PCB中僅給出CP
4、U現(xiàn)場保護(hù)區(qū)起始地址。 資源清單。每個(gè)進(jìn)程在運(yùn)行時(shí),除了需要內(nèi)存外,還需要其它資源,如I/O設(shè)備、外存、數(shù)據(jù)區(qū)等。這一部分指出資源需求、分配和控制信息。 隊(duì)列指針或鏈接字。它用于將處于同一狀態(tài)的進(jìn)程鏈接成一個(gè)隊(duì)列,在該單元中存放下一進(jìn)程PCB首址。 其它信息。這里給出的只是一般操作系統(tǒng)中PCB所應(yīng)具有的內(nèi)容,不同操作系統(tǒng)的 PCB吉構(gòu)是不同的,我們將在節(jié)介紹 Linux系統(tǒng)的PCB結(jié)構(gòu)。2、程序流程圖功能選擇(輸入16)3、程序及注釋。#include<>#include<>#include<>id);struct jincheng_typehuangtai
5、=0) break;for(int j=0;j<i;j+)if(neicuni.pid=neicunj.pid) ouxian);printf("n 請(qǐng)輸入新進(jìn)程大小 n");scanf("%d",&(neicuni.daxiao);printf("n 請(qǐng)輸入新進(jìn)程內(nèi)容 n");scanf("%d",&();id);printf("youxian=%d",neicuni.youxian);printf("daxiao=%d",ne
6、icuni.daxiao);printf("zhuangtai=%d",neicuni.zhuangtai);printf("info=%d",);flag=1;if(!flag) printf("n 當(dāng)前沒有運(yùn)行進(jìn)程 n"); id)if(neicuni.zhuangtai=1) huangtai=2;guaqi+;printf("n 已經(jīng)成功換出進(jìn)程 n");else if(neicuni.zhuangtai=2)printf("n 要喚出的進(jìn)程已被掛起n");id)
7、if(neicuni.zhuangtai=1)huangtai=0;huangtai=2)huangtai=0;shumu-;printf("n 已經(jīng)成功殺死進(jìn)程 n");flag=1;break;if(flag=0) printf("n要?dú)⑺赖倪M(jìn)程不存在 n");id)flag=false;if(neicuni.zhuangtai=2)huangtai=1;guaqi-;printf("n 已經(jīng)成功喚醒進(jìn)程 n");else if(neicuni.zhuangtai=2)printf("n 要喚醒的進(jìn)程已被掛起 n&quo
8、t;);id);printf("youxian=%d",neicuni.youxian); printf("daxiao=%d",neicuni.daxiao); printf("zhuangtai=%d",neicuni.zhuangtai); printf("info=%d",);void main()while(n)huangtai=0;printf("n*n");建新的進(jìn)程 2. 查 看運(yùn)行進(jìn)程 n");printf("n 3. 喚出某個(gè)進(jìn)程
9、4. 殺死某個(gè)進(jìn)程 n");printf("n 5. 喚醒某個(gè)進(jìn)程 6. 查看內(nèi)存狀態(tài) n");printf("n7.退出進(jìn)程n");printf("n請(qǐng)選擇( 1-7 ) n");scanf("%d",&num);/ 功能選擇switch(num) case 1:create();break;case 2:run();break;case 3:huanchu();break;case 4:kill();break;case 5:huanxing();break;case 6:viewall();
10、break;case 7:exit(0);default:n=0; flag=0;4、程序運(yùn)行演示與截圖( 1)創(chuàng)建新進(jìn)程,依次建立進(jìn)程 1、 2、 3,圖中為建立進(jìn)程 2XMKM KMHMKH4K KMMMMKMKMK*«MMKi4K賈退界尋西示系#克.捕酉I 創(chuàng)建新的進(jìn)程2 查看運(yùn)行咗程3 喚出茸個(gè)譴稈 1殺死菇個(gè)咗稈 和喚醍某個(gè)進(jìn)程查看內(nèi)存狀態(tài)7 退岀講程X X MMKMKM MXMMMMMKi<MMXMMMKi<XKX HM.MMKKi青擇(i-7)1請(qǐng)輸入新主柱也靜入壯制圖9請(qǐng)輸入新咗程大小2能輸入新乎祥伏1容(2)查看運(yùn)行的進(jìn)程與查看內(nèi)存狀態(tài)進(jìn)程演示系統(tǒng)*丄-
11、創(chuàng)建新的迸程 氛喚出某個(gè)進(jìn)程 喚醒某個(gè)進(jìn)程2 -査看運(yùn)行進(jìn)程 札殺死某個(gè)進(jìn)程 查看內(nèi)存狀態(tài)仇退出迸程N(yùn)貝貝耳弭耳JtXJfatKNXJCXXN夙耳耗ZiKX耳料科JCXJtK請(qǐng)選擇(1-7)2pid=l 9<n ux iam =1 diKlcio =1 z huan sfta i_ =1 xn f =1 pid=2yfluxian=2 daiao =2Ehwansitai=linFQ =2 pid =3uxiAn =3 daxiao =3ahuangtai=linf o =3 “ Bi K MB II MW if ME it(2)換出進(jìn)程。圖中以換出進(jìn)程 3為例。oH XKK Hmxxj
12、 J 程渾 系 統(tǒng) XXMXXNHXHXHi青選擇(1-7)輸入喚出進(jìn)程5值3已經(jīng)成功換岀進(jìn)程井彳呈 演系 £充托”皿?<1<皿><><?<><晴選擇(1-7)p id=1 ux i -1 d a x i ao e huan «jt a i=1 in f =1 jjiid-2_youx ian-2dax ia.o -2 z huAnjt ail inf c2(4)此時(shí)再次查看運(yùn)行的進(jìn)程與查看內(nèi)存狀態(tài),可以看到進(jìn)程3已不在運(yùn)行的進(jìn)程中,內(nèi)存狀態(tài)中其zhuangtai標(biāo)識(shí)等于2,表明進(jìn)程3確實(shí)已被換出創(chuàng)建新的進(jìn)程2 -查看運(yùn)
13、行進(jìn)程史喚岀某個(gè)進(jìn)程4 殺死某個(gè)進(jìn)程喚醒某個(gè)進(jìn)程氛查看內(nèi)存狀態(tài)譏退出進(jìn)程1 創(chuàng)建新的進(jìn)程2 查看運(yùn)行進(jìn)程恭喚岀某個(gè)進(jìn)程4.殺死某個(gè)進(jìn)程5 喚醮某個(gè)進(jìn)程E .查看內(nèi)存狀態(tài)? 退岀進(jìn)程1 創(chuàng)建新的進(jìn)程 史喚出某個(gè)進(jìn)程 E.喚醒某個(gè)進(jìn)程門退出進(jìn)程 氏查看運(yùn)行進(jìn)程 乩殺死某個(gè)進(jìn)程 查看內(nèi)存狀態(tài)*選擇(I-*?)rp4d=li/cuxS.an «l<lax4ao *lzhuang(ta 1=1 info "1 pzLd =2«/DuxzLan =2daxzLao =2n1iii 云 ngtsi 1=1 zLnf o =2 pid =3<juxlan =3daxl
14、ao =3zhuangta i=2 inf o=,3 pS.d =-0ouxi*n "0d3cS.ao "SzhuAngta i=0inf o =6 pJ.d=6i/ouxJ.an =OdlaxJ.ao =0zhuans(<;a l=0inf o=0 pzLd =G«/ouxzLan =0daxzLao =02 liu An a l=0zLnf o =B pid=Byouxian=Odaxiao=021mangtai=Binfo=B pS.d =-0</ouxi*n "Gdaxiao "Szhuangta i=0inf o =6 p
15、id=6youxian =0ilaxiao =02huAns(tai=Oinf o=0 pld=O«;Duxlan =0daxlao =0tehuAns(t al=01nf c =6 Pid=0yo«Kiftn=0dftKio=GEhu«n9ti=0info=C pid0«/ouxian "OdAxiao "QzbuAnsrai01nf o =6 pid=Gyouxian*0daxiao*0zhuAn9tal=0info=0 pld=0«oulan =0dalao =OhuAnst;al=01nf o =6 p id=Gyo
16、ux ian =Bda« iao =021)un9tA i=B info =6 pid0«/ouxian "OdAxiao "QzbuAn g ta i"6inf o =0 pid=Gyouxian=0daxiao=0zhuAn9tal-0info=0 pld=Q«ouKlan =0dalao =OhuAnst;al=01nf o =fi pid=GyouKian=Bda«io=BEhuangtfii=6info=B pid0«/ouxian -OdAxiao -OzbuAng ta i"Qinf q =
17、0(5) 喚醒進(jìn)程。圖為將進(jìn)程3喚醒創(chuàng)建新的進(jìn)程趴沓看運(yùn)行進(jìn)程沢喚出某個(gè)進(jìn)程4 殺死某個(gè)進(jìn)程 皐喚醒某個(gè)進(jìn)程6 查看內(nèi)存狀態(tài) 叭退出進(jìn)程KKaCJiC3<W>OCA<>CSCJ<MICJ<K>C>CKX<K>*IIA<>t»!M3<KXXIKj< 請(qǐng)選擇(1-7)5輸入P"3已經(jīng)成功喚醛進(jìn)程jOLlOOCJCJCJCjOLlOCJCJCJCJCjOLlOtJtKMtKjMIftKJBJtKMtKjMIft(6) 此時(shí)再次查看運(yùn)行的進(jìn)程與查看內(nèi)存狀態(tài),可以看到進(jìn)程3重新出現(xiàn)在運(yùn)行的進(jìn)程中,且內(nèi)
18、存狀態(tài)中其zhuangtai標(biāo)識(shí)等于1,表明進(jìn)程3已被成功喚醒。mn 丁#丘呈渾 下系纟充WIHHHHHHHHf*創(chuàng)建新的進(jìn)程 氛喚岀某個(gè)進(jìn)程 騒喚醒某個(gè)進(jìn)程巴退岀進(jìn)程鑒查看運(yùn)行進(jìn)程乳殺死某個(gè)進(jìn)程6 查看內(nèi)存狀態(tài)喈選擇(1-7)2pid=lyouxian=1daxiao=lzhuangtai=linfc1 p id =2youx ian 2daxiu-2ahuangtai"linfc3 pld =3yoi.ix£a».n 33zhi*£ingtai=l-inf o 3(7) 殺死進(jìn)程。圖中以殺死進(jìn)程 3為例,并附以殺死后運(yùn)行的進(jìn)程與內(nèi)存狀態(tài) 圖,內(nèi)存狀態(tài)
19、中進(jìn)程3的zhuangtai=0,表示進(jìn)程3已被殺死。>*1 井稈演 刁尺 系 纟充"xxjw "二4創(chuàng)建新的進(jìn)程2.查看運(yùn)行進(jìn)程3喚岀某個(gè)進(jìn)程4.殺死某個(gè)進(jìn)程喚醍某個(gè)進(jìn)程6.査看內(nèi)存狀態(tài)?.退岀進(jìn)程於舟*M X X XK X X M請(qǐng)選擇(1-7)4輸入殺死進(jìn)程的ID值3該進(jìn)程正在運(yùn)行,您確定要?dú)⑺绬幔空?qǐng)輸入1:確定;0:不確定1已經(jīng)成功殺死進(jìn)程* 進(jìn)程頂不 糸纟充 呉鬢買賞買再鬢再冀其買1.創(chuàng)建新的進(jìn)程3.喚岀某個(gè)進(jìn)程喚醉某個(gè)進(jìn)程2.查看運(yùn)行進(jìn)程4. 殺死某個(gè)進(jìn)程查看內(nèi)存狀態(tài)久退岀進(jìn)程請(qǐng)選擇(1-?)2p id=1yo ux ian =1dax iao =lzhu
20、angtai=linfo =1 pid=2youxian =2dax iao =2zhuangtai=linfo =2*進(jìn)程嘖不系統(tǒng)創(chuàng)建新的進(jìn)程 沢喚出某個(gè)進(jìn)程 喚釀某入進(jìn)程2 一查看運(yùn)行進(jìn)程 乳殺死某個(gè)進(jìn)程 肛查看內(nèi)存狀態(tài)7 退岀進(jìn)程EZ;pid»10uxian «ldAxiao-lzhun jtai.=linFo=l pid-2yuuxidii 2dtx2:£Ivu11ytil infu*2 pids3youxian=3daxiao=3zhu«ingrtai0inf o=3 pid0youxianE0daxiao s0zhusngtaiinFo=0 pid-RyoiiixiHAn WdAXiJin sRhiinartA i Binf n=fl pid-9y*uxian "Bdoxiaa "0<Ewifingitai"0inro-O p ld0yo ux ian -Bdax iao> =0iz hu 別 n gitaiiBinf o=0 pid-0youxian
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年血液透析機(jī)(人工腎)合作協(xié)議書
- 2025年基因工程乙型肝炎疫苗(酵母)合作協(xié)議書
- 2024-2025學(xué)年河南省鄭州市管城區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 2025年排氣系統(tǒng)管件合作協(xié)議書
- 人教版期中測試卷-四年級(jí)數(shù)學(xué)下冊(cè)(培優(yōu)卷)(含解析)
- 2025年九年級(jí)教研組年終總結(jié)樣本(3篇)
- 2025年乳膠漆粉刷施工合同協(xié)議(2篇)
- 2025年產(chǎn)品買賣合同范文(2篇)
- 2025年二手房分期購房合同(三篇)
- 2025年個(gè)人車位租賃合同參考模板(三篇)
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評(píng)價(jià)導(dǎo)則
- 《社區(qū)康復(fù)》課件-第六章 骨關(guān)節(jié)疾病、損傷患者的社區(qū)康復(fù)實(shí)踐
- 南通市2024屆高三第二次調(diào)研測試(二模)地理試卷(含官方答案)
- 中外歷史綱要上大事年表
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)項(xiàng)目監(jiān)理計(jì)劃
- 2024年湖南省公務(wù)員考試行政職業(yè)能力測驗(yàn)真題
- 攀巖運(yùn)動(dòng)之繩結(jié)技巧課程
- 防打架毆斗安全教育課件
- 小學(xué)二年級(jí)(上冊(cè))-乘法口訣-練習(xí)題-A4直接打印
- 采購行業(yè)的swot分析
- 石家莊長安區(qū)幼兒園信息統(tǒng)計(jì)表
評(píng)論
0/150
提交評(píng)論