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

正文內(nèi)容

操作系統(tǒng)精髓與設(shè)計(jì)原理第五版練習(xí)題及答案-在線瀏覽

2024-08-08 09:37本頁(yè)面
  

【正文】 作系統(tǒng)下執(zhí)行的進(jìn)程既可以是獨(dú)立進(jìn)程也可以是合作進(jìn)程。提供進(jìn)程的死鎖解決機(jī)制。如果發(fā)生死鎖,所有的等待進(jìn)程都將永遠(yuǎn)不能由等待狀態(tài)再變?yōu)檫\(yùn)行態(tài),資源將被浪費(fèi),工作永遠(yuǎn)不能完成。當(dāng)進(jìn)程正在等待允許使用某一資源時(shí),它處于阻塞態(tài);當(dāng)進(jìn)程正在等待它已經(jīng)獲得的某種資源上的操作完成時(shí),它處于掛起態(tài)。請(qǐng)比較這兩組定義的優(yōu)點(diǎn)。在它開(kāi)始寫(xiě)磁帶之前,進(jìn)程必須得到使用某一設(shè)備的許可。假設(shè)操作系統(tǒng)在某一時(shí)刻將磁帶設(shè)備分配給了該進(jìn)程,這時(shí)進(jìn)程就重新變?yōu)榛钴S態(tài)。這時(shí)進(jìn)程變?yōu)閽炱饝B(tài),等待該磁帶上當(dāng)前所進(jìn)行的寫(xiě)操作完成。然而這并不能表明那些進(jìn)程是換入的,那些進(jìn)程是換出的。. (b)中給出的7狀態(tài)進(jìn)程模型,(b)畫(huà)出它的排隊(duì)圖。該圖可以很容易的推廣到多個(gè)阻塞隊(duì)列的情形。假設(shè)操作系統(tǒng)正在分派進(jìn)程,有進(jìn)程處于就緒態(tài)和就緒/掛起態(tài),并且至少有一個(gè)處于就緒/掛起態(tài)的進(jìn)程比處于就緒態(tài)的所有進(jìn)程的優(yōu)先級(jí)都高。請(qǐng)給出一種能均衡考慮優(yōu)先級(jí)和性能的中間策略。. 。b. 為什么以下?tīng)顟B(tài)沒(méi)有駐留和換出方案:頁(yè)錯(cuò)誤等待、也沖突等待、公共事件等待、自由頁(yè)等待和資源等待。答:a. 每一種等待狀態(tài)都有一個(gè)單獨(dú)的隊(duì)列與其相關(guān)聯(lián)。例如,當(dāng)一個(gè)頁(yè)錯(cuò)誤完成時(shí),調(diào)度程序就可以在頁(yè)錯(cuò)誤等待隊(duì)列中找到等待的進(jìn)程。例如,當(dāng)發(fā)生頁(yè)錯(cuò)誤等待時(shí),進(jìn)程正在等待換入一個(gè)頁(yè)從而使其可以執(zhí)行,這是將進(jìn)程換出是毫無(wú)意義的。當(dāng)前狀態(tài) 下一狀態(tài)當(dāng)前正在執(zhí)行可計(jì)算(駐留)可計(jì)算(換出)各種等待狀態(tài)(駐留)各種等待狀態(tài)(換出)當(dāng)前正在執(zhí)行重調(diào)度等待可計(jì)算(駐留)調(diào)度換出可計(jì)算(換出)換入各種等待狀態(tài)(駐留)事件發(fā)生換出各種等待狀態(tài)(換出)事件發(fā)生. VAM/VMS操作系統(tǒng)采用了四種處理器訪問(wèn)模式,以促進(jìn)系統(tǒng)資源在進(jìn)程間的保護(hù)和共享。l 內(nèi)存訪問(wèn)特權(quán):當(dāng)前指令可能訪問(wèn)虛擬內(nèi)存中的哪個(gè)單元。l 執(zhí)行模式:執(zhí)行許多操作系統(tǒng)服務(wù)調(diào)用,包括文件(磁盤(pán)和磁帶)和記錄管理例程。l 用戶(hù)模式:執(zhí)行用戶(hù)程序和諸如編譯器、編輯器、鏈接程序、調(diào)試器之類(lèi)的實(shí)用程序。這個(gè)調(diào)用通過(guò)使用一個(gè)改變模式(簡(jiǎn)稱(chēng)CHM)指令來(lái)實(shí)現(xiàn),該指令將引發(fā)一個(gè)中斷,把控制轉(zhuǎn)交給處于新的訪問(wèn)模式下的例程,并通過(guò)執(zhí)行REI(Return from Exception or Interrupt,從異常或中斷返回)指令返回。缺點(diǎn)是復(fù)雜和處理的開(kāi)銷(xiāo)過(guò)大。b. 原則上,模式越多越靈活,但是四種以上的模式似乎很難實(shí)現(xiàn)。[SILB04]指出了這種方法的問(wèn)題:環(huán)狀(層次)結(jié)構(gòu)的主要缺點(diǎn)是它不允許我們實(shí)施須知原理,特別地,如果一個(gè)對(duì)象必須在域Dj中可訪問(wèn),但在域Di中不可訪問(wèn),則必須有就ji。a. 請(qǐng)清楚地解釋上面引文中提出的問(wèn)題。答:a. 當(dāng)ji時(shí),運(yùn)行在Di中的進(jìn)程被禁止訪問(wèn)Dj中的對(duì)象。然而,通過(guò)以下方法卻可以繞過(guò)這種安全策略。隨后,Di中的進(jìn)程就可以訪問(wèn)這些信息了。. (b)表明一個(gè)進(jìn)程每次只能在一個(gè)事件隊(duì)列中。b. 在這種情況下,如何修改圖中的排隊(duì)結(jié)構(gòu)以支持這個(gè)新特點(diǎn)?答:a. 一個(gè)進(jìn)程可能正在處理從另一個(gè)進(jìn)程收到的數(shù)據(jù)并將結(jié)果保存到磁盤(pán)上。如果前一個(gè)寫(xiě)磁盤(pán)操作已經(jīng)完成,并且有處理好的數(shù)據(jù)在等待寫(xiě)出,那么進(jìn)程就可以繼續(xù)寫(xiě)磁盤(pán)。b. 有很多種方法解決這一問(wèn)題。不論采用哪種方法,操作系統(tǒng)都必須處理好細(xì)節(jié)工作,使進(jìn)程相繼地關(guān)注兩個(gè)事件的發(fā)生。在什么情況下這是一種實(shí)用的技術(shù)?請(qǐng)解釋為什么它通常是不方便的。但是,在通常情況下,中斷可能會(huì)導(dǎo)致另一個(gè)進(jìn)程B搶占了進(jìn)程A。然而機(jī)器卻有可能仍將它們保存到前一位置。. ,由于在內(nèi)核模式下執(zhí)行的進(jìn)程是不能被搶占的,因此UNIX不適用于實(shí)時(shí)應(yīng)用。答:由于存在進(jìn)程不能被搶占的情況(如在內(nèi)核模式下執(zhí)行的進(jìn)程),操作系統(tǒng)不可能對(duì)實(shí)時(shí)需求給予迅速的反應(yīng)。請(qǐng)問(wèn)同一個(gè)進(jìn)程中的兩個(gè)線程間的模式切換與不同進(jìn)程中的兩個(gè)線程間的模式切換相比,所需的工作量是否要少?答:是的,因?yàn)閮蓚€(gè)進(jìn)程間的模式切換要儲(chǔ)存更多的狀態(tài)信息。請(qǐng)問(wèn)這是為什么?答:因?yàn)閷?duì)于用戶(hù)級(jí)線程來(lái)說(shuō),一個(gè)進(jìn)程的線程結(jié)構(gòu)對(duì)操作系統(tǒng)是不可見(jiàn)的,而操作系統(tǒng)的調(diào)度是以進(jìn)程為單位的。一個(gè)會(huì)話是一組與用戶(hù)接口(鍵盤(pán)、顯示器、鼠標(biāo))相關(guān)聯(lián)的一個(gè)或多個(gè)進(jìn)程。操作系統(tǒng)必須知道哪個(gè)窗口,即哪個(gè)會(huì)話是活躍的,從而把鍵盤(pán)和鼠標(biāo)的輸入傳遞個(gè)相應(yīng)的會(huì)話。當(dāng)一個(gè)會(huì)話在前臺(tái)模式時(shí),執(zhí)行視頻輸出的進(jìn)程直接把它發(fā)送到硬件視頻緩沖區(qū)。有一種方法可以把OS/2中與進(jìn)程相關(guān)的概念的數(shù)目從3個(gè)減少到2個(gè)。這樣,在某一時(shí)刻,只有一個(gè)進(jìn)程處于前臺(tái)模式。a. 使用這種方法會(huì)喪失什么優(yōu)點(diǎn)?b. 如果繼續(xù)使用這種修改方法,應(yīng)該在哪里分配資源(存儲(chǔ)器、文件等):在進(jìn)程級(jí)還是線程級(jí)?答:a. 會(huì)話的使用非常適合個(gè)人計(jì)算機(jī)和工作站對(duì)交互式圖形接口的需求。b. 應(yīng)該和其他的進(jìn)程/線程系統(tǒng)一樣,在進(jìn)程級(jí)分配地址空間和文件。解釋為什么這個(gè)模型可以使多線程程序比在單處理器機(jī)器上的相應(yīng)的單線程程序運(yùn)行速度更快?答:?jiǎn)栴}在于機(jī)器會(huì)花費(fèi)相當(dāng)多的時(shí)間等待I/O操作的完成。而在單處理器機(jī)器上,進(jìn)程則必須阻塞知道所有的系統(tǒng)調(diào)用都可以繼續(xù)運(yùn)行。當(dāng)一個(gè)進(jìn)程退出時(shí),會(huì)帶走它的所有東西——內(nèi)核級(jí)線程,進(jìn)程結(jié)構(gòu),存儲(chǔ)空間——包括線程。粗略說(shuō)來(lái),一個(gè)地址空間對(duì)應(yīng)于一個(gè)應(yīng)用程序,并且或多或少地對(duì)應(yīng)于其他操作系統(tǒng)中的一個(gè)進(jìn)程;在一個(gè)地址空間中,可以產(chǎn)生一組任務(wù),并且它們可以并發(fā)執(zhí)行,這大致對(duì)應(yīng)于多線程的概念。地址空間控制塊(ASCB)含有OS/390所需要的關(guān)于一個(gè)地址空間的信息,而不論該地址空間是否在執(zhí)行。一個(gè)任務(wù)控制塊(TCB)標(biāo)識(shí)一個(gè)正在執(zhí)行的用戶(hù)程序,它含有在一個(gè)地址空間中管理該任務(wù)所需要的信息,包括處理器狀態(tài)信息、指向該任務(wù)所涉及到的程序的指針和任務(wù)執(zhí)行結(jié)構(gòu)。請(qǐng)問(wèn)把控制信息劃分成全局和局部?jī)刹糠钟惺裁春锰??答:關(guān)于一個(gè)地址空間的盡可能多的信息可以隨地址空間被換出,從而節(jié)約了主存?,F(xiàn)在有大量的作業(yè)提交給該系統(tǒng),完成每個(gè)作業(yè)最多需要4個(gè)磁帶設(shè)備。同時(shí)還假設(shè)這類(lèi)作業(yè)源源不斷。當(dāng)作業(yè)開(kāi)始時(shí),4個(gè)設(shè)備立即被分配給它,并且直到作業(yè)完成時(shí)才被釋放。分析最多可以有幾個(gè)作業(yè)同時(shí)執(zhí)行,可能出現(xiàn)的空閑設(shè)備的范圍是多少。由于分配各一個(gè)任務(wù)的磁帶設(shè)備最多同時(shí)只有一個(gè)空閑,所以在同一時(shí)刻最多有5個(gè)磁帶設(shè)備可能是空閑的。b. 為了更好的利用磁設(shè)備,每個(gè)作業(yè)在最初只分配三個(gè)磁帶設(shè)備。在這種策略中,最多可以有20/3=6個(gè)作業(yè)同時(shí)執(zhí)行。參考:Advanced Computer Architectrue,1993.. 在描述Solaris用戶(hù)級(jí)線程狀態(tài)時(shí),曾表明一個(gè)用戶(hù)級(jí)線程可能讓位于具有相同優(yōu)先級(jí)的另一個(gè)線程。所以,永遠(yuǎn)都不會(huì)存在一個(gè)可運(yùn)行的、具有更高優(yōu)先級(jí)的線程。協(xié)同程序Read在每副卡片圖像的后面插入一個(gè)額外的空白。最后協(xié)同程序print簡(jiǎn)單的接受到來(lái)的字符串,并將他們打印在包含125個(gè)字符的行中。假設(shè)住程序執(zhí)行兩個(gè)進(jìn)程的parbegin Void p() void q() { A。 B。 C。ABDCE。ADBCE。ADEBC。DAEBC。DABCE。 int tally。 for(count =1。count ++) {tally++。parbegin(total(),total()。 }答:,tally值的范圍好像是落在[50,100]這個(gè)區(qū)間里,增加,存儲(chǔ)的情況,同時(shí)變更這個(gè)共享變量的取值: ,tally值加到1,在此時(shí)失去處理器(它已經(jīng)增加寄存器的值到1,但是還沒(méi)有存儲(chǔ)這個(gè)值). (仍然是0),然后運(yùn)行完成49次增加操作,在它已經(jīng)將49這個(gè)值存儲(chǔ)給共享變量tally后,失去處理器控制權(quán). (用1去代替先前的49這個(gè)tally值),此時(shí)被迫立即放棄處理器. ,將1(當(dāng)前的tally值)載入到它自己的寄存器中,但此時(shí)被迫放棄處理器(注意這是B的最后一次載入). ,但這次沒(méi)有被中斷,直到運(yùn)行完成它剩余的49次載入,增加和存儲(chǔ)操作,結(jié)果是此時(shí)tally值已經(jīng)是50. ,同時(shí)存儲(chǔ)這個(gè)值做為這個(gè)共享變量的最終結(jié)果. 一些認(rèn)為會(huì)出現(xiàn)低于2這個(gè)值的結(jié)果,[2,100]. ,tally值的最終范圍是[2,N*50],因?yàn)閷?duì)其他所有進(jìn)程來(lái)說(shuō),.(根據(jù)處理器的使用時(shí)間)?請(qǐng)解釋。 int rurn。 { While(blocked[1!id] /*do nothing*/。 } } Void main () { Blocked[0]=false。 Turn=0。 }這是【HYMA66】中提出的解決互斥問(wèn)題的一種方法。答:考慮這種情況:此時(shí)turn=0,進(jìn)程P(1)使布爾變量blocked[1]的值為true,在這時(shí)發(fā)現(xiàn)布爾變量blocked[0]的值為false,然后P(0)會(huì)將true值賦予blocked[0],此時(shí)turn=0,P(0)進(jìn)入臨界區(qū),P(1)在將1賦值給turn后,也進(jìn)入了臨界區(qū).(bakery)算法,之所以起這個(gè)名字,是因?yàn)樗乃枷雭?lái)自于面包店或其他商店中,每個(gè)顧客在到達(dá)時(shí)都得到一個(gè)有編號(hào)的票,并按票號(hào)依次得到服務(wù),算法如下: Boolean choosing[n]。 While (true) { Choosing[i]=true。 For(int j=0。j++) { While (choosing[j]) {} While ((number[j]!=0)amp。(number[j],j)(number[i],i) {} } /*critical section*/ Number[i]=0。 }數(shù)組choosing和number分別被初始化成false和0,每個(gè)數(shù)組的第i個(gè)元素可以由進(jìn)程i讀或?qū)?,但其他進(jìn)程只能讀。B. 說(shuō)明這個(gè)算法避免了死鎖。答:,重新設(shè)置它的票號(hào)為0. ,那么總會(huì)有一個(gè)唯一的,死鎖可以避免. ,我們首先需要證明下面的定理:如果Pi在它的臨界區(qū),Pk已經(jīng)計(jì)算出來(lái)它的number[k],并試圖進(jìn)入臨界區(qū),此時(shí)就有下面的關(guān)系式: ( number[i], i ) ( number[k], k ).為證明定理,定義下面一些時(shí)間量: Tw1:Pi最后一次讀choosing[k], 當(dāng) j=k,在它的第一次等待時(shí),因此我們?cè)赥w1處有choosing[k] = false. Tw2:Pi開(kāi)始它的最后執(zhí)行, 當(dāng)j=k,在它的第二次while循環(huán)時(shí),因此我們有Tw1 Tw2. Tk1:Pk在開(kāi)始repeat循環(huán)時(shí)。Tk3: Pk設(shè)置choosing[k]Tk2Tk3.因?yàn)樵赥w1處,choosing[k]=false,我們要么有Tw1Tk1,要么有Tk3,我們有number[i]number[k],因?yàn)镻i在Pk之前被分配號(hào)碼。設(shè)計(jì)一個(gè)使用testset指令的算法,且保證任何一個(gè)等待進(jìn)入臨界區(qū)的進(jìn)程在n1個(gè)turn內(nèi)進(jìn)入,n是要求訪問(wèn)臨界區(qū)的進(jìn)程數(shù),turn是指一個(gè)進(jìn)程離開(kāi)臨界區(qū)而另一個(gè)進(jìn)程獲準(zhǔn)訪問(wèn)這個(gè)一個(gè)事件。key: boolean。key := true。waiting[i] := false。while (j ≠ i) and (not waiting[j]) do j := j + 1 mod n。 remainder section Until這個(gè)算法用最普通的數(shù)據(jù)結(jié)構(gòu):var waiting: array [0..n – 1] of boolean Lock:boolean這些數(shù)據(jù)結(jié)構(gòu)被初始化成假的,當(dāng)一個(gè)進(jìn)程離開(kāi)它的臨界區(qū),它就搜索waiting的循環(huán)隊(duì)列: Void semWait(s) { If (0) { 。 Block。 Place process P on ready lis
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1