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

下載本文檔

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

文檔簡介

1、.第二章進(jìn)程管理2. 試畫出下面4 條語句的前趨圖 :S1: a:=x+y;S1S2: b:=z+1;S3S4S3: c:=a-b;SS4: w:=c+1;23. 為什么程序并發(fā)執(zhí)行會(huì)產(chǎn)生間斷性特征?程序在并發(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í)行,并能對并發(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ú)立

3、運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。而對于未建立任何進(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 對進(jìn)程進(jìn)行控制,系統(tǒng)是根據(jù)進(jìn)程的 PCB 而不是任何別的什么而感知到該

4、進(jìn)程的存在的,所以說,PCB 是進(jìn)程存在的唯一標(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 種需要(即引起掛起的原因): 終端用戶的請求,父進(jìn)程請求,負(fù)荷調(diào)節(jié)的需要,操作系統(tǒng)的需要。b . 被掛起的進(jìn)程是處于靜止?fàn)顟B(tài),并且不

5、能直接被處理機(jī)調(diào)度。17.為什么進(jìn)程在進(jìn)入臨界區(qū)之前應(yīng)先執(zhí)行“進(jìn)入?yún)^(qū)” 代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?為了實(shí)現(xiàn)多個(gè)進(jìn)程對臨界資源的互斥訪問,必須在臨界區(qū)之前加一段用于檢查臨界資源是否正在被訪問的代碼, 如未被訪問, 該進(jìn)程可進(jìn)入臨界區(qū)對此臨界資源進(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.試從物理概念

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

7、 0,則表示在該信號量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用 wakeup 原語,將 S.L 鏈表中的第一個(gè)等待進(jìn)程喚醒。22. 試寫出相應(yīng)的程序來描述圖2-17 所示的前驅(qū)圖。a. Var a, b, c, d, e, f, g, h; semaphore:= 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

8、); S4; signal(f); end;begin wait(d); S5; signal(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),對執(zhí)行結(jié)果將會(huì)有何影響?如果缺少了signal(full),那么表明從第一個(gè)生產(chǎn)者進(jìn)程開始就沒有對信號量full 值改變,即使緩沖池存放的產(chǎn)品已滿了,但 full 的值還是 0,這樣消費(fèi)者進(jìn)程在執(zhí)行wait(full)時(shí)會(huì)認(rèn)

9、為緩沖池是空的而取不到產(chǎn)品,那么消費(fèi)者進(jìn)程則會(huì)一直處于等待狀態(tài)。如果缺少了signal(empty),例如在生產(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ū)而被阻塞。24.在生產(chǎn)者消費(fèi)者問題中,如果將兩個(gè)wait 操作即 wait(full)和 wait(mutex)互換位置,或者將 signal(mutex)和 signal(ful

10、l)互換位置,結(jié)果會(huì)如何?在生產(chǎn)者消費(fèi)者問題中,如果將兩個(gè)wait操作,即wait(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)

11、互換位置后只是影響進(jìn)程對臨界資源的釋放次序,而不會(huì)引起系統(tǒng)死鎖,因此可以互換位置。25. 我們?yōu)槟撑R界資源設(shè)置一把鎖 W ,當(dāng) W=1 時(shí)表示關(guān)鎖;當(dāng) W=0 時(shí)表示鎖已打開,試寫出開鎖和關(guān)鎖原語,并利用它們?nèi)?shí)現(xiàn)互斥。整型信號量: lock(W): while W=1 do no-opW:=1;unlock(W): W:=0;記錄型信號量: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);

12、critical sectionunlock(W);remainder sectionuntil false;end26. 試修改下面生產(chǎn)者消費(fèi)者問題解法中的錯(cuò)誤:producer:signal(mutex);beginuntil false;repeatendproduce an item in nextp;consumer:wait(mutex);beginwait(full);repeatbuffer(in):=nextp;參考 .資料.wait(mutex);signal(mutex);wait(empty);consume item in nextc;nextc:=buffer(ou

13、t);until false;out:=out+1;end27. 試?yán)糜涗浶托盘柫繉懗鲆粋€(gè)不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法。三種解決方法中的任意一種即可(略) 。 PPT6228. 在測量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時(shí), 把所采集的數(shù)據(jù)送往一單緩沖區(qū); 計(jì)算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進(jìn)行計(jì)算。試寫出利用信號量機(jī)制實(shí)現(xiàn)兩任務(wù)共享單緩沖區(qū)的同步算法。a . Var mutex, empty, full: semaphore:=1, 1, 0;gather:compute:beginbeginrepeatrepeatgather data in nextp;wait(full);wait(empty

14、);wait(mutex);wait(mutex);nextc:=buffer;buffer:=nextp;signal(mutex);signal(mutex);signal(empty);signal(full);compute data in nextc;until false;until false;endendb . Var empty, full: semaphore:=1, 0;31.參考 ppt76頁gather:32.參考 ppt91頁beginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);

15、until false;endcompute:beginrepeatwait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end參考 .資料.33.試比較進(jìn)程間的低級通信工具與高級通信工具.用戶用低級通信工具實(shí)現(xiàn)進(jìn)程通信很不方便, 因?yàn)槠湫实停?通信對用戶不透明,所有的操作都必須由程序員來實(shí)現(xiàn),而高級通信工具則可彌補(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)開銷方面對進(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論