操作系統(tǒng)課程設(shè)計(jì)題目-2015_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)題目-2015_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)題目-2015_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)題目-2015_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)題目-2015_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)課程設(shè)計(jì)題目與要求一、課程設(shè)計(jì)要求:1根據(jù)每道題的人數(shù)選定題目。(如果自己有好的想法可以與我聯(lián)系,可以做其他的題目)2分析設(shè)計(jì)要求,給出解決方案,建立必要的數(shù)據(jù)結(jié)構(gòu),然后設(shè)計(jì)總體流程(包括界面)、詳細(xì)設(shè)計(jì)必要的算法,并最終顯示結(jié)果?;赪INDOWS或LINUX操作系統(tǒng)都可以,用何種編程語(yǔ)言都有可以。3提交設(shè)計(jì)報(bào)告,包括設(shè)計(jì)要求、設(shè)計(jì)思想流程、設(shè)計(jì)所涉及的主要數(shù)據(jù)結(jié)構(gòu)、程序清單、運(yùn)行結(jié)果、設(shè)計(jì)心得、參考資料等。4嚴(yán)禁抄襲,復(fù)制設(shè)計(jì)內(nèi)容,查出后相關(guān)同學(xué)設(shè)計(jì)成績(jī)以零分處理。5所提交源程序應(yīng)是能夠運(yùn)行通過(guò)的完整程序。6課程設(shè)計(jì)參考評(píng)分標(biāo)準(zhǔn): 設(shè)計(jì)思想說(shuō)明(10分);數(shù)據(jù)結(jié)構(gòu)的說(shuō)明(6分);各

2、模塊的算法流程圖(10分);程序清單:注意加注釋(包含關(guān)鍵字、方法、變量等),在每個(gè)模塊前加注釋;(共70分,其中書面源程序占35分,實(shí)驗(yàn)的檢查結(jié)果、程序的運(yùn)行情況占35分)體會(huì),總結(jié)及體會(huì)建議(4分)。二、設(shè)計(jì)題目1 Windows多線程控制臺(tái)程序目的:學(xué)習(xí)和掌握如何編寫Windows多線程控制臺(tái)程序。通過(guò)編寫程序,加深對(duì)進(jìn)程和線程關(guān)系的理解,掌握多線程程序的執(zhí)行和編寫技巧。設(shè)計(jì)要求:寫一個(gè)單進(jìn)程多線程的Windows控制臺(tái)程序,該程序在一個(gè)進(jìn)程內(nèi)建立N個(gè)線程來(lái)執(zhí)行指定的任務(wù)。N由命令行傳遞給系統(tǒng)。Win32控制臺(tái)程序中,主函數(shù)的格式如:Void main(int argc,char *ar

3、gv),可以獲取命令行參數(shù)。通過(guò)VC+“工程/設(shè)置”的C/C+屬性頁(yè)設(shè)置應(yīng)用程序?yàn)椤癕TD”多線程。利用win32 API CreateThread()來(lái)生成線程。2 睡眠理發(fā)師問(wèn)題目的:了解信號(hào)量機(jī)制,了解并掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)共享資源的控制。設(shè)計(jì)要求:(1)編寫程序?qū)崿F(xiàn)理發(fā)師與顧客進(jìn)程的同步。問(wèn)題描述:這是一種經(jīng)典的IPC問(wèn)題,理發(fā)店有一位理發(fā)師,一把理發(fā)椅和n把用來(lái)等候理發(fā)的椅子。如果沒有顧客,則理發(fā)師在理發(fā)椅上睡覺,顧客理來(lái)時(shí),如理發(fā)師閑則理發(fā),否則如有空椅則坐等,沒有空椅則離開,編寫程序?qū)崿F(xiàn)理發(fā)師和顧客程序,實(shí)現(xiàn)進(jìn)程控制,要求不能出現(xiàn)競(jìng)爭(zhēng)。(

4、2)將(1)題中問(wèn)題修改為有兩位理發(fā)師,設(shè)計(jì)程序?qū)崿F(xiàn)同步控制。問(wèn)題提示:可以用一個(gè)變量waitting來(lái)記錄等候理發(fā)的顧客數(shù),另使用三個(gè)信號(hào)量:用來(lái)記錄等候理發(fā)的顧客數(shù)customers;用來(lái)記錄理發(fā)師是否空閑的信號(hào)量barbers,一個(gè)用于互斥訪問(wèn)waitting變量的mutex.。3 進(jìn)程調(diào)度模擬程序目的:深入掌握進(jìn)程調(diào)度的概念原理和實(shí)現(xiàn)方法。設(shè)計(jì)要求:編寫一個(gè)進(jìn)程調(diào)度程序,允許多個(gè)進(jìn)程并行執(zhí)行。進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程)、先來(lái)先服務(wù)算法、按時(shí)間片輪轉(zhuǎn)調(diào)度算法,最終總結(jié)該算法的優(yōu)缺點(diǎn),寫出設(shè)計(jì)體會(huì)。每個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊(PCB)表示,

