操作系統(tǒng)實驗指導(dǎo)書_第1頁
操作系統(tǒng)實驗指導(dǎo)書_第2頁
操作系統(tǒng)實驗指導(dǎo)書_第3頁
操作系統(tǒng)實驗指導(dǎo)書_第4頁
操作系統(tǒng)實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)實驗指導(dǎo)書1操作系統(tǒng)是一門理論性和時間性都很強(qiáng)的課程。要學(xué)好操作系統(tǒng)的設(shè)計原理,除了聽課、看書、 做習(xí)題外,最好的方法就是在實踐中進(jìn)行,包括使用操作系統(tǒng)、閱讀和分析已有操作系統(tǒng)的源代碼、自己設(shè)計小型系統(tǒng)/ 模塊或模擬算法等。本教材安排的實驗內(nèi)容按深度可分為五個層次,即:使用級、觀察級、系統(tǒng)管理級、源碼閱讀級和實現(xiàn)級。( 1)使用級:是指如何使用操作系統(tǒng),包括對命令(以及菜單和shell )、系統(tǒng)調(diào)用和系統(tǒng)文件的使用。2)觀察級:是指通過使用級的接口,從外部觀察操作系統(tǒng)的內(nèi)部工作過程和結(jié)構(gòu)。3)系統(tǒng)管理級:是指系統(tǒng)或設(shè)備的安裝、配置和性能調(diào)整。4)源碼閱讀級:是指對現(xiàn)有操作系統(tǒng)部分內(nèi)核源

2、代碼的閱讀。5)實現(xiàn)級:是指編程模擬實現(xiàn)操作系統(tǒng)某些功能模塊。實驗的操作平臺是Red Hat Linux 9.0和 Windows 2000 Professional,其中前者是主要的實驗平臺, 因為源碼閱讀級等實驗都是在Linux平臺上進(jìn)行的, 當(dāng)然,在 Linux 上進(jìn)行的實驗基本上也都可在UNIX 平臺上直接進(jìn)行。讀者可根據(jù)自己的需要以及實驗條件等選擇相應(yīng)的實驗內(nèi)容。使用級實驗實驗 1 安裝 Linux 操作系統(tǒng)一實驗?zāi)康脑诠嶒灥奈C(jī)上安裝Linux 操作系統(tǒng), 后續(xù)實驗都將在此環(huán)境上進(jìn)行。通過實驗, 要求:了解硬件資源要求。學(xué)會安裝 Linux 系統(tǒng)。學(xué)會啟動 Linux 系統(tǒng)。了解

3、 Linux 多引導(dǎo)器的配置。二實驗內(nèi)容把 Linux 安裝到本地硬盤。主要安裝步驟提示:如果 BIOS 支持光盤啟動,則插入 Linux 安裝光盤,重新啟動計算機(jī)。如果從 DOS環(huán)境啟動,則在DOS提示符下執(zhí)行批處理命令,如autoboot 。對硬盤分區(qū),留出交換空間和文件系統(tǒng)的空間。按提示分階段裝入系統(tǒng)。配置系統(tǒng)。實驗 2 安裝 Windows 2000 操作系統(tǒng)一實驗?zāi)康?通過對 Windows 2000 professional的安裝操作,了解操作系統(tǒng)應(yīng)用環(huán)境建立的初步過程。掌握 Windows 操作系統(tǒng)的基本系統(tǒng)設(shè)置。了解 Windows 多操作系統(tǒng)安裝配置的方法。二實驗內(nèi)容1. 把

4、 Windows 2000 安裝到本地硬盤。注意 :若要與Linux 并存于同一硬盤上,則宜先安裝Windows。主要安裝步驟與安裝 Linux 相似,在此從略。注意 ,按屏幕提示選擇合適的文件系統(tǒng)時,建議選擇NTFS。輸入的管理員密碼要記住。實驗 3 Linux系統(tǒng)用戶接口和編程界面實驗一實驗?zāi)康?熟悉使用Linux 字符界面、窗口系統(tǒng)的常用命令。2熟悉運(yùn)用Linux 常用的編程工具。3熟悉運(yùn)用Linux 的在線求助系統(tǒng)。4掌握在Linux 操作系統(tǒng)環(huán)境上編輯、編譯、調(diào)試、運(yùn)行一個C 語言程序的全過程。二實驗內(nèi)容1熟悉開機(jī)后登錄Linux 系統(tǒng)和退出系統(tǒng)的過程;2熟悉 Linux 字符界面虛

