課程設計任務書 進程同步模擬設計——司機和售票員問題

上傳人:飛****9 文檔編號:21608727 上傳時間:2021-05-05 格式:DOCX 頁數(shù):9 大小:79.98KB
收藏 版權申訴 舉報 下載
課程設計任務書 進程同步模擬設計——司機和售票員問題_第1頁
第1頁 / 共9頁
課程設計任務書 進程同步模擬設計——司機和售票員問題_第2頁
第2頁 / 共9頁
課程設計任務書 進程同步模擬設計——司機和售票員問題_第3頁
第3頁 / 共9頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《課程設計任務書 進程同步模擬設計——司機和售票員問題》由會員分享,可在線閱讀,更多相關《課程設計任務書 進程同步模擬設計——司機和售票員問題(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、個人資料整理,僅供個人學習使用 課程設計任務書 學生姓名:丁光明 專業(yè)班級: 計算機 0506 指導教師:何克右 工作單位: 計算機科學與技術學院 題 目 : 進程同步模擬設計 —— 司機和售票員問題 初始條件: 1.預備內容:閱讀操作系統(tǒng)的進程管理章節(jié)內容,對進程的同步和互斥,以及信號量機制度有深入的理解。 2.實踐準備:掌握一種計算機高級語言的使用。 要求完成的主要任務 : (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求) 1.模擬公共汽車司機和售票員開關門及行車操作的同步模型。 2.設計報告內容應說明:

2、 ⑴ 課程設計目的與功能; ⑵ 需求分析,數(shù)據(jù)結構或模塊說明 (功能與框圖 ); ⑶ 源程序的主要部分; ⑷ 測試用例,運行結果與運行情況分析; ⑸ 自我評價與總結: i )你認為你完成的設計哪些地方做得比較好或比較出色; ii )什么地方做得不太好,以后如何改正; iii )從本設計得到的收獲(在編寫,調試,執(zhí)行過程中的經(jīng)驗和教訓) ;矚慫潤厲釤瘞睞櫪廡賴賃 軔。 iv )完成本題是否有其他的其他方法(如果有,簡要說明該方法) ; v)對實驗題的評價和改進意見,請你推薦設計題目。 時間安排: 設計安排一周:周

3、 1、周 2:完成程序分析及設計。 周 2、周 3:完成程序調試及測試。 周 4、周 5:驗收、撰寫課程設計報告。 (注意事項:嚴禁抄襲,一旦發(fā)現(xiàn),抄與被抄的一律按 0 分記) 指導教師簽名: 年 月 日 系主任(或責任教師)簽名: 年 月 日 題 目 : 進程同步模擬設計 —— 司機和售票員問題 1.初始條件: 1.預備內容:閱讀操作系統(tǒng)的進程管理章節(jié)內容,對進程的同步和互斥,以及信號量機制 度有深入的理解。 2.實踐準備:掌握一種計算機高級語言的使用。 2 要求完成的主要任務 : 2.1.模擬公

4、共汽車司機和售票員開關門及行車操作的同步模型。 在汽車行駛過程中, 司機活動與售票員活動之間的同步關系為: 售票員關車門后, 向司機發(fā) 開車信號, 司機接到開車信號后啟動車輛, 在汽車正常行駛過程中售票員售票, 到站時司機 停車, 售票員在車停后開門讓乘客上下車。 因此,司機啟動車輛的動作必須與售票員關車門 的動作取得同步;售票員開車門的動作也必須與司機停車取得同步。 聞創(chuàng)溝燴鐺險愛氌譴凈禍測。 司機 P1 售票員 P2 ①啟動②關門③到站停④開門 正常運行 -售票 -關門-啟動-行駛-停-開門 為了安全起見:

5、 1 / 7 個人資料整理,僅供個人學習使用 (1) 關車門后才能啟動車輛 -啟動在關門之后 (2) 到站停車后,才能開車門 -開車門在到站停車之后 在計算機系統(tǒng)中可以將司機和售票員分別看作 P1、P2 兩個進程, 當它們并發(fā)地向前推進時, 計算機系統(tǒng)所接受到的實際上是司機活動與售票員活動的許多交叉中的任意一個交叉, 這些 交叉有些滿足上述要求, 有些則不滿足, 而操作系統(tǒng)必須保證不發(fā)生不滿足上述要求的交叉, 即: 殘騖樓諍錈瀨濟溆塹籟婭騍。 如 P2 尚未推進到②處時,而 P1 已推進到①處,則 P1 應等待直到