5、進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已用CPU時(shí)間、進(jìn)程狀態(tài)等等。進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為指定(也可以由隨機(jī)數(shù)產(chǎn)生)。進(jìn)程的到達(dá)時(shí)間為輸入進(jìn)程的時(shí)間。進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒W(wait)、運(yùn)行R(run)或完成F(finish)三種狀態(tài)之一。4 進(jìn)程調(diào)度模擬程序目的:深入掌握進(jìn)程調(diào)度的概念原理和實(shí)現(xiàn)方法。設(shè)計(jì)要求:編寫一個(gè)進(jìn)程調(diào)度程序,允許多個(gè)進(jìn)程并行執(zhí)行。進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先與按時(shí)間片輪轉(zhuǎn)調(diào)度結(jié)合算法,最終總結(jié)該算法的優(yōu)缺點(diǎn),寫出設(shè)計(jì)體會(huì)。如果運(yùn)行下個(gè)時(shí)間片后,進(jìn)程的已占用CPU時(shí)間已達(dá)到所需

6、要的運(yùn)行時(shí)間,則撤消該進(jìn)程,如果運(yùn)行一個(gè)時(shí)間片后進(jìn)行已占用CPU時(shí)間還未達(dá)到所需要的運(yùn)行時(shí)間,也就是進(jìn)程還需要繼續(xù)運(yùn)行,此時(shí)應(yīng)將進(jìn)程的優(yōu)先數(shù)減1(即降低一級(jí)),然后把它插入就緒隊(duì)列等待CPU。每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行進(jìn)程、就緒隊(duì)列、以及各個(gè)進(jìn)程的PCB,以便進(jìn)行檢查。重復(fù)以上過(guò)程,直到所有進(jìn)程都完成為止。5 讀者與寫者問(wèn)題(同步問(wèn)題)目的:了解進(jìn)程同步的概念,理解信號(hào)量機(jī)制的原理,掌握運(yùn)用信號(hào)量解決進(jìn)程同步問(wèn)題的方法,進(jìn)而學(xué)會(huì)運(yùn)用進(jìn)程的同步與互斥。設(shè)計(jì)要求:編程模擬讀者與寫者問(wèn)題,要求顯示結(jié)果。問(wèn)題描述:(1)多個(gè)進(jìn)程共享一個(gè)文件,其中只讀文件的稱之為讀者,其余只寫文件的稱為寫者。讀者

7、可以同時(shí)讀,但是寫者只能獨(dú)立寫。(2)對(duì)(1)修改,使得它對(duì)寫者優(yōu)先,即一旦有寫者到,后續(xù)的讀者都必須等待,而無(wú)論是否有讀者在讀文件。6 模擬文件管理系統(tǒng)目的:深入了解文件管理系統(tǒng),初步掌握文件管理系統(tǒng)的實(shí)現(xiàn)方法。設(shè)計(jì)要求:編寫一程序,模擬一個(gè)簡(jiǎn)單的文件管理系統(tǒng)。樹型結(jié)構(gòu),目錄下可以是目錄,也可以是文件。在此文件管理系統(tǒng),可實(shí)現(xiàn)的操作有:改變目錄:格式:cd <目錄名>顯示目錄:格式:dir<目錄名>創(chuàng)建目錄:格式:md <目錄名>刪除目錄:格式:rd<目錄名>新建文件:格式:edit<文件名>刪除文件:格式:del<文件名&g

