計算機操作系統(tǒng)實驗報告_第1頁
計算機操作系統(tǒng)實驗報告_第2頁
計算機操作系統(tǒng)實驗報告_第3頁
計算機操作系統(tǒng)實驗報告_第4頁
計算機操作系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

X大學(xué)數(shù)學(xué)與計算機科學(xué)(軟件)學(xué)院實驗報告課程名稱:計算機操作系統(tǒng)學(xué)號:姓名:專業(yè):軟件工程年級:202X級學(xué)期:202X年第2學(xué)期202X年10月24日

試驗一Linux操作系統(tǒng)的使用和分析一、試驗?zāi)康谋驹囼炛匾獙W(xué)習(xí)和掌握Linux操作系統(tǒng)的主線應(yīng)用。通過本試驗,學(xué)生可以純熟掌握Linux環(huán)境下多種主線操作命令接口的應(yīng)用。從系統(tǒng)平安角度出發(fā),學(xué)習(xí)掌握系統(tǒng)的主線平安優(yōu)化和配置,在操作系統(tǒng)層次進行有效平安加固,提高Linux系統(tǒng)的平安性能。通過本次試驗,有助于學(xué)生深入理解操作系統(tǒng)原理中的有關(guān)內(nèi)容,加深認(rèn)識。二、試驗規(guī)定1、純熟掌握Linux系統(tǒng)的主線操作命令。2、熟悉Linux系統(tǒng)的主線配置。3、完畢Linux系統(tǒng)的平安加固。4、掌握一種以上的網(wǎng)絡(luò)應(yīng)用軟件的安裝、配置與應(yīng)用。三、試驗內(nèi)容系統(tǒng)的啟動,如圖:關(guān)閉使用shutdowm尚有列出文獻夾內(nèi)的信息ls,cp復(fù)制拷貝,touch創(chuàng)立文獻命令等等.gz,解壓如圖:然后修改安裝途徑:之后用make編譯文獻在安裝途徑/home/liaoenrui/11里的etc中修改文獻的組名和顧客名:將groud命名ftp,user也命名為ftp,然后用groudadd和useradd命令將這兩個添加在該目錄的sbin目錄下:最終運行文獻,./profile即可四、試驗總結(jié)通過本次的操作系統(tǒng)的上機試驗,我純熟了Linux系統(tǒng)的主線操作命令,并且對安裝文獻有更深刻的理解,比方在上述安裝過程中對于通過froftpd來架構(gòu)linux的ftp,由于之前都是用window系統(tǒng),因此對于這些非常的生疏,因此在請教了多人和上網(wǎng)查詢之后,總算有所理解,并且成功的將此試驗順利完畢。在本次試驗中,我發(fā)現(xiàn)自己的動手能力又有很大的提高,信任后來繼續(xù)努力的話會有更大的進步,當(dāng)然這也要歸功于老師的教導(dǎo)。參照文獻[1]NeilMaththewRichardStonesLinux程序設(shè)計第四版人民郵電出版社[2]周茜,趙明生.中文文本分類中的特性選擇研究[J].中文信息學(xué)報,202X,Vol.18No.3試驗二Linux進程通信一、試驗?zāi)康?〕理解有關(guān)Linux系統(tǒng)調(diào)用;2〕學(xué)習(xí)有關(guān)Linux的進程創(chuàng)立,理解進程創(chuàng)立后兩個并發(fā)進程的執(zhí)行。二、試驗內(nèi)容在Linux環(huán)境下,用C/C++言語編程,使用系統(tǒng)調(diào)用fork創(chuàng)立進程多種子進程。(1)調(diào)試并完畢如下程序,完畢試驗規(guī)定:#include

"stdio.h"#include

"sys/types.h"#include

"unistd.h"int

