操作系統(tǒng)精髓與設計原理第五版中文答案全_第1頁
操作系統(tǒng)精髓與設計原理第五版中文答案全_第2頁
操作系統(tǒng)精髓與設計原理第五版中文答案全_第3頁
操作系統(tǒng)精髓與設計原理第五版中文答案全_第4頁
操作系統(tǒng)精髓與設計原理第五版中文答案全_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 2.1 情況(a)和情況(b)具有相同的答案。 假設處理器的操作不能重疊,但i/o操作可以。 1job:時間周期=nt 處理器利用率=50%; 2jobs:時間周期=nt 處理器利用率=100%; 4jobs:時間周期=(2n-1)nt 處理器利用率=100% 2.2 i/o限制程序只用相對較少的處理時間,因此,受到短期調(diào)度算法的偏愛。然而,如果一個處理器限制程序在一段很長的時間內(nèi)被處理器時間拒絕,那同樣的這個短期調(diào)度算法則會允許處理機去處理過去一段時間一直沒有使用處理機的程序,所以,并不是永遠不受理處理器限制程序所需的處理器時間。 2.3 關于分時系統(tǒng),我們所關注的是周轉(zhuǎn)時間。 首選的是時

2、間片,因為它在一個很短的時間給 所有的程序一個訪問權限去使用處理器。在批 處理系統(tǒng),我們所關注的是吞吐量和更少量的上 下文轉(zhuǎn)換,對于進程來說獲得了更多的處理時 間。因此,最小化上下文轉(zhuǎn)換的處理是有優(yōu)勢 的。 2.4 應用程序運用系統(tǒng)調(diào)用去調(diào)用操作系統(tǒng)所 提供的功能。關鍵的是,系統(tǒng)調(diào)用導致轉(zhuǎn)換到 進入內(nèi)核模式的系統(tǒng)程序。 操作系統(tǒng)第三章習題解答 3.1 系統(tǒng)和用戶進程的創(chuàng)建和刪除:在系統(tǒng)中進程對于信息共享,加速計算,模塊性 和便利性都能并發(fā)執(zhí)行。并發(fā)的執(zhí)行需要進程的創(chuàng)建和刪除機制。進程所需要的資源在進程被創(chuàng)建時獲得或者在其運行的時候分配。當進程結(jié)束時,操作系統(tǒng)需要收回任何可重用資源。 進程的掛起

3、和恢復:在進程調(diào)度中,當進程在等待某些資源時,操作系統(tǒng)需要把進程狀態(tài)改變成等待或者就緒狀態(tài)。當進程所要求的資源可用時,操作系統(tǒng)需要把它的狀態(tài)變?yōu)檫\行狀態(tài)恢復它的執(zhí)行。 進程同步機制:協(xié)調(diào)進程分享數(shù)據(jù)。 并發(fā)訪問使用共享數(shù)據(jù)可能導致數(shù)據(jù)不一致性,操作系統(tǒng)不得不為其提供一種進程同步機制用來確保協(xié)作進程有序的實行,從而保證數(shù)據(jù)的一致性。 進程通信機制 :在操作系統(tǒng)下執(zhí)行的進程要么是獨立的進程要么是協(xié)作的進程。 協(xié)作進程必須使用某些方法來實現(xiàn)進程間的通信。 死鎖處理機制:在一個多道程序設計環(huán)境里,一些進程可能因為有限數(shù)量的資源而產(chǎn)生競爭。 如果一個死鎖發(fā)生,全部等待的進程都不會從等待狀態(tài)改變成運行狀態(tài)

