操作系統(tǒng) 習(xí)題及答案 第五章 存儲(chǔ)管理_第1頁(yè)
操作系統(tǒng) 習(xí)題及答案 第五章 存儲(chǔ)管理_第2頁(yè)
操作系統(tǒng) 習(xí)題及答案 第五章 存儲(chǔ)管理_第3頁(yè)
操作系統(tǒng) 習(xí)題及答案 第五章 存儲(chǔ)管理_第4頁(yè)
操作系統(tǒng) 習(xí)題及答案 第五章 存儲(chǔ)管理_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第五章存儲(chǔ)管理習(xí)題1.存儲(chǔ)管理的主要功能有哪些?存儲(chǔ)管理的主要功能是管理內(nèi)存,協(xié)調(diào)內(nèi)存、外存的使用,主要功能包括:內(nèi)存管理方法、內(nèi)存的分配和釋放算法、虛擬存儲(chǔ)器的管理、控制內(nèi)存和外存之間的數(shù)據(jù)流動(dòng)方法、地址變換技術(shù)和內(nèi)存數(shù)據(jù)保護(hù)與共享技術(shù)等。2.解釋下列術(shù)語(yǔ):邏輯地址、絕對(duì)地址、地址重定位。邏輯地址:在多道程序設(shè)計(jì)的系統(tǒng)中,內(nèi)存中同時(shí)存放了多個(gè)用戶程序。操作系統(tǒng)根據(jù)內(nèi)存的使用情況為用戶分配內(nèi)存空間。因此,每個(gè)用戶不能預(yù)先知道他的程序?qū)⒈淮娣诺絻?nèi)存的什么位置。這樣,用戶程序中就不能使用內(nèi)存的絕對(duì)地址。為了方便用戶,每個(gè)用戶都可認(rèn)為自己的程序和數(shù)據(jù)存放在一塊“0”地址開(kāi)始的連續(xù)空間中。用戶程序中使用的地址稱為“邏輯地址”。絕對(duì)地址指硬件編址的地址,CPU能夠?qū)ぶ?,通常是?開(kāi)始連續(xù)的,也可以是不連續(xù)的:存儲(chǔ)器以字節(jié)(每個(gè)字節(jié)為8個(gè)二進(jìn)制位)為編址單位,假定存儲(chǔ)器的容量為n個(gè)字節(jié),其地址編號(hào)順序?yàn)?,1,2,…,n-1。這些地址稱為內(nèi)存的“絕對(duì)地址指硬件編址的地址,CPU能夠?qū)ぶ?,通常是?開(kāi)始連續(xù)的,也可以是不連續(xù)的地址重定位:把邏輯地址轉(zhuǎn)換成絕對(duì)地址3.在可變分區(qū)管理方式下,什么是“碎片”?如何解決“碎片”問(wèn)題?在可變分區(qū)管理方式下,內(nèi)存分配鏈表中有記錄,可以分配但區(qū)域很小的空閑空間稱為碎片。解決碎片問(wèn)題的辦法是在適當(dāng)時(shí)刻進(jìn)行碎片整理,通過(guò)移動(dòng)內(nèi)存中的進(jìn)程,把所有空閑碎片合并成一個(gè)連續(xù)的大空閑區(qū),這種方法稱之為“內(nèi)存緊縮”。4.采用緊縮技術(shù)有什么優(yōu)點(diǎn)?移動(dòng)一道程序時(shí)操作系統(tǒng)要做哪些工作?緊縮技術(shù)可以集中分散的空閑區(qū),提高內(nèi)存的利用率,便于動(dòng)態(tài)擴(kuò)充內(nèi)存。移動(dòng)一道程序時(shí)操作系統(tǒng)需要進(jìn)行數(shù)據(jù)塊移動(dòng),還要進(jìn)行地址重定位,修改內(nèi)存分配表和進(jìn)程控制塊。5.設(shè)在內(nèi)存中按地址遞增次序有三個(gè)不連續(xù)的空閑區(qū)F1、F2、F3,它們的容量分別是60K、130K、20K。請(qǐng)給出一個(gè)后備進(jìn)程序列,使得實(shí)施存儲(chǔ)分配時(shí)(1)采用最優(yōu)適應(yīng)算法將取得好的效果,而采用最壞適應(yīng)算法和最先適應(yīng)算法效果都不好;(2)采用最優(yōu)適應(yīng)算法效果不好,而采用最壞適應(yīng)算法和最先適應(yīng)算法都可取得好的效果;(3)采用最壞適應(yīng)算法將取得好的效果,而采用最先適應(yīng)算法和最優(yōu)適應(yīng)算法效果都不好;(4)采用這三種算法都可取得好效果;(5)采用這三種算法效果都不好。(1)20K,60K,130K(2)10K,50K,70K,60K,20K(3)50K,60K,20K,60K(4)10K,10個(gè)20K(5)50K,70K,50K,30K6.用可變分區(qū)方式管理內(nèi)存時(shí),假定內(nèi)存中按地址順序依次有五個(gè)空閑區(qū),空閑區(qū)的大小依次為32K,10K,5K,228K,100K。現(xiàn)有五個(gè)程序J1,J2,J3,J4和J5。它們各需內(nèi)存1K,10K,108K,28K和115K。若采用最先適應(yīng)分配算法能把這五個(gè)程序按J1~J5的次序全部裝入內(nèi)存嗎?你認(rèn)為按怎樣的次序裝入這五個(gè)程序可使內(nèi)存空間利用率最高。不能,最優(yōu)適應(yīng)算法7.解釋頁(yè)式存儲(chǔ)管理中為什么要設(shè)置頁(yè)表和TLB。頁(yè)式存儲(chǔ)管理中設(shè)置頁(yè)表和TLB的主要目的是加速地址轉(zhuǎn)換過(guò)程,并提高系統(tǒng)的性能和效率。頁(yè)表的作用是實(shí)現(xiàn)地址轉(zhuǎn)換,將邏輯地址轉(zhuǎn)換為物理地址,從而使程序能夠正常運(yùn)行。TLB是一種高速緩存,用于存儲(chǔ)最近使用的頁(yè)表項(xiàng),可以加快頁(yè)表的訪問(wèn)速度。設(shè)置頁(yè)表和TLB的好處包括:通過(guò)TLB的緩存機(jī)制可以避免每次訪問(wèn)內(nèi)存都需要訪問(wèn)主存中的頁(yè)表,從而提高了地址轉(zhuǎn)換的速度;減少了CPU訪問(wèn)內(nèi)存的延遲時(shí)間,使得系統(tǒng)的響應(yīng)速度更快,提高了整體的系統(tǒng)性能;通過(guò)修改頁(yè)表項(xiàng)或TLB的內(nèi)容,操作系統(tǒng)可以動(dòng)態(tài)地改變邏輯地址和物理地址之間的映射關(guān)系,從而實(shí)現(xiàn)靈活的存儲(chǔ)管理策略。8.設(shè)計(jì)一個(gè)頁(yè)表應(yīng)考慮哪些因素?設(shè)計(jì)一個(gè)頁(yè)表時(shí)需要考慮以下因素:①頁(yè)表大?。喉?yè)表的大小取決于系統(tǒng)的地址空間大小和頁(yè)面大小。需要確保頁(yè)表足夠大以容納所有可能的頁(yè)表項(xiàng),但又不能太大以至于消耗過(guò)多的內(nèi)存空間。②頁(yè)表項(xiàng)的結(jié)構(gòu):每個(gè)頁(yè)表項(xiàng)應(yīng)該包含哪些信息,例如物理頁(yè)框號(hào)、訪問(wèn)權(quán)限、臟位(用于標(biāo)記頁(yè)面是否被修改過(guò))、有效位(表示該頁(yè)是否有效)、其他控制位等。③頁(yè)表的組織方式:頁(yè)表可以使用單級(jí)結(jié)構(gòu)、多級(jí)結(jié)構(gòu)或者倒排頁(yè)表等方式組織。不同的組織方式會(huì)影響頁(yè)表的訪問(wèn)效率和空間利用率。④頁(yè)表的訪問(wèn)速度:需要考慮如何快速地查找頁(yè)表中的頁(yè)表項(xiàng)??梢酝ㄟ^(guò)使用TLB、多級(jí)頁(yè)表、哈希表等技術(shù)來(lái)提高頁(yè)表的訪問(wèn)速度。⑤頁(yè)面替換算法:如果內(nèi)存不足時(shí)需要進(jìn)行頁(yè)面替換,需要選擇合適的頁(yè)面替換算法,例如LRU(最近最少使用)、FIFO(先進(jìn)先出)、Clock等算法。⑥支持的特性:頁(yè)表是否支持虛擬內(nèi)存、內(nèi)存保護(hù)、共享內(nèi)存、寫(xiě)時(shí)復(fù)制等特性。⑦頁(yè)表的更新策略:頁(yè)表的更新策略包括頁(yè)面調(diào)入(頁(yè)面缺失時(shí)將頁(yè)面從磁盤(pán)調(diào)入內(nèi)存)、頁(yè)面替換(當(dāng)內(nèi)存不足時(shí)選擇哪些頁(yè)面進(jìn)行替換)、頁(yè)面寫(xiě)回(當(dāng)頁(yè)面被修改時(shí)將頁(yè)面寫(xiě)回磁盤(pán))等。⑧空閑頁(yè)框管理:需要考慮如何管理空閑的物理頁(yè)框,以便于在需要時(shí)分配給進(jìn)程使用。綜上所述,設(shè)計(jì)一個(gè)頁(yè)表需要考慮頁(yè)表大小、頁(yè)表項(xiàng)的結(jié)構(gòu)、頁(yè)表的組織方式、頁(yè)表的訪問(wèn)速度、頁(yè)面替換算法、支持的特性、頁(yè)表的更新策略以及空閑頁(yè)框管理等多個(gè)因素。9.請(qǐng)敘述頁(yè)式存儲(chǔ)管理中地址轉(zhuǎn)換的過(guò)程。頁(yè)式存儲(chǔ)管理中的地址轉(zhuǎn)換過(guò)程如下:①生成邏輯地址:當(dāng)程序需要訪問(wèn)內(nèi)存中的數(shù)據(jù)時(shí),CPU會(huì)生成一個(gè)邏輯地址。邏輯地址由兩部分組成:頁(yè)號(hào)(PageNumber)和頁(yè)內(nèi)偏移量(Offset)。頁(yè)號(hào)指示所需數(shù)據(jù)所在的頁(yè),頁(yè)內(nèi)偏移量指示數(shù)據(jù)在頁(yè)內(nèi)的具體位置。②TLB查找:CPU首先會(huì)在TLB中查找邏輯地址對(duì)應(yīng)的頁(yè)表項(xiàng)。如果在TLB中找到了對(duì)應(yīng)的頁(yè)表項(xiàng),則說(shuō)明該頁(yè)表項(xiàng)已經(jīng)緩存了最近的地址映射信息,CPU可以直接使用TLB中存儲(chǔ)的物理地址頁(yè)框號(hào),完成物理地址轉(zhuǎn)換。③TLB未命中:如果在TLB中未找到對(duì)應(yīng)的頁(yè)表項(xiàng)(TLB未命中),則需要訪問(wèn)頁(yè)表。CPU將邏輯地址的頁(yè)號(hào)發(fā)送給內(nèi)存管理單元(MMU),MMU將該頁(yè)號(hào)發(fā)送給內(nèi)存中的頁(yè)表。④頁(yè)表查找:內(nèi)存中的頁(yè)表是操作系統(tǒng)維護(hù)的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)邏輯頁(yè)號(hào)到物理頁(yè)框號(hào)的映射關(guān)系。根據(jù)邏輯頁(yè)號(hào)在頁(yè)表中查找對(duì)應(yīng)的頁(yè)表項(xiàng)。如果找到了,就得到了對(duì)應(yīng)的物理頁(yè)框號(hào)。⑤生成物理地址:根據(jù)頁(yè)表項(xiàng)中存儲(chǔ)的物理頁(yè)框號(hào)和邏輯地址中的頁(yè)內(nèi)偏移量,CPU可以計(jì)算出所需數(shù)據(jù)在物理內(nèi)存中的確切地址。物理地址由兩部分組成:物理頁(yè)框號(hào)和頁(yè)內(nèi)偏移量。物理頁(yè)框號(hào)指示數(shù)據(jù)所在的物理頁(yè)框,頁(yè)內(nèi)偏移量指示數(shù)據(jù)在頁(yè)內(nèi)的具體位置。10.某采用頁(yè)式存儲(chǔ)管理的系統(tǒng)地址結(jié)構(gòu)長(zhǎng)度為16位,頁(yè)面大小為210。當(dāng)前進(jìn)程的頁(yè)表如下:0618210312414519圖5-22習(xí)題10圖假設(shè)虛擬地址為0000110010101100,試畫(huà)出地址轉(zhuǎn)換圖并計(jì)算相應(yīng)的物理地址。物理地址:001100001010110011.考慮一個(gè)使用單級(jí)頁(yè)表的分頁(yè)系統(tǒng)。假設(shè)所需的頁(yè)表總在內(nèi)存中。(1)如果一次物理內(nèi)存訪問(wèn)耗時(shí)200ns,那么一次邏輯內(nèi)存訪問(wèn)耗時(shí)多少?400ns200ns×2(2)現(xiàn)添加一個(gè)MMU,對(duì)每次命中或缺頁(yè)MMU造成20ns開(kāi)銷。假設(shè)85%的內(nèi)存訪問(wèn)都命中MMUTLB。有效訪問(wèn)時(shí)間(EMAT)是多少?250ns20ns×100%+200ns×0.15+200ns(3)解釋TLB命中率是如何影響EMAT的。TLB命中率越高,表示越多的邏輯地址轉(zhuǎn)換可以直接通過(guò)TLB完成,減少了訪問(wèn)頁(yè)表的需要,從而減少了內(nèi)存訪問(wèn)次數(shù)和總體訪問(wèn)時(shí)間。相反,TLB命中率低意味著更多的地址轉(zhuǎn)換需要訪問(wèn)頁(yè)表,增加了內(nèi)存訪問(wèn)次數(shù)和總體訪問(wèn)時(shí)間,從而增加了EMAT。假設(shè)頁(yè)面大小為4KB,頁(yè)表項(xiàng)大小4B。要映射64位的地址空間,如果頂級(jí)頁(yè)表能在一頁(yè)中存儲(chǔ),需要多少級(jí)頁(yè)表?畫(huà)出地址轉(zhuǎn)換圖,并詳細(xì)描述從虛擬地址到物理地址的轉(zhuǎn)換過(guò)程。對(duì)于一個(gè)64位地址空間,如果頁(yè)面大小為4KB(即2^12字節(jié)),頁(yè)表項(xiàng)大小為4B,則每個(gè)頁(yè)面可以存儲(chǔ)2^12/2^2=2^10(也就是1024)個(gè)頁(yè)表項(xiàng)。每個(gè)頁(yè)表項(xiàng)對(duì)應(yīng)一個(gè)頁(yè)面,所以一個(gè)單級(jí)頁(yè)表可以映射2^10×2^12字節(jié)(即4MB)的地址不是地址空間,是次級(jí)頁(yè)表個(gè)數(shù)這個(gè)題有點(diǎn)問(wèn)題,64不是地址空間,是次級(jí)頁(yè)表個(gè)數(shù)這個(gè)題有點(diǎn)問(wèn)題,64位系統(tǒng),頁(yè)表項(xiàng)4B是不足的,次級(jí)頁(yè)表只能存放在內(nèi)存低段,且最末級(jí)頁(yè)表項(xiàng)4B不夠計(jì)算所需的頁(yè)表級(jí)數(shù):要映射整個(gè)64位地址空間,我們需要確定足夠的頁(yè)表級(jí)數(shù)n以便滿足以下條件:(2^10)^n×2^12≥2^64。我們之前已經(jīng)計(jì)算過(guò)這個(gè)問(wèn)題,得出所需的頁(yè)表級(jí)數(shù)為6級(jí)。地址轉(zhuǎn)換圖:對(duì)于具有6級(jí)頁(yè)表的地址轉(zhuǎn)換,64位虛擬地址被分為7部分:6個(gè)部分用于頁(yè)表級(jí)別的索引(每部分10位),最后部分用于頁(yè)內(nèi)偏移(12位)。虛擬地址的最高10位用于索引頂級(jí)頁(yè)表,接下來(lái)的10位用于索引第二級(jí)頁(yè)表,隨后的10位用于索引第三級(jí)頁(yè)表,以此類推,第51~60位用于索引第六級(jí)頁(yè)表。虛擬地址的最低12位表示頁(yè)內(nèi)偏移,這部分在所有級(jí)別的頁(yè)表中是相同的,用于在找到的物理頁(yè)面中定位具體的數(shù)據(jù)。虛擬地址到物理地址的轉(zhuǎn)換過(guò)程:使用虛擬地址的最高10位在頂級(jí)頁(yè)表中找到第二級(jí)頁(yè)表的地址。使用虛擬地址的接下來(lái)的10位在第二級(jí)頁(yè)表中找到第三級(jí)頁(yè)表的地址。這個(gè)過(guò)程一直繼續(xù),直到第六級(jí)頁(yè)表。在第六級(jí)頁(yè)表中,使用虛擬地址的倒數(shù)第二個(gè)10位段找到物理頁(yè)框號(hào)。最后,將物理頁(yè)框號(hào)與虛擬地址的最后12位(頁(yè)內(nèi)偏移)結(jié)合,形成完整的物理地址。13.考慮一個(gè)分頁(yè)式的虛擬地址空間(由32個(gè)2KB的頁(yè)組成),將它映射到一個(gè)1MB的物理內(nèi)存空間。(1)該處理器的虛擬地址格式是什么?虛擬地址由5位的頁(yè)號(hào)和11位的頁(yè)內(nèi)地址組成(2)頁(yè)表的長(zhǎng)度和寬度是多少?(忽略“訪問(wèn)權(quán)限”位)頁(yè)表長(zhǎng)度為32,寬度為9(3)若物理內(nèi)存空間減少一半,則會(huì)對(duì)頁(yè)表有何影響?物理地址空間大小減半:由于物理內(nèi)存空間減少到512KB,即2^19字節(jié),所以物理地址空間的大小變?yōu)榱?9位。每個(gè)頁(yè)表項(xiàng)寬度變化:每個(gè)頁(yè)表項(xiàng)仍然需要能夠表示物理地址的偏移量,這個(gè)偏移量需要19-11=8位,因?yàn)轫?yè)面大小仍然是2KB。頁(yè)表長(zhǎng)度不變:虛擬地址空間大小并未改變,因此虛擬地址空間仍然需要32個(gè)頁(yè)表項(xiàng)。14.頁(yè)式存儲(chǔ)管理系統(tǒng)中程序的地址空間是一維的還是二維的?請(qǐng)說(shuō)明理由?!??】頁(yè)式是一維的。理由:在頁(yè)式存儲(chǔ)管理中,程序的地址空間被劃分為固定大小的頁(yè),同時(shí)物理內(nèi)存也被劃分為相同大小的物理頁(yè)框。程序的邏輯地址由頁(yè)號(hào)(PageNumber)和頁(yè)內(nèi)偏移量(Offset)組成,頁(yè)號(hào)用于指示程序中的哪一頁(yè),頁(yè)內(nèi)偏移量用于指示頁(yè)內(nèi)的具體位置。當(dāng)程序訪問(wèn)內(nèi)存時(shí),操作系統(tǒng)將頁(yè)號(hào)映射到物理內(nèi)存中相應(yīng)的頁(yè)框上,然后使用頁(yè)內(nèi)偏移量來(lái)確定具體的地址。由于頁(yè)式存儲(chǔ)管理系統(tǒng)中,頁(yè)號(hào)對(duì)應(yīng)于物理內(nèi)存中的頁(yè)框號(hào),因此程序的地址空間在邏輯上是一維的,即通過(guò)頁(yè)號(hào)和頁(yè)內(nèi)偏移量來(lái)唯一確定內(nèi)存中的地址。15.FIFO和時(shí)鐘頁(yè)面置換算法有何聯(lián)系?時(shí)鐘頁(yè)面置換算法是對(duì)FIFO算法的改進(jìn),它引入了一個(gè)“時(shí)鐘指針”,并根據(jù)頁(yè)面的訪問(wèn)情況來(lái)決定是否置換頁(yè)面。當(dāng)需要進(jìn)行頁(yè)面置換時(shí),時(shí)鐘算法檢查指針?biāo)赶虻捻?yè)面是否被訪問(wèn)過(guò)。如果該頁(yè)面已經(jīng)被訪問(wèn)過(guò),就將其訪問(wèn)位清零,并將指針指向下一個(gè)頁(yè)面;如果該頁(yè)面未被訪問(wèn)過(guò),則選擇該頁(yè)面進(jìn)行替換,并將指針指向下一個(gè)頁(yè)面。這樣時(shí)鐘算法能夠更好地反映頁(yè)面的實(shí)際使用情況,從而減少"“Belady異常"”的發(fā)生。16.簡(jiǎn)述什么是覆蓋技術(shù),什么是交換技術(shù)?它們之間的區(qū)別是什么?覆蓋技術(shù):是指把程序劃分為若干個(gè)功能上相對(duì)獨(dú)立的程序段,按照其自身的邏輯結(jié)構(gòu)使那些不會(huì)同時(shí)執(zhí)行的程序段共享同一塊內(nèi)存區(qū)域,未執(zhí)行的程序段先保存在磁盤(pán)上,當(dāng)有關(guān)程序段的前一部分執(zhí)行結(jié)束后,把后續(xù)程序段調(diào)入內(nèi)存,覆蓋前面的程序段。覆蓋技術(shù)可以完全由用戶實(shí)現(xiàn),也可以由編譯程序提供支持。交換技術(shù):由操作系統(tǒng)控制,將那些不在運(yùn)行中的進(jìn)程或其一部分調(diào)出內(nèi)存,暫時(shí)存放在外存上的磁盤(pán)交換區(qū)中,以騰出內(nèi)存空間給現(xiàn)在需要內(nèi)存空間的進(jìn)程,后者可能需要從外存換入內(nèi)存,以后再將換出的進(jìn)程調(diào)入內(nèi)存繼續(xù)執(zhí)行。主要區(qū)別:①內(nèi)存管理的粒度和方式:覆蓋技術(shù)是基于模塊或段的內(nèi)存管理方式,而交換技術(shù)是基于進(jìn)程的內(nèi)存管理方式。②覆蓋技術(shù)通常用于解決單一連續(xù)分配內(nèi)存管理方式下的內(nèi)存不足問(wèn)題,而交換技術(shù)通常用于解決分頁(yè)式和分段式內(nèi)存管理方式下的內(nèi)存不足問(wèn)題。17.何謂程序局部性原理,請(qǐng)舉出三個(gè)例子。程序局部性原理是指在計(jì)算機(jī)程序執(zhí)行過(guò)程中,訪問(wèn)數(shù)據(jù)和指令的趨勢(shì)會(huì)表現(xiàn)出一定的集中性,即在一段時(shí)間內(nèi),程序傾向于重復(fù)訪問(wèn)相同的數(shù)據(jù)或者執(zhí)行相鄰的指令。舉例:①時(shí)間局部性:指程序在一段時(shí)間內(nèi)對(duì)同一數(shù)據(jù)的反復(fù)訪問(wèn)。例如循環(huán)結(jié)構(gòu)中的變量,每次迭代都會(huì)重復(fù)使用,因此具有時(shí)間局部性。②空間局部性:指程序在一段時(shí)間內(nèi)對(duì)相鄰內(nèi)存地址中的數(shù)據(jù)進(jìn)行訪問(wèn)。例如數(shù)組或者矩陣的訪問(wèn)。③緩存局部性:指程序訪問(wèn)的數(shù)據(jù)往往會(huì)被緩存在高速緩存中,從而提高數(shù)據(jù)的訪問(wèn)速度。例如,如果一個(gè)循環(huán)中的數(shù)據(jù)可以被緩存到CPU的緩存中,那么循環(huán)的執(zhí)行速度將會(huì)更快。18.虛擬存儲(chǔ)器是什么?為什么要引入虛擬存儲(chǔ)器?虛擬存儲(chǔ)器是一種計(jì)算機(jī)內(nèi)存管理技術(shù),它通過(guò)將部分存儲(chǔ)器內(nèi)容暫時(shí)保存在磁盤(pán)上,以擴(kuò)展可用的物理內(nèi)存空間。這種技術(shù)使得程序能夠使用比物理內(nèi)存更大的地址空間。虛擬存儲(chǔ)器的主要目標(biāo)是允許程序在有限的物理內(nèi)存下運(yùn)行,同時(shí)提供了以下幾個(gè)優(yōu)點(diǎn):第一,更大的地址空間。虛擬存儲(chǔ)器使得每個(gè)進(jìn)程擁有一個(gè)巨大的地址空間,遠(yuǎn)遠(yuǎn)大于實(shí)際的物理內(nèi)存大小。這樣,即使物理內(nèi)存有限,也能夠運(yùn)行大型程序。第二,更好的內(nèi)存管理。虛擬存儲(chǔ)器提供了更靈活的內(nèi)存管理機(jī)制,使得操作系統(tǒng)能夠更好地管理內(nèi)存,包括內(nèi)存分配、回收和保護(hù)等方面。第三,更高的性能。虛擬存儲(chǔ)器通過(guò)將不常用的數(shù)據(jù)暫時(shí)存儲(chǔ)在磁盤(pán)上,釋放物理內(nèi)存空間供其他程序使用,從而提高了系統(tǒng)的整體性能。19.?dāng)⑹鎏摂M頁(yè)式存儲(chǔ)管理方案的基本思想。為了實(shí)現(xiàn)虛擬頁(yè)式存儲(chǔ)管理,系統(tǒng)必須提供的硬件支持有哪些?虛擬存儲(chǔ)技術(shù)的基本思想是利用大容量的外存來(lái)擴(kuò)充內(nèi)存,產(chǎn)生一個(gè)比有限的實(shí)際內(nèi)存空間大得多的、邏輯的虛擬內(nèi)存空間,簡(jiǎn)稱虛存,以便能夠有效地支持多道程序系統(tǒng)的實(shí)現(xiàn)和大型程序運(yùn)行的需要,從而增強(qiáng)系統(tǒng)的處理能力。虛擬存儲(chǔ)管理是由操作系統(tǒng)在硬件支持下把兩級(jí)存儲(chǔ)器(內(nèi)存和外存)統(tǒng)一實(shí)施管理,達(dá)到“擴(kuò)充”內(nèi)存的目的,呈現(xiàn)給用戶的是一個(gè)遠(yuǎn)遠(yuǎn)大于物理內(nèi)存容量的編程空間,即虛存。程序、數(shù)據(jù)、堆棧的大小可以超過(guò)物理內(nèi)存的大小,操作系統(tǒng)把程序當(dāng)前使用的部分保留在物理內(nèi)存,而把其他部分保存在磁盤(pán)上,并在需要時(shí)在內(nèi)存和磁盤(pán)之間動(dòng)態(tài)交換。虛擬存儲(chǔ)管理支持多道程序設(shè)計(jì)技術(shù)。實(shí)現(xiàn)虛擬存儲(chǔ)器需要以下的硬件支持:①系統(tǒng)有容量足夠大的外存;②系統(tǒng)有一定容量的內(nèi)存;③硬件提供實(shí)現(xiàn)虛-實(shí)地址映射的機(jī)制。20.某采用頁(yè)式虛擬存儲(chǔ)管理的系統(tǒng),接收了一個(gè)共7頁(yè)的程序,程序執(zhí)行時(shí)依次訪問(wèn)的頁(yè)為1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少用(LRU)調(diào)度算法,程序在得到兩塊內(nèi)存空間和四塊內(nèi)存空間時(shí)各會(huì)產(chǎn)生多少次缺頁(yè)異常?如果采用先進(jìn)先出(FIFO)調(diào)度算法又會(huì)有怎樣的結(jié)果?采用LRU:2塊內(nèi)存空間:18次;4塊內(nèi)存空間:10次1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6#,1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3x,x,x,x,x,x,x,x,x,x,o,x,x,x,x,x,x,o,x,x1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6#,1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3#,#,1,2,3,4,2,1,5,6,6,1,2,3,7,6,3,3,1,2#,#,#,1,1,3,4,2,1,5,5,6,1,2,2,7,6,6,6,1x,x,x,x,o,o,x,x,o,o,o,x,x,x,o,o,x,o,o,o采用FIFO:2塊內(nèi)存空間:18次;4塊內(nèi)存空間:14次1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,1,3,7,6,3,2,1,1,3,6#,1,2,3,4,2,1,5,6,2,2,1,3,7,6,3,2,2,1,3x,x,x,x,x,x,x,x,x,x,o,x,x,x,x,x,x,o,x,x1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,4,4,5,6,2,1,1,3,7,6,6,2,1,1,3,3#,1,2,3,3,3,4,5,6,2,2,1,3,7,7,6,2,2,1,1#,#,1,2,2,2,3,4,5,6,6,2,1,3,3,7,6,6,2,2#,#,#,1,1,1,2,3,4,5,5,6,2,1,1,3,7,7,6,6x,x,x,x,o,o,x,x,x,x,o,x,x,x,o,x,x,o,x,o21.有一個(gè)虛擬存儲(chǔ)系統(tǒng)。分配給某進(jìn)程3頁(yè)內(nèi)存,開(kāi)始時(shí)內(nèi)存為空,頁(yè)面訪問(wèn)序列如下:6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5(1)若采用先進(jìn)先出頁(yè)面置換算法(FIFO),缺頁(yè)次數(shù)為多少?176,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6#,#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x(2)若采用最近最少使用頁(yè)面置換算法(LRU),缺頁(yè)次數(shù)為多少?176,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6#,#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x(3)若采用理想頁(yè)面置換算法呢?126,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,5,5,6,5,5,5,5,5,5,5#,6,5,4,3,3,3,3,3,3,3,3,3,2,2,6,6#,#,6,5,4,4,4,4,4,4,4,4,4,4,1,2,2x,x,x,x,x,x,x,o,o,x,x,o,o,x,x,x,o22.有一個(gè)虛擬存儲(chǔ)系統(tǒng)采用最近最少使用(LRU)頁(yè)面置換算法,每個(gè)程序占3頁(yè)內(nèi)存,其中一頁(yè)用來(lái)存放程序和變量i,j(不作他用)。每一頁(yè)可存放150個(gè)整數(shù)變量。程序A和程序B如下: 程序A: VARC:ARRAY[1..150,1..100]OFinteger; i,j:integer; FORi:=1to150DO FORj:=1to100DO C[i,j]:=0;程序B: VARC:ARRAY[1..150,1..100]OFinteger; i,j:integer; FORj:=1to100DO FORi:=1to150DO C[i,j]:=0; 設(shè)變量i,j放在程序頁(yè)中,初始時(shí),程序及變量i,j已在內(nèi)存,其余兩頁(yè)為空。矩陣C按行序存放。(1)試問(wèn)當(dāng)程序A和程序B執(zhí)行完后,分別缺頁(yè)多少次?程序A執(zhí)行完后,缺頁(yè)50次。程序B執(zhí)行完后,缺頁(yè)5000次。(2)最后留在內(nèi)存中的各是矩陣C的哪一部分?程序A、B執(zhí)行完后,留在內(nèi)存中的是C的最后三行;23.什么是異?,F(xiàn)象(或稱Belady現(xiàn)象)?你能找出一個(gè)異?,F(xiàn)象的例子嗎?例子:某程序在內(nèi)存中分配m頁(yè),初始為空,頁(yè)面走向?yàn)?,2,3,4,1,2,5,1,2,3,4,5,采用FIFO算法替換策略,通過(guò)計(jì)算得到當(dāng)m=3時(shí),缺頁(yè)異常9次;m=4時(shí),缺頁(yè)異常10次。在這個(gè)例子中,當(dāng)分配給進(jìn)程的物理頁(yè)面數(shù)增加時(shí),缺頁(yè)次數(shù)不僅不減少,反而增加。這一現(xiàn)象稱為異?,F(xiàn)象(Belady異常現(xiàn)象),而FIFO頁(yè)面置換算法會(huì)產(chǎn)生這一異常現(xiàn)象。24.虛擬頁(yè)式存儲(chǔ)管理中,頁(yè)面置換算法所花的時(shí)間屬于系統(tǒng)開(kāi)銷,這種說(shuō)法對(duì)嗎?【?】這種說(shuō)法是對(duì)的,在虛擬頁(yè)式存儲(chǔ)管理系統(tǒng)中,頁(yè)面置換算法的執(zhí)行屬于系統(tǒng)開(kāi)銷的一部分。(書(shū)上暫時(shí)沒(méi)找到相關(guān)內(nèi)容)25.缺頁(yè)異常的處理過(guò)程是軟硬件配合完成的,請(qǐng)敘述缺頁(yè)異常處理過(guò)程。整個(gè)缺頁(yè)異常處理過(guò)程簡(jiǎn)單闡述如下:1)根據(jù)當(dāng)前執(zhí)行指令中的邏輯地址查頁(yè)表的有效位,判斷該頁(yè)是否在內(nèi)存。2)該頁(yè)標(biāo)志為“0”,形成缺頁(yè)異常。保留現(xiàn)場(chǎng)。中斷裝置通過(guò)交換PSW讓操作系統(tǒng)的缺頁(yè)中斷處理程序占用處理器。3)操作系統(tǒng)處理缺頁(yè)異常,尋找一個(gè)空閑的物理頁(yè)面。4)若有空閑頁(yè),則把磁盤(pán)上讀出的信息裝入該頁(yè)面中。5)修改頁(yè)表及內(nèi)存分配表,表示該頁(yè)已在內(nèi)存。6)如果內(nèi)存中無(wú)空閑頁(yè),則按某種算法選擇一個(gè)已在內(nèi)存的頁(yè)面,把它暫時(shí)調(diào)出內(nèi)存。若在執(zhí)行中該頁(yè)面已被修改過(guò),則要把該頁(yè)信息重新寫(xiě)回到磁盤(pán)上(否則不必重新寫(xiě)回磁盤(pán))。當(dāng)一頁(yè)被暫時(shí)調(diào)出內(nèi)存后,讓出的內(nèi)存空間用來(lái)存放當(dāng)前需要使用的頁(yè)面。頁(yè)面被調(diào)出或裝入之后都要對(duì)頁(yè)表及內(nèi)存分配表作修改。7)恢復(fù)現(xiàn)場(chǎng),重新執(zhí)行被中斷的指令。當(dāng)重新執(zhí)行該指令時(shí),由于要訪問(wèn)的頁(yè)面已被裝入內(nèi)存,所以可正常執(zhí)行下去。26.試述缺頁(yè)與一般中斷的主要區(qū)別。處理缺頁(yè)的主要目的是將缺失的頁(yè)面從外部存儲(chǔ)加載到物理內(nèi)存中,然后恢復(fù)程序的執(zhí)行。處理一般中斷的目的是響應(yīng)和處理中斷請(qǐng)求,完成請(qǐng)求后再繼續(xù)之前被中斷的任務(wù)。此外,缺頁(yè)異常引起的中斷與普通中斷不同,它可以在指令中間發(fā)生,而普通中斷只能在指令之間發(fā)生。27.何謂系統(tǒng)的“顛簸”現(xiàn)象?為什么會(huì)出現(xiàn)這一現(xiàn)象?當(dāng)系統(tǒng)發(fā)生“顛簸”時(shí),應(yīng)該采取什么措施來(lái)加以克服?如果頁(yè)面置換算法設(shè)計(jì)不當(dāng),導(dǎo)致剛被調(diào)出的頁(yè)面又立即要用,因而又要把它裝入,而裝入不久又被選中調(diào)出,調(diào)出不久又被裝入,如此反復(fù),使調(diào)度非常頻繁。這種現(xiàn)象稱為“抖動(dòng)”或稱“顛簸”。所以選擇不常使用的頁(yè)面置換出去會(huì)使系統(tǒng)性能好得多。措施:減少并發(fā)進(jìn)程數(shù)量;增加可用內(nèi)存容量;改變頁(yè)面置換算法。28.什么是工作集?它的作用是什么?顛簸是由缺頁(yè)率高引起的,對(duì)于給定的進(jìn)程訪頁(yè)序列,在時(shí)刻(t-Δ)到時(shí)刻t之間所訪問(wèn)頁(yè)面的集合,稱為該進(jìn)程的工作集。操作系統(tǒng)采用工作集模型,為每個(gè)進(jìn)程保持一個(gè)工作集,通過(guò)動(dòng)態(tài)調(diào)整,使該進(jìn)程獲得與工作集相等的物理頁(yè)面數(shù),可以解決顛簸問(wèn)題。29.比較各種存儲(chǔ)管理方式的特征(包括內(nèi)存空間的分配方式、是否要有硬件的地址轉(zhuǎn)換機(jī)構(gòu)作支撐、適合單道或多道系統(tǒng)等)、重定位方式、地址轉(zhuǎn)換的實(shí)現(xiàn)(操作系統(tǒng)和硬件怎樣配合)、存儲(chǔ)保護(hù)的實(shí)現(xiàn)(操作系統(tǒng)和硬件各自做些什么工作)。【?】?jī)?nèi)存空間的分配方式:連續(xù)內(nèi)存分配:將內(nèi)存空間分為若干連續(xù)的區(qū)域,每個(gè)區(qū)域可以被分配給一個(gè)進(jìn)程。主要有單一連續(xù)分配和多道連續(xù)分配兩種方式。非連續(xù)內(nèi)存

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論