作業系統課程設計題目詳細說明

2021-03-04 06:28:58 字數 5705 閱讀 2595

說明:本課程設計題目共28個,原則上一人一題。如果題目未加說明,則必須一人一題。

題目1:動態分割槽分配方式的模擬1

1 設計目的

了解動態分割槽分配中使用的資料結構和分配演算法,並進一步加深對動態分割槽儲存管理方式及其實現過程的理解。

2 設計內容

1)用c語言實現採用首次適應演算法的動態分割槽分配過程alloc()和**過程free()。其中,空閒分割槽通過空閒分割槽鍊錶來管理,在進行記憶體分配時,系統優先使用空閒區低端的空間。

2)假設初始狀態如下,可用的記憶體空間為640kb,並有下列的請求序列;

作業1申請130kb

作業2申請60kb

作業3申請100kb

作業2釋放60kb

作業4申請200 kb

作業3釋放100 kb

作業1釋放130 kb

作業5申請140 kb

作業6申請60 kb

作業7申請50kb

作業6釋放60 kb

請採用首次適應演算法進行記憶體塊的分配和**,同時顯示記憶體塊分配和**後空閒記憶體分割槽鏈的情況。

3 思考

1)採用首次適應演算法和最優置換演算法,對記憶體的分配和**速度會造成什麼不同的影響?

2)如何解決因碎片而造成記憶體分配速度降低的問題?

題目2:動態分割槽分配方式的模擬2

3 設計目的

了解動態分割槽分配中使用的資料結構和分配演算法,並進一步加深對動態分割槽儲存管理方式及其實現過程的理解。

4 設計內容

1)用c語言實現採用迴圈首次適應演算法的動態分割槽分配過程alloc()和**過程free()。其中,空閒分割槽通過空閒分割槽鍊錶來管理,在進行記憶體分配時,系統優先使用空閒區低端的空間。

2)假設初始狀態如下,可用的記憶體空間為640kb,並有下列的請求序列;

作業1申請130kb

作業2申請60kb

作業3申請100kb

作業2釋放60kb

作業4申請200 kb

作業3釋放100 kb

作業1釋放130 kb

作業5申請140 kb

作業6申請60 kb

作業7申請50kb

作業6釋放60 kb

請採用迴圈首次適應演算法進行記憶體塊的分配和**,同時顯示記憶體塊分配和**後空閒記憶體分割槽鏈的情況。

3 思考

1)採用迴圈首次適應演算法和最優置換演算法,對記憶體的分配和**速度會造成什麼不同的影響?

2)如何解決因碎片而造成記憶體分配速度降低的問題?

題目3:動態分割槽分配方式的模擬3

1設計目的

了解動態分割槽分配中使用的資料結構和分配演算法,並進一步加深對動態分割槽儲存管理方式及其實現過程的理解。

2設計內容

1)用c語言分別實現採用最佳適應演算法的動態分割槽分配過程alloc()和**過程free()。其中,空閒分割槽通過空閒分割槽鍊錶來管理,在進行記憶體分配時,系統優先使用空閒區低端的空間。

2)假設初始狀態如下,可用的記憶體空間為640kb,並有下列的請求序列;

作業1申請130kb

作業2申請60kb

作業3申請100kb

作業2釋放60kb

作業4申請200 kb

作業3釋放100 kb

作業1釋放130 kb

作業5申請140 kb

作業6申請60 kb

作業7申請50kb

作業6釋放60 kb

請採用最佳適應演算法進行記憶體塊的分配和**,同時顯示記憶體塊分配和**後空閒記憶體分割槽鏈的情況。

3 思考

1)採用最佳適應演算法和最優置換演算法,對記憶體的分配和**速度會造成什麼不同的影響?

2)如何解決因碎片而造成記憶體分配速度降低的問題?

題目4:動態分割槽分配方式的模擬4

1設計目的

了解動態分割槽分配中使用的資料結構和分配演算法,並進一步加深對動態分割槽儲存管理方式及其實現過程的理解。

2設計內容

1)用c語言分別實現採用最壞適應演算法的動態分割槽分配過程alloc()和**過程free()。其中,空閒分割槽通過空閒分割槽鍊錶來管理,在進行記憶體分配時,系統優先使用空閒區低端的空間。