4、,那么資源被浪費,工作不會被完成。 3.4 對處于就緒/掛起狀態(tài)的所有進程通過一 個固定的優(yōu)先級層次來劃分,如分成一到兩 個優(yōu)先級,只有當就緒/掛起狀態(tài)的進程優(yōu)先 級高于所有就緒狀態(tài)進程的優(yōu)先級時,才把 處理機分配給它。3.6 a)采用4種模式的優(yōu)點在于:系統(tǒng)能夠提高對存儲器的訪問使用的靈活性,同時對內(nèi)存儲器的運行起到很好的保護作用。缺點:復雜度和處理開銷。例如,處理器運行在不同的訪問模式需要分離可訪問的堆棧。b)原則上,模式越多,靈活性適應性越大,但系統(tǒng)越復雜,舉出一 種有4種以上模式的情況較難。 3.7 a) 當j<i時,一個在di中運行的進程被阻止訪問dj中的對象。因此,如果dj中

5、包含的信息比di優(yōu)先權更高或者比di更安全,這個限制是適當?shù)?。然而,這個安全政策可以用下面的方法更簡單的獲得。一個在dj中運行的進程可以從dj中讀取數(shù)據(jù),并且可以把數(shù)據(jù)復制到di中,隨后,在di中運行的進程便可讀取這些信息。 b)一個近似的解決這個問題的方法就是大家都知道的可信系統(tǒng)。在以后的章節(jié)會詳細解釋。 3.8 a)一個應用程序可能正處理從另一個進程收到的數(shù)據(jù)并且把結(jié)果儲存在磁盤上。如果有等待取自其它進程的數(shù)據(jù),應用程序可能進入下一個進程取出數(shù)據(jù)并且處理它。 如果一個先前的磁盤寫操作已經(jīng)完成并且有處理的數(shù)據(jù)寫出,應用程序會將其寫入下一個磁盤。需要考慮的一點就是,進程等待輸入進程的額外數(shù)據(jù)和

6、磁盤的可用性。 b)有幾種處理的方式。 或者一種特定類型的隊列來處理,或者進程可能被放進兩個單獨的隊列。 無論哪種情況,操作系統(tǒng)必須處理細節(jié),提醒進程注意雙方事件一個接一個的發(fā)生。 3.9 這技術基于一個假設中斷進程a響應中斷后將會繼續(xù)進行。 但是, 通常, 一個中斷將引起基本監(jiān)督程序搶占進程a有利于另一個進程b。有必要在描敘進程a相關進程中斷的位置復制進程a的執(zhí)行狀態(tài),機器最好第一時間把它們儲存在那里,以方便后續(xù)操作的進行。 3.10 因為存在進程不能被搶占的情況 (例如正在內(nèi)核模式里執(zhí)行的進程),因此操作系統(tǒng)不能快速回復實時需求。 操作系統(tǒng)第四章習題解答 4.1 是的。因為更多的狀態(tài)信息必

7、須保留下來用于一個程序到另一個程序的轉(zhuǎn)換。 4.2 因為,關于用戶級線程,一個進程的線程結(jié)構對于操作系統(tǒng)來講是不可視的,它僅僅是基于進程調(diào)度的一個基本單位。 進程和線程的區(qū)別在于: 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程. 線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高。 另外,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運行效率。 線程在執(zhí)行過程中與進程還是有區(qū)別的。 每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應用程序中,由應用程序提供多個線程執(zhí)行控制。 從邏輯角度來看,多線程的意義在

8、于一個應用程序中,有多個執(zhí)行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應用,來實現(xiàn)進程的調(diào)度和管理以及資源分配。這就是進程和線程的重要區(qū)別。 (續(xù)) 進程是具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位. 線程是進程的一個實體,是cpu調(diào)度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源. 一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行. 4

9、.4 這里的這個問題是機器花費了它工作中大量時間去等待i/o的完成。在一個多線程程序中,一個內(nèi)核級線程使系統(tǒng)調(diào)用阻塞,而其它內(nèi)核級線程可以繼續(xù)運行,而對于一個單獨的處理器,一個進程只有使所有調(diào)用阻塞,才能使其它線程繼續(xù)。 4.5 不會。當一個進程退出,它將帶走關于它 的所有東西,內(nèi)核級線程、進程結(jié)構、存儲空 間,也包括線程。 4.6 盡可能多的關于地址空間的信息能夠和其它地址空間進行交換,從而保存到主存儲器中。 4.7 a)如果采取保守策略,那么最多有20/4=5個作業(yè)同時執(zhí)行。因為分配給各自進程的設備中有一個設備在大多數(shù)時間里都是空閑的,在同一時間,最多有5個設備空閑,最好的情況,沒有設備空