6、 P2 推進到②處為止;如 P1 尚未推進到③時, P2 已到④,則 P2 應等待直到 P1 推進到③處為止。 P1 在①處發(fā)生了等待,則 P2 執(zhí)行到②處時應將 P1 喚醒; P2 在④處發(fā)生了等待, P1 到③處應將 P2 喚醒 應設置兩個信號量: S1 、 S2 ; S1 表示是否允許司機啟動汽車(其初值為 0 ) ; S2 表示是否允許售票員開門(其初值為 0 )。 用 P 、 v 原語描述如下: int s1=O; int s2=O; main() { cobegin driver

7、(); conductor(); coend } driver() { while(1) { p(s1); 啟動車輛 ; 正常行車 ; 到站停車 ; v(s2); } } conductor() { while(1) { 關車門 ; v(s1); 售票 ; p(s2); 開車門 ; 上下乘客 ; 2 / 7 個人資料整理,僅供個人學習使用 } } 2.2.設計報告內容應說明: 2.2.1 課程

8、設計目的與功能; 實驗目的: 對進程的同步和互斥,以及信號量機制度有深入的理解。 一組相互合作的并發(fā)進程, 為了協(xié)調其推進速度, 有時需要相互等待與相互喚醒, 進程之間 這種相互制約的關系稱作進程同步, 雖然進程同步僅發(fā)生在相互有邏輯關系的進程之間, 這 種相互制約的關系稱作進程同步, 進程同步現(xiàn)象僅發(fā)生在相互有邏輯關系的進程之間, 這點 與進程互斥不同,進程互斥現(xiàn)象發(fā)生在任意兩個進程之間。 釅錒極額閉鎮(zhèn)檜豬訣錐顧葒。 與進程同步相關的另一概念是進程合作, 一組進程如果它們單獨執(zhí)行不能正常進行, 但并發(fā) 執(zhí)行可以正常進行,

9、 這種現(xiàn)象稱為進程合作, 參與進程合作的進程稱為合作進程, 如司機與 售票員的例子, 二者單獨執(zhí)行都不能正常進行, 但二者并發(fā)反可以正常進行, 成為合作進程, 這種進程合作的現(xiàn)象在操作系統(tǒng)中經(jīng)常發(fā)生。 彈貿攝爾霽斃攬磚鹵廡詒爾。 實驗功能: 編寫完程序后, 通過輸入程序給定的操作符對程序進行操作來實現(xiàn)司機與 售票員之間的進程同步關系。 對輸入的錯誤操作符有識別功能給予正確的提示, 對于那些不 符合實際情況的操作給予限制和提示。 例如車上人滿的時候要給予不能再上車的提示, 車上 沒人的時候要給予不能在下車的提示等等。 謀蕎摶篋飆鐸懟類蔣薔

10、點鉍。 2.2.2. 需求分析,數(shù)據(jù)結構或模塊說明 (功能與框圖 ); 問題描述: 有兩組并發(fā)進程 :司機和售票員 ,共享一組數(shù)據(jù)區(qū),進行司機開車和乘客上下車操作,要 求任一時刻 “只允許司機開車或乘客上下車操作。 廈礴懇蹣駢時盡繼價騷巹癩。 規(guī)則: 允許乘客同時執(zhí)行上下車操作; 不允許司機開車、乘客上下車同時操作; 司機和售票員的相互關系: 司機開車 —— 乘客上下車 互斥關系

11、 乘客上車 —— 乘客下車 允許 開始 具體分析: buffer=1 ,n=36 (),若未滿,則可將 司機進程:產(chǎn)生一個數(shù)據(jù),當要送入緩沖區(qū)時,要檢查緩沖區(qū)是否已滿 數(shù)據(jù)送入緩沖區(qū),并通知售票員進程;否則,等待; 煢楨廣鰳鯡選塊網(wǎng)羈淚鍍齊。 售票員進程:當它去取數(shù)據(jù)時, P2 若不為空,則取走一個數(shù) 要檢查緩沖區(qū)中是否有數(shù)據(jù)可取, 據(jù),并通知司機進程,否則,等待。 鵝婭盡損鵪

12、慘歷蘢鴛賴縈詰。 N 因為緩沖區(qū)是個臨界資源,諸進程對緩沖區(qū)進行操作的臨界區(qū),需要進行 buffer=1 互斥操作的處理。 Y 程序流程圖如下: 輸入操作數(shù) a 其中 buffer 表示進程同步信號量 n 表示車上的空余作為數(shù) Y a=1&

