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

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

課程設(shè)計任務(wù)書 進程同步模擬設(shè)計——司機和售票員問題

  • 資源ID:21608727       資源大小:79.98KB        全文頁數(shù):9頁
  • 資源格式: DOCX        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

課程設(shè)計任務(wù)書 進程同步模擬設(shè)計——司機和售票員問題

個人資料整理,僅供個人學習使用課程設(shè)計任務(wù)書學生姓名:丁光明專業(yè)班級:計算機 0506指導教師:何克右工作單位:計算機科學與技術(shù)學院題目 :進程同步模擬設(shè)計 司機和售票員問題初始條件:1預備內(nèi)容:閱讀操作系統(tǒng)的進程管理章節(jié)內(nèi)容,對進程的同步和互斥,以及信號量機制度有深入的理解。2實踐準備:掌握一種計算機高級語言的使用。要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1模擬公共汽車司機和售票員開關(guān)門及行車操作的同步模型。2設(shè)計報告內(nèi)容應(yīng)說明: 課程設(shè)計目的與功能; 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說明(功能與框圖 ); 源程序的主要部分; 測試用例,運行結(jié)果與運行情況分析; 自我評價與總結(jié):i )你認為你完成的設(shè)計哪些地方做得比較好或比較出色;ii )什么地方做得不太好,以后如何改正;iii )從本設(shè)計得到的收獲(在編寫,調(diào)試,執(zhí)行過程中的經(jīng)驗和教訓);矚慫潤厲釤瘞睞櫪廡賴賃軔。iv )完成本題是否有其他的其他方法(如果有,簡要說明該方法);v)對實驗題的評價和改進意見,請你推薦設(shè)計題目。時間安排:設(shè)計安排一周:周1、周 2:完成程序分析及設(shè)計。周 2、周 3:完成程序調(diào)試及測試。周 4、周 5:驗收、撰寫課程設(shè)計報告。(注意事項:嚴禁抄襲,一旦發(fā)現(xiàn),抄與被抄的一律按0 分記)指導教師簽名:年月日系主任(或責任教師)簽名:年月日題目 :進程同步模擬設(shè)計 司機和售票員問題1.初始條件:1預備內(nèi)容:閱讀操作系統(tǒng)的進程管理章節(jié)內(nèi)容,對進程的同步和互斥,以及信號量機制度有深入的理解。2實踐準備:掌握一種計算機高級語言的使用。2 要求完成的主要任務(wù) :2.1模擬公共汽車司機和售票員開關(guān)門及行車操作的同步模型。在汽車行駛過程中, 司機活動與售票員活動之間的同步關(guān)系為:售票員關(guān)車門后, 向司機發(fā)開車信號, 司機接到開車信號后啟動車輛,在汽車正常行駛過程中售票員售票,到站時司機停車, 售票員在車停后開門讓乘客上下車。因此,司機啟動車輛的動作必須與售票員關(guān)車門的動作取得同步;售票員開車門的動作也必須與司機停車取得同步。聞創(chuàng)溝燴鐺險愛氌譴凈禍測。司機 P1 售票員 P2啟動關(guān)門到站停開門正常運行 -售票 -關(guān)門啟動行駛停開門為了安全起見:1 / 7個人資料整理,僅供個人學習使用(1) 關(guān)車門后才能啟動車輛啟動在關(guān)門之后(2) 到站停車后,才能開車門開車門在到站停車之后在計算機系統(tǒng)中可以將司機和售票員分別看作P1、P2 兩個進程, 當它們并發(fā)地向前推進時,計算機系統(tǒng)所接受到的實際上是司機活動與售票員活動的許多交叉中的任意一個交叉,這些交叉有些滿足上述要求,有些則不滿足, 而操作系統(tǒng)必須保證不發(fā)生不滿足上述要求的交叉,即:殘騖樓諍錈瀨濟溆塹籟婭騍。如 P2 尚未推進到處時,而 P1 已推進到處,則 P1 應(yīng)等待直到 P2 推進到處為止;如 P1 尚未推進到時, P2 已到,則 P2 應(yīng)等待直到 P1 推進到處為止。P1在處發(fā)生了等待,則P2 執(zhí)行到處時應(yīng)將P1 喚醒;P2在處發(fā)生了等待,P1 到處應(yīng)將P2 喚醒應(yīng)設(shè)置兩個信號量: 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)關(guān)車門 ;v(s1);售票 ;p(s2);開車門 ;上下乘客 ;2 / 7個人資料整理,僅供個人學習使用2.2設(shè)計報告內(nèi)容應(yīng)說明:2.2.1 課程設(shè)計目的與功能;實驗?zāi)康模簩M程的同步和互斥,以及信號量機制度有深入的理解。一組相互合作的并發(fā)進程, 為了協(xié)調(diào)其推進速度, 有時需要相互等待與相互喚醒,進程之間這種相互制約的關(guān)系稱作進程同步,雖然進程同步僅發(fā)生在相互有邏輯關(guān)系的進程之間,這種相互制約的關(guān)系稱作進程同步,進程同步現(xiàn)象僅發(fā)生在相互有邏輯關(guān)系的進程之間,這點與進程互斥不同,進程互斥現(xiàn)象發(fā)生在任意兩個進程之間。釅錒極額閉鎮(zhèn)檜豬訣錐顧葒。與進程同步相關(guān)的另一概念是進程合作,一組進程如果它們單獨執(zhí)行不能正常進行,但并發(fā)執(zhí)行可以正常進行, 這種現(xiàn)象稱為進程合作,參與進程合作的進程稱為合作進程,如司機與售票員的例子, 二者單獨執(zhí)行都不能正常進行,但二者并發(fā)反可以正常進行, 成為合作進程,這種進程合作的現(xiàn)象在操作系統(tǒng)中經(jīng)常發(fā)生。彈貿(mào)攝爾霽斃攬磚鹵廡詒爾。實驗功能:編寫完程序后, 通過輸入程序給定的操作符對程序進行操作來實現(xiàn)司機與售票員之間的進程同步關(guān)系。對輸入的錯誤操作符有識別功能給予正確的提示,對于那些不符合實際情況的操作給予限制和提示。例如車上人滿的時候要給予不能再上車的提示,車上沒人的時候要給予不能在下車的提示等等。謀蕎摶篋飆鐸懟類蔣薔點鉍。2.2.2. 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說明(功能與框圖 );問題描述:有兩組并發(fā)進程:司機和售票員 ,共享一組數(shù)據(jù)區(qū),進行司機開車和乘客上下車操作,要求任一時刻 “只允許司機開車或乘客上下車操作。廈礴懇蹣駢時盡繼價騷巹癩。規(guī)則:允許乘客同時執(zhí)行上下車操作;不允許司機開車、乘客上下車同時操作;司機和售票員的相互關(guān)系:司機開車 乘客上下車互斥關(guān)系乘客上車 乘客下車允許開始具體分析:buffer=1 ,n=36(),若未滿,則可將司機進程:產(chǎn)生一個數(shù)據(jù),當要送入緩沖區(qū)時,要檢查緩沖區(qū)是否已滿數(shù)據(jù)送入緩沖區(qū),并通知售票員進程;否則,等待;煢楨廣鰳鯡選塊網(wǎng)羈淚鍍齊。售票員進程:當它去取數(shù)據(jù)時,P2若不為空,則取走一個數(shù)要檢查緩沖區(qū)中是否有數(shù)據(jù)可取,據(jù),并通知司機進程,否則,等待。鵝婭盡損鵪慘歷蘢鴛賴縈詰。N因為緩沖區(qū)是個臨界資源,諸進程對緩沖區(qū)進行操作的臨界區(qū),需要進行buffer=1互斥操作的處理。Y程序流程圖如下:輸入操作數(shù) a其中 buffer 表示進程同步信號量n 表示車上的空余作為數(shù)Ya=1&&a=2&&n<n>=a<=0/a=a=p1 表示司機進程n>0n<36=036a>434p2 表示售票員進程buffa 為輸入的操作符er=1籟叢媽羥為贍僨蟶n練-淨櫧撻。n+buffer=02.2.3. 源程序的主要部分;a=4NP13 / 7buffer=1Y個人資料整理,僅供個人學習使用#include<iostream>using namespace std;int buffer=1;/ 進程同步信號量#define SIZE 36int n=SIZE;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<<" 請乘客上下車"<<endl;while(1)cin>>a;if(a=1)&&(n>0)n-;cout<<" 上了一名乘客"<<endl;continue;if(a=2)&&(n<SIZE)n+;cout<<" 下了一名乘客"<<endl;continue;if(a=3)4 / 7個人資料整理,僅供個人學習使用break;if(a=4)if(n>=SIZE)break;elsecout<<" 乘客未全部下車,等待乘客下車"<<endl;if(a<=0)|(a>4)cout<<" 操作錯誤,請輸入正確的操作符1-4"<<endl;if(n<=0)cout<<" 車上座位已滿,無法再上乘客了"<<endl;continue;if(n>=SIZE)cout<<" 乘客已全部下車"<<endl;continue;cout<<" 現(xiàn)在關(guān)閉車門"<<endl;buffer=0;if(a=4)cout<<" 汽車到達終點站,乘客已全部下車,一天行程結(jié)束"<<endl;buffer=1;p1();return 0;int main()cout<<" 使用說明: "<<endl;cout<<" 鍵入 1 表示乘客上車 "<<endl;cout<<" 鍵入 2 表示乘客下車 "<<endl;cout<<" 鍵入 3 表示乘客上下車過程結(jié)束"<<endl;cout<<" 鍵入 4 表示汽車到達終點站,一天行程結(jié)束"<<endl<<endl<<endl;5 / 7個人資料整理,僅供個人學習使用cout<<" 行程開始,汽車在起點站準備啟動"<<endl;p2();return 0;2.2.4 測試用例,運行結(jié)果與運行情況分析;運行結(jié)果:程序運行后結(jié)果如下:對程序操作后結(jié)果如下:運行情況分析:程序運行結(jié)果正確。 但由于對程序的操作次數(shù)有限, 所以并不能看到程序的全部功能。 當輸入的操作符不合要求的時候, 程序會給出輸入錯誤提示, 由于車的容量有限, 當乘客上滿后,再對程序進行上車操作,程序也會給出車上乘客已滿無法上車的提示。當車上沒有乘客時,再對程序進行下車操作,程序會給出車上乘客已全部下車的提示。預頌圣鉉儐歲齦訝驊糴買闥。2.2.5 自我評價與總結(jié):設(shè)計的比較好和比較出色的地方:這次課程設(shè)計基本上完成了實驗要求, 實現(xiàn)了司機與售票員之間的同步關(guān)系。 程序?qū)懙暮芎啙嵜髁?,少而精,很容易看懂?但達到了設(shè)計要求,并且有健全的判斷錯誤操作的能力和對不正常操作給予提示的能力,也很切合實際情況。滲釤嗆儼勻諤鱉調(diào)硯錦鋇絨。6 / 7個人資料整理,僅供個人學習使用設(shè)計的不好的地方及如何改進:但是程序?qū)懙糜行┖唵?,只能進行有限的幾個簡單操作,局限性很大并不能應(yīng)用于實際情況。 再對乘客進行上下車操作時也未對乘客的情況進行統(tǒng)計和記錄,僅僅是體現(xiàn)出同步關(guān)系,完成實驗要求,而未考慮的更深更遠,使程序更加復雜,功能更加健全。在設(shè)計時我們應(yīng)該考慮的更多一些,使得自己的設(shè)計更有用,像用在公交車上的無人售票系統(tǒng)中等等。鐃誅臥瀉噦圣騁貺頂廡縫勵。iii )從本設(shè)計得到的收獲(在編寫,調(diào)試,執(zhí)行過程中的經(jīng)驗和教訓);擁締鳳襪備訊顎輪爛薔報贏。這次設(shè)計實驗使我懂得了如何用C+ 代碼來表示進程間的同步關(guān)系,而不是用 P,V 信號量來表示。程序編寫時發(fā)現(xiàn)信號量只用一個就足以表達司機和售票員之間的同步關(guān)系,而不需要使用 2 個。剛做完時程序功能很不健全只有中間過程而無頭無尾,p1,p2 2 個函數(shù)輪流調(diào)用程序始終終止不了, 就像沒有起點站和終點站的汽車一樣,后來通過加入一個操作符和巧妙的應(yīng)用同步信號量來實現(xiàn)了結(jié)束2 個進程的操作。 寫程序時往往考慮的都不是很周全,有很多細節(jié)很可能自己沒考慮到, 這就需要我們再寫完程序后在對程序的調(diào)試過程中發(fā)現(xiàn)這些細節(jié)并修正程序,這樣才能寫出更好功能更健全的程序。贓熱俁閫歲匱閶鄴鎵騷鯛漢。進程同步最典型的表示方法就時利用PV 信號量來表示,這種表示方法在上文已經(jīng)給出了。這次實驗只是進程同步模擬設(shè)計的一個簡單的例子,現(xiàn)實生活中還有很多這樣的例子,書上也列舉了很多像讀者與寫者的問題,生產(chǎn)者和消費者的問題,哲學家就餐問題等等,這些都是很好的設(shè)計題目 壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚躋馱。7 / 7

注意事項

本文(課程設(shè)計任務(wù)書 進程同步模擬設(shè)計——司機和售票員問題)為本站會員(飛****9)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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