10、閑,全部都在工作狀態(tài)。 b)為了提高設備的利用率,最初每個作業(yè)分配3個磁帶設備,第4個則要按需求分配。根據(jù)這個策略,至多有20/3=6個作業(yè)能被同時激活,最小空閑設備數(shù)是0,最大空閑設備數(shù)是2。 4.8 每一個調(diào)用都可能改變一個線程的優(yōu)先級或者一個可運行的、具有更高優(yōu)先級的線程也可以調(diào)用調(diào)度程序,而且它依次搶占低優(yōu)先級的活躍線程。因此,可運行的、高優(yōu)先級線程不具備題目所述。 5.2 5.3 a.(1).上限是100。因為最多只有100次加1操作。這種情況發(fā)生在兩個進程順序執(zhí)行時。(2).下限是2,發(fā)生的情形可以描述如下: 說明:tally+實際上分三步執(zhí)行,先執(zhí)行aßtally,再執(zhí)

11、行inc a,最后執(zhí)行tallyßa。此處a為寄存器,其值將在進程切換時保護起來。 5.6 a.用文字描述這個算法: 分步: 對于第i個進程: 為了得到服務首先要取得順序號:即對numberi進行寫操作,此時應屏蔽所有其它進程對number數(shù)組的讀操作。當對numberi的寫操作完成時才允許其它進程對其的讀操作。 查看是否有其他進程正在操作,若有則做空操作;與其它進程的順序號比較,若小于則可得到服務,否則等待。 進入臨界區(qū) 服務完畢將numberi置0。 總述: 當一個進程希望進入其臨界區(qū),它將得到一張票,票的號碼將是所有等待進入臨界區(qū)或已在臨界區(qū)的進程所得到票的號碼中最大者加1。擁

12、有最小票號的進程將率先進入臨界區(qū)。如果有多個進程得到的票具有相同的號碼,則進程號更小的進程將更占優(yōu)勢。當一個進程離開其臨界區(qū),它將重置其中票號為0。 b.解釋此算法如何避免死鎖 死鎖時的情形:每個人都拿到了順序號,但都拿不到面包。 在本算法中即使順序號相同,但數(shù)組下標是不同的。所以進程總可推進不會發(fā)生死鎖。 c.解釋此算法如何加強互斥; (1)對臨界資源面包是按照順序號互斥的使用 (2)對number數(shù)組的操作通過寫操作前置true保證其它進程此時不能對其讀,從而保證讀寫互斥。 5.9 錯誤情形:假設有2個進程都調(diào)用wait且s的初值為0。在第一個進程執(zhí)行完signalb(mutex)且尚未執(zhí)

13、行waitb(delay)時,第二個進程開始調(diào)用wait,也停在同一點(即signalb(mutex)和waitb(delay)之間)。這時,s的值為-2,而mutex是打開的。假如有另外2個進程在這時相繼調(diào)用了signal,那么他們每個都會做signalb(delay)操作,但程序中后一個signalb將沒有意義。 解決: 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。如果按照以下的順序改變程序中的相應處程序的意思會改變嗎? 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é)果: 對于生產(chǎn)者進程來說,若wait(s)成功,則說明可以使用緩沖池。若wait(e)不成功說明沒有空緩沖區(qū)可用,此時生產(chǎn)者進程等待。 對于消費者進程來說,若wait(n)成功,則說明緩沖池不

