計算機操作系統(tǒng)慕課版湯小丹2023年版本第6章習題答案

第6章 虛擬存儲器

第6章 課后習題答案

常見存儲器管理具有哪兩大特征?它們對系統(tǒng)性能有何影響?

答:常見存儲器管理方式具有一次性和駐留性這兩大特征。一次性是指進程必須全部裝入內(nèi)存;駐留性是指在運行過程中,進程全部駐留在內(nèi)存中。一次性對內(nèi)存空間浪費非常大;駐留性則會使暫時不用的程序或數(shù)據(jù)無法釋放。


什么是虛擬存儲器?如何實現(xiàn)頁式虛擬存儲器?

答:

(1)虛擬存儲器是具有請求調(diào)入功能和置換功能,能從邏輯上對內(nèi)存容量進行擴充的一種存儲系統(tǒng)。從用戶觀點來看,虛擬存儲器具有比實際內(nèi)存大的多的容量,其邏輯容量由邏輯地址結(jié)構(gòu)以及內(nèi)存和外存容量之和決定,其運行速度接近于內(nèi)存的存取速度,而實現(xiàn)成本又接近于外存。

(2)為了實現(xiàn)虛擬存儲器,首先需要擴充頁表,增加狀態(tài)位以指出所需頁是否在內(nèi)存中,增加外存起始地址以便調(diào)入頁面,增加引用位以提供頁面置換算法使用,增加修改位以減少換出時寫入磁盤次數(shù),另外還要使用兩種關(guān)鍵技術(shù):①請求調(diào)頁技術(shù)。該項技術(shù)是指及時將進程所要訪問的不再內(nèi)存中的頁調(diào)入內(nèi)存。該功能是由硬件(缺頁中斷機構(gòu)發(fā)現(xiàn)頁)和軟件(將所需頁調(diào)入內(nèi)存)配合實現(xiàn)的。②置換頁技術(shù)。該技術(shù)是指當內(nèi)存中已無足夠空間裝入即將調(diào)入的頁時,為了保證程序能繼續(xù)運行、系統(tǒng)必須換出內(nèi)存中的部分頁,以騰出足夠的空間。具體的置換操作并不復雜,其關(guān)鍵時確定將哪些頁換出,即采取什么置換算法。


“整體對換從邏輯上擴充了內(nèi)存,因此頁實現(xiàn)了虛擬存儲器的功能”這種說法是否正確,請說明理由。

答:說法錯誤。

(1)整體對換是將某個內(nèi)存中暫時不用的某個程序及其數(shù)據(jù)換出到外存,以騰出足夠的內(nèi)存空間去裝入在外存中具備運行條件的進程所對應的程序和數(shù)據(jù)。

(2)虛擬存儲器是指僅把作業(yè)的一部分裝入內(nèi)存便可運行的存儲器系統(tǒng),亦指具有請求調(diào)入功能和置換功能、能從邏輯上對內(nèi)存容量進行擴充的存儲器系統(tǒng),它的實現(xiàn)必須建立在離散分配的基礎上。

(3)雖然整體對換和虛擬存儲器均能從邏輯上擴充內(nèi)存空間,但整體對換不具備離散型。實際上沒在具有整體對換功能的系統(tǒng)中,進程的大小仍將收到實際內(nèi)存容量的限制。


在請求分頁系統(tǒng)中,為什么說一條指令執(zhí)行期間可能產(chǎn)生多次缺頁中斷?

答:在請求調(diào)頁時,只要作業(yè)的部分頁在內(nèi)存中,該作業(yè)就可以執(zhí)行;而在執(zhí)行過程中發(fā)現(xiàn)索要訪問的指令或數(shù)據(jù)不在內(nèi)存中時,系統(tǒng)就會殘生缺頁中斷,將所需的頁面調(diào)入內(nèi)存。在請求調(diào)頁系統(tǒng)中,一條指令可能跨越了兩個頁,而其中要訪問的操作數(shù)可能與指令不在同一個頁上,且操作數(shù)本身也可能跨越了兩個頁。當要執(zhí)行這類指令而相應的頁又都不在內(nèi)存中時,就將執(zhí)行多次缺頁中斷。


