![操作系統(tǒng)linux版實(shí)驗(yàn)報(bào)告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/31/0913815f-13ee-4693-ba06-6b155fb39220/0913815f-13ee-4693-ba06-6b155fb392201.gif)
![操作系統(tǒng)linux版實(shí)驗(yàn)報(bào)告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/31/0913815f-13ee-4693-ba06-6b155fb39220/0913815f-13ee-4693-ba06-6b155fb392202.gif)
![操作系統(tǒng)linux版實(shí)驗(yàn)報(bào)告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/31/0913815f-13ee-4693-ba06-6b155fb39220/0913815f-13ee-4693-ba06-6b155fb392203.gif)
![操作系統(tǒng)linux版實(shí)驗(yàn)報(bào)告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/31/0913815f-13ee-4693-ba06-6b155fb39220/0913815f-13ee-4693-ba06-6b155fb392204.gif)
![操作系統(tǒng)linux版實(shí)驗(yàn)報(bào)告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/31/0913815f-13ee-4693-ba06-6b155fb39220/0913815f-13ee-4693-ba06-6b155fb392205.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)實(shí)驗(yàn)報(bào)告(Linux版本)網(wǎng)絡(luò)142豹142999觀察Linux進(jìn)程狀態(tài)的實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康难例X實(shí)驗(yàn)初中學(xué)習(xí)Linux操作系統(tǒng)進(jìn)程狀態(tài),編寫簡單的代碼以觀察各種情況下Linux進(jìn)程的狀態(tài),并更好地了解進(jìn)程的狀態(tài)和切換機(jī)制。二、實(shí)驗(yàn)環(huán)境硬件環(huán)境:一臺(tái)電腦,局域網(wǎng)環(huán)境軟件環(huán)境:Linux Ubuntu操作系統(tǒng)、gcc編譯器。(d)查看“不可中斷阻止”狀態(tài)(d)創(chuàng)建c程序(如Uninter_status.c),使30s睡覺代碼:#include#includeInt main()Int i=0、j=0、k=0;for(I=0);I1000000I)for(j=0);J1000000j)k;k-
2、;實(shí)驗(yàn)結(jié)果:(b)查看暫停狀態(tài)(t)運(yùn)行Run_status進(jìn)程以進(jìn)入r狀態(tài)。代碼與:相同(c)查看“可中斷阻止”狀態(tài)(s)創(chuàng)建c程序(如Interruptiblie_status.c),使30s睡覺編譯鏈接,在后臺(tái)運(yùn)行節(jié)目(在符號之后),然后使用PS命令檢查運(yùn)行狀態(tài)代碼:#include#includeInt main()sleep(30);Return實(shí)驗(yàn)結(jié)果:(d)查看“不可中斷阻止”狀態(tài)(d)創(chuàng)建c程序(如Uninter_status.c),使30s睡覺編譯鏈接,在后臺(tái)運(yùn)行程序(稍后),然后使用PS命令檢查運(yùn)行狀態(tài)代碼:#include#includeInt main()if(vfor
3、k()=0)sleep(300);Return實(shí)驗(yàn)結(jié)果:(e)查看“僵尸”進(jìn)程(z)創(chuàng)建c節(jié)目;例如zombie_status.c。在此創(chuàng)建子進(jìn)程,快速終止子進(jìn)程,父進(jìn)程陷入阻塞編譯鏈接,在后臺(tái)運(yùn)行程序(稍后),使用PS命令查看運(yùn)行狀態(tài)(30s內(nèi))代碼:#include#incldueInt main()If(fork()sleep(300);實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)2觀察Linux進(jìn)程/線程的異步并發(fā)運(yùn)行一、實(shí)驗(yàn)?zāi)康耐ㄟ^牙齒實(shí)驗(yàn),您將學(xué)習(xí)創(chuàng)建Linux進(jìn)程和線程,通過實(shí)驗(yàn)觀察Linux進(jìn)程和線程的異步執(zhí)行。了解流程和線程的區(qū)別和特性,流程是資源分配單位,線程是獨(dú)立的計(jì)劃單位。二、實(shí)驗(yàn)環(huán)境硬件環(huán)境:一臺(tái)
4、電腦,局域網(wǎng)環(huán)境軟件環(huán)境:Linux Ubuntu操作系統(tǒng)、gcc編譯器。三、實(shí)驗(yàn)內(nèi)容和程序1、進(jìn)程異步并發(fā)運(yùn)行首先初始化count變量1,然后使用fork函數(shù)編寫編寫兩個(gè)子進(jìn)程的c語言程序。每個(gè)子進(jìn)程向計(jì)數(shù)加1后,“I am son,count=x”或“I am daughter,count=最后一個(gè)父進(jìn)程將使用waitpid等待兩個(gè)子進(jìn)程結(jié)束,然后終止。編譯連接后,多次運(yùn)行程序,觀察屏幕上結(jié)果的顯示順序,直到出現(xiàn)其他情況,并觀察每個(gè)打印結(jié)果中count的值。代碼:#include#includeInt main()Pid_t son_pid,daughter _ pidint count=
5、1;son _ PID=fork();If(son_pid=0)計(jì)數(shù);Printf (I amson,count=% d n ,count);Elsedaughter _ PID=fork();If(daughter_pid=0)計(jì)數(shù);Printf (I am daughter,count=% d n ,count);Else計(jì)數(shù);Printf (I am father,count=% d n ,count);Waitpid(son_pid,NULL,0);Waitpid(daughter_pid,NULL,0);2、線程異步并發(fā)執(zhí)行首先初始化count變量1,然后使用pthread_crea
6、te將每個(gè)count加1,從而編寫c語言程序以函數(shù)創(chuàng)建顯示“I am son,count=x”或“I am daughter”的兩個(gè)線程,最后一個(gè)父進(jìn)程是pthread _ join編譯連接后,多次運(yùn)行程序,觀察屏幕上結(jié)果的顯示順序,直到出現(xiàn)其他情況,并觀察每個(gè)打印結(jié)果中count的值。代碼:#include#include#includeVoid *daughter(void *num)int * a=(int *)num;* a=1;Printf (I am daughter,count=% d n ,* a);Void *son(void *num)int * a=(int *)num;
7、* a=1;Printf(i am son,count=%dn ,* a);Int main()Pthread_t son_tid、daughter _ tidint count=1;Pthread _ create (son _ tid,null,son,count);Pthread _ create (daughter _ tid,null,daughter,count);計(jì)數(shù);Printf (I am parent,count :=% d n ,count);Pthread_join(son_tid,NULL);Pthread_join(daughter_tid,NULL);return
8、 0;實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)3使用信號量進(jìn)行互斥和同步。一、實(shí)驗(yàn)?zāi)康难例X實(shí)驗(yàn)描述了在Linux中使用信號量同步過程并相互排斥的方法。通過實(shí)驗(yàn),讀者可以更好地理解進(jìn)程間同步和互斥、臨界區(qū)域和臨界資源的概念和意義,并學(xué)習(xí)Linux信號量的基本使用方法。二、實(shí)驗(yàn)環(huán)境硬件環(huán)境:一臺(tái)電腦,局域網(wǎng)環(huán)境軟件環(huán)境:Linux Ubuntu操作系統(tǒng)、gcc編譯器。三、實(shí)驗(yàn)內(nèi)容和程序三、實(shí)驗(yàn)內(nèi)容和程序(a)請參閱:POSIX和System VSystem V:Unix的眾多版本之一,最初由ATT定義,現(xiàn)在是第四個(gè)版本,定義了更復(fù)雜的API。POSIX:portable operating system interface
9、,為IEEE集成Unix接口定義的標(biāo)準(zhǔn),以及定義集成API介面。Linux支持System API和POSIX API(b)實(shí)驗(yàn)階段Step1:假設(shè)檔案名為no_sem.c,通過實(shí)例檢查互斥情況編譯鏈接并同時(shí)運(yùn)行兩個(gè)進(jìn)程以顯示結(jié)果代碼:#include#includeInt main(int argc,char *argv)char message=x;int I=0;If(argc1)message=argv10;for(I=0);I10I )printf(“% c”,消息);fflush(stdout);sleep(rand()% 3);printf(“% c”,消息);fflush(st
10、dout);sleep(rand()% 2);sleep(10);Exit實(shí)驗(yàn)結(jié)果:Step2:使用信號標(biāo)量互不相容臨界資源(假定檔案名為with_sem.c)編譯鏈接并同時(shí)運(yùn)行兩個(gè)進(jìn)程。觀察x和o的出現(xiàn)并分析其原因。代碼:#include#include#include#include#include#include#includeInt main(int argc,char *argv)char message=x;int I=0;If(argc1)message=argv10;Sem _ t * mutex=SEM _ open (mysem ,o _ creat,0666,1);for
11、(I=0);I10I)SEM _ wait(mutex);printf(“% c”,消息);fflush(stdout);sleep(rand()% 3);printf(“% c”,消息);fflush(stdout);SEM _ post(mutex);sleep(rand()% 2);sleep(10);SEM _ close(mutex);SEM _ unlink( my SEM );退出(0);實(shí)驗(yàn)結(jié)果:Step3:模擬使用信號標(biāo)量在國際象棋紅黑交替中行走編寫兩個(gè)C語言程序black_chess.c和red_chess.c,分別在下國際象棋的同時(shí)模擬進(jìn)行紅方行走和黑方行走過程。行走規(guī)則
12、:紅善黑后,紅、黑雙方交替進(jìn)行,第10階段,紅方勝,黑方輸了。代碼:紅色國際象棋#include#include#include#include#include#include#includeInt main(int argc,char *argv)int I=0;SEM _ t * hei=SEM _ open( chess _ black _ SEM ,o _ creat,0666,1);SEM _ t * hong=SEM _ open( chess _ red _ SEM ,o _ creat,0666,0);for(I=0);I10I)SEM _ wait(hei);If(i)!=9
13、)Printf (red chess had moved,black,chess go! n );ElsePrintf(Red chess win! n );fflush(stdout);SEM _ post(hong);sleep(10);SEM _ close(hei);SEM _ close(hong);SEM _ unlink( chess _ red _ SEM );SEM _ unlink( chess _ black _ SEM );退出(0);黑色國際象棋:#include#include#include#include#include#include#includeInt m
14、ain(int argc,char *argv)int I=0;SEM _ t * hei=SEM _ open( chess _ black _ SEM ,o _ creat,0666,1);SEM _ t * hong=SEM _ open( chess _ red _ SEM ,o _ creat,0666,0);for(I=0);I10I)SEM _ wait(hong);If(i)!=9)Printf (black chess had moved,red chess go! n );ElsePrintf(Black chess win! n );fflush(stdout);SEM _ post(hei);sleep(10);SEM _ close(hei);SEM _ close(hong);SEM _ unlink( chess _ red _ SEM );SEM _ unlink( chess _ black _ SEM );退出(0);實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)4任務(wù)調(diào)度算法模擬一、實(shí)驗(yàn)?zāi)康?1)掌握旋轉(zhuǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效課堂管理策略與技巧
- 綠色智慧城市建設(shè)中的崇明生態(tài)島策略
- 2024年異戊橡項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 科技助力家庭教育中的孩子獨(dú)立自主
- 探索小學(xué)課堂互動(dòng)游戲設(shè)計(jì)的核心要素
- 銷售、市場及售后服務(wù)三位一體的崗位合作與未來戰(zhàn)略
- 2024年基因工程乙型肝炎疫苗(酵母)項(xiàng)目資金申請報(bào)告代可行性研究報(bào)告
- 教育機(jī)構(gòu)如何利用CRM優(yōu)化學(xué)生關(guān)系管理
- 2025年貴州航空職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 科技農(nóng)業(yè)與健康生活綠植在家庭中的運(yùn)用
- 2025年浙江省交通投資集團(tuán)財(cái)務(wù)共享服務(wù)中心招聘2名高頻重點(diǎn)提升(共500題)附帶答案詳解
- 做投標(biāo)文件培訓(xùn)
- 9.4+跨學(xué)科實(shí)踐:制作簡易活塞式抽水機(jī)課件+-2024-2025學(xué)年人教版物理八年級下冊
- 建筑工程工作計(jì)劃
- 2025年中國國際投資促進(jìn)中心限責(zé)任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護(hù)理課程思政課程標(biāo)準(zhǔn)
- 船舶航行安全
- 9.2溶解度(第1課時(shí)飽和溶液不飽和溶液)+教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級化學(xué)人教版(2024)下冊
- 2024年審計(jì)局公務(wù)員招錄事業(yè)單位招聘考試招錄139人完整版附答案【研優(yōu)卷】
- 濰坊市人民醫(yī)院招聘真題
評論
0/150
提交評論