16、空。若wait(s) 成功說明可以使用緩沖池,但此時由于生產(chǎn)者進程已將緩沖池占有,此時消費者進程等待。結(jié)果發(fā)生死鎖。 b.意思不變 c.同a d.意思不變5.16 這一問題給出了相應三種進程的信號量的使用。圣誕老人(santa claus)在北極他的店里睡覺僅能被(1)、(2)喚醒。 (1)所有九個馴鹿都結(jié)束它們的假期從南太平洋回來 (2)僅當制造玩具的小孩子有困難時將其喊醒為了讓圣誕老人多睡會兒覺,僅當三個小孩子有問題時將其喚醒。當三個小孩子有問題在解決時,其他小孩子想訪問圣誕老人時必須等其他人回來。 如果圣誕老人醒來發(fā)現(xiàn)有三個小孩子在他的店門外等候,同時最后一條馴鹿已經(jīng)從熱帶回來,圣誕老人

17、已經(jīng)決定讓這些小精靈等到圣誕節(jié)之后,因為他的雪橇已經(jīng)準備好了,這一點比較重要(假定馴鹿不想離開熱帶,因此他們會停留到最后一刻)。最后一只馴鹿到達時圣誕老人必須出發(fā),以前到達的馴鹿在拉雪橇前在一個溫暖的小屋里等待。使用信號量解決這一問題。 分析: 三類進程:santa claus, reindeer, kids santa claus: sleep in north pole waken by reindeer(9頭) kids(3個) reindeer:vacation in tropics return north pole christmas activity kids: making t

18、oys having difficulties ,need help semaphore:wakesanta=0;喚醒圣誕老人的信號量 returnreindeer=1; 返回的馴鹿的計數(shù)器互斥信號量 needhelp=1;需要幫助的elves的計數(shù)器互斥信號量 int :reindeercount=0, kidscount=0; santa claus: while (true) wait(wakesanta);/等待被喚醒 if(reindeercount=9) christmas activity; send_reindeer(); wait(returnreindeer);/獲得尋路返

19、/回互斥信號量 reindeercount=0; signal(returnreindeer);/釋放馴鹿/返回互斥信號量 if(elvescount>=3) help_kids(); wait(needhelp);/等待需要幫助信號量 kidscount=0; signal(needhelp);/釋放需要幫助信號/量 reindeer i while truevacation on tropics; return to north pole; wait(returnreindeer);/獲得馴鹿返回互斥信號量 reindeercount+; if(reindeercount=9) si

20、gnal(wakesanta)/釋放喚醒圣誕老人信號量 else wait_in_hut(); signal(returnreindeer)/釋放馴鹿返回互斥信號量 kids i:making toys; wait(needhelp);/獲得需要幫助信號量 kidscount+; if elvescount=3 signal(wakesanta);/釋放喚醒圣誕/老人信號量 else signal(needhelp);/釋放需要幫助互/斥信號量 6.1互斥:在每一時刻,只能有一輛車占用十字路口的一個象限;占有且等待:沒有車倒退;每輛車一直在等待,直到它前面的十字路口的象限可以使用;非搶占:沒有

21、車輛能夠強迫另一輛車給自己讓路;循環(huán)等待:每輛車一直等待另外的車輛占用的十字路口的象限。6.21.q獲得b,然后獲得a,然后釋放b和a;當p恢復執(zhí)行的時候,它可以獲得全部資源。2.q獲得b,然后獲得a;p執(zhí)行并阻塞在對a的請求上;q釋放b和a,當p恢復執(zhí)行時,它可以獲得全部資源。3.q獲得b,p獲得并釋放a,然后q獲得a并釋放b和a,當p恢復執(zhí)行時,它可以獲得b。4.p獲得a,q獲得b,p釋放a,q獲得a并釋放b,p獲得b并且釋放b。5.p獲得并釋放a,p獲得b;q執(zhí)行并阻塞在對b的請求上;p釋放b,當q恢復執(zhí)行時,它可以獲得全部資源。6.p獲得a并且釋放a,p獲得b并且釋放b,當q恢復執(zhí)行時