main(){pid_tpid1;pid_tpid2;pid1

=

fork();pid2

=

fork();printf("pid1:%d,pid2:%d\n",pid1,pid2);}規(guī)定:請說出執(zhí)行這個程序后,將一共運行幾種進程。觀測運行成果,并給出分析與解釋。答:A.執(zhí)行這個程序后,將一共運行4個進程。運行成果如下:分析與解釋:fork()函數(shù)可以建立子進程,且使得子進程得到父進程地址空間的一種復(fù)制;并且,當(dāng)創(chuàng)立成功時,假如是父進程則返回0,子進程則返回子進程的ID,不過,fork()創(chuàng)立的進程并不是從該程序開頭開始執(zhí)行,它只是和父進程同樣繼續(xù)執(zhí)行后續(xù)代碼,因此在之后的語句中,父子進程同步創(chuàng)立一種進程,就形成了四個進程,如圖上所示。因此,,在上面的截圖中,第一次fork()函數(shù)時成功產(chǎn)生了父子進程pid分別為2775和0,第二次使用fork()函數(shù)時父子進程又各產(chǎn)生了一對父子進程父進程產(chǎn)生的父子進程的pid分別為2776和0,子進程產(chǎn)生的父子進程的pid分別為0和2777。由于進程是并發(fā)的,他的調(diào)度我們無法干預(yù),因此出現(xiàn)的成果并非都是一成不變的,執(zhí)行一再后,輸出的次序有也許不一樣樣。(2)參照下面的有關(guān)程序?qū)嵗?,編寫一種管道試驗程序,完畢兩個進程之間的數(shù)據(jù)通信。規(guī)定:父進程次序?qū)懭爰僭O(shè)干個字符串,子進程次序讀出內(nèi)容,并寫入文獻piple.txt,并顯示出來。〔寫出設(shè)計環(huán)節(jié)、數(shù)據(jù)構(gòu)造、關(guān)鍵代碼、試驗成果及其分析闡明〕答:①設(shè)計環(huán)節(jié):用pipe()創(chuàng)立一種管道fd,用fork調(diào)用產(chǎn)生兩個進程〔父進程和子進程〕;將父進程將要傳播給子進程的信息寫在readbuffer;然后使子進程通過讀端用write函數(shù)從緩存中讀取父進程傳播的消息。②數(shù)據(jù)構(gòu)造:定義一種字符數(shù)組string用于寄存父進程將要傳播給子進程的消息,使用read函數(shù)和write函數(shù)配對完畢管道的運行。③關(guān)鍵代碼:#include<unistd.h>#include<stdlib.h>#include<fcntl.h>#include<sys/stat.h>#include<sys/types.h>intmain(void){ intfd[2],out; pid_tchildpid; charstring[]={"abcdefghijklmnopqrstuvwxyz"}; charreadbuffer[27]; pipe(fd); childpid=fork(); if(childpid==-1) { printf("forkerror"); exit(1); } elseif(childpid!=0) { close(fd[0]); write(fd[1],string,sizeofstring); exit(0); } else { close(fd[1]); read(fd[0],readbuffer,27); printf("%s\n",readbuffer); out=open("pipo.txt",O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR); write(out,readbuffer,80); } return0;}④試驗成果:⑤分析闡明:管道是用于進程間通信的一種通信機制。Pipe函數(shù)在兩個程序之間傳遞數(shù)據(jù)不需要啟動shell來解釋祈求的命令,同步還提供了對數(shù)據(jù)的更多操縱,因此用它來創(chuàng)立管道非常以便。三、試驗總結(jié)在做這個試驗之前,一直覺得這是一種非常復(fù)雜的試驗,一直不太情愿去碰它??偹悴坏貌蛔隽耍l(fā)現(xiàn)其實沒有想象中的那么難。并且,通過這個試驗,讓我理解了有關(guān)頁面調(diào)度方面的某些知識,對于系統(tǒng)是怎樣調(diào)度頁面的愈加的清晰明了。通過這次的試驗,使我學(xué)到了不少有用的知識,更重要的是,做試驗的過程,思索問題的措施,這與做其他的試驗是通用的,真正使我們受益匪淺。在試驗課上,由于時間關(guān)系以及考慮不全面,因此導(dǎo)致試驗初始時的不完善,這啟發(fā)了我要進行多方面的思索和研究,尤其是對于進程并發(fā)執(zhí)行這種具有不確定性的問題,更要從多角度進行思索,并動手進行實際操作以及檢查,才能驗證自己的想法與否對的。四、參照文獻[1]中國IT試驗室[2]陳向群,馬洪兵.現(xiàn)代操作系統(tǒng)[M].X:機械工業(yè)出版社,202X.7[3]黃志洪,鐘耿揚,Linux操作系統(tǒng)[B].X:冶金工業(yè)出版社,202X.[4]周巍松.Linux系統(tǒng)分析與高級編程技術(shù)[M].X:機械工業(yè)出版社,202X