請比較缺頁中斷與一般中斷,它們之間有什么明顯的區(qū)別?

答:缺頁中斷與一般中斷的區(qū)別主要有:

(1)一般中斷只需要保護現(xiàn)場后即可直接跳到序及時處理的地方;

(2)缺頁中斷除了需要保護現(xiàn)場外,還需要判斷內(nèi)存中是否有足夠的空間來存儲頁或段,然后再把所需的頁或段調(diào)進來使用。


請說明再請求分頁系統(tǒng)中,頁面的調(diào)入過程?

答:每當程序所要訪問的頁面未在內(nèi)存時(存在位為0),便向CPU發(fā)出缺頁中斷,中斷處理程序保存CPU現(xiàn)場信息,分析中斷原因后,轉(zhuǎn)入缺頁中斷處理程序。該程序同過查找頁表獲得頁所在外存的物理地址,如果此時內(nèi)存可以容納新頁,則啟動磁盤,將所缺頁調(diào)入內(nèi)存,然后修改頁表。如果內(nèi)存已滿,則須按照某種置換算法進行頁面置換;如果換出頁面被修改過(修改位為1),則必須將其寫回磁盤,在把缺頁調(diào)入內(nèi)存,將頁表中調(diào)入頁的存在位修改為1,并將此頁表項寫入快表中。利用修改后的頁表,形成要訪問數(shù)據(jù)的物理地址,再去訪問內(nèi)存數(shù)據(jù)。整個頁面調(diào)入過程對用戶時透明的。


【考研真題】簡述在具有快表的請求分頁系統(tǒng)中,將邏輯地址轉(zhuǎn)變位物理地址的過程?

答:在具有快表的請求分頁系統(tǒng)中,將邏輯地址轉(zhuǎn)變位物理地址的完整過程為:

(1)檢索快表,試圖重中找出索要訪問的頁;

(2)如果找到,則修改頁表項中的訪問位,供置換算法選擇淘汰頁時參考,將寫指令修改為1,然后利用頁表項給出的物理塊號和頁內(nèi)地址形成物理地址,地址轉(zhuǎn)換結(jié)束;

(3)如果沒找到,則到內(nèi)存中去查頁表,再根據(jù)頁表中的狀態(tài)位來判斷該頁是否以調(diào)入內(nèi)存。若該頁已經(jīng)被調(diào)入內(nèi)存,則將該頁的頁表項調(diào)入內(nèi)存。當快表快滿時,先按某種算法調(diào)取某些頁表項,再寫入該頁的頁表項。若該頁未調(diào)入內(nèi)存中,則產(chǎn)生缺頁中斷,請求OS從外存中將該頁調(diào)入內(nèi)存,再轉(zhuǎn)到步驟(2)進行地址轉(zhuǎn)換。


什么是固定分配局部朱鹮和可變分配全局置換的內(nèi)存分配策略?

答:

(1)固定分配局部置換:固定分配是指,為每個進程配分一組固定數(shù)目的物理塊,在進程運行期間不再改變;局部置換是指,如果進程中出現(xiàn)缺頁,只能從分配給該進程的n個頁中選出1頁換出,然后再調(diào)入1頁。

(2)可變分配全局置換:可變分配是指,先為每個進程分配一定數(shù)目的物理塊,在進程運行期間可以根據(jù)情況適當發(fā)生變化;全局置換是指,如果進程在運行中發(fā)現(xiàn)缺頁,則將OS所保留的空閑物理塊或所有進程的全部物理塊選擇1快換出,然后再將缺頁調(diào)入。


實現(xiàn)LRU(least recently used,最近最久未使用)頁面置換算法所需要的硬件支持是什么?

答:需要寄存器和棧等硬件支持。寄存器用于記錄某進程再內(nèi)存中各頁的使用情況;棧用戶保存當前使用的各頁的頁面號。


