作業系統實習報告樣本

2021-03-04 07:13:16 字數 4864 閱讀 1861

1 作業系統實習報告內容

(1) 基本資訊:完**姓名、學號、報告日期

(2) 實習內容

(3) 實習目的

(4) 實習題目

(5) 設計思路和流程圖

(6) 主要資料結構及其說明

(7) 源程式並附上注釋

(8) 程式執行時的初值和執行結果

(9) 實習體會:實習中遇到的問題及解決過程、實習中產生的錯誤及原因分析、實習的體會及收穫、對搞好今後實習提出建設性建議等。

實習報告可以書面或電子文件形式提交。

樣本1一、實習內容

模擬分頁式虛擬儲存管理中硬體的位址轉換和缺頁中斷,以及選擇頁面排程演算法處理缺頁中斷。

二、實習目的

在計算機系統中,為了提高主存利用率,往往把輔助儲存器(如磁碟)作為主儲存器的擴充,使多道執行的作業的全部邏輯位址空間總和可以超出主存的絕對位址空間。用這種辦法擴充的主儲存器稱為虛擬儲存器。通過本實習理解在分頁式儲存管理中怎樣實現虛擬儲存器。

三、實習題目

本實習有三個小題。

第一題:模擬分頁式儲存管理中硬體的位址轉換和產生缺頁中斷。

[設計思路、資料結構、流程圖]:

(1) 分頁式虛擬儲存系統是把作業資訊的副本存放在磁碟上,當作業被選中時,可把作業的開始幾頁先裝入主存且啟動執行。為此,在為作業建立頁表時,應說明哪些頁已在主存,哪些頁尚未裝入主存,頁表的格式為:

其中,標誌——用來表示對應頁是否已經裝入主存,標誌位=1,則表示該頁已經在主存,標誌位=0,則表示該頁尚未裝入主存。

主存塊號——用來表示已經裝入主存的頁所佔的塊號。

在磁碟上的位置——用來指出作業副本的每一頁被存放在磁碟上的位置。

(2) 作業執行時,指令中的邏輯位址指出參加運算的運算元存放的位址,該位址被解釋為頁號和單元號,硬體的位址轉換機構按頁號查頁表,若該頁對應標誌為「1」,則表示該頁已在主存,這時根據關係式:

絕對位址=塊號塊長+單元號

計算出欲訪問的主存單元位址。如果塊長為2的冪次,則可把塊號作為高位址部分,把單元號作為低位址部分,兩者拼接而成絕對位址。按計算出的絕對位址可以取到運算元,完成一條指令的執行。

若訪問的頁對應標誌為「0」,則表示該頁不在主存,這時硬體發「缺頁中斷」訊號,由作業系統按該頁在磁碟上的位置,把該頁資訊從磁碟讀出裝入主存後再重新執行這條指令。

(3) 設計乙個「位址轉換」程式來模擬硬體的位址轉換工作。當訪問的頁在主存時,則形成絕對位址,但不去模擬指令的執行,而用輸出轉換後的位址來代替一條指令的執行。當訪問的頁不在主存時,則輸出「*該頁頁號」,表示產生了一次缺頁中斷。

該模擬程式的演算法如圖1。

(4) 假定主存的每塊長度為128個位元組;現有乙個共七頁的作業,其中第0頁至第3頁已經裝入主存,其餘三頁尚未裝入主存;該作業的頁表為:

圖1 位址轉換模擬演算法

如果作業依次執行的指令序列為:

執行設計的位址轉換程式,顯示或列印執行結果。因僅模擬位址轉換,並不模擬指令的執行,故可不考慮上述指令序列中的操作。

第二題:用先進先出(fifo)頁面排程演算法處理缺頁中斷。

[設計思路、資料結構、流程圖]:

(1) 在分頁式虛擬儲存系統中,當硬體發出「缺頁中斷」後,引出作業系統來處理這個中斷事件。如果主存中已經沒有空閒塊,則可用fifo頁面排程演算法把該作業中最先進入主存的一頁調出,存放到磁碟上。然後再把當前要訪問的頁裝入該塊。

調出和裝入後都要修改頁表中對應頁的標誌。

(2) fifo頁面排程演算法總是淘汰該作業中最先進入主存的那一頁,因此可以用乙個陣列來表示該作業已在主存的頁面。假定作業被選中時,把開始的m個頁面裝入主存,則陣列的元素可定為m個。例如:

p[0],p[1]…,p[m-1]