13、& a=2&& n< n>= a<=0// a= a= p1 表示司機進程 n>0 n<36 =0 36 a>4 3 4 p2 表示售票員進程 buff a 為輸入的操作符 er=1 籟叢媽羥為贍僨蟶n練--淨櫧撻。 n++ buffer=0 2.2.3. 源程序的主要部分;

14、 a=4 N P1 3 / 7 buffer=1 Y 個人資料整理,僅供個人學習使用 #include using namespace std; int buffer=1;// 進程同步信號量 #define SIZE 36 int n=SIZE; char a; int p1(); int p2(); int p1()// 司機開車進程 { if(buffer==0) {

15、 cout<<" 汽車啟動準備離站 "<>a; if((a==1)&&(n>

16、0)) { n--; cout<<" 上了一名乘客 "<=SIZE) { break; } else cout<<" 乘客未全部下車,等待乘客

17、下車 "<4)) { cout<<" 操作錯誤,請輸入正確的操作符 1-4"<=SIZE) { cout<<" 乘客已全部下車 "<

18、車到達終點站,乘客已全部下車,一天行程結束 "<

19、 個人資料整理,僅供個人學習使用 cout<<" 行程開始,汽車在起點站準備啟動 "<

20、正確。 但由于對程序的操作次數(shù)有限, 所以并不能看到程序的全部功能。 當輸入的操作符不合要求的時候, 程序會給出輸入錯誤提示, 由于車的容量有限, 當乘客上滿后,再對程序進行上車操作,程序也會給出車上乘客已滿無法上車的提示。當車上沒有乘客時, 再對程序進行下車操作,程序會給出車上乘客已全部下車的提示。 預頌圣鉉儐歲齦訝驊糴買闥。 2.2.5 自我評價與總結: 設計的比較好和比較出色的地方: 這次課程設計基本上完成了實驗要求, 實現(xiàn)了司機與售票員之間的同步關系。 程序寫的很簡潔明了,少而精,很容易看懂, 但達到了設計要求,并且有健全的判斷錯誤操作的能力和對 不正常操

21、作給予提示的能力,也很切合實際情況。 滲釤嗆儼勻諤鱉調硯錦鋇絨。 6 / 7 個人資料整理,僅供個人學習使用 設計的不好的地方及如何改進: 但是程序寫得有些簡單,只能進行有限的幾個簡單操作,局限性很大并不能應用于實 際情況。 再對乘客進行上下車操作時也未對乘客的情況進行統(tǒng)計和記錄, 僅僅是體現(xiàn)出同步 關系,完成實驗要求,而未考慮的更深更遠,使程序更加復雜,功能更加健全。在設計時我 們應該考慮的更多一些,使得自己的設計更有用,像用在公交車上的無人售票系統(tǒng)中等等。 鐃誅臥瀉噦圣騁貺頂廡縫勵。

22、 iii )從本設計得到的收獲(在編寫,調試,執(zhí)行過程中的經(jīng)驗和教訓) ;擁締鳳襪備訊顎輪爛薔報 贏。 這次設計實驗使我懂得了如何用 C++ 代碼來表示進程間的同步關系, 而不是用 P,V 信號量來 表示。程序編寫時發(fā)現(xiàn)信號量只用一個就足以表達司機和售票員之間的同步關系, 而不需要 使用 2 個。剛做完時程序功能很不健全只有中間過程而無頭無尾, p1,p2 2 個函數(shù)輪流調用 程序始終終止不了, 就像沒有起點站和終點站的汽車一樣, 后來通過加入一個操作符和巧妙 的應用同步信號量來實現(xiàn)了結束 2 個進程的操作。 寫程序時往

23、往考慮的都不是很周全, 有很 多細節(jié)很可能自己沒考慮到, 這就需要我們再寫完程序后在對程序的調試過程中發(fā)現(xiàn)這些細 節(jié)并修正程序,這樣才能寫出更好功能更健全的程序。 贓熱俁閫歲匱閶鄴鎵騷鯛漢。 進程同步最典型的表示方法就時利用 PV 信號量來表示,這種表示方法在上文已經(jīng)給出了。 這次實驗只是進程同步模擬設計的一個簡單的例子, 現(xiàn)實生活中還有很多這樣的例子, 書上 也列舉了很多像讀者與寫者的問題, 生產(chǎn)者和消費者的問題, 哲學家就餐問題等等, 這些都 是很好的設計題目 壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚躋馱。 7 / 7

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!