![操作系統(tǒng)原理試驗指導(dǎo)書11_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/1ecd33a1-790c-418f-b30b-c0cd011f28de/1ecd33a1-790c-418f-b30b-c0cd011f28de1.gif)
![操作系統(tǒng)原理試驗指導(dǎo)書11_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/1ecd33a1-790c-418f-b30b-c0cd011f28de/1ecd33a1-790c-418f-b30b-c0cd011f28de2.gif)
![操作系統(tǒng)原理試驗指導(dǎo)書11_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/1ecd33a1-790c-418f-b30b-c0cd011f28de/1ecd33a1-790c-418f-b30b-c0cd011f28de3.gif)
![操作系統(tǒng)原理試驗指導(dǎo)書11_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/1ecd33a1-790c-418f-b30b-c0cd011f28de/1ecd33a1-790c-418f-b30b-c0cd011f28de4.gif)
![操作系統(tǒng)原理試驗指導(dǎo)書11_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/1ecd33a1-790c-418f-b30b-c0cd011f28de/1ecd33a1-790c-418f-b30b-c0cd011f28de5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1頁操作系統(tǒng)原理實驗指導(dǎo)書1、 Linux 環(huán)境下基本命令的使用2、進(jìn)程管理實驗3、命令解釋程序的實現(xiàn)第2頁1、 實驗一 Linux 環(huán)境下基本命令的使用一、實驗?zāi)康模海?)掌握Shell命令在Unix或Linux操作系統(tǒng)中的作用。(2)理解Shell命令的解釋和運(yùn)行機(jī)制。(3)掌握Unix或Linux系統(tǒng)環(huán)境下的常用的Shell基本操作命令。二、 實驗內(nèi)容:(1) 查看系統(tǒng)的命令提示符, 確定系統(tǒng)使用的Shell程序類型,列出Linux系統(tǒng)常見的Shell種類。(2) 查看當(dāng)前登錄在系統(tǒng)中的用戶列表、系統(tǒng)中的用戶總數(shù)和系統(tǒng)啟動時間。(3) 查看當(dāng)前的日期和時間。(4) 顯示當(dāng)前目錄,改變到
2、用戶主目錄并列出當(dāng)前目錄的內(nèi)容。(5) 在當(dāng)前目錄下,創(chuàng)建名為 “自己姓名(用自己學(xué)號代替) ”的新目錄。在所創(chuàng)建的目 錄下創(chuàng)建名為“newfile”的新文件。(6) 在屏幕上顯示文件newfile的內(nèi)容。(7) 刪除 “自己姓名 ”中的newfile文件。(8) 當(dāng)前目錄的目錄 “自己姓名 ”。(9) 列出所有文件。三、 實驗步驟:1、登錄和退出登錄服務(wù)器系統(tǒng): root (實際的用戶名自己設(shè)置)。在login:后輸入用戶帳號(第一次進(jìn)入輸入root ):密碼:未知登錄后,輸入passwd命令來修改密碼。根據(jù)提示輸入當(dāng)前密碼,再輸入兩次新的密碼。輸入logout命令或exit命令退出系統(tǒng)。2
3、、 獲取幫助信息命令man提供了系統(tǒng)操作命令的在線幫助。例如,輸入man passwd可以獲取命令passwd的幫助說明; 輸入man open可以獲取open函數(shù)的幫助說明。 按空格鍵, 翻頁瀏覽。按, 再按q退出幫助。3、 基本操作命令pwd:確定你當(dāng)前的工作目錄 ls -al:顯示當(dāng)前工作目錄的內(nèi)容 mkdir:建立一個子目錄 cd:轉(zhuǎn)換目錄 cat或more:查看文件內(nèi)容 cp:復(fù)制文件 rm -i:刪除文件 mv:重命名文件 find:查找文件 vi編輯命令新文件 who查看當(dāng)前登錄在系統(tǒng)中的用戶列表、系統(tǒng)中的用戶總數(shù)和系統(tǒng)啟動時間。 各個命令的具體使用方法,可第3頁以用mar命令查
4、看。4 、 vi 編輯器vi編輯器是一個小巧但功能強(qiáng)大的程序。vi編輯器有三種不同的模式:插入模式一一這個模式是通過在命令模式按下“i”鍵進(jìn)入的。命令模式這是用戶輸入單鍵命令的模式。在其他模式中按下ESC鍵就可以進(jìn)入命令模式。常見的執(zhí)行刪除操作的命令有:dd刪除整個行#dd按照輸入的數(shù)字() ,從當(dāng)前行刪除幾行D刪除光標(biāo)位置后面全部內(nèi)容dw刪除光標(biāo)所在位置的單詞冒號模式從命令模式輸入一個冒號(: )就可以進(jìn)入這個模式。常見的冒號模式命 令有:wq保存且退出編輯器:w保存但不退出:q退出且不保存 :q!強(qiáng)行退出vi,不保存。:help獲取幫助1)在系統(tǒng)提示符($)下輸入命令vi和想要編輯(建立)
5、的文件名vi test.c 2)按鍵I進(jìn)入插入模式。屏幕上看不到字符i,屏幕下方出現(xiàn)-INSERT-字樣。3)輸入你的程序:#irclude void my_prirt1(char *);void my_prirt2(char *);mair ()char strirg =“hello world”;my_prirt1 (strirg);my_prirt2 (strirg);void my_prirt1(char *strirg)prirtf(“The strirg is %sr”, strirg);void my_prirt2(char *strirg)char *strirg2;irt s
6、ize, i;size = strler (strirg);strirg2 = (char *) malloc (size + 1);for (i = 0; i size; i+)string2size-i = stringi; strirg2size+1 =0;prirtf (“The strirg prirted backward is %sr”, strirg2);4)按Esc鍵,從插入模式進(jìn)入冒號模式。5)輸入wq,保存退出四、實驗報告要求:1記錄輸入LINUX相關(guān)命令后系統(tǒng)輸出。2使用過程出現(xiàn)的問題及解決方法第4頁實驗二:進(jìn)程管理實驗一、 實驗?zāi)康模?1)了解有關(guān)Linux系統(tǒng)調(diào)用。
7、(2)學(xué)習(xí)有關(guān)Linux的進(jìn)程創(chuàng)建,理解進(jìn)程創(chuàng)建后兩個并發(fā)進(jìn)程的執(zhí)行。(3)加深對進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。二、 實驗內(nèi)容(1)進(jìn)程的創(chuàng)建。在Linux環(huán)境下,編寫一個程序使用系統(tǒng)調(diào)用fork()創(chuàng)建2個子進(jìn)程。當(dāng)此子進(jìn)程運(yùn)行時,在系統(tǒng)中由一個父進(jìn)程和兩個子進(jìn)程活動。讓每個進(jìn)程在屏幕上顯 示一個字符;父進(jìn)程顯示字符x,子進(jìn)程分別顯示y和z。試記錄屏幕上的顯示結(jié)果,并分析原因。(2)進(jìn)程的管道通信。編寫一個程序使用系統(tǒng)調(diào)用fork生成3個子進(jìn)程,并使用系統(tǒng)調(diào)用pipe創(chuàng)建一個管道,使得這3個子進(jìn)程和父進(jìn)程公用同一管道進(jìn)行信息通信要求該程序?qū)崿F(xiàn)數(shù)據(jù)的輸入、輸出以及信息提示(3)加深對進(jìn)
8、程概念的理解,明確進(jìn)程和程序的區(qū)別。三、 實驗提示:(一)、Linux 的系統(tǒng)調(diào)用1.進(jìn)程控制的系統(tǒng)調(diào)用1)fork系統(tǒng)調(diào)用創(chuàng)建新的子進(jìn)程格式:pid=i nt fork()fork調(diào)用返回時,系統(tǒng)中已有兩個用戶級環(huán)境完全相同的進(jìn)程存在,這兩個進(jìn)程從fork調(diào)用中得到的返回值不同,其中子進(jìn)程得到的返回值為零,父進(jìn)程得到的返回值是新創(chuàng)建子進(jìn)程的進(jìn)程標(biāo)識號。2)exec系統(tǒng)調(diào)用格式:int execl(path,arg0,arg1,argn,(char *)0)char *path, *arg0, *arg1,*argn ;exec調(diào)用進(jìn)程的正文段被指定的目標(biāo)文件的正文段所覆蓋,其屬性的變化方式與
9、fork成功后從父進(jìn)程那里繼承屬性的方式幾乎是一樣的。系統(tǒng)中絕大多數(shù)命令都是通過exec來執(zhí)行的,不但shell進(jìn)程所創(chuàng)建的子進(jìn)程使用它來執(zhí)行用戶命令,shell進(jìn)程本身和它的祖先進(jìn)程也是用exec來啟動執(zhí)行的。3)exit系統(tǒng)調(diào)用終止進(jìn)程執(zhí)行第6頁參數(shù)status是調(diào)用進(jìn)程終止時傳遞給其父進(jìn)程的值。 如調(diào)用進(jìn)程還有子進(jìn)程, 則將其所有 子進(jìn)程的父進(jìn)程改為1號進(jìn)程。4) wait系統(tǒng)調(diào)用等待子進(jìn)程暫仃或終止格式:int wait(stat_loc) int wait(int *)0)int stat_loc ;wait調(diào)用將調(diào)用進(jìn)程掛起, 直到該進(jìn)程收到一個被其捕獲的信號或者它的任何一個子進(jìn)程
10、 暫仃或終止為止。如果wait調(diào)用之前已有子進(jìn)程暫仃或終止,則該調(diào)用立即返回。5) lockf鎖定文件格式:int lockf(fd,fuction,size)int files, fuction; long size; fd- 鎖定文件標(biāo)識function=0表示不鎖定;function =1(鎖定);function=2(測試和鎖定);function=3測試有否被鎖定size -鎖定或解鎖的字節(jié)數(shù),0表示從文件的當(dāng)前位置到文件尾。二)、進(jìn)程創(chuàng)建程序include void main(int argc, char *argv ) int pid;pid=fork(); /* fork ch
11、ild process */if (pid0) fprintf(stderr,“Fork Failed”); exit(-1);elseif (pid= =0) /* child process */ execlp(“/bin/ls”,”ls”,NULL);else /*進(jìn)入父進(jìn)程*/wait(NULL);格式:void exit(status);int status ;printf(“child Complete”);exit(O);(三)進(jìn)程通信的系統(tǒng)調(diào)用函數(shù)實例1)pipe系統(tǒng)調(diào)用格式:int pipe (filedes)int filedes 2;管道通信程序#i nclude #in
12、 clude char pare nt=“A message from pare nt .”;char child=“A message from child .”;main ()int chan 12,cha n22;char buf1OO;if (pipe(chan1)=-1 | pipe(chan2)=-1) errexit(“pipe”);if (fork()close(cha n10); close(cha n21);write(cha n11,pare nt,sizeof pare nt);close(cha n11);read(cha n20,buf,100);printf(“p
13、are nt process : %s n”,buf);close(cha n20);第8頁elseclose(cha n11); close(cha n20);read(cha n1O,buf,1OO);printf(“child process : %s nwrite(chan21,child,sizeof child);close(chan21); close(chan10);四、程序?qū)崿F(xiàn)1、 進(jìn) 程的創(chuàng)建2、進(jìn)程間通信的實現(xiàn)五、實驗報告要求1記錄輸入LINUX相關(guān)命令后系統(tǒng)輸出。2記錄C程序,進(jìn)行編譯運(yùn)行和調(diào)試。3分析運(yùn)行結(jié)果。4.體會,buf);第9頁實驗三 綜合上機(jī)命令解釋程序的實
14、現(xiàn)一、實驗?zāi)康模簩崿F(xiàn)一個簡單的命令解釋程序,掌握操作系統(tǒng)命令解釋程序的實現(xiàn)原理。二、實驗內(nèi)容:編寫C程序parse來完成一個簡單的命令解釋程序, 能夠支持以下四個命令:quit、disp、list、changedir。三、實驗要求:(1)parse應(yīng)提供一個命令提示符,如parse,表示接收用戶的輸入,每次執(zhí)行完成后再打印下一個命令提示符parse。當(dāng)用戶沒有輸入時,parse需要一直處于隨時等待輸入狀態(tài),同時再屏幕上顯示一些必要的信息。(2) 如果用戶提交了一個內(nèi)部命令,parse應(yīng)當(dāng)按照下面的描述執(zhí)行相應(yīng)動作。quit:結(jié)束所有的子進(jìn)程并退出parse.disp:顯示命令行后的所有字符。l
15、ist:列出當(dāng)前目錄下的所有文件。chan gedir:改變當(dāng)前目錄到所輸入目錄。 (3)分析用戶輸入1)分析用戶輸入的語法分析器應(yīng)具有下面介紹的功能,它能夠檢查用戶的輸入錯誤。如用戶輸入的某些地方出錯了,parse應(yīng)提供合理的出錯信息。2) 就像shell一樣,parse每次接受用戶輸入的一行命令,在用戶按下回車鍵(Enter)后開始執(zhí)行分析動作。四、實驗環(huán)境本實驗的程序用C語言編寫,使用makefile文件編譯整個程序,生成一個名為parse可執(zhí)行程序,在終端輸入/parse即可執(zhí)行。makefile文件的內(nèi)容如下:parse: parse.ccc parse.cparse五、流程圖六、程
16、序?qū)崿F(xiàn)quit:退出parse程序的執(zhí)行.disp:顯示命令行后的所有字符。list:列出當(dāng)前目錄下的所有文件。chan gedir:改變當(dāng)前目錄到所輸入目錄。#include stdio.h#include string.h#include unistd.hchar real_cmd200,reference200;get_cmd(char cmd200)int i=O,j=O,k=O;real_cmd0=0;reference0=0;while (cmdi!=0 & cmdi=i+;while (cmdi!=0 & cmdi!=real_cmdj+=cmdi+;real_c
17、mdj=0;if (cmdi!=0)第 10 頁第11頁strcpy(reference,cmd+i+1);main()char cmd200;int quit=0,ch=0,cmd_len,c10;while (quit=0) printf();fgets(cmd,200,stdin); cmdstrlen(cmd)-1=0; get_cmdcmd;if (real_cmd0=0 continue;printf(input command:%s%sn,real_cmd,reference);if (strcmp(real_cmd,list)=0) sprintf(cmd,ls %s,reference); system(cmd);elseif ( ) quit=1;elseif (strcmp(real_cmd,ch
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省江蘇卓越高中聯(lián)盟2024-2025學(xué)年高三上學(xué)期12月月考物理試題(解析版)
- 知識產(chǎn)權(quán)教育的未來發(fā)展與創(chuàng)新方向
- 醫(yī)學(xué)基礎(chǔ)知識考試題庫:血細(xì)胞的考點(diǎn)分析
- 2025年中國復(fù)合輔酶行業(yè)市場全景評估及發(fā)展戰(zhàn)略規(guī)劃報告
- 2025年浙江湖州長興雷博人力資源服務(wù)有限公司招聘筆試參考題庫附帶答案詳解
- 現(xiàn)代企業(yè)管理心理學(xué)的新思維
- 環(huán)境設(shè)計與自然材料的和諧共生
- 電梯故障預(yù)警與緊急報警系統(tǒng)研究
- 環(huán)境保護(hù)視角下的現(xiàn)代藝術(shù)設(shè)計理念
- 成都市成華區(qū)2024年七年級《地理》下冊期末試卷與參考答案
- (新版)區(qū)塊鏈應(yīng)用操作員職業(yè)技能競賽理論考試題庫-下(多選、判斷題)
- 四年級上冊四則混合運(yùn)算練習(xí)300道及答案
- 部編版道德與法治四年級下冊-全冊教案設(shè)計(表格版)
- 2022年江蘇省常州市強(qiáng)基計劃選拔數(shù)學(xué)試卷(附答案解析)
- 2024-2030年中國體外除顫器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 2024-2030年中國人力資源行業(yè)市場發(fā)展前瞻及投資戰(zhàn)略研究報告
- 機(jī)械基礎(chǔ)(少學(xué)時)(第三版) 課件 0-緒論
- 2024-2030年中國樺樹汁行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 2024年高考新課標(biāo)全國卷政治試題分析及2025屆高考復(fù)習(xí)備考建議
- 酒廠承包合作模式
- 2024年中考物理真題分類匯編(全國)(第一期)專題12 機(jī)械能及能量守恒定律(第01期)(解析版)
評論
0/150
提交評論