試驗三頁面置換算法一、試驗?zāi)康谋驹囼炛匾獙Σ僮飨到y(tǒng)中祈求分頁式內(nèi)存治理及其應(yīng)用的某些關(guān)鍵算法進行模擬。學(xué)生通過設(shè)計與完畢Clock算法,可以強化對對應(yīng)理論的理解,并對理解操作系統(tǒng)內(nèi)部的主線處理原理與過程也有諸多益處。二、試驗規(guī)定主線規(guī)定:描述Clock算法的主線原理、必要的數(shù)據(jù)構(gòu)造、算法執(zhí)行流程圖、編碼完畢。1〕初始化:輸入作業(yè)可占用的總頁框數(shù),初始化置空。2〕輸入序列:輸入一種頁號訪問祈求序列,依次占用對應(yīng)頁框,直至所有占用;3〕Clock算法:當(dāng)頁框所有占用后,對于后續(xù)新的頁號訪問祈求,執(zhí)行Clock算法,淘汰1個頁面后裝入新的頁號。4〕顯示目前分派淘汰序列:顯示淘汰的頁號序列。描述Clock算法的主線原理、必要的數(shù)據(jù)構(gòu)造、算法執(zhí)行流程圖、編碼完畢。三、試驗內(nèi)容主線原理:時鐘頁面置換算法是把所有的頁面都保留在一種類似鐘面的環(huán)形鏈表中,一種表針指向最老的頁面,在采納祈求分頁機制的操作系統(tǒng)中,當(dāng)運行一種程序的時候,假設(shè)要訪問的頁面不在內(nèi)存中而需要把它們調(diào)入內(nèi)存,但此時內(nèi)存已無空閑空間,為了保證該進程能正常運行,需選擇內(nèi)存中臨時不用的頁面調(diào)出到磁盤互換區(qū)。選擇調(diào)出哪個頁面,由頁面算法決定。頁面置換算法的好壞,直接影響系統(tǒng)的性能,因此一種好的頁面置換算法,應(yīng)盡量選擇調(diào)出較長時間內(nèi)不會再訪問的頁面,以保證較低的缺頁率。如下圖。當(dāng)發(fā)生缺頁中斷時,算法首先檢查表針指向的頁面,假如它的R位是0就淘汰該頁面,并把新的頁面插入這個位置,然后把表針前移一種位置;假如R位是1就清除R位并把表針前移一種位置,反復(fù)這個過程直到找到了一種R位為0的頁面為止改良型的Clock算法的思想:如圖:在將一種頁面換出時,假如該頁已被修改正,便須將它重新寫到磁盤上;但假如該頁未被修改正,則不必將它拷回磁盤。同步滿足這兩條件的頁面作為首先淘汰的頁。由訪問位uesbit和修改位change可以組合成下面四種類型的頁面:1類〔usebit=0,change=0〕:該頁近來既未訪問、又未修改,是最對的淘汰頁。2類〔usebit=0,change=1〕:該頁近來未訪問,但被修改,并不是好的淘汰頁。3類〔usebit=1,change=0〕:近來已被訪問,但未被修改,該頁有也許再被訪問。4類〔usebit=1,change=1〕:近來已被訪問且被修改,該頁有也許再被訪問。在內(nèi)存中的每個頁必然是這四類頁面之一,在進行頁面置換時,可采納與簡樸Clock算法相類似的算法,其差異在于須同步檢查訪問位和修改位,以確定該頁是四類頁面中的哪一種。此算法稱為改良型Clock算法。其執(zhí)行過程可提成如下三步:〔1〕從指針?biāo)鶑哪壳拔恢瞄_始掃描循環(huán)隊列,尋覓usebit=0且change=0的頁面,將碰到的第一種頁面作為所選中的淘汰頁。在第一次掃描間不變化訪問位usebit?!?〕假如第一步失敗,即查找一周后未碰到第一類頁面,則開始第二輪掃描,尋覓usebit=0且change=1的第二類頁面,將所碰到的第一種此類頁面作為淘汰頁。在第二輪掃描期間,將所有通過的頁面的訪問位置0?!?〕假如第二步也失敗,即未找到第二類頁面,則將指針返回到開始的位置,并將所有的訪問位復(fù)0。然后,反復(fù)第一步,假如仍失敗,必要時再反復(fù)第二步,此時就肯定可以找到被淘汰的頁。算法流程設(shè)計:STEP1:輸入分派的頁框數(shù),頁面訪問次數(shù)和要訪問的頁面號序列

