freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課后題答案5篇材料(編輯修改稿)

2024-11-04 23:03 本頁面
 

【文章內(nèi)容簡介】 、特權(quán)指令錯、運行超時、等待超時、算術(shù)運算錯、I/O 故障)、外界干預(操作員或操作系 統(tǒng)干預、父進程請求、父進程終止)。13.在創(chuàng)建一個進程時所要完成的主要工作是什么?答:(1)OS 發(fā)現(xiàn)請求創(chuàng)建新進程事件后,調(diào)用進程創(chuàng)建原語Creat();(2)申請空白PCB;(3)為新進程分配資源;(4)初始化進程控制塊;(5).在撤銷一個進程時所要完成的主要工作是什么?答:(1)根據(jù)被終止進程標識符,從PCB 集中檢索出進程PCB,讀出該進程狀態(tài)。(2)若被終止進程處于執(zhí)行狀態(tài),立即終止該進程的執(zhí)行,置調(diào)度標志真,指示該進程被 終止后重新調(diào)度。(3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統(tǒng)。(5)將被終止進程PCB 從所在隊列或列表中移出,等待其它程序搜集信息。15.試說明引起進程阻塞或被喚醒的主要事件是什么?答:;;;.進程在運行時存在哪兩種形式的制約?并舉例說明之。答:(1)間接相互制約關(guān)系。舉例:有兩進程A 和B,如果A 提出打印請求,系統(tǒng)已把唯一的 一臺打印機分配給了進程B,則進程A 只能阻塞;一旦B 釋放打印機,A 才由阻塞改為就 緒。(2)直接相互制約關(guān)系。舉例:有輸入進程A 通過單緩沖向進程B 提供數(shù)據(jù)。當緩沖空時,計算進程因不能獲得所需數(shù)據(jù)而阻塞,當進程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進程B;反 之,當緩沖區(qū)已滿時,進程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進程B 將緩沖區(qū)數(shù)據(jù)取走后便 喚醒A。17.為什么進程在進入臨界區(qū)之前應先執(zhí)行“進入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出 區(qū)”代碼?答:為了實現(xiàn)多個進程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問 的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪問,并設(shè)置正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代碼為“ 北京石油化工學院信息工程學院計算機系6/48 《計算機操作系統(tǒng)》習題參考答案余有明與計07和計G09的同學們編著 6/48 進入?yún)^(qū)”代碼;在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)”代碼,用于恢復未被訪問標志,使其它進程能再訪問此 臨界資源。?為什么?答:同步機構(gòu)應遵循的基本準則是:空閑讓進、忙則等待、有限等待、讓權(quán)等待原因:為實現(xiàn)進程互斥進入自己的臨界區(qū)。 和signal。答:wait(S):0 時,表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait 操 作,意味著進程請求一個單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個,因此描 :=;signal(S):執(zhí)行一次signal操作,意味著釋放一個單位的可用資源,使系統(tǒng)中可供分配 的該類資源數(shù)增加一個,:=+1 操作。若加1 ≤0,則表 示在該信號量鏈表中,仍有等待該資源的進程被阻塞,因此應調(diào)用wakeup 原語, 鏈表中的第一個等待進程喚醒。20.你認為整型信號量機制是否完全遵循了同步機構(gòu)的四條準則?答:整型信號量機制不完全遵循同步機制的四條準則,它不滿足“讓權(quán)等待”準則。21.如何利用信號量機制來實現(xiàn)多個進程對臨界資源的互斥訪問?并舉例說明之。答:為使多個進程互斥訪問某臨界資源,只需為該資源設(shè)置一互斥信號量mutex,并設(shè)其 初值為1,然后將各進程訪問該資源的臨界區(qū)CS置于wait(mutex)和signal(mutex)操作 之間即可。這樣,每個欲訪問該臨界資源的進程在進入臨界區(qū)之前,都要先對mutex 執(zhí)行 wait 操作,若該資源此刻未被訪問,本次wait 操作必然成功,進程便可進入自己的臨界區(qū),這時若再有其他進程也欲進入自己的臨界區(qū),此時由于對mutex 執(zhí)行wait操作定會失敗,因而該進程阻塞,從而保證了該臨界資源能被互斥訪問。當訪問臨界資源的進程退出臨界區(qū) 后,應對mutex執(zhí)行signal 操作,釋放該臨界資源。利用信號量實現(xiàn)進程互斥的進程描述 如下:Var mutex: semaphore:=1; begin parbegin process 1: begin repeat wait(mutex); critical section signal(mutex); remainder seetion until false; end process 2: begin repeat wait(mutex); critical section signal(mutex); remainder section until false; end parend22.試寫出相應的程序來描述圖217所示的前驅(qū)圖。答:(a)Var a, b, c, d, e, f, g, h。semaphore:= 0, 0, 0, 0, 0, 0, 0, 0。begin parbegin begin 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(g)。end。begin wait(e)。S6。signal(h)。end。begin wait(f)。wait(g)。wait(h)。S7。end。parend end(b)Var a, b, c, d, e, f, g, h,i,j。semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0。begin parbegin begin S1。signal(a)。signal(b)。end。begin wait(a)。S2。signal(c)。signal(d)。end。begin wait(b)。S3。signal(e)。signal(f)。end。begin wait(c)。S4。signal(g)。end。begin wait(d)。S5。signal(h)。end。begin wait(e)。S6。signal(i)。end。begin wait(f)。S7。signal(j)。end。begin wait(g)。wait(h)。wait(i)。wait(j)。S8。end。parend end 23.在生產(chǎn)者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果有何影響? 答:如果缺少signal(full),那么表明從第一個生產(chǎn)者進程開始就沒有改變信號量full 值,即使緩沖池產(chǎn)品已滿,但full 值還是0,這樣消費者進程執(zhí)行wait(full)時認為緩沖池是空 而取不到產(chǎn)品,消費者進程一直處于等待狀態(tài)。如果缺少signal(empty),在生產(chǎn)者進程向n個緩沖區(qū)投滿產(chǎn)品后消費者進程才開始從中取產(chǎn)品,這時empty=0,full=n,那么每當消費者進程取走一個產(chǎn)品empty 值并不改變,7 直到緩沖池取空了,empty 值也是0,即使目前緩沖池有n 個空緩沖區(qū),生產(chǎn)者進程要想 再往緩沖池中投放產(chǎn)品也會因為申請不到空緩沖區(qū)被阻塞。24.在生產(chǎn)消費者問題中,如果將兩個wait 操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果如何?答:將wait(full)和wait(mutex)互換位置后,可能引起死鎖。考慮系統(tǒng)中緩沖區(qū)全滿時,若一生產(chǎn)者進程先執(zhí)行了wait(mutex)操作并獲得成功,則當再執(zhí)行wait(empty)操作時,它將因失敗而進入阻塞狀態(tài),它期待消費者進程執(zhí)行signal(empty)來喚醒自己,在此之前,它不可能執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進入自己的臨 界區(qū)的其他生產(chǎn)者和所有消費者進程全部進入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位置后只是影響進程對臨界資源的釋放次序,而 不會引起系統(tǒng)死鎖,因此可以互換位置。25.我們在為某一臨界資源設(shè)置一把鎖W,當W=1時表示關(guān)鎖,當W=0時表示鎖已打開。試寫出開鎖和關(guān)鎖的原語,并利用他們實現(xiàn)互斥。答:整型信號量:lock(W): while W=1 do noopW:=1。unlock(W): W:=0。記錄型信號量:lock(W): W:=W+1。if(W1)then block(W, L)unlock(W): W:=W1。if(W0)then wakeup(W, L)例子:Var W:semaphore:=0;begin repeat lock(W)。critical section unlock(W)。remainder section until false。end26.試修改下面生產(chǎn)者-消費者問題解法中的錯誤: 答: producer: begin repeat ?producer an item in nextp。wait(mutex)。wait(full)。/* 應為wait(empty),而且還應該在wait(mutex)的前面 */ buffer(in):=nextp。/* 緩沖池數(shù)組游標應前移: in:=(in+1)mod n。*/ signal(mutex)。8 /* signal(full)。*/ until false。end consumer: begin repeat wait(mutex)。wait(empty)。/* 應為wait(full),而且還應該在wait(mutex)的前面 */ nextc:=buffer(out)。out:=out+1。/* 考慮循環(huán),應改為: out:=(out+1)mod n。*/ signal(mutex)。/* signal(empty)。*/ consumer item in nextc。until false。end 27.:Var chopstick:array[0,?,4] of semaphore。所有信號量均被初始化為1,第i 位哲學家的活動可描述為: Repeat Wait(chopstick[i])。Wait(.chopstick[(i+1)mod 5])。?。?Signal(chopstick[i])。Signal(chopstick[(i+1)mod 5])。?Think。Until false。28.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務,把所采集的數(shù)據(jù)送一單緩沖區(qū);計算任務從該單 。答: mutex, empty, full: semaphore:=1, 1, 0。gather: begin repeat ??gather data in nextp。wait(empty)。wait(mutex)。buffer:=nextp。signal(mutex)。9 signal(full)。until false。end pute: begin repeat ??wait(full)。wait(mutex)。nextc:=buffer。signal(mutex)。signal(empty)。pute data in nextc。until false。end empty, full: semaphore:=1, 0。gather: begin repeat ??gather data in nextp。wait(empty)。buffer:=nextp。signal(full)。until false。end pute: begin repeat ??wait(full)。nextc:=buffer。signal(empty)。pute data in nextc。until false。end 29.畫圖說明管程由哪幾部分組成,為什么要引入條件變量?答:管程由四部分組成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;③對該數(shù) 據(jù)結(jié)構(gòu)進行操作的一組過程;④對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句;當一個進程調(diào)用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期 間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個 問題,引入了條件變量condition。30.如何利用管程來解決生產(chǎn)者與消費者問題?答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:(1)Put(item)過程。生產(chǎn)者利用該過程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變 量count 表示在緩沖池中已有的產(chǎn)品數(shù)目,當count≥n 時,表示緩沖池已滿,生產(chǎn)者須 等待。(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產(chǎn)品,當count≤0 時,表示緩沖池中已無可取的產(chǎn)品,消費者應等待。PC 管程可描述如下:type producerconsumer =monitor Var in,out,count:integer。buffer:array[0,?,n1]of item。notfull,notempty:condition。procedure entry dot(item)begin if count=n then not 。buffer(in):=nextp。in:=(in+1)mod n。count:=count+1。if then 。end procedure entry get(item)begin if count答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進 程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放。解決生產(chǎn)者-消費者問題可描述如下: var mutex,empty,full: semaphore:=1,n,0。buffer: array[0,...,n1] of item。in,out: integer:=0,0。begin parbegin producer: begin repeat ?produce an item in nextp。?wait(empty)。wait
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1