8、t;退出文件系統(tǒng):exit實(shí)現(xiàn)參考:(1) 文件系統(tǒng)采用二叉樹型存儲(chǔ)結(jié)構(gòu),結(jié)點(diǎn)結(jié)構(gòu)如下:Struct FileNode Char filenameFILENAME_LEN;/文件名/目錄名 Int isdir ;/目錄、文件的識(shí)別標(biāo)志 Int i_nlink;/文件鏈接數(shù) Int adr;/文件的地址 Struct FileNode *parent,*child;/指向父親的指針和左孩子的指針Struct FileNode *sibling_prev,*sibling_next;/指向前一個(gè)兄弟的指針和后一個(gè)兄弟的指針。(2) 目錄名和文件名支持全路徑名和相對(duì)路徑名,路徑名各分量間用“/”隔開

9、(3) 功能具體描述:改變目錄:改變當(dāng)前工作目錄,目錄不存在是給出出錯(cuò)信息顯示目錄:顯示指定目錄下或當(dāng)前目錄下所有文件和一級(jí)目錄(選做:帶/s參數(shù)的dir命令,顯示所有子目錄)創(chuàng)建目錄:在指定路徑或當(dāng)前路徑下創(chuàng)建指定目錄。重名時(shí)給出出錯(cuò)信息。刪除目錄:刪除指定目錄下所有文件和子目錄。要?jiǎng)h目錄不空時(shí),要給出提示是否要?jiǎng)h除。創(chuàng)建文件:創(chuàng)建指定名字的文件,只要?jiǎng)?chuàng)建表示文件的節(jié)點(diǎn)即可,內(nèi)容及大小不考慮。刪除文件:刪除指定文件,不存在時(shí)給出出錯(cuò)信息。退出文件系統(tǒng):exit(4) 總體流程:初始化文件目錄輸出提示符,等待接受命令,分析鍵入的命令;對(duì)合法的命令,執(zhí)行相應(yīng)的處理程序,否則輸出錯(cuò)誤信息,繼續(xù)等待

10、新命令。直到鍵入exit退出為止。7 內(nèi)存的申請(qǐng)與釋放目的:了解操作系統(tǒng)內(nèi)存分配的算法。設(shè)計(jì)要求:(1) 定義一個(gè)自由存儲(chǔ)塊鏈表,按塊地址排序,表中記錄塊的大小。當(dāng)請(qǐng)求分配內(nèi)存時(shí),掃描自由存儲(chǔ)塊鏈表,址到找到一個(gè)足夠大的可供分配的內(nèi)存塊,若找到的塊大小正好等于所請(qǐng)求的大小時(shí),就把這一塊從自由鏈表中取下來(lái),返回給申請(qǐng)者。若找到的塊太大,即對(duì)其分割,并從該塊的高地址部分往低地址部分分割,取出大小合適的塊返回給申請(qǐng)者,余下的低地址部分留在鏈表中。若找不到足夠大的塊,就從操作系統(tǒng)中請(qǐng)求另外一塊足夠大的內(nèi)存區(qū)域,并把它鏈接到自由塊鏈表中,然后再繼續(xù)搜索。釋放存儲(chǔ)塊也要搜索自由鏈表,目的是找到適當(dāng)?shù)奈恢脤?/p>