22、,他可以獲得全部資源。6.3.如果q在p請求a之前獲得b和a,那么q能夠使用并稍后釋放這兩個資源,允許p繼續(xù)執(zhí)行。 如果p在q請求a之前獲得a,那么q至多執(zhí)行到請求a之前,然后被阻塞。盡管這樣,一旦p釋放a,q就能夠繼續(xù)執(zhí)行。一旦q釋放b,p也能繼續(xù)執(zhí)行。6.5 (1) w=2 1 0 0 (2) 進程p3的請求等于w,標記p3,w2 1 0 00 1 2 02 2 2 0 (3)進程p2的請求小于w,標記p2,w2 2 2 02 0 0 14 2 2 1 (4)進程p1的請求小于w,標記p1,w 4 2 2 1 0 0 1 04 2 3 1 (5)所有的進程都標記了,所以系統(tǒng)不存在死鎖6.1

23、0 a.第四個進程到達,最大需求是60,初始要求是25 b.第四個進程到達,最大需求是60,初始需求是356.13a.三個進程共享四個資源單元最壞情況是,3個進程各只得到1個資源單元。這時系統(tǒng)尚存有1個資源單元,因而將不會死鎖。b.定義:claimi=進程i總共需要的資源數(shù)目; allocationi=進程i已經(jīng)分配的資源數(shù)目; deficiti=進程i仍然需要的資源數(shù)目。根據(jù)題意,我們有下式成立: 在一個死鎖的情況下,所有的資源都是被占有的,所以有下式成立: 并且,此時,每個進程都在等待資源。從以上兩個式子我們可以得出:也就是說至少有一個進程j,它已經(jīng)獲得了所有所需要的資源(deficitj

24、=0),將完成其工作并釋放所有的資源,剩下的進程將依次完成工作,因此死鎖不會發(fā)生。6.14安全狀態(tài),需要的最小資源數(shù)目是3。依次用p1-p4來表示四個進程。從矩陣可以看出,四個進程還需要的資源數(shù)目為(2,1,6,5),當有一個可用資源時,p2可以執(zhí)行完成,并釋放占用資源,可用資源數(shù)目為2,允許p1執(zhí)行完成,可用資源數(shù)目為3,此時,p3需要6個資源,p4需要5個資源,既最小情況還需要2個額外資源,p4執(zhí)行完成,釋放資源后,p3再執(zhí)行完成。6.17 如果至少有一個左撇子或右撇子,則當所有哲學家都準備拿起第一根筷子時,必定會有兩個哲學家競爭一根筷子而其中一個得不到處于等待,這樣必定有一個哲學家可以獲

25、得兩根筷子,而不至于發(fā)生死鎖。 同樣也不會發(fā)生饑餓7.1重定位 支持模塊化程序設計保護 進程隔離;保護和訪問控制共享 保護和訪問控制邏輯組織 支持模塊化程序設計 物理組織 長期存儲;自動分配和管理7.2分區(qū)數(shù)目等于主存的字節(jié)數(shù)除以每個分區(qū)的字節(jié)數(shù):每8位二進制數(shù)表示 個分區(qū)中的一個分區(qū)。 7.3定義s和h分別為內(nèi)存中段的數(shù)量和空洞的數(shù)量。假定在動態(tài)分區(qū)的內(nèi)存中,存儲段的創(chuàng)建和釋放以相同的概率發(fā)生,那么對于任一分區(qū),它后面緊挨著的那個部分是一個分區(qū)或者是一個空洞的概率各為0.5。所以,對于有s個段的內(nèi)存中,空洞的平均數(shù)量為s/2,既空洞的數(shù)量是段數(shù)量的一半。7.5最佳適配算法在每次分割之后切割下