5、擬終端窗口和shell,以及圖形界面X-Window( 如gnome或 KDE):練習(xí)并掌握常用的 Linux 操作命令,如 ls 、cat 、ps、df 、find 、grep 、cd、more、cp、rm、kill 、at 、vi 、cc 、man、help 、 control+d/c 、等;熟悉常用 shell 的提示符;熟悉字符窗口與圖形界面之間的切換。3學(xué)習(xí)使用Linux 的在線求助系統(tǒng),如man和 help 命令等。4掌握一種Linux 的編輯器,特別是字符界面的vi 工具的使用。5用 vi 編輯一個打印“ Hello,I am a C program ”字串的 C語言程序,然后編

6、譯并運(yùn)行它,記下整個過程。熟悉 gcc 、 gdb 等編譯器、調(diào)試器的使用。2系統(tǒng)行為觀察級實驗實驗 4 觀察 Linux 進(jìn)程的異步并發(fā)執(zhí)行一實驗?zāi)康牧私膺M(jìn)程與程序的區(qū)別,加深對進(jìn)程概念的理解;掌握進(jìn)程并發(fā)執(zhí)行的原理, 理解進(jìn)程并發(fā)執(zhí)行的特點, 區(qū)分進(jìn)程并發(fā)執(zhí)行與串行執(zhí)行;3. 了解 fork( )系統(tǒng)調(diào)用的返回值,掌握用fork()創(chuàng)建進(jìn)程的方法;熟悉 wait 、 exit 等系統(tǒng)調(diào)用。二實驗內(nèi)容31編寫一C 語言程序,實現(xiàn)在程序運(yùn)行時通過系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進(jìn)程,使父、子三進(jìn)程并發(fā)執(zhí)行,父親進(jìn)程執(zhí)行時屏幕顯示“I am father”,兒子進(jìn)程執(zhí)行時屏幕顯示“ I am s

7、on ”,女兒進(jìn)程執(zhí)行時屏幕顯示“I am daughter”。2多次連續(xù)反復(fù)運(yùn)行這個程序,觀察屏幕顯示結(jié)果的順序,直至出現(xiàn)不一樣的情況為止。記下這種情況,試簡單分析其原因。3修改程序,利用nice ( )改變各進(jìn)程的優(yōu)先級,觀察不同情況下進(jìn)程調(diào)度效果的區(qū)別。4修改程序,在父、子進(jìn)程中分別使用 wait 、 exit 等系統(tǒng)調(diào)用“實現(xiàn)”其同步推進(jìn),多次反復(fù)運(yùn)行改進(jìn)后的程序,觀察并記錄運(yùn)行結(jié)果。實驗 5 Linux進(jìn)程間的通信一、實驗?zāi)康膶W(xué)習(xí)如何利用管道機(jī)制、 消息緩沖隊列、 共享存儲區(qū)機(jī)制進(jìn)行進(jìn)程間的通信, 并加深對上述通信機(jī)制的理解。二、實驗內(nèi)容1 了解系統(tǒng)調(diào)用 pipe() 、msgget

8、() 、msgsnd() 、 msgrcv() 、msgctl() 、 shmget() 、 shmat() 、 shmdt() 、shmctl() 的功能和實現(xiàn)過程。2編寫一C 語言程序,使其用管道來實現(xiàn)父子進(jìn)程間通信。子進(jìn)程向父進(jìn)程發(fā)送字符串“ is sending a message to parent! ”;父進(jìn)程則從管道中讀出子進(jìn)程發(fā)來的消息,并將其顯示到屏幕上,然后終止。3運(yùn)行該程序,觀察、記錄并簡單分析其運(yùn)行結(jié)果。實驗 6 觀察內(nèi)存分配結(jié)果一實驗?zāi)康膶W(xué)習(xí)如何利用Linux 的 malloc函數(shù)動態(tài)申請一段內(nèi)存空間。二實驗內(nèi)容1了解 malloc函數(shù)的功能和Linux 虛擬內(nèi)存管理

9、的原理。2編寫一C 語言程序,用malloc函數(shù)申請一段存儲空間,并在終端上顯示起始地址。3運(yùn)行該程序,觀察、記錄其運(yùn)行結(jié)果,并分析說明結(jié)果的地址是否為物理地址。實驗 7 觀察內(nèi)存使用情況一、實驗?zāi)康挠?Windows 2000 自帶的工具觀察內(nèi)存空間的使用情況。二、實驗內(nèi)容用 Windows 2000 的性能監(jiān)視器或者任務(wù)管理器觀察內(nèi)存工作情況。觀察并寫出屏幕顯示的內(nèi)容。系統(tǒng)管理級實驗4實驗 8 在 Linux 中使用優(yōu)盤一實驗?zāi)康?了解 mount 和 umount 命令的功能;2了解 Linux 設(shè)備文件的命名;3用上述所了解的內(nèi)容解決在Linux 中使用優(yōu)盤的問題。二實驗內(nèi)容1用 mo