11、要釋放的塊插進(jìn)去,如果被釋放的塊的任何一邊與鏈表中的某一塊臨接,即對(duì)其進(jìn)行合并操作,直到?jīng)]有合并的臨接塊為止,這樣可以防止存儲(chǔ)空間變得過(guò)于零碎。(2) 空閑區(qū)采用分區(qū)說(shuō)明表的方法實(shí)現(xiàn)(1)中的功能。要求同上。8 Windows磁盤直接讀寫實(shí)驗(yàn)?zāi)康模毫私獯疟P設(shè)備編程的特點(diǎn)。設(shè)計(jì)要求:通過(guò)本實(shí)驗(yàn)了解在windows系統(tǒng)中如何直接使用磁盤的讀寫功能;所編應(yīng)用程序能夠響應(yīng)用戶指定的讀寫磁盤扇區(qū)的請(qǐng)求,也能提供查看磁盤相關(guān)參數(shù)的功能。技術(shù)的關(guān)鍵是使用了windows提供的API(應(yīng)用程序接口)來(lái)實(shí)現(xiàn)所要求的功能。用戶可以利用API進(jìn)行底層的磁盤操作。相關(guān)知識(shí):(下列函數(shù)的詳細(xì)使用方法參看VC+的MSDN

12、文檔)(1) CreateFile:用來(lái)創(chuàng)建或者打開一個(gè)文件、管道、磁盤設(shè)備等,它返回一個(gè)句柄用于以后對(duì)這信對(duì)象的訪問(wèn)。(2) DeviceControl:本API直接向相應(yīng)設(shè)備的驅(qū)動(dòng)程序發(fā)出指令,以完成在函數(shù)參數(shù)中所指定的動(dòng)作。(3) WriteFile:本API用于向文件中寫入數(shù)據(jù),寫入操作可以采用同步方式或者異步方式,寫入操作從文件指針處開始,寫操作后會(huì)被相應(yīng)調(diào)整。磁盤設(shè)備被當(dāng)作文件看待。(4) ReadFile:本API用于文件中讀出數(shù)據(jù),讀出操作從文件指針處開始,文件指針在讀操作后會(huì)被相應(yīng)調(diào)整。用法同寫文件函數(shù)相似。(5) SetFilePointer:用于移動(dòng)一個(gè)打開的文件中的讀寫

13、指針。9 處理機(jī)調(diào)度目的:加深作業(yè)概念的理解,深入了解多道程序設(shè)計(jì)系統(tǒng)中如何組織作業(yè)、管理作業(yè)和調(diào)度作業(yè),加深對(duì)作業(yè)調(diào)度算法的理解。設(shè)計(jì)要求:采用短作業(yè)優(yōu)先調(diào)度算法、先來(lái)先服務(wù)調(diào)度算法和最高響應(yīng)比調(diào)度算法實(shí)現(xiàn)處理機(jī)對(duì)作業(yè)的調(diào)度。作業(yè)調(diào)度算法的關(guān)鍵是在已有的作業(yè)后備隊(duì)列上按照一定的規(guī)則選擇一個(gè)作業(yè),如何在已有的數(shù)據(jù)結(jié)構(gòu)上進(jìn)行操作的問(wèn)題。10 頁(yè)面置換算法目的:深入掌握內(nèi)存調(diào)度算法的概念原理和實(shí)現(xiàn)方法。設(shè)計(jì)要求:編寫程序?qū)崿F(xiàn):(1) 先進(jìn)先出頁(yè)面置換算法(FIFO)(2) 最近最久未使用頁(yè)面置換算法(LRU)(3) 最佳置換頁(yè)面置換算法(OPT)專題:設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū),編程序演示以上

14、三種算法的具體實(shí)現(xiàn)過(guò)程,并計(jì)算訪問(wèn)命中率。演示頁(yè)面置換的三種算法。通過(guò)隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,將指令序列轉(zhuǎn)換成為頁(yè)地址流。計(jì)算并輸出各種算法在不同內(nèi)存容量下的命中率。11 售票員與乘客(信號(hào)量操作)目的:了解進(jìn)程同步的概念,理解信號(hào)量機(jī)制的原理,掌握運(yùn)用信號(hào)量解決進(jìn)程同步問(wèn)題的方法,進(jìn)而學(xué)會(huì)運(yùn)用進(jìn)程的同步與互斥。設(shè)計(jì)要求:編程序模擬車站售票廳內(nèi)進(jìn)程同步問(wèn)題,售票廳任何時(shí)刻最多可容納20名購(gòu)票者進(jìn)入,否則需要在外面等待。每個(gè)購(gòu)票者可看成一個(gè)進(jìn)程。12 生產(chǎn)者消費(fèi)者問(wèn)題目的:掌握信號(hào)的使用方法和PV操作的定義,掌握使用PV操作實(shí)現(xiàn)進(jìn)程之間同步與互斥的方法,加深對(duì)進(jìn)程同步互斥概念的理解。設(shè)計(jì)要求:設(shè)

