九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

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

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

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

10 積分

下載資源

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

資源描述:

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

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

2、析; 自我評價與總結:i )你認為你完成的設計哪些地方做得比較好或比較出色;ii )什么地方做得不太好,以后如何改正;iii )從本設計得到的收獲(在編寫,調試,執(zhí)行過程中的經驗和教訓);矚慫潤厲釤瘞睞櫪廡賴賃軔。iv )完成本題是否有其他的其他方法(如果有,簡要說明該方法);v)對實驗題的評價和改進意見,請你推薦設計題目。時間安排:設計安排一周:周1、周 2:完成程序分析及設計。周 2、周 3:完成程序調試及測試。周 4、周 5:驗收、撰寫課程設計報告。(注意事項:嚴禁抄襲,一旦發(fā)現,抄與被抄的一律按0 分記)指導教師簽名:年月日系主任(或責任教師)簽名:年月日題目 :進程同步模擬設計 司機

3、和售票員問題1.初始條件:1預備內容:閱讀操作系統(tǒng)的進程管理章節(jié)內容,對進程的同步和互斥,以及信號量機制度有深入的理解。2實踐準備:掌握一種計算機高級語言的使用。2 要求完成的主要任務 :2.1模擬公共汽車司機和售票員開關門及行車操作的同步模型。在汽車行駛過程中, 司機活動與售票員活動之間的同步關系為:售票員關車門后, 向司機發(fā)開車信號, 司機接到開車信號后啟動車輛,在汽車正常行駛過程中售票員售票,到站時司機停車, 售票員在車停后開門讓乘客上下車。因此,司機啟動車輛的動作必須與售票員關車門的動作取得同步;售票員開車門的動作也必須與司機停車取得同步。聞創(chuàng)溝燴鐺險愛氌譴凈禍測。司機 P1 售票員

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

5、, P2 已到,則 P2 應等待直到 P1 推進到處為止。P1在處發(fā)生了等待,則P2 執(zhí)行到處時應將P1 喚醒;P2在處發(fā)生了等待,P1 到處應將P2 喚醒應設置兩個信號量: S1、 S2 ;S1表示是否允許司機啟動汽車(其初值為0 ) ;S2表示是否允許售票員開門(其初值為0 )。用 P 、 v 原語描述如下:ints1=O;ints2=O;main()cobegindriver();conductor();coenddriver()while(1)p(s1);啟動車輛 ;正常行車 ;到站停車 ;v(s2);conductor()while(1)關車門 ;v(s1);售票 ;p(s2);開車

6、門 ;上下乘客 ;2 / 7個人資料整理,僅供個人學習使用2.2設計報告內容應說明:2.2.1 課程設計目的與功能;實驗目的:對進程的同步和互斥,以及信號量機制度有深入的理解。一組相互合作的并發(fā)進程, 為了協調其推進速度, 有時需要相互等待與相互喚醒,進程之間這種相互制約的關系稱作進程同步,雖然進程同步僅發(fā)生在相互有邏輯關系的進程之間,這種相互制約的關系稱作進程同步,進程同步現象僅發(fā)生在相互有邏輯關系的進程之間,這點與進程互斥不同,進程互斥現象發(fā)生在任意兩個進程之間。釅錒極額閉鎮(zhèn)檜豬訣錐顧葒。與進程同步相關的另一概念是進程合作,一組進程如果它們單獨執(zhí)行不能正常進行,但并發(fā)執(zhí)行可以正常進行, 這

7、種現象稱為進程合作,參與進程合作的進程稱為合作進程,如司機與售票員的例子, 二者單獨執(zhí)行都不能正常進行,但二者并發(fā)反可以正常進行, 成為合作進程,這種進程合作的現象在操作系統(tǒng)中經常發(fā)生。彈貿攝爾霽斃攬磚鹵廡詒爾。實驗功能:編寫完程序后, 通過輸入程序給定的操作符對程序進行操作來實現司機與售票員之間的進程同步關系。對輸入的錯誤操作符有識別功能給予正確的提示,對于那些不符合實際情況的操作給予限制和提示。例如車上人滿的時候要給予不能再上車的提示,車上沒人的時候要給予不能在下車的提示等等。謀蕎摶篋飆鐸懟類蔣薔點鉍。2.2.2. 需求分析,數據結構或模塊說明(功能與框圖 );問題描述:有兩組并發(fā)進程:司

8、機和售票員 ,共享一組數據區(qū),進行司機開車和乘客上下車操作,要求任一時刻 “只允許司機開車或乘客上下車操作。廈礴懇蹣駢時盡繼價騷巹癩。規(guī)則:允許乘客同時執(zhí)行上下車操作;不允許司機開車、乘客上下車同時操作;司機和售票員的相互關系:司機開車 乘客上下車互斥關系乘客上車 乘客下車允許開始具體分析:buffer=1 ,n=36(),若未滿,則可將司機進程:產生一個數據,當要送入緩沖區(qū)時,要檢查緩沖區(qū)是否已滿數據送入緩沖區(qū),并通知售票員進程;否則,等待;煢楨廣鰳鯡選塊網羈淚鍍齊。售票員進程:當它去取數據時,P2若不為空,則取走一個數要檢查緩沖區(qū)中是否有數據可取,據,并通知司機進程,否則,等待。鵝婭盡損鵪