10、unt 命令把優(yōu)盤的設(shè)備文件安裝到/mnt 目錄(可能需要root用戶口令,請勿亂用)。2進(jìn)入 /mnt 目錄,使用優(yōu)盤(比如,往里拷貝一個文件)。3退出 /mnt 目錄,用umount 命令把優(yōu)盤從系統(tǒng)中卸載掉。4按 ctrl+d組合鍵,退出超級用戶模式。5總結(jié)在Linux 中使用優(yōu)盤的過程。實驗 9 使用 Windows 2000 的注冊表屏蔽桌面上的“回收站“一實驗?zāi)康?了解 Windows 2000 注冊表的作用,熟悉注冊表編輯器;2熟悉 Windows 2000 注冊表中5 個主要根鍵的內(nèi)容與作用;3了解備份注冊表的重要性,掌握備份注冊表的基本方法;4學(xué)會通過修改注冊表,屏蔽桌面“回

11、收站”圖標(biāo)的方法。二實驗內(nèi)容1備份注冊表(或者打開后導(dǎo)出注冊表)。2運(yùn)行 regedit命令打開注冊表。3 選擇注冊表中 “HKEY_LOCAL_MACHINE”子窗口(即找到此根鍵),定位到“ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktop NameSpace”分支,在該分支下有多個子鍵對應(yīng)桌面上的某些系統(tǒng)圖標(biāo)。4刪除鍵值為 Recycle Bin 的子鍵, 如子鍵 645FF040-5081-1-1B-9F08-00AA002F954E 。5重新啟動計算機(jī)。6根據(jù)備份的注冊表內(nèi)容,恢復(fù)注冊表中被

12、刪除的子鍵,重新啟動計算機(jī)。7觀察兩次重啟后的情況,總結(jié)備份、修改和恢復(fù)注冊表的一般過程。4源代碼閱讀級實驗這部分實驗難度較大,但很有意義,也很有意思,建議學(xué)生分組協(xié)作完成。5實驗 10 分析 Linux 進(jìn)程調(diào)度程序一實驗?zāi)康?了解 Linux 源代碼的分布;2了解閱讀Linux 源代碼的一般方法;3熟悉 Linux 管理進(jìn)程用的主要數(shù)據(jù)結(jié)構(gòu);4通過閱讀Linux 進(jìn)程調(diào)度有關(guān)函數(shù)的源代碼,理解Linux 的進(jìn)程調(diào)度算法及其實現(xiàn)所用的主要數(shù)據(jù)結(jié)構(gòu)。二實驗內(nèi)容1通過查閱參考書或者上網(wǎng)找資料,熟悉/usr/src/linux(注意:這里最后一級目錄名可能是個含具體內(nèi)核版本號和 “l(fā)inux ”字

13、符串的名字) 下各子目錄的內(nèi)容, 即所含 Linux 源代碼的情況。2在概覽Linux 啟動和初始化部分源代碼基礎(chǔ)上,分析Linux 進(jìn)程調(diào)度有關(guān)函數(shù)的源代碼,主要是 schedule()函數(shù)和 goodness() 函數(shù),并且要對它們引用的頭文件等一并分析。3歸納總結(jié)出Linux的進(jìn)程調(diào)度算法及其實現(xiàn)所用的主要數(shù)據(jù)結(jié)構(gòu)。實驗 11 跟蹤系統(tǒng)查找文件過程一實驗?zāi)康?了解 Linux 源代碼的分布;2了解閱讀Linux 源代碼的一般方法;3熟悉 Linux 管理文件用的主要數(shù)據(jù)結(jié)構(gòu);4通過分析Linux 文件系統(tǒng)部分源代碼,跟蹤系統(tǒng)查找文件的過程。二實驗內(nèi)容1 通過查閱參考書或者上網(wǎng)找資料,熟悉

14、 /usr/src/linux(注意:這里最后一級目錄名可能是個含具體內(nèi)核版本號和 “ linux ”字符串的名字) 下各子目錄的內(nèi)容, 即所含 Linux 源代碼的情況。2在概覽Linux 啟動和初始化部分源代碼基礎(chǔ)上,分析Linux 虛擬文件系統(tǒng)及EXT3文件系統(tǒng)的部分內(nèi)核源代碼,即其超級塊、組描述符、數(shù)據(jù)塊位圖、索引節(jié)點表、目錄項結(jié)構(gòu)及其相關(guān)操作的源代碼實現(xiàn),并利用各種可能工具,跟蹤、 展示 Linux 文件系統(tǒng)管理模塊搜索 EXT3文件系統(tǒng)的 /usr/include/stdio.h文件的過程。3歸納總結(jié)出Linux 根據(jù)哪些主要數(shù)據(jù)結(jié)構(gòu)先檢索出文件/usr/include/stdio