15、計(jì)一程序,由一個(gè)進(jìn)程創(chuàng)建三個(gè)子進(jìn)程,三個(gè)子進(jìn)程一個(gè)是生產(chǎn)者進(jìn)程,兩個(gè)是消費(fèi)者進(jìn)程,父子進(jìn)程都使用父進(jìn)程創(chuàng)建的共享存儲(chǔ)區(qū)進(jìn)行通信,由生產(chǎn)者進(jìn)程將一個(gè)數(shù)組中的十個(gè)數(shù)值發(fā)送到由5個(gè)緩沖區(qū)組成的共享內(nèi)存中,兩個(gè)消費(fèi)者進(jìn)程輪流接收并輸出這十個(gè)數(shù)值,同時(shí)將兩個(gè)消費(fèi)者進(jìn)程讀出的數(shù)值進(jìn)行累加求各和。13 驅(qū)動(dòng)調(diào)度目的:掌握驅(qū)動(dòng)調(diào)度算法的原理設(shè)計(jì)要求:模擬電梯調(diào)度算法,實(shí)現(xiàn)對(duì)磁盤的驅(qū)動(dòng)調(diào)度。要求模擬設(shè)計(jì)一個(gè)驅(qū)動(dòng)調(diào)度程序,觀察驅(qū)動(dòng)程序的動(dòng)態(tài)運(yùn)行過(guò)程。通過(guò)實(shí)驗(yàn)理解和掌握驅(qū)動(dòng)調(diào)度的職能。通過(guò)輸入一個(gè)01的數(shù)來(lái)確定函數(shù)執(zhí)行“接受請(qǐng)求”命令,還是執(zhí)行“驅(qū)動(dòng)調(diào)度”命令。同時(shí)可以根據(jù)自已需要確定是否繼續(xù)執(zhí)行。調(diào)用數(shù)組對(duì)輸入的

16、進(jìn)程進(jìn)行存儲(chǔ),并運(yùn)用循環(huán)進(jìn)行顯示同時(shí)對(duì)I/O請(qǐng)求列表進(jìn)行初始化。運(yùn)用電梯調(diào)度算法,對(duì)I/O列表中的磁盤請(qǐng)求進(jìn)行調(diào)度,同時(shí)對(duì)I/O列表進(jìn)行排序,調(diào)度完成后顯示新的列表。14 銀行家算法目的:了解多道程序系統(tǒng)中,多個(gè)進(jìn)程并發(fā)執(zhí)行的資源分配。設(shè)計(jì)要求:管理員可以把一定數(shù)量的作業(yè)供多個(gè)用戶周轉(zhuǎn)使用,為保證作業(yè)的安全,管理員規(guī)定:當(dāng)一個(gè)用戶對(duì)作業(yè)的最大需求量不超過(guò)管理員現(xiàn)有的資金就要接納該用戶;用戶可以分期貸款,但貸款的總數(shù)不能超過(guò)最大需求量;當(dāng)管理員現(xiàn)有的作業(yè)不能滿足用戶的所需數(shù)時(shí),對(duì)用戶的請(qǐng)求可以推遲支付,但總能使用戶在有限的時(shí)間里得到請(qǐng)求。當(dāng)用戶得到所需的全部作業(yè)后,一定能在有限的時(shí)間里歸還所有的