,在目前途徑下建一種in.txt的文獻作為輸入使用。STEP2:內(nèi)存頁面初始化。內(nèi)存中頁面的int數(shù)據(jù)構(gòu)造為數(shù)組,用余項具有頁號值now和訪問位值usebit,修改位change。開始時頁號均為-1,訪問位為0,修改位也為0。

STEP3:測試數(shù)據(jù)。詳細(xì)算法是依要訪問的頁面號,運用寫在main〔〕函數(shù)里的clock算法查找與否已經(jīng)存在于內(nèi)存中。假設(shè)存在,則修改其訪問位為1.假設(shè)不存在,觸發(fā)缺頁中斷。最終,打印目前內(nèi)存狀態(tài)。如此循環(huán)直至測試串都訪問完畢重要函數(shù)完畢://CLOCK算法 if(mark[num]){ printf("命中頁%d*",num); usebit[num]=1; if(work[now]==num)now=(now+1)%len;//假設(shè)是目前指針?biāo)谖恢脛t移位,否則不變}else{ miss++; mark[num]=usebit[num]=1;change[num]=cha; if(work[now]==-1){//推斷與否尚有空的內(nèi)存塊 work[now]=num;now=(now+1)%len; printf("插入頁%d*",num);} else { while(true){//循環(huán)的查找最對的的替代塊for(inti=0;i<len;i++){//超找usebit=0,change=0的塊 if(usebit[work[now]]==0&&change[work[now]]==0){f1=true;break;} now=(now+1)%len; } if(!f1){//查找usebit=0.change=1的塊,查找過程中將不符合的usebit置0 for(intj=0;j<len;j++){if(usebit[work[now]]==0&&change[work[now]]==1){f2=true;break;} usebit[work[now]]=0; now=(now+1)%len;} } if(!f2){//將所有訪問頁置0 for(intk=0;k<len;k++){ usebit[work[now]]=0; now=(now+1)%len;} } if(f1||f2)break; } printf("淘汰頁%d,插入頁%d*",work[now],num); mark[work[now]]=0; work[now]=num; now=(now+1)%len;}測試數(shù)據(jù):在這個模擬算法中我將所有的輸入放在in.txt之中,并在文獻中輸入如下的數(shù)據(jù):3005110304121204131001051輸出的成果如圖:成果分析:由上圖輸出成果可以看到在第四個訪問頁時,需要淘汰頁號,從總頁框總看分別為:0號的訪問頁和修改位為1:0,5號的訪問位

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論