15、.h的索引節(jié)點,進(jìn)而讀出其內(nèi)容的全部過程。5實現(xiàn)級實驗本級的實驗既可在Linux ,也可在 Windows 2000 操作系統(tǒng)平臺下進(jìn)行。實驗 11 進(jìn)程調(diào)度模擬程序設(shè)計一實驗?zāi)康募由顚M(jìn)程概念和進(jìn)程調(diào)度過程/ 算法的理解。二、實驗內(nèi)容1給出進(jìn)程調(diào)度的算法描述(如基于動態(tài)優(yōu)先級和時間片輪轉(zhuǎn)調(diào)度算法的描述)。62用 C語言設(shè)計一個對n 個并發(fā)進(jìn)程進(jìn)行調(diào)度的程序,每個進(jìn)程由一個進(jìn)程控制塊( PCB)結(jié)構(gòu)表示,該進(jìn)程控制塊應(yīng)包括下述信息:進(jìn)程標(biāo)識ID 、進(jìn)程優(yōu)先數(shù)PRIORITY(并規(guī)定優(yōu)先數(shù)與優(yōu)先權(quán)成正比)、時間片數(shù)CHIP、進(jìn)程已經(jīng)占用CPU的時間 CPUTIME,進(jìn)程還需要運(yùn)行的時間ALLTI

16、ME(當(dāng)進(jìn)程運(yùn)行完畢時,其值為0)、進(jìn)程的狀態(tài)STATE(為簡化起見。設(shè)每個進(jìn)程處于運(yùn)行E( excecuting)、就緒R(ready )和完成F(finish)三種狀態(tài)之一,并假設(shè)起始狀態(tài)都是就緒狀態(tài)R。),以及進(jìn)程隊列指針NEXT(用來將PCB排成隊列)等,可按照調(diào)度算法的不同而增刪。3調(diào)度程序應(yīng)當(dāng)包含2 種不同的調(diào)度算法,運(yùn)行時可以任選一種,以利于各種方法的分析和比較。4程序應(yīng)能顯示或打印各種進(jìn)程狀態(tài)和參數(shù)變化情況,便于觀察。即要顯示每個時間片內(nèi)各進(jìn)程的情況,并且指出運(yùn)行進(jìn)程及就緒和阻塞隊列中的內(nèi)容。實驗 12 頁面置換模擬程序設(shè)計一、實驗?zāi)康募由顚φ埱箜撌酱鎯芾韺崿F(xiàn)原理的理解,掌握

17、頁面置換算法。二、實驗內(nèi)容1 假設(shè)分給一作業(yè)的內(nèi)存塊數(shù)為4,每個頁面中可存放10 條指令。2 用 C 語言設(shè)計一個程序,模擬一作業(yè)的執(zhí)行過程。設(shè)該作業(yè)共有320 條指令, 即它的地址空間為32 頁,目前它的所有頁面都還未調(diào)入內(nèi)存。在模擬過程中,如果所訪問的指令已經(jīng)在內(nèi)存,則顯示其物理地址,并轉(zhuǎn)下一條指令。如果所訪問的指令尚未裝入內(nèi)存,則發(fā)生缺頁, 此時需記錄缺頁的次數(shù),并將相應(yīng)頁調(diào)入內(nèi)存。如果 4 個內(nèi)存塊中均已裝入該作業(yè)的虛頁面,則需進(jìn)行頁面置換。最后顯示其物理地址,并轉(zhuǎn)下一條指令。在所有320條指令執(zhí)行完畢后,請計算并顯示作業(yè)運(yùn)行過程中發(fā)生的缺頁率。3 置換算法:請分別考慮OPT、 FIFO 和 LRU算法。作業(yè)中指令的訪問次序要求按下述原則生成:50%的指令是順序執(zhí)行的。25%的指令是均勻分布在前地址(即低地址)部分。25%的指令是均勻分布在后地址(即高地址)部分。具體的實施辦法是: 在 0 , 319 之間隨機(jī)選取一條起始執(zhí)行指令,其序號為m;順序執(zhí)行下一條指令,即序號為m+1的指令;通過隨機(jī)數(shù),跳轉(zhuǎn)到前地址部分0 , m-1 中的某條指令處,其序號為m1;順序執(zhí)行下一條指令,即序號為m1+1的指令;通過隨機(jī)數(shù),跳轉(zhuǎn)到后地址部分m1+2,319 中的某條指令處,其序號為m2;順序執(zhí)行下一條指令,即序號為

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論