版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)原理實(shí)驗(yàn)指導(dǎo)書1、Linux 環(huán)境下基本命令的使用2、進(jìn)程管理實(shí)驗(yàn)3、命令解釋程序的實(shí)現(xiàn)1、 實(shí)驗(yàn)一Linux 環(huán)境下基本命令的使用一、實(shí)驗(yàn)?zāi)康模海?1)掌握 Shell 命令在 Unix 或 Linux 操作系統(tǒng)中的作用。( 2)理解 Shell 命令的解釋和運(yùn)行機(jī)制。( 3)掌握 Unix 或 Linux 系統(tǒng)環(huán)境下的常用的 Shell 基本操作命令。二、實(shí)驗(yàn)內(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)前的日期和時
2、間。( 4) 顯示當(dāng)前目錄,改變到用戶主目錄并列出當(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) 列出所有文件。三、實(shí)驗(yàn)步驟:1、登錄和退出<1>登錄服務(wù)器系統(tǒng):root(實(shí)際的用戶名自己設(shè)置)。<2> 在 login: 后輸入用戶帳號 (第一次進(jìn)入輸入 root ):密碼:未知<3>登錄后,輸入p
3、asswd命令來修改密碼。根據(jù)提示輸入當(dāng)前密碼,再輸入兩次新的密碼。 <4> 輸入 logout 命令或 exit 命令退出系統(tǒng)。2、獲取幫助信息命令man提供了系統(tǒng)操作命令的在線幫助。例如,輸入man passwd可以獲取命令 passwd的幫助說明;輸入man open可以獲取open函數(shù)的幫助說明。按空格鍵,翻頁瀏覽。按<shift><:>, 再按 q 退出幫助。3、基本操作命令<1>pwd: 確定你當(dāng)前的工作目錄<2> ls -al: 顯示當(dāng)前工作目錄的內(nèi)容<3> mkdir: 建立一個子目錄<4> c
4、d: 轉(zhuǎn)換目錄<5> cat或more:查看文件內(nèi)容<6> cp :復(fù)制文件<7> rm -i: 刪除文件<8> mv: 重命名文件<9> find: 查找文件<10> vi 編輯命令新文件<11> who查看當(dāng)前登錄在系統(tǒng)中的用戶列表、系統(tǒng)中的用戶總數(shù)和系統(tǒng)啟動時間。 各個命令的具體使用方法,可以用mar命令查看。4 、 vi 編輯器vi 編輯器是一個小巧但功能強(qiáng)大的程序。 vi 編輯器有三種不同的模式:插入模式一一這個模式是通過在命令模式按下“i”鍵進(jìn)入的。命令模式這是用戶輸入單鍵命令的模式。在其他模式中按
5、下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 和想要編輯(建立)的文件名vi test.c <erter>2) 按鍵I進(jìn)入插入模式。屏幕上看不到字符i,屏幕下方出現(xiàn)-INSERT-字樣。3) 輸入你的程序: /*
6、#irclude <stdio.h>void my_prirt1(char *);void my_prirt2(char *);mair ()char strirg =“hello world ” ;my_prirt1 (strirg);my_print2 (string);void my_print1(char *string)printf( “ The string is %sn ” , string);void my_print2(char *string)char *string2;int size, i;size = strlen (string);string2 = (
7、char *) malloc (size + 1);for (i = 0; i < size; i+)string2size - i = stringi;string2size+1 =0 'printf ( “The string printed backward is %sn” , string2);4) 按Esc鍵,從插入模式進(jìn)入冒號模式。5) 輸入 wq ,保存退出四、實(shí)驗(yàn)報告要求:1記錄輸入 LINUX 相關(guān)命令后系統(tǒng)輸出。 2使用過程出現(xiàn)的問題及解決方法實(shí)驗(yàn)二: 進(jìn)程管理實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模? 1)了解有關(guān) Linux 系統(tǒng)調(diào)用。( 2)學(xué)習(xí)有關(guān) Linux 的進(jìn)程創(chuàng)建,
8、理解進(jìn)程創(chuàng)建后兩個并發(fā)進(jìn)程的執(zhí)行。( 3)加深對進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。二、實(shí)驗(yàn)內(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ù)的輸入、輸出以
9、及信息提示(3)加深對進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。三、實(shí)驗(yàn)提示:(一)、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)文件的正文
10、段所覆蓋,其屬性的變化方式與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í)行格式: void exit(status) ; int status ;參數(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(i nt *)0)int stat_l
11、oc ;wait調(diào)用將調(diào)用進(jìn)程掛起,直到該進(jìn)程收到一個被其捕獲的信號或者它的任何一個子進(jìn)程 暫仃或終止為止。如果wait調(diào)用之前已有子進(jìn)程暫仃或終止,則該調(diào)用立即返回。5) lockf鎖定文件格式:int lockf(fd,fuct ion, 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)建程序# in elude <std
12、io.h>void main (i nt argc, char *argv) int pid;pid=fork(); /* fork child process */if (pid<0) fprintf(stderr,“ Fork Failed ” ); exit(-1);elseif (pid=0) /* child process */ execlp("/bin/ls” , ” Is ”,NULL);else /*進(jìn)入父進(jìn)程*/wait(NULL);printf( “ child Complete ” );exit(0);(三八 進(jìn)程通信的系統(tǒng)調(diào)用函數(shù)實(shí)例1)pipe
13、系統(tǒng)調(diào)用格式: int pipe (filedes)int filedes 2;管道通信程序#include <stdio.h> #include <fcntl.h>char parent= “ A message from parent .” ;char child=“ A message from child .” ;main()int chan12,chan22;char buf100;if (pipe(chan1)=-1 | pipe(chan2)=-1) errexit( “ pipe ” ); if (fork()close(chan10); close(c
14、han21); write(chan11,parent,sizeof parent);close(chan11);read(chan20,buf,100);printf( “ parent process : %s n”,buf);close(chan20);elseclose(chan11); close(chan20); read(chan10,buf,100);printf( “ child process : %s n” ,buf);write(chan21,child,sizeof child);close(chan21); close(chan10);四、程序?qū)崿F(xiàn)1、 進(jìn) 程的創(chuàng)建
15、2、進(jìn)程間通信的實(shí)現(xiàn)五、實(shí)驗(yàn)報告要求1記錄輸入 LINUX 相關(guān)命令后系統(tǒng)輸出。2 記錄C程序,進(jìn)行編譯運(yùn)行和調(diào)試。3分析運(yùn)行結(jié)果。4.體會實(shí)驗(yàn)三 綜合上機(jī)命令解釋程序的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康模簩?shí)現(xiàn)一個簡單的命令解釋程序,掌握操作系統(tǒng)命令解釋程序的實(shí)現(xiàn)原理。二、實(shí)驗(yàn)內(nèi)容:編寫 C 程序 parse 來完成一個簡單的命令解釋程序,能夠支持以下四個命令: quit 、 disp、 list 、changedir。三、實(shí)驗(yàn)要求:(1)parse應(yīng)提供一個命令提示符, 如parse,表示接收用戶的輸入, 每次執(zhí)行完成后再打 印下一個命令提示符 parse。當(dāng)用戶沒有輸入時,parse需要一直處于隨時等待輸入
16、 狀態(tài),同時再屏幕上顯示一些必要的信息。(2) 如果用戶提交了一個內(nèi)部命令,parse應(yīng)當(dāng)按照下面的描述執(zhí)行相應(yīng)動作。quit :結(jié)束所有的子進(jìn)程并退出 parse.disp: 顯示命令行后的所有字符。list :列出當(dāng)前目錄下的所有文件。chan gedir :改變當(dāng)前目錄到所輸入目錄。( 3)分析用戶輸入1)分析用戶輸入的語法分析器應(yīng)具有下面介紹的功能,它能夠檢查用戶的輸入錯誤。如用戶輸入的某些地方出錯了, parse應(yīng)提供合理的出錯信息。2) 就像shell 一樣,parse每次接受用戶輸入的一行命令,在用戶按下回車鍵(Enter) 后開始執(zhí)行分析動作。四、實(shí)驗(yàn)環(huán)境本實(shí)驗(yàn)的程序用 C語言
17、編寫,使用 makefile文件編譯整個程序,生成一個名為 parse可執(zhí) 行程序,在終端輸入"/parse"即可執(zhí)行。makefile 文件的內(nèi)容如下:parse: parse.ccc parse.c parse五、流程圖六、程序?qū)崿F(xiàn)quit :退出parse程序的執(zhí)行.disp: 顯示命令行后的所有字符。list :列出當(dāng)前目錄下的所有文件。 chan gedir :改變當(dāng)前目錄到所輸入目錄。#include "stdio.h"#include "string.h"#include "unistd.h"char
18、 real_cmd200,reference200;get_cmd(char cmd200)int i=0,j=0,k=0;real_cmd0='0'reference0='0'while (cmdi!='0' && cmdi=' 'i+;while (cmdi!='0' && cmdi!=' 'real_cmdj+=cmdi+; real_cmdj='0'if (cmdi!='0')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=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版高新技術(shù)企業(yè)研發(fā)項目采購合同2篇
- 二零二五年度高校與公益組織合作辦學(xué)合同3篇
- 二零二五版家庭健康養(yǎng)生及食療服務(wù)合同3篇
- 二零二五年度生態(tài)雞養(yǎng)殖基地購銷合同標(biāo)準(zhǔn)版3篇
- 二零二五版桉樹生物質(zhì)能源開發(fā)合同2篇
- 二零二五年房地產(chǎn)銷售代理合同中止及終止協(xié)議6篇
- 二零二五版智能倉儲貨物承包運(yùn)輸一體化合同3篇
- 二零二五年智能空調(diào)銷售及綠色環(huán)保安裝合同樣本3篇
- 二零二五年度車庫產(chǎn)權(quán)買賣及物業(yè)服務(wù)合同范本3篇
- 二零二五年文化藝術(shù)品油漆保護(hù)修復(fù)合同3篇
- 春節(jié)文化常識單選題100道及答案
- 2024年杭州師范大學(xué)附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導(dǎo)管置管技術(shù)
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 罐區(qū)自動化系統(tǒng)總體方案(31頁)ppt課件
- BIQS評分表模板
- 工程建設(shè)項目內(nèi)外關(guān)系協(xié)調(diào)措施
- 招投標(biāo)法考試試題及答案
- 皮帶輸送機(jī)工程施工電氣安裝措施要點(diǎn)
- 藥房(冰柜)溫濕度表
評論
0/150
提交評論