操作系統(tǒng)第二章課后答案_第1頁(yè)
操作系統(tǒng)第二章課后答案_第2頁(yè)
操作系統(tǒng)第二章課后答案_第3頁(yè)
操作系統(tǒng)第二章課后答案_第4頁(yè)
操作系統(tǒng)第二章課后答案_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二章進(jìn)程管理2 .試畫出下面4條語(yǔ)句的前趨圖:Si: a:=x+y;52: b:=z+1;53: c:=a-b;S4: w:=c+1;3 .為什么程序并發(fā)執(zhí)行會(huì)產(chǎn)生間斷性特征專業(yè)word可編輯程序在并發(fā)執(zhí)行時(shí),由于它們共享系統(tǒng)資源,以及為完成同一項(xiàng)任務(wù)而相互合作致使在這些并發(fā)執(zhí)行的進(jìn)程之間,形成了相互制約的關(guān)系,從而也就使得進(jìn)程在執(zhí)行期間出現(xiàn)間斷性。4 .程序并發(fā)執(zhí)行時(shí)為什么會(huì)失去封閉性和可再現(xiàn)性?因?yàn)槌绦虿l(fā)執(zhí)行時(shí),是多個(gè)程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)是 由多個(gè)程序來改變,致使程序的運(yùn)行失去了封閉性。而程序一旦失去了封閉性也會(huì)導(dǎo)致 其再失去可再現(xiàn)性。5 .在操作系統(tǒng)中為什么要

2、引入進(jìn)程概念?它會(huì)產(chǎn)生什么樣的影響?為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并能對(duì)并發(fā)執(zhí)行的程序加以控制和描述,從而在操作系統(tǒng)中引入了進(jìn)程概念。影響:使程序的并發(fā)執(zhí)行得以實(shí)行。6 .試從動(dòng)態(tài)性,并發(fā)性和獨(dú)立性上比較進(jìn)程和程序?a.動(dòng)態(tài)性是進(jìn)程最基本的特性,可表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資 源而暫停執(zhí)行,以及由撤銷而消亡,因而進(jìn)程由一定的生命期;而程序只是一組有 序指令的集合,是靜態(tài)實(shí)體。b.并發(fā)性是進(jìn)程的重要特征,同時(shí)也是OS的重要特征。引入進(jìn)程的目的正是為了使其程序能和其它建立了進(jìn)程的程序并發(fā)執(zhí)行,而程序本身是不能并發(fā)執(zhí)行的 。c.獨(dú)立性是指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同

3、時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。而對(duì)于未建立任何進(jìn)程的程序 ,都不能作為一個(gè)獨(dú)立的單 位來運(yùn)行。7 .試說明PCB的作用?為什么說PCB是進(jìn)程存在的唯一標(biāo)志 ?a.PCB是進(jìn)程實(shí)體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。PCB中記錄了操作系統(tǒng)所需的用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息。因而它的作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能和其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程。b.在進(jìn)程的整個(gè)生命周期中,系統(tǒng)總是通過其 PCB對(duì)進(jìn)程進(jìn)行控制,系統(tǒng)是根據(jù)進(jìn)程 的PCB而不是任何別的什么而感知到該進(jìn)程的存在的,所以說,PCB是進(jìn)程存在的

4、唯一"標(biāo)志。8 .試說明進(jìn)程在三個(gè)基本狀態(tài)之間轉(zhuǎn)換的典型原因a.處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài)。b.當(dāng)前進(jìn)程因發(fā)生某事件而無法執(zhí)行,如訪問已被占用的臨界資源 ,就會(huì)使進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。c.當(dāng)前進(jìn)程因時(shí)間片用完而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。9 .為什么要引入掛起狀態(tài) ?該狀態(tài)有哪些性質(zhì)?a.引入掛起狀態(tài)主要是出于 4種需要(即引起掛起的原因):終端用戶的請(qǐng)求,父進(jìn)程 請(qǐng)求,負(fù)荷調(diào)節(jié)的需要,操作系統(tǒng)的需要。b.被掛起的進(jìn)程是處于靜止?fàn)顟B(tài),并且不能直接被處理機(jī)調(diào)度。17 .為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行