26、來的剩余部分總是最小的,這樣會在存儲器中留下很多難以利用的小空閑區(qū)。最壞適配算法當有進程調(diào)入的時候每次都分配最大的空閑存儲塊,這樣塊中剩余的空閑空間就足夠大從而可以滿足另外的請求。缺點是第一次分配的時候就把最大的空閑區(qū)分配了,當有大的空間分配請求時極易分配失敗。7.6a.第一個塊分配到第二個空閑塊,起始地址為80m,第二個塊分配到第一個空閑塊,起始地址為20m,第三個塊分配到第二個空閑塊起始地址為120m。b.第一個塊分配到第四個空閑塊,起始地址為230m,第二個塊分配到第一個空閑塊,起始地址為20m,第三個塊分配到第三個空閑塊,起始地址為160m。c.從上一次放置的位置開始掃描(注意只往后看

27、),所以三個塊的起始地址分別為80m,120m和160m。d.每次都找最大的空閑塊。三個塊的起始地址為80m,230m和360m。7.7a.b.7.8a.011011110100b.0110111000007.9 其中,mod表示求余運算。7.10a. 我們完全可以采用斐波那契(fibonacci)數(shù)列作為塊的劃分準則,從而建立起與普遍采用的對分伙伴系統(tǒng)(binary buddy system)不同的伙伴系統(tǒng)。b. 與對分伙伴系統(tǒng)相比,按照斐波那契數(shù)列建立起來的伙伴系統(tǒng)能夠提供更多不同的塊容量;也就是說,整個內(nèi)存空間劃分得更細致了,塊的容量更具有多樣性。因此,在為進程分配存儲空間時,可以找到最

28、佳適配的存儲塊,因而可以使內(nèi)部碎片的尺寸得以減小,這是這種伙伴系統(tǒng)具有的顯著優(yōu)點。7.12a.邏輯地址空間為: 邏輯地址空間包含的位數(shù)為26位。b.一個幀的大小和頁的大小相同都是 。c.存儲器地址空間/幀大小= ,所以指定幀需要22位。d.邏輯地址空間有 個頁,所以含有 個頁表項。e.加上一個有效/無效位,制定一個幀的位數(shù)為22,所以總共為23位。 7.14a.從段表可以看出,段表中的四個字段依次為段0,1,2,3。 物理地址=660+198=858b.物理地址=222+156=378c.由于段內(nèi)偏移(530)>段的長度(442),所以發(fā)生段錯誤。d.物理地址=996+444=1440e

29、.物理地址=660+222=8828.1 a 步驟: 從虛地址求取頁號和頁內(nèi)偏移(利用公式:虛地址=頁號*頁長+頁內(nèi)偏移) 利用頁表由頁號求取對應的塊號 求物理地址(利用公式:物理地址=塊號*塊長+塊內(nèi)偏移,注意到塊長=頁長,塊內(nèi)偏移=頁內(nèi)偏移) b. (i) 1052 = 1024 + 28 虛擬頁號為1,得到幀號為7。 物理地址=7*1024+28=7196 (ii) 2221 = 2 * 1024 + 173 虛擬頁號為2,頁錯誤。 (iii) 5499 = 5 *1024 + 379虛擬頁號為5,得到幀號為0。 物理地址=0*1024+379=3798.2a.存儲器地址空間/頁大小=

30、,所以在虛擬存儲器中指定頁需要22位。 每一頁包含 個頁表項。每個頁表占據(jù)了8位,因此22位需要用到三級頁表。b.兩級的頁表包含 個頁表項,一級頁表包含 個頁表項(8+8+6=22)。c.我們這里有三級,三級所占位數(shù)為6,8,8,則頁的個數(shù)為: 若三級所占位數(shù)為:8,6,8,則頁的個數(shù)為: 若三級所占位數(shù)為:8,8,6,則頁的個數(shù)為:8.4 a. 3號頁幀的內(nèi)容將被置換,因為它最早被加載。 b. 1號頁幀的內(nèi)容將被置換,因為它的上次訪問時間離當前最久。 c. 0號頁幀的內(nèi)容將被置換,因為其中r位和m位的值為(0, 1)。 d. 3號頁幀的內(nèi)容將被置換,因為由將來的訪問序列可知,頁面3的訪問順序