2)假設初始狀態如下,可用的記憶體空間為640kb,並有下列的請求序列;

作業1申請130kb

作業2申請60kb

作業3申請100kb

作業2釋放60kb

作業4申請200 kb

作業3釋放100 kb

作業1釋放130 kb

作業5申請140 kb

作業6申請60 kb

作業7申請50kb

作業6釋放60 kb

請採用最壞適應演算法進行記憶體塊的分配和**,同時顯示記憶體塊分配和**後空閒記憶體分割槽鏈的情況。

3 思考

1)採用最壞適應演算法和最優置換演算法,對記憶體的分配和**速度會造成什麼不同的影響?

2)如何解決因碎片而造成記憶體分配速度降低的問題?

題目5: 程序排程模擬演算法

1 設計目的

通過演算法的模擬加深對程序概念和程序排程過程的理解,掌握程序狀態之間的切換,同時掌握程序排程演算法的實現方法和技巧。

1. 2.設計內容

(1) 用c語言來實現對n個程序採用動態優先權優先演算法的程序排程。

(2) 每個用來標識程序的程序控制塊pcb用結構來描述,包括以下字段:

● 程序標識數id;

● 程序優先數priority,並規定優先數越大的程序,其優先權越高;

● 程序已占用的cpu時間cputime;

● 程序還需占用的cpu時間alltime。當程序執行完畢時,alltime變為0;

● 程序的阻塞時間startblock,表示當程序再執行startblock個時間片後,程序將進入阻塞狀態;

● 程序被阻塞的時間blocktime,表示已阻塞的程序再等待blocktime個時間片後,程序將轉換成就緒狀態;

● 程序狀態state;

● 佇列指標next,用來將pcb排成佇列。

(3) 優先數改變的原則:

● 程序在就緒佇列中呆乙個時間片,優先數增加1;

● 程序每執行乙個時間片,優先數減3。

(4) 假設在排程前,系統中有5個程序,它們的初始狀態如下:

id 0 1 2 3 4

priority 9 38 30 29 0

cputime 0 0 0 0 0

alltime 3 3 6 3 4

startblock 2 -1 -1 -1 -1

blocktime 3 0 0 0 0

state ready ready ready ready ready

(5) 為了清楚地觀察程序的排程過程,程式應將每個時間片內的程序的情況顯示出來,參照的具體格式如下:

running prog: i

ready_queue:->id1->id2

block_queue:->id3->id4

id 0 1 2 3 4

priority p0 p1 p2 p3 p4

cputime c0 c1 c2 c3 c4

alltime a0 a1 a2 a3 a4

startblock t0 t1 t2 t3 t4 blocktime b0 b1 b2 b3 b4

state s0 s1 s2 s3 s4

2. 思考

(1) 在實際的程序排程中,除了按排程演算法選擇下乙個執行的程序外,還應處理哪些工作;

(2) 為什麼對程序的優先數可按上述原則進行修改?

題目6:請求調頁儲存管理方式的模擬1

1 設計目的

通過對頁面、頁表、位址轉換和頁面置換過程的模擬,加深對請求調頁系統的原理和實現過程的理解。

2 設計內容

1)假設每個頁面中可存放10條指令,分配給作業的記憶體塊數為4。

2)用c語言模擬乙個作業的執行過程,該作業共有320條指令,即它的位址空間為32頁,目前它的所有頁都還未調入記憶體。在模擬過程中,如果所訪問的指令已在記憶體,則顯示其實體地址,並轉下一條指令。如果所訪問的指令還未裝入記憶體,則發生缺頁,此時需記錄缺頁的次數,並將相應頁調入記憶體。

如果4個記憶體塊均已裝入該作業,則需進行頁面置換,最後顯示其實體地址,並轉下一條指令。

在所有320指令執行完畢後,請計算並顯示作業執行過程中發生的缺頁率。

3)置換演算法:採用先進先出(fifo)置換演算法。

3 思考題

1)如果增加分配給作業的記憶體塊數,將會對作業執行過程中的缺頁率產生什麼影響?