5、進(jìn)入?yún)^(qū)”代碼?而在退出前又要執(zhí)行退出區(qū)”代碼?為了實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問,必須在臨界區(qū)之前加一段用于檢查臨界資源是否正在被訪問的代碼,如未被訪問,該進(jìn)程可進(jìn)入臨界區(qū)對(duì)此臨界資源進(jìn)行訪問;如正被訪問,則該進(jìn)程不能進(jìn)入臨界區(qū)訪問臨界資源。在退出臨界區(qū)后,執(zhí)行恢復(fù)訪問標(biāo)志的代碼為 退出區(qū)”,而在退出前執(zhí)行退出區(qū)”代碼主要是為了使其它進(jìn)程能再訪問此臨界資源。18 .同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么?a.空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待四條準(zhǔn)則b.為實(shí)現(xiàn)進(jìn)程能互斥地進(jìn)入到自己的臨界區(qū)19 .試從物理概念上說明記錄型信-號(hào)量wait 和 signal 。Wait(S):當(dāng)S.value&

6、gt;0時(shí),表示目前系統(tǒng)中這類資源還有可用的,執(zhí)行一次 wait操作,意味著進(jìn)程請(qǐng)求一個(gè)單位的該類資源,是系統(tǒng)中可供分配的該類資源減少一個(gè),因此描述為 S.value:=S.value-1 ;當(dāng)S.value<0時(shí),表示該類資源已 分配完畢,因此進(jìn)程應(yīng)調(diào)用block原語(yǔ),進(jìn)行自我阻塞,放棄處理機(jī),并插入到信號(hào)量鏈表 S.L中。Signal(S):執(zhí)行一次signal操作,意味著釋放一個(gè)單位的可用資源,使系統(tǒng)中可供分配的該類資源數(shù)增加一個(gè),故執(zhí)行 S.value:=S.value+1 操作。若加1后S.valuew。,則表示在該信號(hào)量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用wakeu

7、p原語(yǔ),將S.L鏈表中的第一個(gè)等待進(jìn)程喚醒。22.試寫出相應(yīng)的程序來描述圖2-17所示的前驅(qū)圖。a. Var a, b, c, d, e, f, g, h; semaphores 0, 0, 0, 0, 0, 0, 0, 0;beginparbeginbegin S1; signal(a); signal(b); end;begin wait(a); S2; signal(c); signal(d); end;begin wait(b); S3; signal(e); end;begin wait(c); S4; signal(f); end;begin wait(d); S5; signal

8、(g); end;begin wait(e); S6; signal(h); end;begin wait(f); wait(g); wait(h); S7; end;parendend23.在生產(chǎn)者一消費(fèi)者問題中,如果缺少了 signal(full)或signal(empty),對(duì)執(zhí)行結(jié)果 將會(huì)有何影響?如果缺少了 signal(full),那么表明從第一個(gè)生產(chǎn)者進(jìn)程開始就沒有對(duì)信號(hào)量full值改變,即使緩沖池存放的產(chǎn)品已滿了 ,但full的值還是0,這樣消費(fèi)者進(jìn)程在執(zhí)行wait(full)時(shí)會(huì)認(rèn)為緩沖池是空的而取不到產(chǎn)品,那么消費(fèi)者進(jìn)程則會(huì)一直處于等待狀O如果缺少了 signal(empt

9、y),例如在生產(chǎn)者進(jìn)程向n個(gè)緩沖區(qū)投滿產(chǎn)品后消費(fèi)者進(jìn)程才開始從中取產(chǎn)品,這時(shí)empty=0 , full=n ,那么每當(dāng)消費(fèi)者進(jìn)程取走一個(gè)產(chǎn)品時(shí)empty并沒有被改變,直到緩沖池中的產(chǎn)品都取走了,empty的值也一直是0 ,即使目前緩沖池有n個(gè)空緩沖區(qū),生產(chǎn)者進(jìn)程要想再往緩沖池中投放產(chǎn)品會(huì)因申請(qǐng)不到空緩沖專業(yè)word可編輯區(qū)而被阻塞。24 .在生產(chǎn)者一消費(fèi)者問題中,如果將兩個(gè) wait操作即 wait(full)和wait(mutex) 互換位 置,或者將signal(mutex) 和signal(full) 互換位置,結(jié)果會(huì)如何?在生產(chǎn)者一消費(fèi)者問題中,如果將兩個(gè) wait操作,即wait(

10、full)和wait(mutex)互換 位置后,可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時(shí),若一生產(chǎn)者進(jìn)程先執(zhí)行了 wait(mutex)操作并獲得成功,則當(dāng)再執(zhí)行 wait(empty)操作時(shí),它將因失敗而進(jìn)入阻塞 狀態(tài),它期待消費(fèi)者進(jìn)程執(zhí)行signal(empty)來喚醒自己,在此之前,它不可能執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進(jìn)入自己的臨界區(qū)的其他生產(chǎn)者和所有消費(fèi)者進(jìn)程全部進(jìn)入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位置后只是影響進(jìn)程對(duì)臨界資源的釋放次序,而不會(huì)引起系統(tǒng)死鎖,因此可以互換位置。25

