版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
操作系統(tǒng)習題講解一、進程概念
二、進程同步和互斥OperatingSystemConcepts進程概念(一)問題:如果系統(tǒng)中有N個進程,運行進程最多幾個,最少幾個?就緒進程最多幾個,最少幾個?等待進程最多幾個,最少幾個?OperatingSystemConcepts解答:運行進程最多1個,最少0個; 就緒進程最多N-1個,最少0個; 等待進程最多N個,最少0個;OperatingSystemConcepts進程同步和互斥(一)問題一:用P.V操作解決下圖之同步問題getcopyputfstgOperatingSystemConcepts一個數(shù)據(jù)上的操作順序:get-copy-putcpcgpcgpgGet不能向“滿”的S中放;Copy不能從“空”的S中取;不能向“滿”的T中放;Put不能“空”的T中取OperatingSystemConcepts(同步)信號量:{實際上也起到互斥作用}
S_Empty,T_Empty,{初值為1}
S_Full,T_Full; {初值為0}Get: BeginRepeatP(S_Empty)T_get_S();V(S_Full);Untilfalse;End Copy:BeginRepeatP(S_Full);P(T_Empty);S_copy_T();V(T_Full);V(S_Empty);Untilfalse;EndPut:BeginRepeatP(T_Full);T_put_G();V(T_Empty);Untilfalse;EndOperatingSystemConcepts進程同步和互斥(二)問題:用P.V操作解決下面問題司機進程:REPEAT啟動車輛正常駕駛到站停車UNTIL…售票員進程:REPEAT關門售票開門UNTIL…OperatingSystemConcepts信號量:
S_Door, {初值為0}
S_Stop; {初值為0}司機進程: BeginRepeatP(S_Door);
啟動;駕駛;停車;
V(S_Stop);Untilfalse;End 乘務員進程:BeginRepeat
關門;
V(S_Door);
售票;
P(S_Stop);
開門;
Untilfalse;End 同步要求:先關門,后開車; 先停車,后開門OperatingSystemConcepts第二類讀者寫者問題(寫者優(yōu)先)1)共享讀2)互斥寫、讀寫互斥3)寫者優(yōu)先于讀者(一旦有寫者,則后續(xù)讀者必須等待,喚醒時優(yōu)先考慮寫者)進程同步和互斥(三)OperatingSystemConceptsVar
mutex:semaphore;{互斥信號量,初值為1}
R:semaphore;{對應讀者等待隊列,初值為0}
W:semaphore;{對應寫者等待隊列,初值為0}{一般變量:}
Writing:Boolean;{初值false,有寫者正在寫}
rc :integer;{初值0,共享讀的讀者數(shù)}
rq :integer;{初值0,等待隊列中讀者數(shù)}
wq :integer;{初值0,等待隊列中寫者數(shù)}OperatingSystemConcepts讀者進程BeginRepeat
P(mutex); If(WritingORwq<>0) ThenBegin
rq:=rq+1;
V(mutex); P(R);
P(mutex);{resume} End;
rc:=rc+1;
V(mutex); Read();OperatingSystemConcepts
P(mutex);
rc:=rc-1; If(rc=0ANDwq<>0) ThenBegin
wq:=wq-1; Writing:=true;
V(mutex); V(W); End; ElseV(mutex);UntilfalseEndOperatingSystemConcepts寫者進程BeginRepeat
P(mutex); If(WritingORrc>0) ThenBegin
wq:=wq+1;
V(mutex); P(W); End; ElseBegin Writing:=true; V(mutex); Write();
OperatingSystemConcepts
P(mutex); If(wq<>0) ThenBegin
wq:=wq-1;
V(mutex); V(W); End ElseOperatingSystemConcepts
If(rq>0) ThenBegin Writing:=false; While(rq>0) Begin
rq:=rq-1; V(R) ; End End ElseBegin Writing:=false;
V(mutex); End EndUntilfalseOperatingSystemConcepts理發(fā)師問題:
理發(fā)店里有一位理發(fā)師,一把理發(fā)椅和N把供等候理發(fā)的顧客坐的椅子.如果沒有顧客,則理發(fā)師便在理發(fā)椅上睡覺.當一個顧客到來時,他必須先喚醒理發(fā)師.如果顧客到來時理發(fā)師正在理發(fā),則如果有空椅子,可坐下來等;否則離開。進程同步和互斥(四)OperatingSystemConcepts
Var
Sn:semaphore;{位子數(shù)目,初值為n}S:semaphore;{理發(fā)師睡覺,初值為0}
mutex:semaphore;{初值為1} 顧客進程i:P(Sn);{門外觀望}P(mutex);進門;V(mutex);V(S);等候;理發(fā);V(Sn)P(mutex);出門;V(mutex);OperatingSystemConcepts理發(fā)師進程:RepeatP(S);
P(mutex);
叫人理發(fā);
V(mutex);
理發(fā);Untilfalse;OperatingSystemConcepts問題: 推廣讀寫者問題中的消息緩沖處理。消息緩沖區(qū)為k個,有m個發(fā)送進程,n個接收進程,每個接收進程對發(fā)送來的消息都必須取一次進程同步和互斥(五)OperatingSystemConcepts解題思路:發(fā)送者發(fā)送消息后喚醒所有的接收者;所有的接收者都接收后空出緩沖區(qū);接收者接收時要修改接收次數(shù);接收計數(shù)和緩沖區(qū)的指針為臨界資源,訪問時要互斥。OperatingSystemConcepts
TypeBufferType=Record
msg:MessageType; count:integer;
mutex:semaphore;{初值為1}
empty:semaphore;{初值為1}
full:array[1..n]ofsemaphore; {初值全為0}
EndVar
mutex:semaphore;{初值為1}
s:integer; {初值為0}
buff:array[0..k-1]ofBufferType;{k是緩沖區(qū)大?。籲是接收進程個數(shù)}{m是發(fā)送進程個數(shù),通過s進行“寫互斥”}OperatingSystemConcepts
ProcedureSender_i(i:integer);{i為發(fā)送進程的標號}Var s0,j:integer;BeginRepeat
P(mutex);s0:=s;s:=(s+1)modk;
V(mutex);P(buff[s0].empty);
在buff[s0].msg中寫信息;
P(buff[s0].mutex);buff[s0].count:=n;V(buff[s0].mutex);For(j:=1tondo)V(buff[s0].full[j]);Untilfalse;EndOperatingSystemConceptsProcedureRecvr(i:integer);{i為接收進程的標號}Var j:integer;Beginj:=0;RepeatP(buff[j].full[i]);
從buff[j].msg中讀信息;
P(buff[j].mutex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國城市公共汽車客運行業(yè)發(fā)展前景及投資規(guī)劃研究報告版
- 2024-2030年中國地毯行業(yè)競爭格局及未來投資趨勢分析報告
- 2024-2030年中國國際貨代行業(yè)未來發(fā)展趨勢及投資風險分析報告
- 2024年度物聯(lián)網(wǎng)(IoT)設備控制系統(tǒng)軟件開發(fā)合同技術集成與擴展2篇
- 茂名職業(yè)技術學院《國學》2023-2024學年第一學期期末試卷
- 2024年深圳子女撫養(yǎng)權協(xié)議書樣本3篇
- 中國日報2019年9月25日
- 馬鞍山職業(yè)技術學院《美術基礎與欣賞》2023-2024學年第一學期期末試卷
- 呂梁學院《信息安全綜合》2023-2024學年第一學期期末試卷
- 2024年度醫(yī)院護工工作環(huán)境與職業(yè)健康保護協(xié)議下載3篇
- 病理報告黏膜慢性炎
- 分析高中生心理健康問題的家庭功能差異
- 云南省昆明市五華區(qū)2023-2024學年五年級科學上學期期末試卷
- 肺部感染護理查房演講
- 智能化弱電集成系統(tǒng)工程施工方案
- 小學生心理健康評定量表及評分標準
- 行政管理職業(yè)規(guī)劃書
- 神經鞘瘤的超聲診斷與鑒別診斷
- 網(wǎng)頁設計與制作課程考核方案
- 材料力學第4版單輝祖習題答案
- 診所抗菌藥物管理制度
評論
0/150
提交評論