



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.操作系統(tǒng)課程設(shè)計指導(dǎo).一、本課程的教學(xué)目的及基本要求教學(xué)目的操作系統(tǒng)課程設(shè)計是操作系統(tǒng)課程的重要實踐環(huán)節(jié), 是操作系統(tǒng)課程內(nèi)實驗的有益補充, 它旨在培養(yǎng)學(xué)生的實踐能力, 促進理論與實踐的結(jié)合。 要求學(xué)生通過上機編程,了解如何模擬操作系統(tǒng)原理的實現(xiàn), 從而加深對操作系統(tǒng)原理的領(lǐng)會,加深對操作系統(tǒng)實現(xiàn)方法的理解, 與此同時使學(xué)生在程序設(shè)計方面也能夠得到很大程度的提高。 操作系統(tǒng)雖然是理論性很強的課程,但是僅僅是課堂講授是絕對不夠的, 操作系統(tǒng)課程設(shè)計即是課堂教學(xué)基礎(chǔ)上的實踐環(huán)節(jié), 其重要程度決不亞于課堂的知識傳授。本課程設(shè)計的目的和任務(wù)是在課堂教學(xué)的基礎(chǔ)上, 使學(xué)生對操作系統(tǒng)運行機制有一個全面的
2、認識和理解,鍛煉學(xué)生的抽象思維、邏輯思維和實際動手能力,培養(yǎng)操作系統(tǒng)等大型系統(tǒng)程序的使用者、管理者、分析員和設(shè)計人才。 促進理論與實踐的結(jié)合,使學(xué)生在系統(tǒng)程序設(shè)計方面能夠得到很大程度的提高。先修課程:數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)教學(xué)基本要求要求學(xué)生通過上機編程, 使學(xué)生對操作系統(tǒng)運行機制有一個全面的認識和理解,通過模擬文件系統(tǒng)及內(nèi)存管理系統(tǒng),鍛煉學(xué)生的邏輯思維和實際動手能力,培養(yǎng)操作系統(tǒng)等大型系統(tǒng)程序的使用者、管理者、分析員和設(shè)計人才。 促進理論與實踐的結(jié)合,使學(xué)生在系統(tǒng)程序設(shè)計方面能夠得到很大程度的提高。課程設(shè)計基本要求:1、掌握課堂教學(xué)內(nèi)容,主要包括:(1) 掌握操作系統(tǒng)四大資源管理的理論知識;(2
3、) 熟悉 Linux 或 Unix 文件系統(tǒng)的結(jié)構(gòu);(3) 使用 編程語言實現(xiàn)課程設(shè)計題目要求的功能。2、根據(jù)課程設(shè)計題目,按以下步驟進行:(1) 問題分析,理解問題,明確設(shè)計要求;(2) 根據(jù)要求進行概要設(shè)計和詳細設(shè)計;(3) 編碼實現(xiàn)、上機調(diào)試,數(shù)據(jù)測試;(4) 完成課程設(shè)計實習(xí)報告。.二、操作系統(tǒng)課程設(shè)計題目1實現(xiàn)一個進程管理子系統(tǒng) 問題描述 在 Linux/UNIX/windows 下編制一個程序,模擬實現(xiàn)一個簡單的進程管理子系統(tǒng),它由進程建立模塊、進程撤消模塊、進程控制表組成, (此外還可能包括選作的進程切換和調(diào)度模塊) 。 設(shè)計要求 該子系統(tǒng)接收新進程建立請求的方式是循環(huán)顯示“請輸
4、入新命令行” ,然后根據(jù)用戶鍵入內(nèi)容啟動相應(yīng)進程, 其后不等待子進程結(jié)束, 馬上顯示下一個 “請輸入新命令行”如此循環(huán)往復(fù)。當建立進程時,相應(yīng)讀寫進程控制表,然后借助底層環(huán)境OS中象 fork和exec 這樣的函數(shù)將新進程投入運行(這與底層環(huán)境的實際OS不同,實際 OS 將新進程投入運行時要布置現(xiàn)場,最后時程序技術(shù)器寄存器)。進程撤消時,利用底層 OS的 wait()從子進程回到本子系統(tǒng),相應(yīng)修改PCB。比較該子系統(tǒng)與實際系統(tǒng)中的相應(yīng)功能的異同與差距,尤其在現(xiàn)場保存與恢復(fù)方面的比較。2實現(xiàn)一個進程管理子系統(tǒng)(實現(xiàn)進程切換) 問題描述 在 Linux/UNIX/windows 下編制一個程序,模
5、擬實現(xiàn)一個簡單的進程管理子系統(tǒng),它由進程建立模塊、進程撤消模塊、進程控制表組成, (此外還可能包括選作的進程切換和調(diào)度模塊) 。 設(shè)計要求 在 1 題的基礎(chǔ)上,進一步可選做模擬實現(xiàn)進程切換。 希望能實現(xiàn)時間片滿或接到 sleep 調(diào)用(或信號時)進行進程切換(選擇其一即可) 。若要實現(xiàn)時間片,假設(shè)時間片為 1 秒鐘,設(shè)定底層環(huán)境 OS每個 1 秒向該系統(tǒng)發(fā)一個信號,本子系統(tǒng)將本子系統(tǒng)的進程切換和調(diào)度模塊設(shè)定為該信號的處理程序?;蛘呙慨斀拥阶舆M程發(fā)出的的 sleep 調(diào)用(或信號)時進行進程切換,這里子進程發(fā)出的 sleep 調(diào)用(或信號)代表實際系統(tǒng)中可能發(fā)生的 sleep ()調(diào)用、等待某一
6、時間發(fā)生等情況,進程調(diào)度采用簡單的FIFO 算法。( 本題作為一道思考選作實驗題:由于是在實際 OS中模擬實現(xiàn),故子系統(tǒng)無法完全控制其建立的所有子進程的進程狀態(tài)變化,象當前進程這樣的概念都不太好模擬,需要設(shè)法解決或假設(shè)。 )3進程調(diào)度算法模塊. 問題描述 編制一個進程調(diào)度算法模塊。進程調(diào)度是處理機管理的核心內(nèi)容。本設(shè)計要求用 C 語言編寫和調(diào)試一個簡單的進程調(diào)度程序。通過設(shè)計本可以加深理解有關(guān)進程控制塊、 進程隊列的概念, 并體會和了解最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機分配給優(yōu)先數(shù)最高的進程)和先來先服務(wù)算法的具體實施辦法。 設(shè)計要求 1 )進程調(diào)度算法: 采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法 (即
7、把處理機分配給優(yōu)先數(shù)最高的進程)和先來先服務(wù)算法。2)每個進程有一個進程控制塊( PCB)表示。進程控制塊可以包含如下信息:進程名、優(yōu)先數(shù)、到達時間、需要運行時間、 已用 CPU時間、進程狀態(tài)等等。3)進程的優(yōu)先數(shù)及需要的運行時間可以事先人為地指定(也可以由隨機數(shù)產(chǎn)生)。進程的到達時間為進程輸入的時間。 進程的運行時間以時間片為單位進行計算。4)每個進程的狀態(tài)可以是就緒W( Wait )、運行 R( Run)、或完成 F(Finish )三種狀態(tài)之一。5)就緒進程獲得 CPU后都只能運行一個時間片。用已占用CPU時間加 1 來表示。如果運行一個時間片后,進程的已占用CPU 時間已達到所需要的運
8、行時間,則撤消該進程, 如果運行一個時間片后進程的已占用CPU時間還未達所需要的運行時間,也就是進程還需要繼續(xù)運行,此時應(yīng)將進程的優(yōu)先數(shù)減1(即降低一級),然后把它插入就緒隊列等待CPU。6)每進行一次調(diào)度程序都打印一次運行進程、就緒隊列、以及各個進程的PCB,以便進行檢查。7)重復(fù)以上過程,直到所要進程都完成為止。4. 生產(chǎn)者 消費者問題實現(xiàn) 問題描述 有一群生產(chǎn)者進程生產(chǎn)產(chǎn)品供給消費者進程消費, 為使兩者并發(fā)執(zhí)行, 在兩者之間設(shè)置具有 n 個緩沖區(qū)的緩沖池,生產(chǎn)者進程所生產(chǎn)的產(chǎn)品放入一個緩沖區(qū)中,消費者進程可從一個緩沖區(qū)中取走產(chǎn)品去消費。 要求掌握信號的使用方法和PV操作的定義,掌握使用
9、PV操作實現(xiàn)進程之間同步與互斥的方法,加深對進程同步互斥概念的理解。 設(shè)計要求 設(shè)計一程序,由一個進程創(chuàng)建三個子進程,三個子進程一個是生產(chǎn)者進程,兩個是消費者進程, 父子進程都使用父進程創(chuàng)建的共享存儲區(qū)進行通信,由生產(chǎn).者進程將一個數(shù)組中的十個數(shù)值發(fā)送到由5 個緩沖區(qū)組成的共享內(nèi)存中, 兩個消費者進程輪流接收并輸出這十個數(shù)值, 同時將兩個消費者進程讀出的數(shù)值進行累加求各和。5. 蘋果問題 問題描述 桌子上有一只盤子, 最多可容納兩個水果, 每次只能放入或取出一個水果。爸爸專向盤子放蘋果( apple ),媽媽專向盤子中放桔子( orange );兩個兒子專等吃盤子中的桔子, 兩個女兒專等吃盤子
10、中的蘋果。 請用 P、V 操作來實現(xiàn)爸爸、媽媽、兒子、女兒之間的同步與互斥關(guān)系。 設(shè)計要求 了解信號量機制,了解并掌握進程同步和互斥機制,熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對共享資源的控制。 編程模擬實現(xiàn)這一問題的程序控制, 分析處理過程。6. 模擬請求頁式存儲管理算法 問題描述 存儲管理的主要功能之一是合理地分配空間。 請求頁式管理是一種常用的虛擬存儲管理技術(shù)。本次設(shè)計的目的是通過請求頁式存儲管理中頁面置換算法模擬設(shè)計,了解虛擬存儲技術(shù)的特點,掌握請求頁式管理的頁面置換算法。 設(shè)計要求 設(shè)計一個請求頁式存儲管理方案。并編寫模擬程序?qū)崿F(xiàn)之。要求包含:( 1)過隨機數(shù)產(chǎn)生一個指令序列,共 32
11、0 條指令。其地址按下述原則生成:50%的指令是順序執(zhí)行的;25%的指令是均勻分布在前地址部分;25%的指令是均勻分布在后地址部分;#具體的實施方法是:A.在0 ,319 的指令地址之間隨機選區(qū)一起點M;B. 順序執(zhí)行一條指令,即執(zhí)行地址為 M+1的指令;C. 在前地址 0 ,M+1中隨機選取一條指令并執(zhí)行, 該指令的地址為M;D. 順序執(zhí)行一條指令,其地址為 M +1;E. 在后地址 M+2,319 中隨機選取一條指令并執(zhí)行;.F. 重復(fù) A E,直到執(zhí)行 320 次指令。(2)指令序列變換成頁地址流設(shè):頁面大小為1K; 用戶內(nèi)存容量為4 頁到 32 頁;用戶虛存容量為 32K。在用戶虛存中
12、,按每 K 存放 10 條指令排列虛存地址,即 320 條指令在虛存中的存放方式為:第 0 條 第 9 條指令為第 0 頁(對應(yīng)虛存地址為 0 ,9 );第 10 條 第 19 條指令為第 1 頁(對應(yīng)虛存地址為 10 ,19 );。第 310 條 第 319 條指令為第 31 頁(對應(yīng)虛存地址為 310 ,319 );按以上方式,用戶指令可組成32 頁。(3).計算并輸出下述各種算法在不同內(nèi)存容量下的命中率。最佳置換頁面置換算法(OPT)最近最久未使用頁面置換算法(LRU)最少使用頁面置換算法(LFU)CLOCK算法要求設(shè)計一個虛擬存儲區(qū)和內(nèi)存工作區(qū), 編程序演示以上四種算法的具體實現(xiàn)過程,
13、并計算訪問命中率。演示頁面置換的四種算法。7. 內(nèi)存的申請與釋放 問題描述 模擬實現(xiàn)操作系統(tǒng)內(nèi)存分配的算法。 設(shè)計要求 (1) 定義一個自由存儲塊鏈表,按塊地址排序,表中記錄塊的大小。當請求分配內(nèi)存時,掃描自由存儲塊鏈表,址到找到一個足夠大的可供分配的內(nèi)存塊,若找到的塊大小正好等于所請求的大小時, 就把這一塊從自由鏈表中取下來, 返回給申請者。 若找到的塊太大, 即對其分割, 并從該塊的高地址部分往低地址部分分割,取出大小合適的塊返回給申請者, 余下的低地址部分留在鏈表中。 若找不到足夠大的塊, 就從操作系統(tǒng)中請求另外一塊足夠大的內(nèi)存區(qū)域, 并把它鏈接到自由塊鏈表中,然后再繼續(xù)搜索。.釋放存儲
14、塊也要搜索自由鏈表,目的是找到適當?shù)奈恢脤⒁尫诺膲K插進去,如果被釋放的塊的任何一邊與鏈表中的某一塊臨接,即對其進行合并操作,直到?jīng)]有合并的臨接塊為止,這樣可以防止存儲空間變得過于零碎。(2) 空閑區(qū)采用分區(qū)說明表的方法實現(xiàn)(1)中的功能。要求同上。8固定式分區(qū)分配及可變式分區(qū)分配的存儲管理方案設(shè)計與實現(xiàn) 問題描述 1設(shè)計一個固定式分區(qū)分配的存儲管理方案,并模擬實現(xiàn)分區(qū)的分配和回收過程。 設(shè)計要求 1可以假定每個作業(yè)都是批處理作業(yè),并且不允許動態(tài)申請內(nèi)存。為實現(xiàn)分區(qū)的分配和回收,可以設(shè)定一個分區(qū)說明表, 按照表中的有關(guān)信息進行分配,并根據(jù)分區(qū)的分配和回收情況修改該表。 問題描述 2設(shè)計一個可變
15、式分區(qū)分配的存儲管理方案。并模擬實現(xiàn)分區(qū)的分配和回收過程。 設(shè)計要求 2對分區(qū)的管理法可以是下面三種算法之一:首次適應(yīng)算法循環(huán)首次適應(yīng)算法最佳適應(yīng)算法9. 磁盤調(diào)度算法 問題描述 了解磁盤管理的原理,掌握磁盤調(diào)度種算法。 設(shè)計要求 :編程序?qū)崿F(xiàn)下述磁盤調(diào)度算法, 并求出每種算法的平均尋道長度:要求設(shè)計主界面可以靈活選擇算法,且以下算法為基本要求。(1) 先來先服務(wù)算法( FCFS)(2) 最短尋道時間優(yōu)先算法(SSTF)(3) 掃描算法( SCAN)(4) 循環(huán)掃描算法( CSCAN)10. 模擬 UNIX(linux) 文件系統(tǒng) 問題描述 在任一 OS下,建立一個大文件, 把它假象成一張盤,
16、 在其中實現(xiàn)一個簡單的模擬 UNIX文件系統(tǒng)。 設(shè)計要求 ( 1)在現(xiàn)有機器硬盤上開辟20M的硬盤空間,作為設(shè)定的硬盤空間。.( 2)編寫一管理程序?qū)Υ丝臻g進行管理, 以模擬 UNIX(或 linux) 文件系統(tǒng),具體要求如下:要求盤塊大小1k正規(guī)文件i結(jié)點文件類型目錄文件(共 1byte)塊設(shè)備管道文件。物理地址(索引表)共有 13 個表項,每表項2byte。文件長度4byte。聯(lián)結(jié)計數(shù)1byte0 號塊超級塊棧長度 50空閑盤塊的管理: 成組鏈接( UNIX)或位示圖法(Linux)每建一個目錄,分配4 個物理塊文件名14byte目錄項信息i結(jié)點號2byte結(jié)構(gòu):0# : 超級塊1#20#
17、號為 i結(jié)點區(qū)20#30#號為根目錄區(qū)功能:初始化建立文件(需給出文件名,文件長度)建立子目錄打開文件(顯示文件所占的盤塊)刪除文件刪除目錄顯示目錄(即顯示目錄下的信息,包括文件、子目錄等)顯示整個系統(tǒng)信息11模擬文件系統(tǒng) 問題描述 在任一 OS下,建立一個大文件,把它假象成一張盤,在其中實現(xiàn)一個簡單的小型文件系統(tǒng)。 設(shè)計要求 該小型文件系統(tǒng)沒有子目錄機制,文件連續(xù)分配,不考慮分區(qū)。做一個簡單的操作界面,提供四條簡單的命令:簡單的ls 、cat 、 cp、rd.進一步增強 :上題中的文件系統(tǒng)功能: 文件系統(tǒng)不連續(xù)分配, 可以有子目錄機制,(如兩級子目錄機制)。12.Windows 磁盤直接讀寫
18、實驗( 1 人) 問題描述 了解磁盤設(shè)備編程的特點。 設(shè)計要求 通過本實驗了解在 windows 系統(tǒng)中如何直接使用磁盤的讀寫功能; 所編應(yīng)用程序能夠響應(yīng)用戶指定的讀寫磁盤扇區(qū)的請求, 也能提供查看磁盤相關(guān)參數(shù)的功能。技術(shù)的關(guān)鍵是使用了 windows 提供的 API(應(yīng)用程序接口)來實現(xiàn)所要求的功能。用戶可以利用API 進行底層的磁盤操作。相關(guān)知識:(下列函數(shù)的詳細使用方法參看VC+的 MSDN文檔)CreateFile:用來創(chuàng)建或者打開一個文件、管道、磁盤設(shè)備等,它返回一個句柄用于以后對這信對象的訪問。DeviceControl:本 API 直接向相應(yīng)設(shè)備的驅(qū)動程序發(fā)出指令,以完成在函數(shù)參
19、數(shù)中所指定的動作。WriteFile:本 API 用于向文件中寫入數(shù)據(jù),寫入操作可以采用同步方式或者異步方式,寫入操作從文件指針處開始,寫操作后會被相應(yīng)調(diào)整。 磁盤設(shè)備被當作文件看待。ReadFile: 本 API 用于文件中讀出數(shù)據(jù),讀出操作從文件指針處開始,文件指針在讀操作后會被相應(yīng)調(diào)整。用法同寫文件函數(shù)相似。SetFilePointer:用于移動一個打開的文件中的讀寫指針。選作部分1睡眠理發(fā)師問題目的:了解信號量機制, 了解并掌握進程同步和互斥機制,熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對共享資源的控制。設(shè)計要求:(1)編寫程序?qū)崿F(xiàn)理發(fā)師與顧客進程的同步。問題描述:這是一種經(jīng)典的IPC 問
20、題,理發(fā)店有一位理發(fā)師, 一把理發(fā)椅和n 把用來等候理發(fā)的椅子。如果沒有顧客,則理發(fā)師在理發(fā)椅上睡覺,顧客理來時,如理發(fā)師閑則理發(fā),否則如有空椅則坐等,沒有空椅則離開,編寫程序?qū)崿F(xiàn)理發(fā)師和顧客程序,實現(xiàn)進程控制,要求不能出現(xiàn)競爭。(2)將( 1)題中問題修改為有兩位理發(fā)師,設(shè)計程序?qū)崿F(xiàn)同步控制。問題提示:可以用一個變量 waitting 來記錄等候理發(fā)的顧客數(shù),另使用三個信號量:用來記錄等候理發(fā)的顧客數(shù) customers ;用來記錄理發(fā)師是否空閑的.信號量 barbers ,一個用于互斥訪問waitting變量的 mutex. 。2. 讀者與寫者問題(進程同步問題)目的:了解進程同步的概念,
21、 理解信號量機制的原理, 掌握運用信號量解決進程同步問題的方法,進而學(xué)會運用進程的同步與互斥。設(shè)計要求:編程模擬讀者與寫者問題,要求顯示結(jié)果。問題描述:(1)多個進程共享一個文件,其中只讀文件的稱之為讀者,其余只寫文件的稱為寫者。讀者可以同時讀,但是寫者只能獨立寫。(2)對(1)修改,使得它對寫者優(yōu)先,即一旦有寫者到,后續(xù)的讀者都必須等待,而無論是否有讀者在讀文件。3. 模擬文件管理系統(tǒng)目的:深入了解文件管理系統(tǒng),初步掌握文件管理系統(tǒng)的實現(xiàn)方法。設(shè)計要求:編寫一程序,模擬一個簡單的文件管理系統(tǒng)。樹型結(jié)構(gòu),目錄下可以是目錄,也可以是文件。在此文件管理系統(tǒng),可實現(xiàn)的操作有:改變目錄:格式: cd
22、顯示目錄:格式: dir創(chuàng)建目錄:格式: md 刪除目錄:格式: rd新建文件:格式: edit刪除文件:格式: del退出文件系統(tǒng): exit實現(xiàn)參考:(1) 文件系統(tǒng)采用二叉樹型存儲結(jié)構(gòu),結(jié)點結(jié)構(gòu)如下:Struct FileNodeChar filenameFILENAME_LEN;/文件名 / 目錄名Int isdir ;/目錄、文件的識別標志Int i_nlink;/文件鏈接數(shù)Int adr;/文件的地址Struct FileNode *parent,*child;/指向父親的指針和左孩子的指針StructFileNode *sibling_prev,*sibling_next;/指向
23、前一個兄弟的指針和后一個兄弟的指針。.(2) 目錄名和文件名支持全路徑名和相對路徑名,路徑名各分量間用“/ ”隔開(3) 功能具體描述:改變目錄:改變當前工作目錄,目錄不存在是給出出錯信息顯示目錄:顯示指定目錄下或當前目錄下所有文件和一級目錄 (選做:帶/s參數(shù)的 dir 命令,顯示所有子目錄)創(chuàng)建目錄:在指定路徑或當前路徑下創(chuàng)建指定目錄。重名時給出出錯信息。刪除目錄:刪除指定目錄下所有文件和子目錄。 要刪目錄不空時, 要給出提示是否要刪除。創(chuàng)建文件:創(chuàng)建指定名字的文件, 只要創(chuàng)建表示文件的節(jié)點即可, 內(nèi)容及大小不考慮。刪除文件:刪除指定文件,不存在時給出出錯信息。退出文件系統(tǒng): exit(4
24、) 總體流程:初始化文件目錄輸出提示符,等待接受命令,分析鍵入的命令;對合法的命令,執(zhí)行相應(yīng)的處理程序, 否則輸出錯誤信息, 繼續(xù)等待新命令。直到鍵入 exit退出為止。4. 售票員與乘客(信號量操作)目的:了解進程同步的概念, 理解信號量機制的原理, 掌握運用信號量解決進程同步問題的方法,進而學(xué)會運用進程的同步與互斥。設(shè)計要求:編程序模擬車站售票廳內(nèi)進程同步問題, 售票廳任何時刻最多可容納 20 名購票者進入,否則需要在外面等待。每個購票者可看成一個進程。5. 生產(chǎn)者 消費者問題目的:掌握信號的使用方法和 PV操作的定義,掌握使用 PV操作實現(xiàn)進程之間同步與互斥的方法,加深對進程同步互斥概念
25、的理解。設(shè)計要求:設(shè)計一程序, 由一個進程創(chuàng)建三個子進程, 三個子進程一個是生產(chǎn)者進程,兩個是消費者進程, 父子進程都使用父進程創(chuàng)建的共享存儲區(qū)進行通信,由生產(chǎn)者進程將一個數(shù)組中的十個數(shù)值發(fā)送到由 5 個緩沖區(qū)組成的共享內(nèi)存中,兩個消費者進程輪流接收并輸出這十個數(shù)值, 同時將兩個消費者進程讀出的數(shù)值進行累加求各和。6. 驅(qū)動調(diào)度目的:掌握驅(qū)動調(diào)度算法的原理設(shè)計要求:模擬電梯調(diào)度算法,實現(xiàn)對磁盤的驅(qū)動調(diào)度。.要求模擬設(shè)計一個驅(qū)動調(diào)度程序, 觀察驅(qū)動程序的動態(tài)運行過程。 通過實驗理解和掌握驅(qū)動調(diào)度的職能。通過輸入一個 01 的數(shù)來確定函數(shù)執(zhí)行“接受請求”命令,還是執(zhí)行“驅(qū)動調(diào)度”命令。同時可以根據(jù)
26、自已需要確定是否繼續(xù)執(zhí)行。調(diào)用數(shù)組對輸入的進程進行存儲, 并運用循環(huán)進行顯示同時對 I/O 請求列表進行初始化。運用電梯調(diào)度算法, 對 I/O 列表中的磁盤請求進行調(diào)度, 同時對 I/O 列表進行排序,調(diào)度完成后顯示新的列表。7. 交通信號燈模擬目的:了解信號量機制, 了解并掌握進程同步和互斥機制, 熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對共享資源的控制。設(shè)計要求:編程模擬交通信號燈的控制。問題描述:一個十字路口,共有四組紅綠燈,每個路口的車輛都遵循“紅燈停,綠燈行”的原則,假設(shè)將每一臺汽車都作為一個進程,請設(shè)計良好的機制,展示出合理的“十字路口交通管理”情況。車輛通行設(shè)定:路口寬度不限,對一個
27、路口而言,只有當一輛車通過路口 (越過對面路口的交通燈后) ,其后續(xù)車輛才能繼續(xù)通過交通燈,車輛通過路口的時間可以固定,可以自行計算。進程的互斥:交通燈進程實際上是互斥的,即不能同時為紅或者同時為綠。進程的消息通信或其通信方式: 對車輛進程而言,每一個車輛在通過路口前,必須確認前面的車輛已經(jīng)通過了路口。進程的調(diào)度:停留在一個路口的車輛, 決定其前進或等候的因素是交通燈和前面車輛的狀態(tài),需要設(shè)計一個良好的進程調(diào)度機制來控制所有車輛的通行。8. 哲學(xué)家進餐問題目的:通過實現(xiàn)哲學(xué)家進餐問題的互步,深入了解和掌握進程互斥的原理。設(shè)計要求:哲學(xué)家有 N個,規(guī)定全體到齊后開始討論, 在討論的間隙哲學(xué)家進餐
28、,每人進餐時都需使用刀、 叉合一把,所有哲學(xué)家刀和叉都拿到后才能進餐。哲學(xué)家的人數(shù)、餐桌上的布置自行設(shè)定, 實現(xiàn)刀和叉的互斥使用算法的程序?qū)崿F(xiàn)。9. 司機與售票員(信號量操作)目的:掌握信號的使用方法和 PV操作的定義,掌握使用 PV操作實現(xiàn)進程之間同步和互斥的方法,加深對進程同步互斥概念的理解。設(shè)計要求:設(shè)計程序模擬在公共汽車上,司機和售票員操作的同步。司機:啟動車輛,正常行車,到站停車。售票員:上乘客,關(guān)車門,售票,開車門,下乘客。用 PV操作對其控制。.10. 收銀員與顧客問題(信號量操作)目的:了解信號量機制, 了解并掌握進程同步和互斥機制,熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對共享資
29、源的控制。設(shè)計要求:編程模擬下面同步問題: 在某超市有下收銀員, 且同時最多允許有 n 個顧客購物,我們可以將顧客和收銀員看成是兩類不同的進程, 且工作流程如下圖所示。為了利用 PV操作正確地協(xié)調(diào)這兩類進程之間的工作,設(shè)置了三個信號量 S1、S2 和 Sn,且初值分別為 0、0、和 n。11. 信號量的操作 2目的:了解信號量機制, 了解并掌握進程同步和互斥機制, 熟悉信號量的操作函數(shù),利用信號量實現(xiàn)對共享資源的控制。設(shè)計要求:通過對 windows 系統(tǒng)的內(nèi)核同步對象 mutexes 和 semaphores 的使用來實現(xiàn)進程同步的控制。利用 CreateSemaphore、WaitForS
30、ingleObject 等函數(shù)檢測內(nèi)核同步對象的狀態(tài)。12. 進程間的通信( 2 人)目的:了解進程間通信的機制,實現(xiàn)進程的兩種通信方式,多次執(zhí)行,觀察結(jié)果,并對兩種通信方式進行比較。設(shè)計要求:利用系統(tǒng)提供的通信系統(tǒng)調(diào)用, 進行一種方式的進程通信的程序設(shè)計,并對結(jié)果進行分析, 同時了解另一種通信方式, 將兩種方式進行比較分析。(1) 消息的創(chuàng)建發(fā)送和接收使用系統(tǒng)調(diào)用 msgget() 、msgsnd() 、msgrev() 、msgctl() 來編寫長度為500字節(jié)的發(fā)送和接收程序。用一個程序先后創(chuàng)建兩個子進程server 和 client,進行消息隊列方式通信。由server 建立消息隊列,等待其他進程發(fā)來消息,當遇到類型為 1 的消息,則作為通信結(jié)束的信號,取消消息隊列,退出。Server 每接收到一個消息顯示在屏幕上。Client判斷一個數(shù)據(jù)中的整數(shù)是否為素數(shù),然后使用 server
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車行業(yè)合同樣本:會員服務(wù)協(xié)議
- 移動基站租賃合同書范本
- 城市老舊小區(qū)消防系統(tǒng)改造項目合同
- 幼兒園臨時教師聘任合同
- 新版民間房產(chǎn)抵押權(quán)轉(zhuǎn)讓合同
- 腎性水腫課件
- 智能化煤礦培訓(xùn)課件下載
- 舊貨零售互聯(lián)網(wǎng)+創(chuàng)新實踐考核試卷
- 搪瓷器的創(chuàng)造思維與創(chuàng)意設(shè)計考核試卷
- 建筑施工現(xiàn)場安全監(jiān)測與預(yù)警考核試卷
- 2025年黑龍江交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫必考題
- 個人畫協(xié)議合同范本
- 2024-2025學(xué)年高一下學(xué)期開學(xué)第一節(jié)課(哪吒精神)主題班會課件
- 人教版2025-初中物理實驗室實驗課程安排
- 2024年無錫科技職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 舞蹈藝術(shù)賞析課件
- 2025江蘇泰州興化市陳堡鎮(zhèn)村級后備干部招聘10人歷年高頻重點提升(共500題)附帶答案詳解
- (完整版)python學(xué)習(xí)課件
- CNAS-RL01:2019實驗室認可規(guī)則
- 成人腦室外引流護理-中華護理學(xué)會團體 標準
- 2024年甘肅省公務(wù)員考試《行測》真題及答案解析
評論
0/150
提交評論