




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 2.1 情況(a)和情況(b)具有相同的答案。 假設(shè)處理器的操作不能重疊,但I(xiàn)/O操作可以。 1job:時(shí)間周期=NT 處理器利用率=50%; 2jobs:時(shí)間周期=NT 處理器利用率=100%; 4jobs:時(shí)間周期=(2N-1)NT 處理器利用率=100% 2.2 I/O限制程序只用相對(duì)較少的處理時(shí)間,因此,受到短期調(diào)度算法的偏愛(ài)。然而,如果一個(gè)處理器限制程序在一段很長(zhǎng)的時(shí)間內(nèi)被處理器時(shí)間拒絕,那同樣的這個(gè)短期調(diào)度算法則會(huì)允許處理機(jī)去處理過(guò)去一段時(shí)間一直沒(méi)有使用處理機(jī)的程序,所以,并不是永遠(yuǎn)不受理處理器限制程序所需的處理器時(shí)間。 2.3 關(guān)于分時(shí)系統(tǒng),我們所關(guān)注的是周轉(zhuǎn)時(shí)間。 首選的是時(shí)
2、間片,因?yàn)樗谝粋€(gè)很短的時(shí)間給 所有的程序一個(gè)訪問(wèn)權(quán)限去使用處理器。在批 處理系統(tǒng),我們所關(guān)注的是吞吐量和更少量的上 下文轉(zhuǎn)換,對(duì)于進(jìn)程來(lái)說(shuō)獲得了更多的處理時(shí) 間。因此,最小化上下文轉(zhuǎn)換的處理是有優(yōu)勢(shì) 的。 2.4 應(yīng)用程序運(yùn)用系統(tǒng)調(diào)用去調(diào)用操作系統(tǒng)所 提供的功能。關(guān)鍵的是,系統(tǒng)調(diào)用導(dǎo)致轉(zhuǎn)換到 進(jìn)入內(nèi)核模式的系統(tǒng)程序。 操作系統(tǒng)第三章習(xí)題解答 3.1 系統(tǒng)和用戶進(jìn)程的創(chuàng)建和刪除:在系統(tǒng)中進(jìn)程對(duì)于信息共享,加速計(jì)算,模塊性 和便利性都能并發(fā)執(zhí)行。并發(fā)的執(zhí)行需要進(jìn)程的創(chuàng)建和刪除機(jī)制。進(jìn)程所需要的資源在進(jìn)程被創(chuàng)建時(shí)獲得或者在其運(yùn)行的時(shí)候分配。當(dāng)進(jìn)程結(jié)束時(shí),操作系統(tǒng)需要收回任何可重用資源。 進(jìn)程的掛起
3、和恢復(fù):在進(jìn)程調(diào)度中,當(dāng)進(jìn)程在等待某些資源時(shí),操作系統(tǒng)需要把進(jìn)程狀態(tài)改變成等待或者就緒狀態(tài)。當(dāng)進(jìn)程所要求的資源可用時(shí),操作系統(tǒng)需要把它的狀態(tài)變?yōu)檫\(yùn)行狀態(tài)恢復(fù)它的執(zhí)行。 進(jìn)程同步機(jī)制:協(xié)調(diào)進(jìn)程分享數(shù)據(jù)。 并發(fā)訪問(wèn)使用共享數(shù)據(jù)可能導(dǎo)致數(shù)據(jù)不一致性,操作系統(tǒng)不得不為其提供一種進(jìn)程同步機(jī)制用來(lái)確保協(xié)作進(jìn)程有序的實(shí)行,從而保證數(shù)據(jù)的一致性。 進(jìn)程通信機(jī)制 :在操作系統(tǒng)下執(zhí)行的進(jìn)程要么是獨(dú)立的進(jìn)程要么是協(xié)作的進(jìn)程。 協(xié)作進(jìn)程必須使用某些方法來(lái)實(shí)現(xiàn)進(jìn)程間的通信。 死鎖處理機(jī)制:在一個(gè)多道程序設(shè)計(jì)環(huán)境里,一些進(jìn)程可能因?yàn)橛邢迶?shù)量的資源而產(chǎn)生競(jìng)爭(zhēng)。 如果一個(gè)死鎖發(fā)生,全部等待的進(jìn)程都不會(huì)從等待狀態(tài)改變成運(yùn)行狀態(tài)
4、,那么資源被浪費(fèi),工作不會(huì)被完成。 3.4 對(duì)處于就緒/掛起狀態(tài)的所有進(jìn)程通過(guò)一 個(gè)固定的優(yōu)先級(jí)層次來(lái)劃分,如分成一到兩 個(gè)優(yōu)先級(jí),只有當(dāng)就緒/掛起狀態(tài)的進(jìn)程優(yōu)先 級(jí)高于所有就緒狀態(tài)進(jìn)程的優(yōu)先級(jí)時(shí),才把 處理機(jī)分配給它。3.6 a)采用4種模式的優(yōu)點(diǎn)在于:系統(tǒng)能夠提高對(duì)存儲(chǔ)器的訪問(wèn)使用的靈活性,同時(shí)對(duì)內(nèi)存儲(chǔ)器的運(yùn)行起到很好的保護(hù)作用。缺點(diǎn):復(fù)雜度和處理開(kāi)銷。例如,處理器運(yùn)行在不同的訪問(wèn)模式需要分離可訪問(wèn)的堆棧。b)原則上,模式越多,靈活性適應(yīng)性越大,但系統(tǒng)越復(fù)雜,舉出一 種有4種以上模式的情況較難。 3.7 a) 當(dāng)j<i時(shí),一個(gè)在Di中運(yùn)行的進(jìn)程被阻止訪問(wèn)Dj中的對(duì)象。因此,如果Dj中
5、包含的信息比Di優(yōu)先權(quán)更高或者比Di更安全,這個(gè)限制是適當(dāng)?shù)?。然而,這個(gè)安全政策可以用下面的方法更簡(jiǎn)單的獲得。一個(gè)在Dj中運(yùn)行的進(jìn)程可以從Dj中讀取數(shù)據(jù),并且可以把數(shù)據(jù)復(fù)制到Di中,隨后,在Di中運(yùn)行的進(jìn)程便可讀取這些信息。 b)一個(gè)近似的解決這個(gè)問(wèn)題的方法就是大家都知道的可信系統(tǒng)。在以后的章節(jié)會(huì)詳細(xì)解釋。 3.8 a)一個(gè)應(yīng)用程序可能正處理從另一個(gè)進(jìn)程收到的數(shù)據(jù)并且把結(jié)果儲(chǔ)存在磁盤上。如果有等待取自其它進(jìn)程的數(shù)據(jù),應(yīng)用程序可能進(jìn)入下一個(gè)進(jìn)程取出數(shù)據(jù)并且處理它。 如果一個(gè)先前的磁盤寫操作已經(jīng)完成并且有處理的數(shù)據(jù)寫出,應(yīng)用程序會(huì)將其寫入下一個(gè)磁盤。需要考慮的一點(diǎn)就是,進(jìn)程等待輸入進(jìn)程的額外數(shù)據(jù)和
6、磁盤的可用性。 b)有幾種處理的方式。 或者一種特定類型的隊(duì)列來(lái)處理,或者進(jìn)程可能被放進(jìn)兩個(gè)單獨(dú)的隊(duì)列。 無(wú)論哪種情況,操作系統(tǒng)必須處理細(xì)節(jié),提醒進(jìn)程注意雙方事件一個(gè)接一個(gè)的發(fā)生。 3.9 這技術(shù)基于一個(gè)假設(shè)中斷進(jìn)程A響應(yīng)中斷后將會(huì)繼續(xù)進(jìn)行。 但是, 通常, 一個(gè)中斷將引起基本監(jiān)督程序搶占進(jìn)程A有利于另一個(gè)進(jìn)程B。有必要在描敘進(jìn)程A相關(guān)進(jìn)程中斷的位置復(fù)制進(jìn)程A的執(zhí)行狀態(tài),機(jī)器最好第一時(shí)間把它們儲(chǔ)存在那里,以方便后續(xù)操作的進(jìn)行。 3.10 因?yàn)榇嬖谶M(jìn)程不能被搶占的情況 (例如正在內(nèi)核模式里執(zhí)行的進(jìn)程),因此操作系統(tǒng)不能快速回復(fù)實(shí)時(shí)需求。 操作系統(tǒng)第四章習(xí)題解答 4.1 是的。因?yàn)楦嗟臓顟B(tài)信息必
7、須保留下來(lái)用于一個(gè)程序到另一個(gè)程序的轉(zhuǎn)換。 4.2 因?yàn)?,關(guān)于用戶級(jí)線程,一個(gè)進(jìn)程的線程結(jié)構(gòu)對(duì)于操作系統(tǒng)來(lái)講是不可視的,它僅僅是基于進(jìn)程調(diào)度的一個(gè)基本單位。 進(jìn)程和線程的區(qū)別在于: 簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程. 線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。 另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。 線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。 每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。 從邏輯角度來(lái)看,多線程的意義在
8、于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒(méi)有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。 (續(xù)) 進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位. 線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源. 一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行. 4
9、.4 這里的這個(gè)問(wèn)題是機(jī)器花費(fèi)了它工作中大量時(shí)間去等待I/O的完成。在一個(gè)多線程程序中,一個(gè)內(nèi)核級(jí)線程使系統(tǒng)調(diào)用阻塞,而其它內(nèi)核級(jí)線程可以繼續(xù)運(yùn)行,而對(duì)于一個(gè)單獨(dú)的處理器,一個(gè)進(jìn)程只有使所有調(diào)用阻塞,才能使其它線程繼續(xù)。 4.5 不會(huì)。當(dāng)一個(gè)進(jìn)程退出,它將帶走關(guān)于它 的所有東西,內(nèi)核級(jí)線程、進(jìn)程結(jié)構(gòu)、存儲(chǔ)空 間,也包括線程。 4.6 盡可能多的關(guān)于地址空間的信息能夠和其它地址空間進(jìn)行交換,從而保存到主存儲(chǔ)器中。 4.7 a)如果采取保守策略,那么最多有20/4=5個(gè)作業(yè)同時(shí)執(zhí)行。因?yàn)榉峙浣o各自進(jìn)程的設(shè)備中有一個(gè)設(shè)備在大多數(shù)時(shí)間里都是空閑的,在同一時(shí)間,最多有5個(gè)設(shè)備空閑,最好的情況,沒(méi)有設(shè)備空
10、閑,全部都在工作狀態(tài)。 b)為了提高設(shè)備的利用率,最初每個(gè)作業(yè)分配3個(gè)磁帶設(shè)備,第4個(gè)則要按需求分配。根據(jù)這個(gè)策略,至多有20/3=6個(gè)作業(yè)能被同時(shí)激活,最小空閑設(shè)備數(shù)是0,最大空閑設(shè)備數(shù)是2。 4.8 每一個(gè)調(diào)用都可能改變一個(gè)線程的優(yōu)先級(jí)或者一個(gè)可運(yùn)行的、具有更高優(yōu)先級(jí)的線程也可以調(diào)用調(diào)度程序,而且它依次搶占低優(yōu)先級(jí)的活躍線程。因此,可運(yùn)行的、高優(yōu)先級(jí)線程不具備題目所述。 5.2 5.3 a.(1).上限是100。因?yàn)樽疃嘀挥?00次加1操作。這種情況發(fā)生在兩個(gè)進(jìn)程順序執(zhí)行時(shí)。(2).下限是2,發(fā)生的情形可以描述如下: 說(shuō)明:tally+實(shí)際上分三步執(zhí)行,先執(zhí)行Aßtally,再執(zhí)
11、行INC A,最后執(zhí)行tallyßA。此處A為寄存器,其值將在進(jìn)程切換時(shí)保護(hù)起來(lái)。 5.6 a.用文字描述這個(gè)算法: 分步: 對(duì)于第i個(gè)進(jìn)程: 為了得到服務(wù)首先要取得順序號(hào):即對(duì)numberi進(jìn)行寫操作,此時(shí)應(yīng)屏蔽所有其它進(jìn)程對(duì)number數(shù)組的讀操作。當(dāng)對(duì)numberi的寫操作完成時(shí)才允許其它進(jìn)程對(duì)其的讀操作。 查看是否有其他進(jìn)程正在操作,若有則做空操作;與其它進(jìn)程的順序號(hào)比較,若小于則可得到服務(wù),否則等待。 進(jìn)入臨界區(qū) 服務(wù)完畢將numberi置0。 總述: 當(dāng)一個(gè)進(jìn)程希望進(jìn)入其臨界區(qū),它將得到一張票,票的號(hào)碼將是所有等待進(jìn)入臨界區(qū)或已在臨界區(qū)的進(jìn)程所得到票的號(hào)碼中最大者加1。擁
12、有最小票號(hào)的進(jìn)程將率先進(jìn)入臨界區(qū)。如果有多個(gè)進(jìn)程得到的票具有相同的號(hào)碼,則進(jìn)程號(hào)更小的進(jìn)程將更占優(yōu)勢(shì)。當(dāng)一個(gè)進(jìn)程離開(kāi)其臨界區(qū),它將重置其中票號(hào)為0。 b.解釋此算法如何避免死鎖 死鎖時(shí)的情形:每個(gè)人都拿到了順序號(hào),但都拿不到面包。 在本算法中即使順序號(hào)相同,但數(shù)組下標(biāo)是不同的。所以進(jìn)程總可推進(jìn)不會(huì)發(fā)生死鎖。 c.解釋此算法如何加強(qiáng)互斥; (1)對(duì)臨界資源面包是按照順序號(hào)互斥的使用 (2)對(duì)number數(shù)組的操作通過(guò)寫操作前置true保證其它進(jìn)程此時(shí)不能對(duì)其讀,從而保證讀寫互斥。 5.9 錯(cuò)誤情形:假設(shè)有2個(gè)進(jìn)程都調(diào)用Wait且s的初值為0。在第一個(gè)進(jìn)程執(zhí)行完SignalB(mutex)且尚未執(zhí)
13、行WaitB(delay)時(shí),第二個(gè)進(jìn)程開(kāi)始調(diào)用Wait,也停在同一點(diǎn)(即SignalB(mutex)和WaitB(delay)之間)。這時(shí),s的值為-2,而mutex是打開(kāi)的。假如有另外2個(gè)進(jìn)程在這時(shí)相繼調(diào)用了Signal,那么他們每個(gè)都會(huì)做SignalB(delay)操作,但程序中后一個(gè)SignalB將沒(méi)有意義。 解決: void Wait(semaphore s) WaitB(mutex); s-; if(s<0) SignalB(mutex); WaitB(delay); SignalB(mutex);void Signal(semaphore s) WaitB(mutex);
14、s+; if(s<=0) SignalB(delay); else SignalB(mutex);5.11改正后的程序: var car_available:semaphore(:=n) passenger_wait:semaphore(:=0) passenger i: wandering for a random time; signal(passenger_wait); wait(car_available); car j: wait(passenger_wait); take passenger wandering signal(car_available) parbegin p
15、assenger1;passenger2;passengerm; car1;car2;carn; parend5.14 考慮圖5.17。如果按照以下的順序改變程序中的相應(yīng)處程序的意思會(huì)改變嗎? a. wait(e); wait(s) b. signal(s);signal(n) c. wait(n);wait(s) d. signal(s);signal(e) a.互換wait(e)和wait(s): 結(jié)果: 對(duì)于生產(chǎn)者進(jìn)程來(lái)說(shuō),若wait(s)成功,則說(shuō)明可以使用緩沖池。若wait(e)不成功說(shuō)明沒(méi)有空緩沖區(qū)可用,此時(shí)生產(chǎn)者進(jìn)程等待。 對(duì)于消費(fèi)者進(jìn)程來(lái)說(shuō),若wait(n)成功,則說(shuō)明緩沖池不
16、空。若wait(s) 成功說(shuō)明可以使用緩沖池,但此時(shí)由于生產(chǎn)者進(jìn)程已將緩沖池占有,此時(shí)消費(fèi)者進(jìn)程等待。結(jié)果發(fā)生死鎖。 b.意思不變 c.同a d.意思不變5.16 這一問(wèn)題給出了相應(yīng)三種進(jìn)程的信號(hào)量的使用。圣誕老人(Santa Claus)在北極他的店里睡覺(jué)僅能被(1)、(2)喚醒。 (1)所有九個(gè)馴鹿都結(jié)束它們的假期從南太平洋回來(lái) (2)僅當(dāng)制造玩具的小孩子有困難時(shí)將其喊醒為了讓圣誕老人多睡會(huì)兒覺(jué),僅當(dāng)三個(gè)小孩子有問(wèn)題時(shí)將其喚醒。當(dāng)三個(gè)小孩子有問(wèn)題在解決時(shí),其他小孩子想訪問(wèn)圣誕老人時(shí)必須等其他人回來(lái)。 如果圣誕老人醒來(lái)發(fā)現(xiàn)有三個(gè)小孩子在他的店門外等候,同時(shí)最后一條馴鹿已經(jīng)從熱帶回來(lái),圣誕老人
17、已經(jīng)決定讓這些小精靈等到圣誕節(jié)之后,因?yàn)樗难┣烈呀?jīng)準(zhǔn)備好了,這一點(diǎn)比較重要(假定馴鹿不想離開(kāi)熱帶,因此他們會(huì)停留到最后一刻)。最后一只馴鹿到達(dá)時(shí)圣誕老人必須出發(fā),以前到達(dá)的馴鹿在拉雪橇前在一個(gè)溫暖的小屋里等待。使用信號(hào)量解決這一問(wèn)題。 分析: 三類進(jìn)程:Santa Claus, reindeer, kids Santa Claus: sleep in North Pole waken by reindeer(9頭) Kids(3個(gè)) Reindeer:Vacation in tropics Return North Pole Christmas activity Kids: Making t
18、oys having difficulties ,need help Semaphore:wakesanta=0;喚醒圣誕老人的信號(hào)量 returnreindeer=1; 返回的馴鹿的計(jì)數(shù)器互斥信號(hào)量 needhelp=1;需要幫助的Elves的計(jì)數(shù)器互斥信號(hào)量 int :reindeercount=0, Kidscount=0; Santa Claus: while (true) wait(wakesanta);/等待被喚醒 if(reindeercount=9) christmas activity; send_reindeer(); wait(returnreindeer);/獲得尋路返
19、/回互斥信號(hào)量 reindeercount=0; signal(returnreindeer);/釋放馴鹿/返回互斥信號(hào)量 if(elvescount>=3) help_Kids(); wait(needhelp);/等待需要幫助信號(hào)量 Kidscount=0; signal(needhelp);/釋放需要幫助信號(hào)/量 Reindeer i while truevacation on tropics; return to North Pole; wait(returnreindeer);/獲得馴鹿返回互斥信號(hào)量 reindeercount+; if(reindeercount=9) si
20、gnal(wakesanta)/釋放喚醒圣誕老人信號(hào)量 else wait_in_hut(); signal(returnreindeer)/釋放馴鹿返回互斥信號(hào)量 Kids i:making toys; wait(needhelp);/獲得需要幫助信號(hào)量 Kidscount+; if elvescount=3 signal(wakesanta);/釋放喚醒圣誕/老人信號(hào)量 else signal(needhelp);/釋放需要幫助互/斥信號(hào)量 6.1互斥:在每一時(shí)刻,只能有一輛車占用十字路口的一個(gè)象限;占有且等待:沒(méi)有車倒退;每輛車一直在等待,直到它前面的十字路口的象限可以使用;非搶占:沒(méi)有
21、車輛能夠強(qiáng)迫另一輛車給自己讓路;循環(huán)等待:每輛車一直等待另外的車輛占用的十字路口的象限。6.21.Q獲得B,然后獲得A,然后釋放B和A;當(dāng)P恢復(fù)執(zhí)行的時(shí)候,它可以獲得全部資源。2.Q獲得B,然后獲得A;P執(zhí)行并阻塞在對(duì)A的請(qǐng)求上;Q釋放B和A,當(dāng)P恢復(fù)執(zhí)行時(shí),它可以獲得全部資源。3.Q獲得B,P獲得并釋放A,然后Q獲得A并釋放B和A,當(dāng)P恢復(fù)執(zhí)行時(shí),它可以獲得B。4.P獲得A,Q獲得B,P釋放A,Q獲得A并釋放B,P獲得B并且釋放B。5.P獲得并釋放A,P獲得B;Q執(zhí)行并阻塞在對(duì)B的請(qǐng)求上;P釋放B,當(dāng)Q恢復(fù)執(zhí)行時(shí),它可以獲得全部資源。6.P獲得A并且釋放A,P獲得B并且釋放B,當(dāng)Q恢復(fù)執(zhí)行時(shí)
22、,他可以獲得全部資源。6.3.如果Q在P請(qǐng)求A之前獲得B和A,那么Q能夠使用并稍后釋放這兩個(gè)資源,允許P繼續(xù)執(zhí)行。 如果P在Q請(qǐng)求A之前獲得A,那么Q至多執(zhí)行到請(qǐng)求A之前,然后被阻塞。盡管這樣,一旦P釋放A,Q就能夠繼續(xù)執(zhí)行。一旦Q釋放B,P也能繼續(xù)執(zhí)行。6.5 (1) w=2 1 0 0 (2) 進(jìn)程P3的請(qǐng)求等于W,標(biāo)記P3,W2 1 0 00 1 2 02 2 2 0 (3)進(jìn)程P2的請(qǐng)求小于W,標(biāo)記P2,W2 2 2 02 0 0 14 2 2 1 (4)進(jìn)程P1的請(qǐng)求小于W,標(biāo)記P1,W 4 2 2 1 0 0 1 04 2 3 1 (5)所有的進(jìn)程都標(biāo)記了,所以系統(tǒng)不存在死鎖6.1
23、0 a.第四個(gè)進(jìn)程到達(dá),最大需求是60,初始要求是25 b.第四個(gè)進(jìn)程到達(dá),最大需求是60,初始需求是356.13a.三個(gè)進(jìn)程共享四個(gè)資源單元最壞情況是,3個(gè)進(jìn)程各只得到1個(gè)資源單元。這時(shí)系統(tǒng)尚存有1個(gè)資源單元,因而將不會(huì)死鎖。b.定義:claimi=進(jìn)程i總共需要的資源數(shù)目; allocationi=進(jìn)程i已經(jīng)分配的資源數(shù)目; deficiti=進(jìn)程i仍然需要的資源數(shù)目。根據(jù)題意,我們有下式成立: 在一個(gè)死鎖的情況下,所有的資源都是被占有的,所以有下式成立: 并且,此時(shí),每個(gè)進(jìn)程都在等待資源。從以上兩個(gè)式子我們可以得出:也就是說(shuō)至少有一個(gè)進(jìn)程j,它已經(jīng)獲得了所有所需要的資源(deficitj
24、=0),將完成其工作并釋放所有的資源,剩下的進(jìn)程將依次完成工作,因此死鎖不會(huì)發(fā)生。6.14安全狀態(tài),需要的最小資源數(shù)目是3。依次用P1-P4來(lái)表示四個(gè)進(jìn)程。從矩陣可以看出,四個(gè)進(jìn)程還需要的資源數(shù)目為(2,1,6,5),當(dāng)有一個(gè)可用資源時(shí),P2可以執(zhí)行完成,并釋放占用資源,可用資源數(shù)目為2,允許P1執(zhí)行完成,可用資源數(shù)目為3,此時(shí),P3需要6個(gè)資源,P4需要5個(gè)資源,既最小情況還需要2個(gè)額外資源,P4執(zhí)行完成,釋放資源后,P3再執(zhí)行完成。6.17 如果至少有一個(gè)左撇子或右撇子,則當(dāng)所有哲學(xué)家都準(zhǔn)備拿起第一根筷子時(shí),必定會(huì)有兩個(gè)哲學(xué)家競(jìng)爭(zhēng)一根筷子而其中一個(gè)得不到處于等待,這樣必定有一個(gè)哲學(xué)家可以獲
25、得兩根筷子,而不至于發(fā)生死鎖。 同樣也不會(huì)發(fā)生饑餓7.1重定位 支持模塊化程序設(shè)計(jì)保護(hù) 進(jìn)程隔離;保護(hù)和訪問(wèn)控制共享 保護(hù)和訪問(wèn)控制邏輯組織 支持模塊化程序設(shè)計(jì) 物理組織 長(zhǎng)期存儲(chǔ);自動(dòng)分配和管理7.2分區(qū)數(shù)目等于主存的字節(jié)數(shù)除以每個(gè)分區(qū)的字節(jié)數(shù):每8位二進(jìn)制數(shù)表示 個(gè)分區(qū)中的一個(gè)分區(qū)。 7.3定義s和h分別為內(nèi)存中段的數(shù)量和空洞的數(shù)量。假定在動(dòng)態(tài)分區(qū)的內(nèi)存中,存儲(chǔ)段的創(chuàng)建和釋放以相同的概率發(fā)生,那么對(duì)于任一分區(qū),它后面緊挨著的那個(gè)部分是一個(gè)分區(qū)或者是一個(gè)空洞的概率各為0.5。所以,對(duì)于有s個(gè)段的內(nèi)存中,空洞的平均數(shù)量為s/2,既空洞的數(shù)量是段數(shù)量的一半。7.5最佳適配算法在每次分割之后切割下
26、來(lái)的剩余部分總是最小的,這樣會(huì)在存儲(chǔ)器中留下很多難以利用的小空閑區(qū)。最壞適配算法當(dāng)有進(jìn)程調(diào)入的時(shí)候每次都分配最大的空閑存儲(chǔ)塊,這樣塊中剩余的空閑空間就足夠大從而可以滿足另外的請(qǐng)求。缺點(diǎn)是第一次分配的時(shí)候就把最大的空閑區(qū)分配了,當(dāng)有大的空間分配請(qǐng)求時(shí)極易分配失敗。7.6a.第一個(gè)塊分配到第二個(gè)空閑塊,起始地址為80M,第二個(gè)塊分配到第一個(gè)空閑塊,起始地址為20M,第三個(gè)塊分配到第二個(gè)空閑塊起始地址為120M。b.第一個(gè)塊分配到第四個(gè)空閑塊,起始地址為230M,第二個(gè)塊分配到第一個(gè)空閑塊,起始地址為20M,第三個(gè)塊分配到第三個(gè)空閑塊,起始地址為160M。c.從上一次放置的位置開(kāi)始掃描(注意只往后看
27、),所以三個(gè)塊的起始地址分別為80M,120M和160M。d.每次都找最大的空閑塊。三個(gè)塊的起始地址為80M,230M和360M。7.7a.b.7.87.9 其中,mod表示求余運(yùn)算。7.10a. 我們完全可以采用斐波那契(Fibonacci)數(shù)列作為塊的劃分準(zhǔn)則,從而建立起與普遍采用的對(duì)分伙伴系統(tǒng)(binary buddy system)不同的伙伴系統(tǒng)。b. 與對(duì)分伙伴系統(tǒng)相比,按照斐波那契數(shù)列建立起來(lái)的伙伴系統(tǒng)能夠提供更多不同的塊容量;也就是說(shuō),整個(gè)內(nèi)存空間劃分得更細(xì)致了,塊的容量更具有多樣性。因此,在為進(jìn)程分配存儲(chǔ)空間時(shí),可以找到最佳適配的存儲(chǔ)塊,因而可以使內(nèi)部碎片的尺寸得以減小,這是這
28、種伙伴系統(tǒng)具有的顯著優(yōu)點(diǎn)。7.12a.邏輯地址空間為: 邏輯地址空間包含的位數(shù)為26位。b.一個(gè)幀的大小和頁(yè)的大小相同都是 。c.存儲(chǔ)器地址空間/幀大小= ,所以指定幀需要22位。d.邏輯地址空間有 個(gè)頁(yè),所以含有 個(gè)頁(yè)表項(xiàng)。e.加上一個(gè)有效/無(wú)效位,制定一個(gè)幀的位數(shù)為22,所以總共為23位。 7.14a.從段表可以看出,段表中的四個(gè)字段依次為段0,1,2,3。 物理地址=660+198=858b.物理地址=222+156=378c.由于段內(nèi)偏移(530)>段的長(zhǎng)度(442),所以發(fā)生段錯(cuò)誤。d.物理地址=996+444=1440e.物理地址=660+222=8828.1 a 步驟: 從
29、虛地址求取頁(yè)號(hào)和頁(yè)內(nèi)偏移(利用公式:虛地址=頁(yè)號(hào)*頁(yè)長(zhǎng)+頁(yè)內(nèi)偏移) 利用頁(yè)表由頁(yè)號(hào)求取對(duì)應(yīng)的塊號(hào) 求物理地址(利用公式:物理地址=塊號(hào)*塊長(zhǎng)+塊內(nèi)偏移,注意到塊長(zhǎng)=頁(yè)長(zhǎng),塊內(nèi)偏移=頁(yè)內(nèi)偏移) b. (i) 1052 = 1024 + 28 虛擬頁(yè)號(hào)為1,得到幀號(hào)為7。 物理地址=7*1024+28=7196 (ii) 2221 = 2 * 1024 + 173 虛擬頁(yè)號(hào)為2,頁(yè)錯(cuò)誤。 (iii) 5499 = 5 *1024 + 379虛擬頁(yè)號(hào)為5,得到幀號(hào)為0。 物理地址=0*1024+379=3798.2a.存儲(chǔ)器地址空間/頁(yè)大小= ,所以在虛擬存儲(chǔ)器中指定頁(yè)需要22位。 每一頁(yè)包含 個(gè)頁(yè)
30、表項(xiàng)。每個(gè)頁(yè)表占據(jù)了8位,因此22位需要用到三級(jí)頁(yè)表。b.兩級(jí)的頁(yè)表包含 個(gè)頁(yè)表項(xiàng),一級(jí)頁(yè)表包含 個(gè)頁(yè)表項(xiàng)(8+8+6=22)。c.我們這里有三級(jí),三級(jí)所占位數(shù)為6,8,8,則頁(yè)的個(gè)數(shù)為: 若三級(jí)所占位數(shù)為:8,6,8,則頁(yè)的個(gè)數(shù)為: 若三級(jí)所占位數(shù)為:8,8,6,則頁(yè)的個(gè)數(shù)為:8.4 a. 3號(hào)頁(yè)幀的內(nèi)容將被置換,因?yàn)樗钤绫患虞d。 b. 1號(hào)頁(yè)幀的內(nèi)容將被置換,因?yàn)樗纳洗卧L問(wèn)時(shí)間離當(dāng)前最久。 c. 0號(hào)頁(yè)幀的內(nèi)容將被置換,因?yàn)槠渲蠷位和M位的值為(0, 1)。 d. 3號(hào)頁(yè)幀的內(nèi)容將被置換,因?yàn)橛蓪?lái)的訪問(wèn)序列可知,頁(yè)面3的訪問(wèn)順序最靠后。8.6 a. 命中率=16/33 b. 命中率=
31、16/33c. 對(duì)于這個(gè)特定的訪問(wèn)序列,采用上述兩種替換策略得到的命中率相等。一般來(lái)說(shuō),采用LRU替換策略的命中率會(huì)高于采用FIFO替換策略的情況,而對(duì)于這個(gè)特定的訪問(wèn)序列來(lái)說(shuō),一個(gè)頁(yè)面被載入之后,很少發(fā)生在接下來(lái)的5次連續(xù)訪問(wèn)中再次被訪問(wèn)的情形,因此缺頁(yè)發(fā)生的時(shí)刻與LRU的情況相當(dāng)接近,從而使得對(duì)應(yīng)的命中率接近于LRU。8.8存儲(chǔ)器地址從4000開(kāi)始: 4000(R1) ONEEstablish index register for i 4001(R1) nEstablish n in R2 4002compare R1, R2Test i > n 4003branch greater
32、 4009 4004(R3) B(R1)Access Bi using index register R1 4005(R3) (R3) + C(R1)Add Ci using index register R1 4006A(R1) (R3)Store sum in Ai using index register R1 4007(R1) (R1) + ONEIncrement i 4008branch 4002 6000-6999storage for A 7000-7999storage for B 8000-8999storage for C 9000storage for ONE 9001
33、storage for n8.10 假設(shè)需要i級(jí),則可以表示的地址空間大小 = 要求表示64位地址空間,則要求10i+12>=64,所以i至少取6 8.11 a. 400ns b. 15%*420+85%*220=250 8.12 a. 缺頁(yè)下限=n b. 缺頁(yè)上限=p 8.17 a. 每段的最大尺寸=8*2K=16K b. 該任務(wù)的邏輯地址空間最大=4*16K=64K c. 邏輯地址格式是:2位表示段號(hào),3位表示頁(yè)號(hào),其他11位表示頁(yè)內(nèi)偏移。最后的11位轉(zhuǎn)換為十六進(jìn)制為2BC 8.18 a. 邏輯地址格式是:前5位表示頁(yè)號(hào),后11位表示頁(yè)內(nèi)偏移。 b. 頁(yè)表長(zhǎng)度:25=32個(gè)條目;頁(yè)表
34、寬度:20-11=9位。 c. 頁(yè)表寬度由9位變?yōu)?位。9.1 每個(gè)方塊表示一個(gè)執(zhí)行單元,方塊中的數(shù)字表示當(dāng)前執(zhí)行的進(jìn)程。FCFSAAABBBBBCCDDDDDEEEEERR, q = 1ABABCABCBDBDEDEDEDEERR, q = 4AAABBBBCCBDDDDEEEEDESPNAAACCBBBBBDDDDDEEEEESRTAAACCBBBBBDDDDDEEEEEHRRNAAABBBBBCCDDDDDEEEEEFeedback, q = 1ABACBCABBDBDEDEDEDEEFeedback, q = 2iABAACBBCBBDDEDDEEDEEFCFSAAABBBBBCCDD
35、DDDEEEEERR, q = 1ABABCABCBDBDEDEDEDEERR, q = 4AAABBBBCCBDDDDEEEEDESPNAAACCBBBBBDDDDDEEEEESRTAAACCBBBBBDDDDDEEEEEHRRNAAABBBBBCCDDDDDEEEEEFeedback, q = 1ABACBCABBDBDEDEDEDEEFeedback, q = 2iABAACBBCBBDDEDDEEDEE9.7 首先,調(diào)度器計(jì)算在時(shí)間t+r1+r2+r3時(shí)刻的響應(yīng)比,此時(shí),三個(gè)作業(yè)都已經(jīng)完成。這個(gè)時(shí)候第三個(gè)作業(yè)具有最小的響應(yīng)比(圖中可以看出),所以,調(diào)度器決定最后執(zhí)行第三個(gè)作業(yè);繼續(xù)查看
36、在時(shí)間t+r1+r2時(shí),第一和第二個(gè)作業(yè)都已完成,此時(shí),第一個(gè)任務(wù)的響應(yīng)比要小些,所以,在時(shí)間t的時(shí)候第二個(gè)作業(yè)被選擇執(zhí)行,既執(zhí)行順序?yàn)閞2,r1,r3。這個(gè)算法在每完成一個(gè)作業(yè)之后重新查看作業(yè)的響應(yīng)比,跟高響應(yīng)比優(yōu)先算法是有區(qū)別的,如果是后者那么在時(shí)間t的時(shí)候就會(huì)選擇第一個(gè)作業(yè)。9.14 在多級(jí)反饋隊(duì)列調(diào)度器的調(diào)度下,I/O-bound的進(jìn)程比CPU-bound的進(jìn)程更有利,也就是說(shuō),調(diào)度器更傾向于選擇I/O-bound的進(jìn)程進(jìn)行分派。原因在于I/O-bound的進(jìn)程會(huì)比較長(zhǎng)時(shí)間地阻塞;在阻塞過(guò)程中,CPU-bound的進(jìn)程得到多次分派執(zhí)行,因而會(huì)很快進(jìn)入低優(yōu)先級(jí)的反饋隊(duì)列中。這樣,I/O-bound的進(jìn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 瓷磚鋪貼工崗位面試問(wèn)題及答案
- 2025屆河南天一大聯(lián)考高一化學(xué)第二學(xué)期期末預(yù)測(cè)試題含解析
- 培養(yǎng)質(zhì)量評(píng)價(jià)管理辦法
- 醫(yī)藥產(chǎn)品登記管理辦法
- 權(quán)力清單管理辦法麗水
- 辦公區(qū)域日常管理辦法
- 民航安檢道口管理辦法
- 北京特殊班級(jí)管理辦法
- 碳中和目標(biāo)下鋰離子電池健康狀態(tài)評(píng)估體系構(gòu)建研究
- 醫(yī)療器材資質(zhì)管理辦法
- 公務(wù)員考試經(jīng)驗(yàn)分享培訓(xùn)課件
- (高級(jí))數(shù)據(jù)安全管理員職業(yè)技能鑒定考試題庫(kù)-實(shí)操題
- 初三化學(xué)上冊(cè)第一單元測(cè)試題(含答案)
- 移動(dòng)通信網(wǎng)絡(luò)優(yōu)化服務(wù)合同
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
- JBT 14449-2024 起重機(jī)械焊接工藝評(píng)定(正式版)
- DL-T5017-2007水電水利工程壓力鋼管制造安裝及驗(yàn)收規(guī)范
- 海上風(fēng)電場(chǎng)選址與環(huán)境影響評(píng)估
- 《陸上風(fēng)電場(chǎng)工程概算定額》(NB-T 31010-2019)
- 藥物分析年終述職報(bào)告
- 農(nóng)發(fā)行信貸業(yè)務(wù)考試題庫(kù)題庫(kù)附答案
評(píng)論
0/150
提交評(píng)論