11、 .我們?yōu)槟撑R界資源設(shè)置一把鎖W,當(dāng)W=1時(shí)表示關(guān)鎖;當(dāng)W=0時(shí)表示鎖已打開,試寫出開鎖和關(guān)鎖原語(yǔ),并利用它們?nèi)?shí)現(xiàn)互斥。整型信號(hào)量 :lock(W): while W=1 do no-opW:=1;unlock(W): W:=0;記錄型信號(hào)量:lock(W): W:=W+1;if(W>1) then block(W.L)unlock(W): W:=W-1;if(W>0) then wakeup(W.L)例子:Var W:semaphore:=0 ;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil

12、 false;end26 .試修改下面生產(chǎn)者一一消費(fèi)者問題解法中的錯(cuò)誤producer:beginrepeat produce an item in nextp;wait(mutex);wait(full);buffer(in):=nextp;until false;endconsumer:beginrepeatwait(mutex);wait(empty);signal(mutex);nextc:=buffer(out);consume item in nextc;out:=out+1;until false;signal(mutex);end27 .試?yán)糜涗浶托盘?hào)量寫出一個(gè)不會(huì)出現(xiàn)死鎖的

13、哲學(xué)家進(jìn)餐問題的算法。三種解決方法中的任意一種即可(略)。PPT6228 .在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時(shí),把所采集的數(shù)據(jù)送往一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進(jìn)行計(jì)算。試寫出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩任務(wù)共享單緩沖區(qū)的同步算法。a. Var mutex, empty, full: semaphore:=1, 1,0;gather:beginrepeatcompute:gather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;endb. Var empt

14、y, full: semaphore:=1,0;gather:beginrepeatwait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;endbeginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endwait(full);nextc:=buffer;signal(empty);compute data in nextc;until fal

15、se;end31 .參考ppt76頁(yè)32 .參考ppt91 頁(yè)begin repeat專業(yè)word可編輯compute:33.試比較進(jìn)程間的低級(jí)通信工具與高級(jí)通信工具用戶用低級(jí)通信工具實(shí)現(xiàn)進(jìn)程通信很不方便,因?yàn)槠湫实?,通信?duì)用戶不透明,所有的操作都必須由程序員來實(shí)現(xiàn),而高級(jí)通信工具則可彌補(bǔ)這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。36.為什么要在OS中引入線程?在OS中引入進(jìn)程的目的,是為了使多個(gè)程序能并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量。在OS中再引入線程,則是為了減少程序在并發(fā)執(zhí)行時(shí)所付出的時(shí)空開 銷,使OS具有更好的并發(fā)性。38.試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對(duì)進(jìn)程和線程進(jìn)行比較a.調(diào)度性。在傳統(tǒng)的操作系統(tǒng)中,擁有資源的基本單位和獨(dú)立調(diào)度 、分派的基本單位都是進(jìn)程,在引入線程的OS中,則把線程作為調(diào)度和分派的基本單位,而把進(jìn)程作為資源擁有的基本單位;b.并發(fā)性。在引入線程的 OS中,不僅進(jìn)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論