17、作業(yè)。15 交通信號(hào)燈模擬目的:了解信號(hào)量機(jī)制,了解并掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)共享資源的控制。設(shè)計(jì)要求:編程模擬交通信號(hào)燈的控制。問(wèn)題描述:一個(gè)十字路口,共有四組紅綠燈,每個(gè)路口的車輛都遵循“紅燈停,綠燈行”的原則,假設(shè)將每一臺(tái)汽車都作為一個(gè)進(jìn)程,請(qǐng)?jiān)O(shè)計(jì)良好的機(jī)制,展示出合理的“十字路口交通管理”情況。車輛通行設(shè)定:路口寬度不限,對(duì)一個(gè)路口而言,只有當(dāng)一輛車通過(guò)路口(越過(guò)對(duì)面路口的交通燈后),其后續(xù)車輛才能繼續(xù)通過(guò)交通燈,車輛通過(guò)路口的時(shí)間可以固定,可以自行計(jì)算。進(jìn)程的互斥:交通燈進(jìn)程實(shí)際上是互斥的,即不能同時(shí)為紅或者同時(shí)為綠。進(jìn)程的消息通信或其通信方式:

18、對(duì)車輛進(jìn)程而言,每一個(gè)車輛在通過(guò)路口前,必須確認(rèn)前面的車輛已經(jīng)通過(guò)了路口。進(jìn)程的調(diào)度:停留在一個(gè)路口的車輛,決定其前進(jìn)或等候的因素是交通燈和前面車輛的狀態(tài),需要設(shè)計(jì)一個(gè)良好的進(jìn)程調(diào)度機(jī)制來(lái)控制所有車輛的通行。16 哲學(xué)家進(jìn)餐問(wèn)題目的:通過(guò)實(shí)現(xiàn)哲學(xué)家進(jìn)餐問(wèn)題的互步,深入了解和掌握進(jìn)程互斥的原理。設(shè)計(jì)要求:哲學(xué)家有N個(gè),規(guī)定全體到齊后開始討論,在討論的間隙哲學(xué)家進(jìn)餐,每人進(jìn)餐時(shí)都需使用刀、叉合一把,所有哲學(xué)家刀和叉都拿到后才能進(jìn)餐。哲學(xué)家的人數(shù)、餐桌上的布置自行設(shè)定,實(shí)現(xiàn)刀和叉的互斥使用算法的程序?qū)崿F(xiàn)。17 司機(jī)與售票員(信號(hào)量操作)目的:掌握信號(hào)的使用方法和PV操作的定義,掌握使用PV操作實(shí)現(xiàn)進(jìn)

19、程之間同步和互斥的方法,加深對(duì)進(jìn)程同步互斥概念的理解。設(shè)計(jì)要求:設(shè)計(jì)程序模擬在公共汽車上,司機(jī)和售票員操作的同步。司機(jī):?jiǎn)?dòng)車輛,正常行車,到站停車。售票員:上乘客,關(guān)車門,售票,開車門,下乘客。用PV操作對(duì)其控制。18 磁盤調(diào)度算法目的:了解磁盤管理的原理,掌握磁盤調(diào)度種算法。設(shè)計(jì)要求:編程序?qū)崿F(xiàn)下述磁盤調(diào)度算法,并求出每種算法的平均尋道長(zhǎng)度:要求設(shè)計(jì)主界面可以靈活選擇算法,且以下算法都要實(shí)現(xiàn)。(1) 先來(lái)先服務(wù)算法(FCFS)(2) 最短尋道時(shí)間優(yōu)先算法(SSTF)(3) 掃描算法(SCAN)(4) 循環(huán)掃描算法(CSCAN)19 收銀員與顧客問(wèn)題(信號(hào)量操作)目的:了解信號(hào)量機(jī)制,了解并

20、掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)共享資源的控制。設(shè)計(jì)要求:編程模擬下面同步問(wèn)題:在某超市有下收銀員,且同時(shí)最多允許有n個(gè)顧客購(gòu)物,我們可以將顧客和收銀員看成是兩類不同的進(jìn)程,且工作流程如下圖所示。為了利用PV操作正確地協(xié)調(diào)這兩類進(jìn)程之間的工作,設(shè)置了三個(gè)信號(hào)量S1、S2和Sn,且初值分別為0、0、和n。20 信號(hào)量的操作目的:了解信號(hào)量機(jī)制,了解并掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)共享資源的控制。設(shè)計(jì)要求:通過(guò)對(duì)windows系統(tǒng)的內(nèi)核同步對(duì)象mutexes和semaphores的使用來(lái)實(shí)現(xiàn)進(jìn)程同步的控制。利用CreateSemapho