什么是抖動?產(chǎn)生抖動的原因是什么?

答:

(1)抖動是指剛被換出的頁很快被訪問,必須重新調(diào)入,因此需要再選一頁調(diào)入,然后此時被換出的頁很快又被訪問,因而又必須將它調(diào)入,如此頻繁地更換頁面,使得系統(tǒng)把大部分時間用在了頁面地換進換出上,而幾乎不能完成任何有效地工作,我們稱這一現(xiàn)象為抖動。

(2)產(chǎn)生抖動地根本原因是同時再系統(tǒng)中運行地進程太多,分配給每個進程的物理塊太少,無法滿足進程運行的基本要求,只是每個進程再運行時出現(xiàn)頻繁缺頁。·


什么是工作集?它是基于什么原理而確定的?

答:

(1)工作集,又稱駐留集,是指再某段時間間隔內(nèi)進程實際要訪問的頁面集合。經(jīng)常使用的頁面需要存在于工作集中,而長期不使用的頁面則要從工作集中丟棄。

(2)工作集的確定原理:基于程序運行的局部性原理,程序運行期間對頁面的訪問會局限于很少的頁面之中,這些頁面被稱為活躍頁面,這些頁面的集合即為工作及。如果能預先將活躍頁面調(diào)入內(nèi)存,則將大大降低缺頁率。因此需要讓OS跟蹤每個進程的工作及,并為進程分配大于其工作集的物理塊。如果還有空閑物理塊,則可以再調(diào)入一個進程到內(nèi)存占用以此增加多道程序度。如果所有的工作集之和超過了可用物理塊的總數(shù),則OS會暫停一個進程,將其頁面調(diào)出并且將其物理塊分配給其他進程,以防止出現(xiàn)抖動現(xiàn)象。選擇正確工作集的大小,對存儲器利用率和系統(tǒng)吞吐量都有重要影響。


為了實現(xiàn)請求分段存儲管理,應在系統(tǒng)中增加配置哪些硬件機構(gòu)?

答:所需的硬件支持有:段表機制、缺頁中斷機構(gòu)以及地址轉(zhuǎn)換機構(gòu)。


第6章 零碎知識點

CLOCK算法選擇將最近未使用的頁面置換出去,因此又稱NRU算法。

無論采用什么頁面算法,每種頁面第一次訪問時不可能再內(nèi)存中,必然發(fā)生缺頁。

虛擬存儲器的最大容量是由計算機的地址結(jié)構(gòu)決定的,與主存容量和外存容量沒有必然的聯(lián)系,但是實際使用中,虛擬存儲器可以使得進程的可用內(nèi)存擴大到內(nèi)外存容量之和。

FIFO是隊列類算法,存在Belay現(xiàn)象,即進程的缺頁次數(shù)會隨著分配給該進程的頁框個數(shù)的增加而增加。

作業(yè)不多的情況下交換操作非常頻繁,說明物理內(nèi)存嚴重短缺。

增大內(nèi)存可使每個程序得到更多的頁框,能減少缺頁率,進而減少換入和換出過程,提高CPU的利用率。

缺頁中斷時,系統(tǒng)執(zhí)行的操作可能時置換頁面或分配內(nèi)存。這時不會出現(xiàn)越界錯誤,不會進行越界出錯處理。

固定分配是指進程運行的物理塊數(shù)目分配后保持不變,全局置換指內(nèi)存滿時每次換出一個物理塊,換進一個頁。所以固定分配和全局置換不可能搭配使用。

系統(tǒng)調(diào)用是由用戶進程發(fā)起的,請求操作系統(tǒng)的服務,如創(chuàng)建進程。其他的比如進程調(diào)度和缺頁處理都是完全由操作系統(tǒng)完成的,不涉及系統(tǒng)調(diào)用。

頁緩沖隊列是將被淘汰的頁面緩存下來,暫時不寫回磁盤,隊列長度會影響頁面置換的的速度,但不會影響缺頁率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容