




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、操作系統(tǒng)、1、P.V操作需要解決的同步問題解決、Get、copy、put、f、s、t、g和同步問題不能放在“滿”t中。無法從“空”t獲取Put。有三個茄子過程:get、copy和put。get、copy和put操作4個存儲區(qū)域f、s、t和g。其中,f有可用于get的無休止的數(shù)據(jù)。g有用的無限空間可以是put s和T,但只有一個存儲空間。3、4、m、2、2、(1、2)、2、3、4、m、1、1、(1)、1、2、初始值為0,get進程: begin repeat p(s _ empty)t _ get _ s();v(S _ Full);Until falseEnd,Copy過程: Begin Re
2、peat P(S _ Full);p(T _ Empty);s _ copy _ T();v(T _ Full);v(S _ Empty);Until falseEnd,Put流程: Begin Repeat P(T _ Full);t _ put _ G();v(T _ Empty);Until false重新研究端、操作系統(tǒng)、2、司機、售票員問題,分別寫司機、售票員流程,同步牙齒問題。操作系統(tǒng),司機過程:Begin Repeat P(S _ Door);行車停車;v(S _ Stop);Until falseEnd,乘務員流程: Begin Repeat關(guān)閉了。v(S _ Door);門票
3、銷售P(S _ Stop);打開門Until falseEnd,var s _ door,s _ stop: semaphore :=0,0,操作系統(tǒng),司機進程:Begin Repeat P(door);行車停車;v(停止);Until falseEnd,乘務員流程: Begin Repeat P(stop);開門關(guān)門V(門);門票銷售Until falseEnd,Var door,stop : semaphore: 1,0,操作系統(tǒng),3,桌子上有空盤子,可以存放一只水果。可以在爸爸盤子里放蘋果,在盤子里放橘子,兒子等可以吃盤子里的橘子,女兒也可以吃盤子里的蘋果。規(guī)定盤子空著的時候一次只能吃一
4、個水果。用p,V原語同步爸爸,兒子,女兒的三個茄子并發(fā)進程。分析:在牙齒主題中,爸爸、兒子和女兒共享一個每次只能放一種水果的盤子。盤子牙齒空的時候,爸爸可以把一個水果放在水果盤里。在水果盤里放橙子,可以兒子吃,女兒要等。把蘋果放在水果盤里,要讓女兒吃,兒子等。牙齒問題實際上是生產(chǎn)者-消費者問題的變體。這里生產(chǎn)者放緩沖區(qū)產(chǎn)品有兩種茄子,消費者也有兩種茄子。每個消費者只消費其中固定的產(chǎn)品。操作系統(tǒng),S:指示盤子是否為空,初始值為L。牛:指示盤子里是否有橙子。初始值為0。Sa:表示盤子里是否有蘋果。初始值為0。三個信號標:S、So、Sa和Daughter進程設置:while(1)P(Sa);從盤子里
5、拿出蘋果。v(S);吃蘋果,F(xiàn)ather過程:while(1)P(S);在盤子里放水果。If(插入橙色)V(So);else V(Sa);Son進程:while(1)P(So);從盤子里拿出橘子。v(S);吃橘子、操作系統(tǒng)、分析問題所涉及的過程;分析問題的同步關(guān)系(競爭、合作);其中合作關(guān)系的解決也是通過轉(zhuǎn)向?qū)Y源的競爭來實現(xiàn)的。)參考競爭資源設置信號量并賦予初始值。為每個進程創(chuàng)建說明。檢查每個進程的說明,以確定是否出現(xiàn)死鎖現(xiàn)象并進行更正。摘要:同步問題解決、操作系統(tǒng)、具體規(guī)范格式如下(以蘋果橙標題為例),int S1Int Sa0Int So0主()cobe ginfather();/*爸爸
6、進程*/son();/*兒子進程*/daughter();/*女兒進程*/coend,解決:設置三個信號量S,So,Sa。信號量S表示盤子是否為空,初始值為L。信號標So表示盤子中是否有桔子,初始值為0。信號量Sa表示盤子里是否有蘋果,初始值為0。同步說明如下:father()while(1)P(S);在盤子里放水果。If(插入橙色)V(So);else V(Sa);son()while(1)P(So);從盤子里拿出橙子。v(S);吃橘子,daughter()while(1)P(Sa);從盤子里拿出蘋果。v(S);吃蘋果,操作系統(tǒng),作業(yè):睡眠理發(fā)師問題,操作系統(tǒng),作業(yè):睡眠理發(fā)師問題,問題說明
7、(經(jīng)典理發(fā)師問題)假設后面的街上有理發(fā)店,商店就有理發(fā)師,理發(fā)師,n牙齒,椅子等理發(fā)的顧客。(1)。沒有顧客的話,就在理發(fā)師理發(fā)店睡覺。(2)。一位顧客到達后,首先確認理發(fā)師在做什么,如果在睡覺,告訴他理發(fā)師理發(fā),然后坐在理發(fā)椅上開始理發(fā)。如果你在理發(fā)師牙齒理發(fā),確保有空的椅子牙齒,如果有,他就坐著等,否則就離開。(3)。為一名理發(fā)師理發(fā)后,確定是否有人在等,如果有,就為理發(fā)叫醒一名,如果沒有,就在理發(fā)椅上睡覺(看報紙)。(4)??蛻舯仨氃趦?yōu)先級、操作系統(tǒng)、作業(yè):睡眠理發(fā)師問題、問題分析標題中說明理發(fā)師和客戶的行為,因此兩種茄子類型的過程Barber()和Customer()必須分別說明理發(fā)師
8、和客戶的行為??蠢戆l(fā)師報紙的時候,顧客最近理發(fā)師理發(fā),顧客在的時候理發(fā)師理發(fā),不在的時候看理發(fā)師報紙,所以理發(fā)師和顧客之間是同步的關(guān)系。每個理發(fā)師只能理發(fā)一個人,可以等的椅子限制是n個,即理發(fā)師和椅子是臨界資源,因此客戶之間是相互排斥的關(guān)系。因此,引入3個信號量和1個控制變量:1)控制變量waiting用于記錄等待理發(fā)的顧客數(shù),初始值全部為0。2)信號量customers記錄等待理發(fā)的顧客數(shù),用作切斷理發(fā)師過程,初始值為0。3)信號量barbers用于記錄等待客戶的理發(fā)師數(shù),并阻止客戶流程,初始值為0。4)訊號量mutex用于mutex,初始值為1,操作系統(tǒng),作業(yè):睡眠理發(fā)師問題,問題實現(xiàn)PV
9、操作代碼如下: intwaiting=0;/等待理發(fā)的客戶數(shù)int chairs=n;/客戶的椅子數(shù)semaphorecustomers=0,barbers=0,mutex=1;barber()while(TRUE);/一個人都整理好了,有客人嗎?p(客戶);/如果沒有客戶,則理發(fā)師睡眠p(互斥鎖);/流程互不相容waiting :=waiting 1;/等待客戶數(shù)少一個(barbers)。/理發(fā)師客戶理發(fā)v(互斥鎖);/開放臨界區(qū)域cut-hair();/理發(fā)中,操作系統(tǒng),作業(yè):睡眠理發(fā)師問題,問題實現(xiàn)(繼續(xù))客戶()p(互斥鎖);/處理互斥if(waiting)waiting :=wait
10、ing 1;/等待客戶數(shù)加1V(客戶)。/如有必要,請喚醒理發(fā)師v(互斥鎖)。/開放臨界區(qū)域P(barbers);/無理發(fā)師,客戶坐下來get-hair cut();/一名客戶坐下/else v(互斥鎖);/人滿了,走吧!操作系統(tǒng),理發(fā)師問題:理發(fā)店有入口和出口。理發(fā)店有一個能容納5名顧客的站位球、4個單人沙發(fā)、3個理發(fā)師、1個專用理發(fā)工具和1個收銀臺。新來的顧客坐在沙發(fā)上等著??丈嘲l(fā),不能在車站座位區(qū)等;站位區(qū)滿了,只能在入口外等。理發(fā)師可以從事理發(fā)、收銀員、休息三種茄子活動。理發(fā)店活動符合以下條件:休息的理發(fā)師位置坐在自己專用的理發(fā)椅上,不占用顧客的沙發(fā)。2)處理休息狀態(tài)的理發(fā)師,可以為等
11、待沙發(fā)時間最長的顧客理發(fā)。理發(fā)時間取決于理發(fā)師的決定。在站石區(qū)等待時間最長的顧客可以坐在悠閑的理發(fā)室。5)一次最多只能收納一名理發(fā)師。使用信號量機制或官定機制實現(xiàn)理發(fā)師流程和客戶流程。操作系統(tǒng),原則:(1)客戶流程:首先檢查站座位是否已滿(stand_capacity)在站位區(qū)等待沙發(fā)空位(信號量sofa),沙發(fā)滿了,就會進入阻塞等待隊列,直到出現(xiàn)空位為止,站位區(qū)等待時間最長的顧客離開站位區(qū)(stand_capacity)。坐在沙發(fā)上等理發(fā)椅(barber_chair),當理發(fā)椅滿了,就會進入阻擋排隊等待直到出現(xiàn)空位,沙發(fā)等待時間最長的顧客離開沙發(fā)(信號量sofa解除)。坐在理發(fā)椅上,解開準備
12、的信號(customer_ready),獲得理發(fā)師號碼(01的號碼)。等待理發(fā)師理發(fā)結(jié)束(finishedbarber_number)。離開理發(fā)椅之前,離開支付、收據(jù)、理發(fā)椅(leave_barberchair)。最后離開理發(fā)店。操作系統(tǒng),有幾點需要注意。a)首先需要相互排斥處理的幾個地方,主要是:入席區(qū),進入沙發(fā),進入理發(fā)椅,支付多個地方等。b)通過barber_chair保證理發(fā)椅上最多只有一個客戶。但是僅憑baber_chair并不能保證在一個顧客離開理發(fā)椅之前,另一個顧客不會坐在理發(fā)椅上,因此增加信號量leave_barberchair,以便顧客離開理發(fā)椅后釋放信號,如果收到理發(fā)師信號
13、,就會釋放Barber。c)在理發(fā)過程中,確保自己理完發(fā)后,可以支付以下款項,并進行離開理發(fā)椅的活動。牙齒機制通過customer流程獲取理發(fā)的理發(fā)師號碼,當該號碼的理發(fā)師釋放出相應的finishedi信號時,客戶可以完成理發(fā)。d)理發(fā)師是通過mutex信號量,確保他們每個人只能同時操作一個茄子(理發(fā)或收款)。e)為了讓牙齒顧客在理發(fā)結(jié)束后立即付款離開,要保證在給牙齒顧客理發(fā)的理發(fā)師理發(fā)結(jié)束后,立即去收銀臺代替下一次顧客服務進行收帳工作。在偽代碼中,顧客在發(fā)出離開理發(fā)椅的信號之前發(fā)出支付信號的機制。這樣,牙齒理發(fā)師就沒有收到離開顧客理發(fā)椅子的信號,不能進入下一個循環(huán)的下一個顧客服務,只能操作收
14、款臺的收款。顧客收到收據(jù)后,才解開離開理發(fā)椅的信號,離開理發(fā)椅,釋放理發(fā)師牙齒理發(fā)椅的信號,讓等待下一位的顧客坐在理發(fā)椅上。操作系統(tǒng),(2)barber流程首先將理發(fā)師編號排隊,以便客戶提取。等顧客坐在理發(fā)椅上(信號量customer_ready),開始理發(fā),理發(fā)結(jié)束后發(fā)出結(jié)束信號(finishedi)。客戶離開理發(fā)廳(leave_barberchair)(在時段結(jié)帳臺進行收帳活動時),松開理發(fā)師空閑信號(barber_chair),等待下一位客戶坐下。(3)現(xiàn)金(收銀臺)流程等待客戶付款(payment)、執(zhí)行收款工作、終止收款工作和收款付款(receipt)。,操作系統(tǒng),信號量總表:信號量
15、wait signal stand_capacity客戶在等進入美容院。顧客在等著離開站位。sofa客戶正在等待沙發(fā)客戶離開沙發(fā)barber_chair客戶。正在等待空理發(fā)師理發(fā)師的釋放。customer_ready理發(fā)師等待。一位客戶坐在理發(fā)椅上,向理發(fā)師mutex發(fā)出理發(fā)師閑置等待、理發(fā)或收款工作理發(fā)師執(zhí)行理發(fā)或收款結(jié)束、空閑互斥鎖1進入隊列、排隊、出隊或出隊的信號,等待信號finishedi客戶發(fā)出信號,等待該號碼理發(fā)師理發(fā)結(jié)束。(注:,)理發(fā)師理發(fā)結(jié)束,解除信號leave_barberchair理發(fā)師等待客戶理發(fā)客完成付款,收到收據(jù),理理發(fā)椅解除信號paymentsemap hore
16、sofa=4;semaphore barber _ chair=3;semaphore customer _ ready=0;semap hore mutex=3;Semaphore mutex1=1Semaphore finished3=0,0,0;semaphore leave _ barber chair=0;semap hore payment=0;semap hore receipt=0;操作系統(tǒng),void customer()int barber _ number;wait(stand _ capacity);/等待進入理發(fā)店enter _ room();/進入理發(fā)店wait(sofa);/沙發(fā)備用leave _ stand _ section();/工作站座位區(qū)域signal(stand _ capacity);sit _ on _ sofa();/坐在沙發(fā)上wait(barber _ chair);/理發(fā)師大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2 做更好的自己 公開課一等獎創(chuàng)新教學設計 統(tǒng)編版道德與法治七年級上冊
- Brand KPIs for ready-made-food De Marchi in Brazil-外文版培訓課件(2025.2)
- 第21課《鄒忌諷齊王納諫》教學設計2023-2024學年統(tǒng)編版語文九年級下冊
- 西師大版五年級下冊解方程教學設計
- 駕駛員配送兼職合同
- 城市照明項目路燈安裝工程合同樣本
- 個人借款合同協(xié)議范例
- 2025版權(quán)轉(zhuǎn)讓合同模板示例
- 2025年汽車個人租賃合同標準范本范文
- 網(wǎng)約車司機服務合同范本
- 銀行內(nèi)控案防警示教育
- 初中勞動測試題及答案
- 基因指導蛋白質(zhì)的合成課件-高一下學期生物人教版必修22
- 2024-2025學年湖南省長沙市八年級(上)期末物理試卷(含解析)
- 2025-2030中國鍍鋅鋼板行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 大模型備案-落實算法安全主體責任基本情況
- 超市安全用電培訓
- 電氣火災警示教育培訓考試試題
- 2025年開封大學單招職業(yè)技能測試題庫及答案1套
- 中國移動泛終端產(chǎn)品白皮書(2025年版)
- 2025年快遞公司工作計劃模板參考范文模板
評論
0/150
提交評論