其中每乙個p[i] (i=0, 1, …, m-1) 表示乙個在主存中的頁面號。它們的初值為:

p[0]: =0, p[1]: =1, …, p[m-1]: =m-1

用一指標k指示當要裝入新頁時,應淘汰的頁在陣列中的位置,k的初值為「0」。

當產生缺頁中斷後,作業系統選擇p[k]所指出的頁面調出,然後執行:

p[k]: =要裝入頁的頁號

k: = (k+1) mod m

再由裝入程式把要訪問的一頁資訊裝入到主存中。重新啟動剛才那條指令執行。

(3) 編制乙個fifo頁面排程程式,為了提高系統效率,如果應淘汰的頁在執行中沒有修改過,則可不必把該頁調出(因在磁碟上已有副本)而直接裝入乙個新頁將其覆蓋。因此在頁表中增加是否修改過的標誌,為「1」表示修改過,為「0」表示未修改過,格式為:

由於是模擬排程演算法,所以,不實際地啟動調出一頁和裝入一頁的程式,而用輸出調出的頁號和裝入的頁號來代替一次調出和裝入的過程。

把第一題中程式稍作改動,與本題結合起來,fifo頁面排程模擬演算法如圖2。

圖2 fifo頁面排程模擬演算法

(4) 如果乙個作業的副本已在磁碟上,在磁碟上的存放位址以及已裝入主存的頁和作業依次執行的指令序列都同第一題中(4)所示。於是增加了「修改標誌」後的初始頁表為:

按依次執行的指令序列,執行你所設計的程式,顯示或列印每次調出和裝入的頁號,以及執行了最後一條指令後的陣列p的值。

(5) 為了檢查程式的正確性,可再任意確定一組指令序列,執行設計的程式,核對執行的結果。

第三題:用最近最少用(lru)頁面排程演算法處理缺頁中斷。

[設計思路、資料結構、流程圖]:

(1) 在分頁式虛擬儲存系統中,當硬體發出「缺頁中斷」後,引出作業系統來處理這個中斷事件。如果主存中已經沒有空閒塊,則可用lru頁面排程演算法把該作業中距現在最久沒有被訪問過的一頁調出,存放到磁碟上。然後再把當前要訪問的頁裝入該塊。

調出和裝入後都要修改頁表中對應頁的標誌。

(2) lru頁面排程演算法總是淘汰該作業中距現在最久沒被訪問過的那頁,因此可以用乙個陣列來表示該作業已在主存的頁面。陣列中的第乙個元素總是指出當前剛訪問的頁號,因此最久沒被訪問過的頁總是由最後乙個元素指出。如果主存只有四塊空閒塊且執行第一題中提示(4)假設的指令序列,採用lru頁面排程演算法,那麼在主存中的頁面變化情況如下:

當產生缺頁中斷後,作業系統總是淘汰由最後乙個元素所指示的頁,再把要訪問的頁裝入淘汰頁所佔的主存塊中,頁號登記到陣列的第乙個元素中,重新啟動剛才那條指令執行。

(3) 編制乙個lru頁面排程程式,為了提高系統效率,如果淘汰的頁在執行中沒有修改過,則可不必把該頁調出。參看第二題中提示(3)。模擬排程演算法不實際地啟動調出一頁和裝入一頁的程式而用輸出調出的頁號和裝入的頁號來代替。

把第一題中程式稍作改動,與本題結合起來,lru頁面排程模擬演算法如圖3。

(4) 按第一題中提示(4)的要求,建立一張初始頁表,頁表中為每一頁增加「修改標誌」位(參考第二題中提示(4))。然後按依次執行的指令序列,執行設計的程式,顯示或列印每次調出和裝入的頁號,以及執行了最後一條指令後陣列中的值。

(5) 為了檢查程式的正確性,可再任意確定一組指令序列,執行設計的程式,核對執行的結果。

圖3 lru頁面排程模擬演算法

四列印的源程式及附上的注釋

略五列印的程式執行時初值和執行結果

略樣本2一、實習內容

模擬電梯排程演算法,實現對磁碟的驅動排程。

二、實習目的

磁碟是一種高速、大容量、旋轉型、可直接訪問的儲存裝置。它作為計算機系統的輔助儲存器,擔負著繁重的輸入輸出任務,在多道程式設計系統中,往往同時會有若干個要求訪問磁碟的輸入輸出請求等待處理。系統可採用一種策略,盡可能按最佳次序執行要求訪問磁碟的諸輸入輸出請求,這就叫驅動排程,使用的演算法稱驅動排程演算法。