9、慘歷蘢鴛賴縈詰。N因為緩沖區(qū)是個臨界資源,諸進程對緩沖區(qū)進行操作的臨界區(qū),需要進行buffer=1互斥操作的處理。Y程序流程圖如下:輸入操作數 a其中 buffer 表示進程同步信號量n 表示車上的空余作為數Ya=1&a=2&n=a0n434p2 表示售票員進程buffa 為輸入的操作符er=1籟叢媽羥為贍僨蟶n練-淨櫧撻。n+buffer=02.2.3. 源程序的主要部分;a=4NP13 / 7buffer=1Y個人資料整理,僅供個人學習使用#includeusing namespace std;int buffer=1;/ 進程同步信號量#define SIZE 36int n=SIZE;

10、char a;int p1();int p2();int p1()/ 司機開車進程if(buffer=0)cout 汽車啟動準備離站endl;cout 汽車正在行駛endl;cout 汽車到站了 endl;cout 汽車已停止 endl;buffer=1;p2();return 0;int p2()/ 乘客上下車進程if(buffer)cout 售票員已打開車門endl;cout 請乘客上下車a;if(a=1)&(n0)n-;cout 上了一名乘客endl;continue;if(a=2)&(nSIZE)n+;cout 下了一名乘客=SIZE)break;elsecout 乘客未全部下車,等待

11、乘客下車endl;if(a4)cout 操作錯誤,請輸入正確的操作符1-4endl;if(n=0)cout 車上座位已滿,無法再上乘客了=SIZE)cout 乘客已全部下車endl;continue;cout 現在關閉車門endl;buffer=0;if(a=4)cout 汽車到達終點站,乘客已全部下車,一天行程結束endl;buffer=1;p1();return 0;int main()cout 使用說明: endl;cout 鍵入 1 表示乘客上車 endl;cout 鍵入 2 表示乘客下車 endl;cout 鍵入 3 表示乘客上下車過程結束endl;cout 鍵入 4 表示汽車到達終

12、點站,一天行程結束endlendlendl;5 / 7個人資料整理,僅供個人學習使用cout 行程開始,汽車在起點站準備啟動endl;p2();return 0;2.2.4 測試用例,運行結果與運行情況分析;運行結果:程序運行后結果如下:對程序操作后結果如下:運行情況分析:程序運行結果正確。 但由于對程序的操作次數有限, 所以并不能看到程序的全部功能。 當輸入的操作符不合要求的時候, 程序會給出輸入錯誤提示, 由于車的容量有限, 當乘客上滿后,再對程序進行上車操作,程序也會給出車上乘客已滿無法上車的提示。當車上沒有乘客時,再對程序進行下車操作,程序會給出車上乘客已全部下車的提示。預頌圣鉉儐歲齦

13、訝驊糴買闥。2.2.5 自我評價與總結:設計的比較好和比較出色的地方:這次課程設計基本上完成了實驗要求, 實現了司機與售票員之間的同步關系。 程序寫的很簡潔明了,少而精,很容易看懂, 但達到了設計要求,并且有健全的判斷錯誤操作的能力和對不正常操作給予提示的能力,也很切合實際情況。滲釤嗆儼勻諤鱉調硯錦鋇絨。6 / 7個人資料整理,僅供個人學習使用設計的不好的地方及如何改進:但是程序寫得有些簡單,只能進行有限的幾個簡單操作,局限性很大并不能應用于實際情況。 再對乘客進行上下車操作時也未對乘客的情況進行統(tǒng)計和記錄,僅僅是體現出同步關系,完成實驗要求,而未考慮的更深更遠,使程序更加復雜,功能更加健全。

14、在設計時我們應該考慮的更多一些,使得自己的設計更有用,像用在公交車上的無人售票系統(tǒng)中等等。鐃誅臥瀉噦圣騁貺頂廡縫勵。iii )從本設計得到的收獲(在編寫,調試,執(zhí)行過程中的經驗和教訓);擁締鳳襪備訊顎輪爛薔報贏。這次設計實驗使我懂得了如何用C+ 代碼來表示進程間的同步關系,而不是用 P,V 信號量來表示。程序編寫時發(fā)現信號量只用一個就足以表達司機和售票員之間的同步關系,而不需要使用 2 個。剛做完時程序功能很不健全只有中間過程而無頭無尾,p1,p2 2 個函數輪流調用程序始終終止不了, 就像沒有起點站和終點站的汽車一樣,后來通過加入一個操作符和巧妙的應用同步信號量來實現了結束2 個進程的操作。 寫程序時往往考慮的都不是很周全,有很多細節(jié)很可能自己沒考慮到, 這就需要我們再寫完程序后在對程序的調試過程中發(fā)現這些細節(jié)并修正程序,這樣才能寫出更好功能更健全的程序。贓熱俁閫歲匱閶鄴鎵騷鯛漢。進程同步最典型的表示方法就時利用PV 信號量來表示,這種表示方法在上文已經給出了。這次實驗只是進程同步模擬設計的一個簡單的例子,現實生活中還有很多這樣的例子,書上也列舉了很多像讀者與寫者的問題,生產者和消費者的問題,哲學家就餐問題等等,這些都是很好的設計題目 壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚躋馱。7 / 7

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

相關資源

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

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


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