2)為什麼在一般情況下,lru具有比fifo更好的效能?

提示:(1)通過隨機數產生乙個指令序列,共320條指令。指令的位址按下述原則生成:

① 50%的指令是順序執行的;

② 25%的指令是均勻分布在前位址部分;

③ 25%的指令是均勻分布在後位址部分;

具體的實施方法是:

① 在[0,319]的指令位址之間隨機選取一起點m;

② 順序執行一條指令,即執行位址為m+1的指令;

③ 在前位址[0,m+1]中隨機選取一條指令並執行,該指令的位址為m′;

④ 順序執行一條指令,其位址為m′+1的指令;

⑤ 在後位址[m′+2,319]中隨機選取一條指令並執行;

⑥ 重複上述步驟①~⑤,直到執行320次指令。

(2)將指令序列變換為頁位址流

① 設頁面大小為1k;

② 使用者記憶體容量為4頁到32頁;

③ 使用者虛存容裡為32k。

在使用者虛存中,按每k存放10條指令排列虛存位址,即320條指令在虛存中的存放方式為:

第0條~第9條指令為第0頁(對應虛存位址為[0,9]);

第10條~第19條指令為第1頁(對應虛存位址為[10,19]);

…………

第310條~第319條指令為第31頁(對應虛存位址為[310,319])。

按以上方式,使用者指令可組成32頁。

(3)計算先進先出(fifo)演算法在不同記憶體容量下的命中率。

其中,命中率=1-頁面失效次數/頁位址流長度

題目7:請求調頁儲存管理方式的模擬2

1 設計目的

通過對頁面、頁表、位址轉換和頁面置換過程的模擬,加深對請求調頁系統的原理和實現過程的理解。

2 設計內容

1)假設每個頁面中可存放10條指令,分配給作業的記憶體塊數為4。

2)用c語言模擬乙個作業的執行過程,該作業共有320條指令,即它的位址空間為32頁,目前它的所有頁都還未調入記憶體。在模擬過程中,如果所訪問的指令已在記憶體,則顯示其實體地址,並轉下一條指令。如果所訪問的指令還未裝入記憶體,則發生缺頁,此時需記錄缺頁的次數,並將相應頁調入記憶體。

如果4個記憶體塊均已裝入該作業,則需進行頁面置換,最後顯示其實體地址,並轉下一條指令。

在所有320指令執行完畢後,請計算並顯示作業執行過程中發生的缺頁率。

3)置換演算法:最近最久未使用(lru)演算法。

3 思考題

1)如果增加分配給作業的記憶體塊數,將會對作業執行過程中的缺頁率產生什麼影響?

2)為什麼在一般情況下,lru具有比fifo更好的效能?

提示:(1)通過隨機數產生乙個指令序列,共320條指令。指令的位址按下述原則生成:

① 50%的指令是順序執行的;

作業系統課程設計題目詳細說明

題目1 動態分割槽分配方式的模擬1 1 設計目的 了解動態分割槽分配中使用的資料結構和分配演算法,並進一步加深對動態分割槽儲存管理方式及其實現過程的理解。2 設計內容 1 用c語言實現採用首次適應演算法的動態分割槽分配過程alloc 和 過程free 其中,空閒分割槽通過空閒分割槽鍊錶來管理,在進行...

作業系統課程設計指導

一 本課程的教學目的及基本要求 1 教學目的 作業系統課程設計是作業系統課程的重要實踐環節,是作業系統課程內實驗的有益補充,它旨在培養學生的實踐能力,促進理論與實踐的結合。要求學生通過上機程式設計,了解如何模擬作業系統原理的實現,從而加深對作業系統原理的領會,加深對作業系統實現方法的理解,與此同時使...

作業系統課程設計報告

上海電力學院 計算機作業系統原理 課程設計報告 題目名稱 編寫程式模擬虛擬儲存器管理 姓名 杜志豪 學號 20121798 班級 2012053班 同組姓名 孫嘉軼 課程設計時間 2014.6.30 2014.7.4 評語成績 一 設計內容及要求4 1.1 設計題目4 1 2 使用演算法分析4 1 ...