驅動排程能降低為若干個輸入輸出請求服務所需的總時間,從而提高系統效率。本實習模擬設計乙個驅動排程程式,觀察驅動排程程式的動態執行過程。

三、實習題目

模擬電梯排程演算法,對磁碟進行移臂排程和旋轉排程。

[設計思路、資料結構、流程圖]:

(1) 磁碟是可供多個程序共享的儲存裝置,但乙個磁碟每個時刻只能為乙個程序服務。當有程序在訪問某個磁碟時,其它想訪問該磁碟的程序必須等待,直到磁碟一次工作結束。當有多個程序提出輸入輸出請求而處於等待狀態時,可用電梯排程演算法從若干個等待訪問者中選擇乙個程序,讓它訪問磁碟。

選擇訪問者的工作由「驅動排程」程序來完成。

由於磁碟與處理器是可以並行工作的,所以當磁碟在為乙個程序服務時,占有處理器的另一程序可以提出使用磁碟的要求,也就是說,系統能動態地接收新的輸入輸出請求。為了模擬這種情況,在本實習中設定乙個「接收請求」程序。

「驅動排程」程序和「接收請求」程序能否占有處理器執行,取決於磁碟的結束中斷訊號和處理器排程策略。在實習中可用隨機數來模擬確定這兩個程序的執行順序,以代替中斷處理和處理器排程選擇程序的過程。因而,程式的結構可參考圖1。

圖1 程式結構

(2) 「接收請求」程序建立一張「請求i/o」表,指出等待訪問磁碟的程序要求訪問的實體地址,表的格式為:

假定某個磁碟組共有200個柱面,由外向裡順序編號(0-199),每個柱面上有20個磁軌,編號為0-19,每個磁軌分成8個物理記錄,編號0-7。程序訪問磁碟的實體地址可以用鍵盤輸入的方法模擬得到。圖2是「接收請求」程序的模擬演算法。

圖2 「接收請求」模擬演算法

在實際的系統中必須把等待訪問磁碟的程序排入等待佇列,由於本實習模擬驅動排程,為簡單起見,在實習中可免去佇列管理部分,故設計程式時可不考慮「程序排入等待佇列」的工作。

(3) 「驅動排程」程序的功能是查「請求i/o」表,當有等待訪問磁碟的程序時,按電梯排程演算法從中選擇乙個等待訪問者,按該程序指定的磁碟實體地址啟動磁碟為其服務。

對移動臂磁碟來說,驅動排程分移臂排程和旋轉排程。電梯排程演算法的排程策略是與移動臂的移動方向和移動臂的當前位置有關的,所以每次啟動磁碟時都應登記移臂方向和當前位置。電梯排程演算法是一種簡單而實際上用的驅動排程演算法,這種排程策略總是優先選擇與當前柱面號相同的訪問請求,從這些請求中再選擇乙個能使旋轉距離最短的等待訪問者。

如果沒有與當前柱面號相同的訪問請求,則根據移臂方向來選擇,每次總是沿臂移動方向選擇乙個與當前柱面號最近的訪問請求,若沿這個方向沒有訪問請求時,就改變臂的移動方向。這種排程策略能使移動臂的移動頻率極小化,從而提高系統效率。用電梯排程演算法實現驅動排程的模擬演算法如圖3。

作業系統實習報告

主函式 void main 三 資料結構 先來先服務 struct stu 用結構體實現 時間片輪轉法 struct time,struct time time 宣告乙個指向time型別的物件的指標,指標的名字是time,用指標實現該功能 優先數排程 struct pcb2,pcb2裡面包含程序名 ...

網路作業系統實習報告

1.理解網路作業系統的功能 2.掌握windows 2000中的使用者管理方法 3.掌握windows 2000網路常用元件的功能 屬性檢視及安裝方法 4.掌握windows 2000資料夾 印表機共享設定 訪問方法及安全設定。1.建立使用者,修改使用者屬性,設定使用者許可權 2.建立使用者組,設定...

作業系統課程實習報告

石家莊經濟學院 實習報告 學院 系 資訊工程學院 專業 電腦科學與技術 姓名 呂曉凱 班級 5111090303 學號 511109030316 指導教師 張有華 2012年 6 月 22 日 學號 511109030316 姓名 呂曉凱起迄日期 2012 6 13 2012 6 22 指導教師 張...