21、re、WaitForSingleObject等函數(shù)檢測(cè)內(nèi)核同步對(duì)象的狀態(tài)。21 男女生洗澡問(wèn)題(信號(hào)量操作)目的:了解信號(hào)量機(jī)制,了解并掌握進(jìn)程同步和互斥機(jī)制,熟悉信號(hào)量的操作函數(shù),利用信號(hào)量實(shí)現(xiàn)對(duì)共享資源的控制。設(shè)計(jì)要求:編程模擬男女生洗澡問(wèn)題。問(wèn)題描述:假設(shè)某宿舍樓有一共用浴室,學(xué)校頒布規(guī)定:當(dāng)有一個(gè)女生正在使用浴室,則其他女生可以進(jìn)入,但是男生不行,反之亦然。在每個(gè)浴室門上有一個(gè)滑動(dòng)指示符號(hào),表示當(dāng)前處于以下三種可能狀態(tài)之一:(1) 空 (2)有女生 (3)有男生選用一種程序設(shè)計(jì)語(yǔ)言編寫下面的過(guò)程:woman_wants_to_enter,man_wants_to_enter,woman

22、_leaves,man_leaves。22 進(jìn)程間的通信目的:了解進(jìn)程間通信的機(jī)制,實(shí)現(xiàn)進(jìn)程的兩種通信方式,多次執(zhí)行,觀察結(jié)果,并對(duì)兩種通信方式進(jìn)行比較。設(shè)計(jì)要求:利用系統(tǒng)提供的通信系統(tǒng)調(diào)用,進(jìn)行一種方式的進(jìn)程通信的程序設(shè)計(jì),并對(duì)結(jié)果進(jìn)行分析,同時(shí)了解另一種通信方式,將兩種方式進(jìn)行比較分析。(1) 消息的創(chuàng)建發(fā)送和接收使用系統(tǒng)調(diào)用msgget()、msgsnd()、msgrev()、msgctl()來(lái)編寫長(zhǎng)度為500字節(jié)的發(fā)送和接收程序。用一個(gè)程序先后創(chuàng)建兩個(gè)子進(jìn)程server和client,進(jìn)行消息隊(duì)列方式通信。由server建立消息隊(duì)列,等待其他進(jìn)程發(fā)來(lái)消息,當(dāng)遇到類型為1的消息,則作為通

23、信結(jié)束的信號(hào),取消消息隊(duì)列,退出。Server每接收到一個(gè)消息顯示在屏幕上。Client判斷一個(gè)數(shù)據(jù)中的整數(shù)是否為素?cái)?shù),然后使用server建立的消息隊(duì)列,將某數(shù)是否為素?cái)?shù)的消息依次發(fā)送給server,然后退出。Client每次發(fā)送時(shí)把消息顯示在屏幕上。(2) 共享存儲(chǔ)區(qū)的創(chuàng)建,附接和斷接使用系統(tǒng)調(diào)用shmget(),shmat(),shmctl()編寫一個(gè)與上面(1)中相同功能的程序。23 虛擬文件系統(tǒng)的實(shí)現(xiàn)目的:過(guò)一個(gè)簡(jiǎn)單的多用戶文件系統(tǒng)的設(shè)計(jì),加深文件系統(tǒng)內(nèi)部功能以及內(nèi)部實(shí)現(xiàn)。設(shè)計(jì)要求:在Windows或者Linux下設(shè)計(jì)一個(gè)二級(jí)(或者樹型)結(jié)構(gòu)文件系統(tǒng),要求至少實(shí)現(xiàn)以下功能:login 用戶登錄dir 列出文件目錄create 創(chuàng)建文件del

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論