版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、僅供個(gè)人參考操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書青島理工大學(xué)計(jì)算機(jī)工程學(xué)院二零一一年九月不得用于商業(yè)用途僅供個(gè)人參考一、課程編號(hào): 071235二、適用專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)、網(wǎng)絡(luò)工程專業(yè)、軟件工程專業(yè)三、實(shí)驗(yàn)個(gè)數(shù)與學(xué)時(shí):4 個(gè)實(shí)驗(yàn), 8 學(xué)時(shí)四、操作系統(tǒng)實(shí)驗(yàn)的目的操作系統(tǒng) 是一門重要的專業(yè)基礎(chǔ)課, 是涉及較多硬件知識(shí)的計(jì)算機(jī)系統(tǒng)軟件課程。在計(jì)算機(jī)軟硬件課程的設(shè)置上,它起著承上啟下的作用。 操作系統(tǒng)對(duì)計(jì)算機(jī)系統(tǒng)資源實(shí)施管理, 是所有其他軟件與計(jì)算機(jī)硬件的唯一接口,所有用戶在使用計(jì)算機(jī)時(shí)都要得到操作系統(tǒng)提供的服務(wù)。操作系統(tǒng)實(shí)驗(yàn)的主要任務(wù)是讓學(xué)生掌握常用操作系統(tǒng)的安裝方法,了解操作系統(tǒng)進(jìn)程管理的基本內(nèi)容,通過(guò)
2、實(shí)驗(yàn)演示了解操作系統(tǒng)是如何進(jìn)行進(jìn)程管理的,為后期操作系統(tǒng)的課程設(shè)計(jì)奠定基礎(chǔ)。五、實(shí)驗(yàn)平臺(tái)在虛擬機(jī) Vmware 或者 Virtual Box 上的 Ubuntu 11.10不得用于商業(yè)用途僅供個(gè)人參考實(shí)驗(yàn) 1 安裝 Linux 操作系統(tǒng)一、實(shí)驗(yàn)?zāi)康脑谔摂M機(jī) Vmware或者 Virtual Box 上安裝 Unbuntu 11.10 操作系統(tǒng),后續(xù)實(shí)驗(yàn)都將在此環(huán)境上進(jìn)行。通過(guò)實(shí)驗(yàn),要求:1、掌握在虛擬機(jī)上安裝操作系統(tǒng)的方法;2、學(xué)會(huì)安裝Linux 系統(tǒng);3、學(xué)會(huì)啟動(dòng)Linux 系統(tǒng);4、學(xué)會(huì)在宿主機(jī)Windows XP操作系統(tǒng)下,與虛擬機(jī)上安排的Ubuntu 共享文件的方法。二、實(shí)驗(yàn)內(nèi)容1、把
3、 ubuntu 安裝至虛擬機(jī)上。加載安裝 ubuntu 操作系統(tǒng)的ISO IMG 文件啟動(dòng) ubuntu 虛擬機(jī)按提示分階段裝入系統(tǒng)2、在 Windows 下通過(guò)網(wǎng)絡(luò)磁盤來(lái)訪問(wèn)ubuntu 共享文件夾在虛擬系統(tǒng) Ubuntu 下新建一個(gè)文件夾,右擊該文件夾,選擇屬性,共享,啟用“共享此目錄”,并允許他人在此共享里寫數(shù)據(jù)。注:共享時(shí)需要Samba的支持,系統(tǒng)會(huì)提示安裝。安裝完成Samba后,需要重啟ubuntu 才能生效。 此時(shí)回到XP 時(shí)可在網(wǎng)上鄰居里看到一個(gè) * - desktop server(Samba,Ubuntu)的共享目錄。返回 Windows XP 系統(tǒng),右擊“網(wǎng)上鄰居”,選擇“
4、映射網(wǎng)絡(luò)驅(qū)動(dòng)器”,不得用于商業(yè)用途僅供個(gè)人參考在“瀏覽”里找到剛才在Ubuntu 下共享的文件夾,選擇后完成映射,這時(shí)打開“我的電腦”會(huì)發(fā)現(xiàn)多了一個(gè)“網(wǎng)絡(luò)驅(qū)動(dòng)器”,如同我們的硬盤一樣。不得用于商業(yè)用途僅供個(gè)人參考這時(shí)你可以在XP 系統(tǒng)里復(fù)制幾個(gè)文件到相應(yīng)的網(wǎng)絡(luò)驅(qū)動(dòng)器,然后進(jìn)入U(xiǎn)buntu 系統(tǒng),就能看到我們剛才復(fù)制的文件了;當(dāng)然,我們也可以往ubuntu共享文件夾里放文件,在XP 系統(tǒng)使用。注:在創(chuàng)建文件共享的時(shí)候,注意主機(jī)的網(wǎng)卡一定要打開,否則創(chuàng)建共享是不能成功的不得用于商業(yè)用途僅供個(gè)人參考實(shí)驗(yàn) 2 Linux系統(tǒng)中程序編輯、編譯與調(diào)試工具一、實(shí)驗(yàn)?zāi)康?、熟悉使用Linux 字符界面、窗口系
5、統(tǒng)的常用命令。2、熟悉運(yùn)用Linux 常用的編程工具。3、掌握在Linux 操作系統(tǒng)環(huán)境上編輯、編譯、調(diào)試、運(yùn)行一個(gè)C 語(yǔ)言程序的全過(guò)程。二、實(shí)驗(yàn)內(nèi)容1、熟悉開機(jī)后登錄Linux 系統(tǒng)和退出系統(tǒng)的過(guò)程;2、掌握一種Linux 的編輯器,特別是字符界面的vi 工具的使用(詳見(jiàn)VI 簡(jiǎn)易使用手柵);3、掌握 GCC編譯器的基本用法(詳見(jiàn)GCC使用手冊(cè)及常用命令行);4、掌握 GDB調(diào)試程序的方法(詳見(jiàn) GDB調(diào)試程序手冊(cè))。要求在實(shí)驗(yàn)報(bào)告上完整地進(jìn)行一個(gè)數(shù)據(jù)結(jié)構(gòu)中 c 程序的調(diào)試,源代碼不能少于 50 行。不得用于商業(yè)用途僅供個(gè)人參考實(shí)驗(yàn) 3 進(jìn)程并發(fā)與同步一、實(shí)驗(yàn)?zāi)康?、加深對(duì)進(jìn)程概念的理解,區(qū)
6、分進(jìn)程并發(fā)執(zhí)行與串行執(zhí)行;2、掌握進(jìn)程并發(fā)執(zhí)行的原理,理解進(jìn)程并發(fā)執(zhí)行的特點(diǎn);3、了解 fork() 系統(tǒng)調(diào)用的返回值,掌握用fork()創(chuàng)建進(jìn)程的方法;熟悉wait 、exit等系統(tǒng)調(diào)用;4、能利用相應(yīng)的系統(tǒng)調(diào)用實(shí)現(xiàn)進(jìn)程樹與進(jìn)程間的同步。二、實(shí)驗(yàn)內(nèi)容1、編寫一C 語(yǔ)言程序,實(shí)現(xiàn)在程序運(yùn)行時(shí)通過(guò)系統(tǒng)調(diào)用fork( )創(chuàng)建兩個(gè)子進(jìn)程,使父、子三進(jìn)程并發(fā)執(zhí)行,父親進(jìn)程執(zhí)行時(shí)屏幕顯示“I am father”,兒子進(jìn)程執(zhí)行時(shí)屏幕顯示“ I am son ”,女兒進(jìn)程執(zhí)行時(shí)屏幕顯示“I am daughter”。要求多次連續(xù)反復(fù)運(yùn)行這個(gè)程序,觀察屏幕顯示結(jié)果的順序,直至出現(xiàn)不一樣的情況為止。要求有運(yùn)行
7、結(jié)果截圖與結(jié)果分析2、連續(xù) 4 個(gè) fork()的進(jìn)程家族樹,family1-1.c程序清單如下:#include <stdio.h>main()fork();fork();fork();fork();printf( “An ”);請(qǐng)根據(jù)程序運(yùn)行結(jié)果,畫出進(jìn)程家族樹,并分析原因。3、修改程序1,在父、子進(jìn)程中分別使用wait 、exit等系統(tǒng)調(diào)用“實(shí)現(xiàn)”其同步推進(jìn),父進(jìn)程必須等待兒子進(jìn)程與女兒進(jìn)程結(jié)束,才可以輸出消息。寫出相應(yīng)的同步控制,并分析運(yùn)行結(jié)果。4、創(chuàng)建一個(gè)子進(jìn)程,并給它加載程序,其功能是調(diào)用鍵盤命令“l(fā)s -l ”,已知該鍵盤命令的路徑與文件名為: /bin/ls 。父進(jìn)
8、程創(chuàng)建子進(jìn)程,并加載 ./child2 程序。寫出相應(yīng)的程序代碼并分析程序運(yùn)行結(jié)果。三、系統(tǒng)調(diào)用創(chuàng)建子進(jìn)程系統(tǒng)調(diào)用: fork()格式int fork( );=0創(chuàng)建成功,從子進(jìn)程返回返回值>0創(chuàng)建成功,從父進(jìn)程返回,其值為子進(jìn)程的PID 號(hào)=-1創(chuàng)建失敗子進(jìn)程創(chuàng)建時(shí)操作系統(tǒng)的工作:檢查同時(shí)運(yùn)行的進(jìn)程數(shù)目,若超過(guò)系統(tǒng)設(shè)定值,則創(chuàng)建失敗,返回-1;為子進(jìn)程分配進(jìn)程控制塊task_struct 結(jié)構(gòu),并賦予唯一進(jìn)程標(biāo)識(shí)符pid;子進(jìn)程繼承父進(jìn)程打開的所有文件及資源,對(duì)父進(jìn)程的當(dāng)前目錄和所有已打開系統(tǒng)文件不得用于商業(yè)用途僅供個(gè)人參考表項(xiàng)中的引用記數(shù)加1;為子進(jìn)程創(chuàng)建進(jìn)程映像:創(chuàng)建子進(jìn)程映像靜態(tài)
9、部分:復(fù)制父進(jìn)程映像靜態(tài)部分創(chuàng)建子進(jìn)程映像動(dòng)態(tài)部分:初始化task_struct 結(jié)構(gòu)結(jié)束創(chuàng)建, 置子進(jìn)程為內(nèi)存就緒狀態(tài), 插入就緒隊(duì)列, 作為一個(gè)獨(dú)立的進(jìn)程被系統(tǒng)調(diào)度。若調(diào)用進(jìn)程(父進(jìn)程)返回,則返回創(chuàng)建的子進(jìn)程標(biāo)識(shí)符pid 值(此時(shí)返回值>0 );若子進(jìn)程被調(diào)度執(zhí)行,則將其U 區(qū)計(jì)時(shí)字段初始化然后返回(此時(shí)返回值=0)。進(jìn)程睡眠系統(tǒng)調(diào)用:sleep()格式sleep(n);參數(shù)n 表示延時(shí)的秒數(shù)功能進(jìn)程睡眠n 秒進(jìn)程終止系統(tǒng)調(diào)用:exit(status)格式void exit(int status);參數(shù)status 是子進(jìn)程向父進(jìn)程發(fā)送的終止信息,父進(jìn)程使用wait( ) 系統(tǒng)調(diào)用
10、來(lái)接收這個(gè)信息頭文件#include <stdlib.h>將進(jìn)程置僵死狀態(tài)釋放其所占有的資源功能向父進(jìn)程發(fā)本進(jìn)程死信號(hào), 并發(fā)送信息 status 給父進(jìn)程, 將自己及自己的子進(jìn)程運(yùn)行 CPU 的時(shí)間總和留待父進(jìn)程使用 wait( ) 收集子進(jìn)程終止時(shí)操作系統(tǒng)做以下工作:關(guān)閉軟中斷 :因?yàn)檫M(jìn)程即將終止而不再處理任何軟中斷信號(hào);回收資源 :關(guān)閉所有已打開文件,釋放進(jìn)程所有的區(qū)及相應(yīng)內(nèi)存,釋放當(dāng)前目錄及修改根目錄的索引節(jié)點(diǎn);寫記帳信息 :將進(jìn)程在運(yùn)行過(guò)程中所產(chǎn)生的記帳數(shù)據(jù)(其中包括進(jìn)程運(yùn)行時(shí)的各種統(tǒng)計(jì)信息)記錄到一個(gè)全局記帳文件中;置該進(jìn)程為僵死狀態(tài) :向父進(jìn)程發(fā)送子進(jìn)程死的軟中斷信號(hào)
11、,將終止信息 status 送到指定的存儲(chǔ)單元中;轉(zhuǎn)進(jìn)程調(diào)度 :因?yàn)榇藭r(shí) CPU 已經(jīng)被釋放,需要由進(jìn)程調(diào)度進(jìn)行CPU 再分配。父進(jìn)程等待子進(jìn)程終止系統(tǒng)調(diào)用:wait() 與 waitpid()格式 1pid_t wait(int *stat_addr, 0);參數(shù)*stat_addr 中存放 exit() 所發(fā)來(lái)終止信號(hào) stat 的值。返回值>=0表示有子進(jìn)程終止,其值為終止子進(jìn)程的pid 號(hào)=-1表示無(wú)子進(jìn)程終止頭文件#include < sys/wait.h >#include < sys/types.h >不得用于商業(yè)用途僅供個(gè)人參考父進(jìn)程使用它等待任意
12、一個(gè)子進(jìn)程終止,如果在執(zhí)行 wait() 之前已經(jīng)有一個(gè)子進(jìn)程結(jié)束了,則對(duì)其做善后處理,并返回子進(jìn)程的pid 號(hào),如果沒(méi)有則返回1,該進(jìn)功能程阻塞,插入等待子進(jìn)程終止的隊(duì)列,當(dāng)有子進(jìn)程終止時(shí)被喚醒。在&stat_addr中保留了子進(jìn)程僵死時(shí)的終止信息(不是返回值)。注意:一個(gè) wait() 只能用來(lái)等待一個(gè)子進(jìn)程終止,如果等待多個(gè)子進(jìn)程終止則需要使用多個(gè) wait() 。格式 2pid_t waitpid (pid_t pid, int * stat_addr, int options );pid=0等待與父進(jìn)程同組的子進(jìn)程參數(shù)pid=-1 ,options=0等同于 wait() ,
13、等待任意子進(jìn)程pid>0等待給定 pid 號(hào)的子進(jìn)程功能等待指定 pid 的子進(jìn)程終止說(shuō)明: 1)若父進(jìn)程僅僅只是等待任意一個(gè)子進(jìn)程結(jié)束,而不需要取子進(jìn)程發(fā)來(lái)的信號(hào),則可以簡(jiǎn)單地使用 wait(0) 。2)如果該進(jìn)程沒(méi)有創(chuàng)建自己的子進(jìn)程就不能使用wait() 或 waitpid() ,否則系統(tǒng)會(huì)返回一個(gè)出錯(cuò)信息。3)如果要取子進(jìn)程執(zhí)行exit() 后所發(fā)來(lái)的終止信號(hào)stat,可以使用 *stat 來(lái)取該變量中的值,而不能使用 wait() 的返回值,因?yàn)?wait() 的返回值是該終止子進(jìn)程的pid 號(hào)。將指定的可執(zhí)行文件加載到指定進(jìn)程映像中,覆蓋該進(jìn)程中原有的程序系統(tǒng)調(diào)用: execl
14、()、 execle()、 execlp()、 execv()、 execve()與 execvp()功能將一個(gè)指定的程序裝入調(diào)用它的進(jìn)程的映像中,用這個(gè)可執(zhí)行文件的副本去覆蓋該進(jìn)程的程序空間,從而改變調(diào)用進(jìn)程的執(zhí)行代碼,使調(diào)用進(jìn)程執(zhí)行新引入的可執(zhí)行程序(二進(jìn)制代碼文件)內(nèi)核在響應(yīng)這組系統(tǒng)調(diào)用后做以下工作:1)根據(jù)給出的路徑名找到指定的可執(zhí)行文件,檢查該文件是否可執(zhí)行,用戶是否具有執(zhí)行權(quán)限(該文件必須是編譯連接后的二進(jìn)制代碼)。2)將該文件載入到調(diào)用它的進(jìn)程映像中覆蓋其原來(lái)的程序。3)為該程序的執(zhí)行設(shè)置參數(shù)數(shù)組和環(huán)境變量。4)啟動(dòng)該進(jìn)程進(jìn)入新的程序入口點(diǎn)去執(zhí)行。此組函數(shù)執(zhí)行時(shí),如果加載成功則直
15、接執(zhí)行,沒(méi)有返回;若加載不成功則返回-1。格式 1execv(file, argv)參數(shù)char *file指向文件全名(路徑名/文件名)的指針char *argvn指向命令及參數(shù)的指針功能1)執(zhí)行參數(shù)指定的命令或文件。2)用該命令或可執(zhí)行文件的副本覆蓋調(diào)用它的子進(jìn)程的映像返回值=-1表示錯(cuò)誤返回頭文件#include <unistd.h >格式 2execl( “路徑名 /文件名 ”, 0)說(shuō)明功能、返回值、頭文件均同格式1使用方法:1)事先準(zhǔn)備好子進(jìn)程要執(zhí)行的程序,并將它編譯連接成可執(zhí)行文件,記下該文件的路徑名和文件名。如果不帶參數(shù)則可以直接使用execl() ,帶參數(shù)則使用e
16、xecv()。2)在父進(jìn)程創(chuàng)建子進(jìn)程之前,在程序中事先定義子進(jìn)程要執(zhí)行的程序文件的文件標(biāo)識(shí)符path不得用于商業(yè)用途僅供個(gè)人參考和參數(shù)數(shù)組 argv ,其中的環(huán)境值可以用 NULL 取代。如果不帶參數(shù)使用 execl() ,則這一步可以不做。3)創(chuàng)建子進(jìn)程后,在子進(jìn)程的分支中,如果不帶參數(shù)使用execl(filepath,0) ,如果帶參數(shù)則使用 execv(filepath,argv) 來(lái)實(shí)現(xiàn)用指定的程序filepath 覆蓋子進(jìn)程映像中原有的程序。不得用于商業(yè)用途僅供個(gè)人參考實(shí)驗(yàn) 4 進(jìn)程通信一、實(shí)驗(yàn)?zāi)康?、加深理解進(jìn)程通信的方法與原理;2、掌握如何利用管道機(jī)制、消息緩沖隊(duì)列、共享存儲(chǔ)區(qū)機(jī)
17、制進(jìn)行進(jìn)程間的通信。二、實(shí)驗(yàn)內(nèi)容1 、了解系統(tǒng)調(diào)用pipe()、 msgget() 、msgsnd() 、msgrcv() 、 msgctl()、 shmget() 、shmat() 、shmdt() 、shmctl()的功能和實(shí)現(xiàn)過(guò)程。2、編寫一C 語(yǔ)言程序,使其用管道來(lái)實(shí)現(xiàn)父子進(jìn)程間通信。子進(jìn)程向父進(jìn)程發(fā)送字符串“ is sending a message to parent!”;父進(jìn)程則從管道中讀出子進(jìn)程發(fā)來(lái)的消息,并將其顯示到屏幕上,然后終止。3、運(yùn)行該程序,觀察、記錄并簡(jiǎn)單分析其運(yùn)行結(jié)果。不得用于商業(yè)用途僅供個(gè)人參考僅供個(gè)人用于學(xué)習(xí)、研究;不得用于商業(yè)用途。For personal use only in study a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年互聯(lián)網(wǎng)廣告投放服務(wù)合同修訂要點(diǎn)提醒3篇
- 二零二五年度#筑夢(mèng)的舞者#舞蹈公益活動(dòng)合作合同3篇
- 2025版高考物理一輪復(fù)習(xí)第一章機(jī)械振動(dòng)與機(jī)械波2機(jī)械波訓(xùn)練4含解析選修3-4
- 思考照亮青春前行
- 思考引領(lǐng)青春輝煌
- 2025年度智能安防監(jiān)控系統(tǒng)包清工承包合同范本3篇
- 二零二五年度2025安保員聘用及應(yīng)急預(yù)案制定服務(wù)合同
- 2025版科技研發(fā)股份轉(zhuǎn)讓合同規(guī)范樣本3篇
- 二零二五年度家具行業(yè)市場(chǎng)調(diào)研居間代理協(xié)議3篇
- 《組織與胚胎學(xué)》課程期末考試復(fù)習(xí)題庫(kù)及答案
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 化學(xué)試卷(含答案)
- 部編版三年級(jí)上冊(cè)道德與法治期末測(cè)試卷帶答案(鞏固)
- 教師個(gè)人工作業(yè)績(jī)總結(jié)范文
- 《中華人民共和國(guó)政府采購(gòu)法》專題培訓(xùn)
- 鄭州大學(xué)《高等代數(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 對(duì)銀行領(lǐng)導(dǎo)班子的評(píng)價(jià)意見(jiàn)和建議范文(3篇)
- 如何保護(hù)個(gè)人手機(jī)數(shù)據(jù)的安全
- 2024醫(yī)療設(shè)備維修與保養(yǎng)合同
- 第6課 戰(zhàn)國(guó)時(shí)期的社會(huì)變革(說(shuō)課稿)2024-2025學(xué)年七年級(jí)歷史上冊(cè)同步高效課堂(統(tǒng)編版2024)
- 汽車內(nèi)飾件及材料氣味評(píng)價(jià)標(biāo)準(zhǔn)解析
評(píng)論
0/150
提交評(píng)論