31、最靠后。8.6 a. 命中率=16/33 b. 命中率=16/33c. 對于這個特定的訪問序列,采用上述兩種替換策略得到的命中率相等。一般來說,采用lru替換策略的命中率會高于采用fifo替換策略的情況,而對于這個特定的訪問序列來說,一個頁面被載入之后,很少發(fā)生在接下來的5次連續(xù)訪問中再次被訪問的情形,因此缺頁發(fā)生的時刻與lru的情況相當接近,從而使得對應的命中率接近于lru。8.8存儲器地址從4000開始: 4000(r1) oneestablish index register for i 4001(r1) nestablish n in r2 4002compare r1, r2test

32、 i > n 4003branch greater 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 fo

33、r c 9000storage for one 9001storage for n8.10 假設需要i級,則可以表示的地址空間大小 = 要求表示64位地址空間,則要求10i+12>=64,所以i至少取6 8.11 a. 400ns b. 15%*420+85%*220=250 8.12 a. 缺頁下限=n b. 缺頁上限=p 8.17 a. 每段的最大尺寸=8*2k=16k b. 該任務的邏輯地址空間最大=4*16k=64k c. 邏輯地址格式是:2位表示段號,3位表示頁號,其他11位表示頁內(nèi)偏移。最后的11位轉(zhuǎn)換為十六進制為2bc 8.18 a. 邏輯地址格式是:前5位表示頁號,后11

34、位表示頁內(nèi)偏移。 b. 頁表長度:25=32個條目;頁表寬度:20-11=9位。 c. 頁表寬度由9位變?yōu)?位。9.1 每個方塊表示一個執(zhí)行單元,方塊中的數(shù)字表示當前執(zhí)行的進程。fcfsaaabbbbbccdddddeeeeerr, q = 1ababcabcbdbdedededeerr, q = 4aaabbbbccbddddeeeedespnaaaccbbbbbdddddeeeeesrtaaaccbbbbbdddddeeeeehrrnaaabbbbbccdddddeeeeefeedback, q = 1abacbcabbdbdedededeefeedback, q = 2iabaacbbc

35、bbddeddeedeefcfsaaabbbbbccdddddeeeeerr, q = 1ababcabcbdbdedededeerr, q = 4aaabbbbccbddddeeeedespnaaaccbbbbbdddddeeeeesrtaaaccbbbbbdddddeeeeehrrnaaabbbbbccdddddeeeeefeedback, q = 1abacbcabbdbdedededeefeedback, q = 2iabaacbbcbbddeddeedee9.7 首先,調(diào)度器計算在時間t+r1+r2+r3時刻的響應比,此時,三個作業(yè)都已經(jīng)完成。這個時候第三個作業(yè)具有最小的響應比(圖中

36、可以看出),所以,調(diào)度器決定最后執(zhí)行第三個作業(yè);繼續(xù)查看在時間t+r1+r2時,第一和第二個作業(yè)都已完成,此時,第一個任務的響應比要小些,所以,在時間t的時候第二個作業(yè)被選擇執(zhí)行,既執(zhí)行順序為r2,r1,r3。這個算法在每完成一個作業(yè)之后重新查看作業(yè)的響應比,跟高響應比優(yōu)先算法是有區(qū)別的,如果是后者那么在時間t的時候就會選擇第一個作業(yè)。9.14 在多級反饋隊列調(diào)度器的調(diào)度下,i/o-bound的進程比cpu-bound的進程更有利,也就是說,調(diào)度器更傾向于選擇i/o-bound的進程進行分派。原因在于i/o-bound的進程會比較長時間地阻塞;在阻塞過程中,cpu-bound的進程得到多次分派執(zhí)行,因而會很快進入低優(yōu)先級的反饋隊列中。這樣,i/o-boun

溫馨提示

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

評論

0/150

提交評論