




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、操作系統(tǒng)實驗指導 實驗計劃及實驗項目 操作系統(tǒng)實驗課程計劃學時36學時,1學分,下表列出實驗項目,其中必做實驗24學時,選做實驗12學時(從24學時的可選做實驗項目中任選12學時)。 序號 將該分區(qū)從鏈中移出u.size 大小的分區(qū) 名稱類型 開出 要求 目的要求人組 學時 1 進程調(diào)度模擬實驗 基礎 必做 1熟悉進程控制塊的作用和實現(xiàn)技術; 2熟悉操作系統(tǒng)的進程調(diào)度算法及實現(xiàn)方法。 1 6 2 作業(yè)調(diào)度模擬實驗 基礎選做 1熟悉作業(yè)控制塊的作用和實現(xiàn)技術; 2熟悉操作系統(tǒng)的作業(yè)調(diào)度算法及實 現(xiàn)方法。1 6 3 存儲器管理實驗 從頭開始查表 綜合 必做 理解分區(qū)式存儲管理的基本原理1 2熟悉分
2、區(qū)分配和回收算法1 6 4 虛擬存儲器管理實驗 檢索完否?驗證 必做1理解頁式虛擬存儲管理的基本原 理 2熟悉常用的頁面置換算法Y 返回1 6 5 文件管理實驗設計 N 選做 模擬文件系統(tǒng)的基本功能1了解文件系統(tǒng)的基本結(jié)構(gòu)和文件2 管理方法N 3-4 12 6 操作系統(tǒng)接口實驗 =u.size? m.size 驗證Y 選做 熟悉操作系統(tǒng)的用戶接口。1利用匯編語言編程進行系統(tǒng)功能調(diào)2 用。 繼續(xù)檢索下一個表項1 6 7 銀行家算法實驗m.sizeu.size從該分區(qū)中劃出驗證 G? N 必做 1了解死鎖的產(chǎn)生和避免的辦法并設計實 2編程實現(xiàn)銀行家算法,驗數(shù)據(jù)驗證其避免死鎖的資源分配 策略。Y 1
3、 6 一、操作系統(tǒng)接口實驗 實驗目的 熟悉操作系統(tǒng)的命令接口、圖形接口和程序接口。 實驗內(nèi)容 ? UNIX或LINUX環(huán)境: ? 熟悉開機登錄進入系統(tǒng)、退出系統(tǒng)的過程。 ? 使用UNIX或LINUX常用命令以及圖形化接口X-Windows。 ? 使用C語言編制一個小程序,使其可以通過某個系統(tǒng)調(diào)用來獲得操作系統(tǒng)的服務。 ? Windows環(huán)境: ? 熟悉開機登錄進入系統(tǒng)、退出系統(tǒng)的過程。 ? 熟悉使用命方式啟動應用程序的過程、熟悉Windows圖形用戶接口。 ? 編程實現(xiàn)一個操作系統(tǒng)的簡單命令解釋程序。 ? 使用匯編語言編制一個小程序,使其可以通過某些系統(tǒng)調(diào)用來獲得操作系統(tǒng)的服務。 實驗分析和思
4、考 ? 操作系統(tǒng)向用戶提供的各種接口分別適用于什么場合? 實驗學時安排 6學時,在第一章學習完之后可以進行。(選做) 實驗題目 (1)命令接口實驗 利用操作系統(tǒng)的用戶接口編寫程序?qū)崿F(xiàn)一個操作系統(tǒng)的簡單shell程序,實現(xiàn)對一些簡單命令的解釋執(zhí)行。具體內(nèi)容包括: ? 查閱相關函數(shù)system(cmd)的調(diào)用方法,掌握它的用法; ? 掌握操作系統(tǒng)用戶接口的使用方法; ? 編寫主函數(shù),實現(xiàn)一個微型命令解釋程序,該程序可以接受并解釋以下命令: ? dir 列出當前目錄 拷貝文件 ? copy file1 file2 ? del filename 刪除文件 ? echo string 顯示字符串 exi
5、t 結(jié)束、退出 ?(2) 程序接口實驗 使用DOS系統(tǒng)功能調(diào)用進行編程,實現(xiàn)文件操作。(在DOS下用3ch號功能創(chuàng)建一個文件,3dh號功能打開一個文件,3eh好功能關閉一個文件,3fh號功能讀文件,40h號功能寫文件。 windows下用CreatFile創(chuàng)建一個文件,CloseHandle關閉文件,WriteFile寫文件OpenFile打開文件,還有很多文件操作的api,可以查閱資料) 【示例1】用匯編語言編程把輸入的信息寫到txt文件中。 DATA SEGMENT BUFFER DB ABCDEF FILENAME DB A.TXT EMSG DB ERROR!,$ DATA ENDS
6、STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK1,CS:CODE START: AX,DATA MOV DS,AX MOV 5BH也可以用號功能,創(chuàng)建文件, ;3CH AH,3CH MOV 號功能 文件屬性 ; CX,0 MOV DX,FILENAME LEA 21H INT 若CF=1則出錯處理 ; JZ ERROR ;AX中為文件句柄 MOV BX,AX ;要寫的字節(jié)數(shù) MOV CX,6 DX,BUFFER LEA 好功能調(diào)用,寫文件 ;40H MOV AH,4
7、0H 21H INT END0 JMP ERROR: AH,9 MOV DX,EMSG LEA 21H INT END0: MOV AH,4CH 21H INT ENDS CODE START END 改進要求: 文件未關閉,請在合適位置增加關閉文件功能;1) 文件名改為從鍵盤輸入;2) 字符串從鍵盤輸入;3) 】將文本文件內(nèi)容讀入內(nèi)存并顯示在屏幕上。比如此文本文件叫做2【示例 ,內(nèi)容是:(兩行)test.txt1234 56789 DSEG SEGMENT ;數(shù)據(jù)段:在此處添加程序所需的數(shù)據(jù) PATHNM1 DB D:/TEST.TXT BUFFER1 DB 100 DUP (?) DSEG
8、 ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG START: mov ax, dseg mov ds, ax ;打開文件TEST.TXT MOV AH,3DH LEA DX,PATHNM1 MOV AL,2 INT 21H ;讀取文件內(nèi)容,存入BUFFER1 LEA DX,BUFFER1 MOV BX,AX MOV CX,100 MOV AH,3FH INT 21H ;顯示BUFFER1中的內(nèi)容 MOV CX,AX LEA SI,BUFFER1 NEXT: MOV DL,SI MOV AH,2 INT 21H INC SI LOOP NEXT ;關閉文件
9、MOV AH,3EH INT 21H ;按任意鍵退出 mov ah,1 int 21h mov ax, 4c00h ;程序結(jié)束,返回到操作系統(tǒng)系統(tǒng) int 21h CSEG ENDS END START 改進要求: 1) 文件名改為從鍵盤輸入; 字符串寫入另一文件; 2)二、作業(yè)調(diào)度模擬實驗 實驗目的 用高級語言編寫和調(diào)試一個或多個作業(yè)調(diào)度的模擬程序,以加深對作業(yè)調(diào)度算法的理解。 實驗內(nèi)容 為單道批處理系統(tǒng)設計一個作業(yè)調(diào)度程序。 說明:由于在單道批處理系統(tǒng)中,作業(yè)一投入運行,它就占有計算機的一切資源直到作業(yè)完成為止,因此調(diào)度作業(yè)時不必考慮它所需要的資源是否得到滿足,它所占用的 CPU時限等因素
10、。作業(yè)調(diào)度算法: ? 先來先服務(FCFS)調(diào)度算法,即按作業(yè)提交的先后次序進行調(diào)度,總是首先調(diào)度在系統(tǒng)中等待時間最長的作業(yè)。 ? 短作業(yè)優(yōu)先調(diào)度算法; ? 響應比搞著優(yōu)先調(diào)度算法; 每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時間、所需的運行時間、所需的資源、作業(yè)狀態(tài)、鏈指針等等。 作業(yè)的狀態(tài)可以是等待W(Wait)、運行R(Run)和完成F(Finish)三種狀態(tài)之一。每個作業(yè)的最初狀態(tài)總是等待W。各個等待的作業(yè)按照提交時刻的先后次序排隊,總是首先調(diào)度等待隊列中隊首的作業(yè)。 每個作業(yè)完成后要打印該作業(yè)的開始運行時刻、完成時刻、周轉(zhuǎn)時間和帶權周轉(zhuǎn)時間,這一組作業(yè)完
11、成后要計算并打印這組作業(yè)的平均周轉(zhuǎn)時間、帶權平均周轉(zhuǎn)時間。 : 調(diào)度算法的流程圖如下 實驗分析和思考 ? 什么類型的操作系統(tǒng)必須具有作業(yè)調(diào)度功能? ? 作業(yè)調(diào)度算法性能如何衡量? ? 多道批處理系統(tǒng)作業(yè)調(diào)度要考慮哪些因素? 實驗學時安排 (選做)學時,在調(diào)度與死鎖內(nèi)容學習之后進行。6三、銀行家算法實驗 實驗目的 通過對銀行家算法的模擬加深對死鎖概念的認識,掌握解決死鎖問題的方法。 實驗內(nèi)容 用C語言、Pascal語言或其他開發(fā)工具實現(xiàn)銀行家算法模擬程序,輸入系統(tǒng)資源配置情況、進程資源最大需求、占用情況后,能夠判斷系統(tǒng)是否安全,對某進程的一次資源請求,能夠決定是否實施分配。 算法具體內(nèi)容參見計算
12、機操作系統(tǒng)教材。 實驗分析和思考 ? 產(chǎn)生死鎖的四個必要條件是什么? ? 解決死鎖問題的方法有哪些? ? 銀行家算法是如何解決死鎖問題的? 實驗學時安排 (必做)學時,在調(diào)度與死鎖內(nèi)容學習之后進行。6四、進程調(diào)度模擬實驗 實驗目的 通過對進程調(diào)度算法的模擬加深對進程概念和進程調(diào)度過程的理解。 實驗內(nèi)容 ? 用C語言或Pascal語言實現(xiàn)對N(N=5)個進程的調(diào)度模擬,要求至少采用兩種不同的調(diào)度算法(如簡單輪轉(zhuǎn)法Round Robin和優(yōu)先權高者優(yōu)先算法Highest Priority First),分別進行模擬調(diào)度。 ? 每個用來標識進程的進程控制塊PCB用結(jié)構(gòu)(記錄)來 描述,根據(jù)需要,它包
13、括以下字段: ? 進程標識數(shù)ID。 ? 進程優(yōu)先數(shù)Priority,并規(guī)定優(yōu)先數(shù)越大的進程,其優(yōu)先權越高。采用簡單輪轉(zhuǎn)法時該字段無用。 ? 進程已經(jīng)占用的CPU時間CPUTIME。 ? 進程還需占用的CPU時間ALLTIME。當進程運行完畢時,ALLTIME變?yōu)?。 ? 進程的阻塞時間STARTBLOCK,表示當進程再運行STARTBLOCK個時間片后,進程將進入阻塞狀態(tài)。 ? 進程被阻塞的時間BLOCKTIME,表示已經(jīng)阻塞的進程再等待BLOCKTIME格時間片后,將轉(zhuǎn)換成就緒狀態(tài)。 ? 進程狀態(tài)STATE。 ? 隊列指針NEXT,用來將PCB排成隊列。 ? 優(yōu)先數(shù)改變的原則(采用簡單輪轉(zhuǎn)法
14、時該字段無用): ? 進程在就緒隊列中等待一個時間片,優(yōu)先數(shù)增加1; ? 進程每運行一個時間片,優(yōu)先數(shù)減3。 ? 假設在進行調(diào)度前,系統(tǒng)中有5個進程,它們的初始狀態(tài)可以編程輸入 ,例如可以初始化為如下內(nèi)容:(更具有靈活性) ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE READY 3 0 3 9 0 2 READY 3 0 -1 1 0 38 READY 6 0 30 -1 2 0 READY 3 29 3 -1 0 0 READY 4 0 4 0 0 -1 ? 為了清楚地觀察諸進程的調(diào)度過程,程序應該將每個時間片內(nèi)各進程的情況顯
15、示出來并暫停,參考格式如下: Running:I Ready Queue:Idi,Idj, Block Queue:Idk,Idl, = ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE 0 P0 C0 A0 T0 B0 S0 1 P1 C1 A1 T1 B1 S1 2 P2 C2 A2 T2 B2 S2 3 P3 C3 A3 T3 B3 S3 4 P4 C4 A4 T4 B4 S4 每進行一次調(diào)度程序都打印一次運行進程、就緒隊列、以及各個進程的 PCB, 以便進行檢查。重復以上過程,直到所要進程都完成為止。調(diào)度算法的流程圖如 : 下
16、 實驗分析和思考 ? 在實際的進程調(diào)度中,還有哪些可行的算法,怎樣模擬? ? 在實際的進程調(diào)度中,除了按算法選擇下一個運行的進程之外,操作系統(tǒng)還應該做哪些工作? ? 為什么對進程的優(yōu)先數(shù)可以按上述原則進行修改?有什么好處? 實驗學時安排 (必做)學時,在調(diào)度與死鎖內(nèi)容學習之后進行。6五、分區(qū)存儲管理模擬實驗(存儲器管理實驗) 實驗目的 了解動態(tài)分區(qū)存儲管理方式中的數(shù)據(jù)結(jié)構(gòu)和分配算法,加深對動態(tài)分區(qū)存儲管理方式及其實現(xiàn)技術的理解。 實驗內(nèi)容 ? 用C語言或Pascal語言分別實現(xiàn)采用首次適應算法或最佳適應算法的動態(tài)分區(qū)分配過程Allocate()和回收過程Free()。其中,空閑分區(qū)采用空閑分區(qū)
17、鏈來組織,內(nèi)存分配時,優(yōu)先使用空閑區(qū)低地址部分的空間。 ? 流程圖如下: 將該分區(qū)分配給請求者 修改有關數(shù)據(jù)結(jié)構(gòu)返回 ? 假設初始狀態(tài),可用內(nèi)存空間為640KB,作業(yè)請求序列如下(也可以編程從鍵盤輸入,R表示請求,F(xiàn)表示釋放): ? 作業(yè)1請求130 KB。 ? 作業(yè)2請求60 KB。 ? 作業(yè)3請求100 KB。 ? 作業(yè)2釋放60 KB。 ? 作業(yè)4請求200 KB。 ? 作業(yè)3釋放100 KB。 ? 作業(yè)1釋放130 KB。 ? 作業(yè)5請求140 KB。 ? 作業(yè)6請求60 KB。 ? 作業(yè)7請求50 KB。 ? 作業(yè)6釋放60 KB。 ? 要求每次分配和回收后顯示出空閑區(qū)鏈的情況。 ?
18、 如果不能為作業(yè)的請求進行內(nèi)存分配,給出相應的提示信息。 實驗分析和思考 ? 采用首次適應算法和最佳適應算法,對內(nèi)存的分配和回收速度有什么影響? ? 如何解決碎片片問題? 實驗學時安排 6學時,在分區(qū)存儲管理內(nèi)容學習之后進行。(必做) 六、請求分頁存儲管理模擬實驗(虛擬存儲器管理實驗) 實驗目的 通過對頁面、頁表、地址轉(zhuǎn)換和頁面置換過程的模擬,加深對請求分頁存儲管理系統(tǒng)的原理和實現(xiàn)技術的理解。 實驗內(nèi)容 ? 假設每個頁面可以存放10條指令,分配給進程的存儲塊數(shù)為4。 ? 用C語言或Pascal語言模擬一進程的執(zhí)行過程。設該進程工有320條指令,地址空間為32個頁面,運行前所有頁面均沒有調(diào)入內(nèi)存
19、。模擬運行時,如果所訪問的指令已經(jīng)在內(nèi)存,則顯示其物理地址,并轉(zhuǎn)下一條指令;如果所訪問的指令還未裝入內(nèi)存,則發(fā)生缺頁,此時需要記錄缺頁產(chǎn)生次數(shù),并將相應頁面調(diào)入內(nèi)存,如果4個內(nèi)存塊已滿,則需要進行頁面置換。最后顯示其物理地址,并轉(zhuǎn)下一條指令。在所有指令執(zhí)行完畢后,顯示進程運行過程中的缺頁次數(shù)和缺頁率。 ? 頁面置換算法:可以采用OPT、FIFO、LRU三種算法。 ? 進程中的指令訪問次序按如下原則生成: ? 50%的指令是順序執(zhí)行的。 ? 25%的指令是均勻分布在低地址部分。 ? 25%的指令是均勻分布在高地址部分。 ? 具體實現(xiàn)的方法是: 在0,319之間隨機選取一條指令作為起始執(zhí)行指令,設
20、其序號(邏輯地址)為m; 順序執(zhí)行下一條指令,即序號(邏輯地址)為m+1的指令; 通過隨機數(shù),跳轉(zhuǎn)到低地址部分0,m-1的一條指令處,設其序號為m1; 順序執(zhí)行下一條指令,即序號為m1+1的指令; 的一條指令處,設其序319,m1+2跳轉(zhuǎn)到高地址部分通過隨機數(shù), 號為m2; 順序執(zhí)行下一條指令,即序號為m2+1的指令; 重復上述6步驟,直至執(zhí)行了320條指令。 實驗分析和思考 ? 如果增加分配給進程的物理塊數(shù),會對進程運行過程中的缺頁率產(chǎn)生什么影響? ? 為什么說一般情況下,LRU算法比FIFO算法具有更好的性能? 實驗學時安排 6學時,在請求分頁存儲管理內(nèi)容學習之后進行。(必做) 七、簡單文件系統(tǒng)模擬實驗 實驗目的 通過具體的文件存儲空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)和文件操作的實現(xiàn),加深對文件系統(tǒng)功能和實現(xiàn)過程的理解。 實驗內(nèi)容 ? 在內(nèi)存中開辟一個虛擬磁盤空間作為文件存儲器,在其上實現(xiàn)一個簡單的單用戶文件系統(tǒng)。在退出這個簡單文件系統(tǒng)時,應將該虛擬文件系統(tǒng)保存到磁盤上,以便下次可以再將它恢復到內(nèi)存的虛擬磁盤上。 ? 文件存儲空間的分配可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)開發(fā)合作協(xié)議合同
- 三農(nóng)田改造方案設計指南
- 建筑木工分包合同
- 上海聲屏障施工方案
- 防水安全生產(chǎn)施工方案
- pvc地板膠施工方案
- 燜渣坑施工方案
- 余姚耐磨地坪施工方案
- 自建房水泥欄桿施工方案
- 青島市eps線條施工方案
- 煙草專賣法知識考試題庫500題(含答案)
- 旅游政策法規(guī)教案
- 《動物王國開大會》預學單
- 鋼結(jié)構(gòu)安全交底
- 中國移動《下一代全光骨干傳送網(wǎng)白皮書》
- 川教版六年級《生命.生態(tài).安全》下冊第1課《我們的閑暇時光》課件
- 2024年社區(qū)工作者考試必背1000題題庫含必背答案
- 心理危機干預指導手冊
- 抖音:短視頻與直播運營全套教學課件
- 部編小學語文單元作業(yè)設計二年級下冊第七單元
- 2024成人肥胖食養(yǎng)指南(完整版)
評論
0/150
提交評論