計(jì)算機(jī)操作系統(tǒng)第四章作業(yè)詳細(xì)版_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章作業(yè)詳細(xì)版_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章作業(yè)詳細(xì)版_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章作業(yè)詳細(xì)版_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章作業(yè)詳細(xì)版_第5頁(yè)
已閱讀5頁(yè),還剩1頁(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)介

1、1.為什么要配置層次式存儲(chǔ)器?在計(jì)算機(jī)執(zhí)行時(shí),幾乎每一條指令都涉及對(duì)存儲(chǔ)器的訪問(wèn),因此要求對(duì)存儲(chǔ)器的訪問(wèn)速度能跟得上處理機(jī)的運(yùn)行速度?;蛘哒f(shuō),存儲(chǔ)器的速度必須非常快,能與處理機(jī)的速度相匹配,否則會(huì)明顯的影響到處理機(jī)的運(yùn)行。此外還要求存儲(chǔ)器具有非常大的容量,而且存儲(chǔ)器的價(jià)格還應(yīng)很便宜。對(duì)于這樣十分嚴(yán)格的三個(gè)條件,目前是無(wú)法同時(shí)滿足的。于是正在現(xiàn)代計(jì)算機(jī)系統(tǒng)中都無(wú)一例外的采用了多層結(jié)構(gòu)的存儲(chǔ)器系統(tǒng)。2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場(chǎng)合?(1)絕對(duì)裝入方式當(dāng)計(jì)算機(jī)系統(tǒng)很小,且僅能運(yùn)行單道程序時(shí),完全有可能知道程序?qū)Ⅰv留在內(nèi)存的什么位置。此時(shí)可以采用絕對(duì)裝入方式。用戶程序編譯后,

2、將產(chǎn)生絕對(duì)地址的目標(biāo)代碼。(2)可重定位裝入方式絕對(duì)裝入方式只能將目標(biāo)模塊裝入到內(nèi)存中事先指定的位置,這只適用于單道程序環(huán)境。而在多道程序環(huán)境下,編譯程序不可能預(yù)知經(jīng)編譯后所得到的目標(biāo)模塊應(yīng)放在內(nèi)存的何處。因此,對(duì)于用戶程序編譯所形成的若干個(gè)目標(biāo)模塊,它們的起始地址通常都是從0開(kāi)始的,程序中的其他地址也都是想對(duì)于起始地址計(jì)算的。此時(shí),不可能再采用絕對(duì)裝入方式,而應(yīng)采用可重定位裝入方式,他可以根據(jù)內(nèi)存的具體情況將裝入模塊裝入到內(nèi)存的適當(dāng)位置。(3)動(dòng)態(tài)運(yùn)行時(shí)的裝入方式可重定位裝入方式可將裝入模塊裝入到內(nèi)存中任何允許的位置,故可用于多道程序環(huán)境,但該方式并不允許程序運(yùn)行時(shí)在內(nèi)存中移動(dòng)位置。因?yàn)椋?/p>

3、序在內(nèi)存中的移動(dòng),意味著它的物理位置發(fā)生了變化,這時(shí)必須對(duì)程序和數(shù)據(jù)的地址(絕對(duì)地址)進(jìn)行修改后方能運(yùn)行。然而,實(shí)際情況是,在運(yùn)行過(guò)程中他在內(nèi)存中的位置肯能經(jīng)常要改變。動(dòng)態(tài)運(yùn)行時(shí)的裝入程序在把裝入模塊裝入內(nèi)存后,并不立即把裝入模塊中的邏輯地址轉(zhuǎn)換為物理地址,而是把這種地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時(shí)才進(jìn)行。因此,裝入內(nèi)存后的所有地址都仍然是邏輯地址。3.何謂靜態(tài)?靜態(tài)時(shí)需要解決兩個(gè)什么問(wèn)題?在程序運(yùn)行之前,先將各目標(biāo)模塊及他們所需的庫(kù)函數(shù)成一個(gè)完整的裝配模塊,以后不再拆開(kāi),我們把這種事先進(jìn)行的方式稱為靜態(tài)方式。需要解決的兩個(gè)問(wèn)題是:對(duì)相對(duì)地址進(jìn)行修改。變換外部調(diào)用符號(hào)。4.何謂裝入時(shí)動(dòng)態(tài)?裝入時(shí)

4、動(dòng)態(tài)方式有何優(yōu)點(diǎn)?這是指將用戶源程序編譯后所得到的一組目標(biāo)模塊,再裝入內(nèi)存時(shí),采用邊裝入邊的鏈接方式。即在裝入一個(gè)目標(biāo)模塊時(shí),若發(fā)生一個(gè)外部模塊調(diào)用事件,將引起裝入程序去找出對(duì)應(yīng)的外部目標(biāo)模塊,并將它裝入內(nèi)存。裝入時(shí)動(dòng)態(tài)方式有以下優(yōu)點(diǎn):便于修改和更新。采用動(dòng)態(tài)方式,由于各目標(biāo)模塊是分開(kāi)存放的,所以要修改或更新個(gè)目標(biāo)模塊是件非常容易的事。便于實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享。再采用靜態(tài)方式時(shí),每個(gè)應(yīng)用模塊都必須含有其目標(biāo)模塊的拷貝,無(wú)法實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享。但采用裝入時(shí)動(dòng)態(tài)方式時(shí),OS就很容易將一個(gè)目標(biāo)模塊到幾個(gè)應(yīng)用模塊上,實(shí)現(xiàn)多個(gè)應(yīng)用程序?qū)υ撃K的共享。5.何謂運(yùn)行時(shí)動(dòng)態(tài)?運(yùn)行時(shí)動(dòng)態(tài)有何優(yōu)點(diǎn)?在許多情況下

5、,應(yīng)用程序在運(yùn)行時(shí),每次要運(yùn)行的模塊可能都是不相同的。但由于事先無(wú)法知道本次要運(yùn)行哪些模塊,故只能是將所有可能要運(yùn)行到的模塊全部都裝入內(nèi)存,并在裝入時(shí)全部在一起,顯然這是低效的,因?yàn)橥鶗?huì)有部分目標(biāo)模塊根本就不運(yùn)行。近幾年流行起來(lái)的運(yùn)行時(shí)動(dòng)態(tài)方式,是對(duì)上述裝入時(shí)方式的一種改進(jìn)。這種方式是,將對(duì)某些模塊的推遲到程序執(zhí)行時(shí)才進(jìn)行。亦即,在執(zhí)行過(guò)程中,當(dāng)發(fā)現(xiàn)一個(gè)被調(diào)用模塊尚未裝入內(nèi)存時(shí),立刻由OS去找到該模塊,將之裝入內(nèi)存,將其到調(diào)用者模塊上,這樣不僅能加快程序的裝入過(guò)程,而且可節(jié)省大量的內(nèi)存空間。6.在動(dòng)態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)成空閑分區(qū)鏈?為了實(shí)現(xiàn)對(duì)空閑分區(qū)的分配和,在每個(gè)分區(qū)的起始

6、部分設(shè)置一些用于控制分區(qū)分配的信息,以及用于各分區(qū)所用的前向指針,在分區(qū)尾部則設(shè)置一后向指針。通過(guò)前、后向指針,可將所有的空閑分區(qū)成一個(gè)雙向鏈。為了檢索方便,在分區(qū)尾部重復(fù)設(shè)置狀態(tài)位和分區(qū)大小表目。當(dāng)分區(qū)被分配出去以后,把狀態(tài)位由“0”改為“1”,此時(shí),前、后向指針已無(wú)意義。7.為什么要引入動(dòng)態(tài)重定位?如何實(shí)現(xiàn)?在動(dòng)態(tài)運(yùn)行時(shí)裝入的方式中,作業(yè)裝入內(nèi)存后的所有地址仍然都是相對(duì)(邏輯)地址。而將相對(duì)地址轉(zhuǎn)換為絕對(duì)(物理)地址的工作被推遲到程序指令要真正執(zhí)行時(shí)進(jìn)行。為使地址的轉(zhuǎn)換不會(huì)影響到指令的執(zhí)行速度,必須有硬件地址變換機(jī)構(gòu)的支持,即須在系統(tǒng)中增設(shè)一個(gè)重定位寄存器,用它來(lái)存放數(shù)據(jù)在內(nèi)存中的起始地址

7、。程序在執(zhí)行時(shí),真正訪問(wèn)的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相加而形成的。地址變換過(guò)程是在程序執(zhí)行期間,隨著對(duì)每條指令或數(shù)據(jù)的訪問(wèn)自動(dòng)進(jìn)行的,故稱為動(dòng)態(tài)重定位。當(dāng)系統(tǒng)對(duì)內(nèi)存進(jìn)行了“緊湊”,而使若干程序從內(nèi)存的某處移至另一處時(shí),不需對(duì)程序做任何修改,只要用該程序在內(nèi)存中的新起始地址去置換原來(lái)的起始地址即可。8.什么是基于順序搜索的動(dòng)態(tài)分區(qū)分配算法?他可能分為哪幾種?為了實(shí)現(xiàn)動(dòng)態(tài)分區(qū)分配,通常是將系統(tǒng)中的空閑分區(qū)成一個(gè)鏈。所謂順序搜索,是指依次搜索空閑分區(qū)鏈上的空閑分區(qū),去尋找一個(gè)其大小能滿足要求的分區(qū)?;陧樞蛩阉鞯膭?dòng)態(tài)分區(qū)分配算法分為四種:首次適應(yīng)算法循環(huán)首次適應(yīng)算法最佳適應(yīng)算法最壞適應(yīng)

8、算法。9.在采用首次適應(yīng)算法回收內(nèi)存時(shí),可能出現(xiàn)哪幾種情況?應(yīng)怎樣處理這些情況?可能出現(xiàn)的情況有四種:(1)回收區(qū)與插入點(diǎn)的前一個(gè)空閑分區(qū)相鄰接,此時(shí)應(yīng)將回收區(qū)與插入點(diǎn)的前一分區(qū)合并,不必再為回收分區(qū)分配新表項(xiàng),而只需修改其前一分區(qū)的大小。(2)回收分區(qū)與插入點(diǎn)的后一空閑分區(qū)相鄰接,此時(shí)也可將兩分區(qū)合并,形成新的空閑分區(qū),但用回收區(qū)的首址作為新空閑區(qū)的首址,大小為兩者之和。(3)回收區(qū)同時(shí)與插入點(diǎn)的前、后兩個(gè)分區(qū)鄰接,此時(shí)將三個(gè)分區(qū)合并,使用第一個(gè)分區(qū)的表項(xiàng)和首址,取消其后一分區(qū)的表項(xiàng),大小修改為三者之和。(4)回收區(qū)沒(méi)有與之相鄰接的空閑分區(qū),這時(shí)應(yīng)為回收區(qū)單獨(dú)建立一個(gè)新表項(xiàng),填寫(xiě)回收區(qū)的首址

9、和大小,并根據(jù)其首址插入到空閑鏈中的適當(dāng)位置。10.什么是基于索引搜索的動(dòng)態(tài)分區(qū)分派算法?它可能分為哪幾種?基于順序搜索的動(dòng)態(tài)分區(qū)分配算法,比較適用于不太大的系統(tǒng)。當(dāng)系統(tǒng)很大時(shí),系統(tǒng)中的內(nèi)存分區(qū)可能會(huì)很多,相應(yīng)的空閑分區(qū)鏈就可能很長(zhǎng),這時(shí)采用順序搜索分區(qū)方法可能會(huì)很慢。為了提高搜索空閑分區(qū)的速度,在大、中型系統(tǒng)中往往會(huì)采用基于索引搜索的動(dòng)態(tài)分區(qū)分配算法。它分為三種:快速適應(yīng)算法伙伴系統(tǒng)哈希算法。k11.令Buddyk(x)為大小為2、地址為x的塊的伙伴系統(tǒng)地址,試寫(xiě)出Buddyk(x)的通用表達(dá)式。buddyk(x)=xx-k22k(k2(xMODk21xMOD1)20k12.分區(qū)存儲(chǔ)管理中常

10、用哪些分配策略?比較他們的優(yōu)缺點(diǎn)。(1)固定分區(qū)分配將整個(gè)用戶空間劃分為若干個(gè)固定大小的區(qū)域,在每個(gè)分區(qū)中只裝入一道作業(yè),這樣就形成了最早的、也是最簡(jiǎn)單的一種可運(yùn)行多道程序的分區(qū)式存儲(chǔ)管理方式。分區(qū)大小相等。其缺點(diǎn)是缺乏靈活性,即當(dāng)程序太小時(shí),會(huì)造成內(nèi)存空間的浪費(fèi)。當(dāng)程序太大時(shí),一個(gè)分區(qū)又不足以裝入該程序,致使該程序無(wú)法運(yùn)行。盡管如此,對(duì)于利用一臺(tái)計(jì)算機(jī)同時(shí)控制多個(gè)相同對(duì)象的場(chǎng)合,因?yàn)檫@些對(duì)象所需的內(nèi)存空間大小往往相同,這種劃分方式比較方便和實(shí)用,所以被廣泛采用。分區(qū)大小不等。增加了存儲(chǔ)器分配的靈活性,可以根據(jù)用戶的需要來(lái)劃分。固定分區(qū)分配是最早出現(xiàn)的、可用于多道程序系統(tǒng)的存儲(chǔ)管理方式,由于每

11、一個(gè)分區(qū)的大小固定,必然會(huì)造成存儲(chǔ)空間的浪費(fèi)。(2)動(dòng)態(tài)分區(qū)分配。又稱為可變分區(qū)分配,它是根據(jù)進(jìn)程的實(shí)際需要,動(dòng)態(tài)地為之分配內(nèi)存空間。這種方式具有較大的靈活性,也提高了內(nèi)存利用率,但是隨著對(duì)內(nèi)存的不斷分配、釋放操作會(huì)引起存儲(chǔ)碎片的產(chǎn)生。13.為什么要引入對(duì)換?對(duì)換可分為哪幾種類型?對(duì)換技術(shù)也稱為交換技術(shù),由于當(dāng)時(shí)計(jì)算機(jī)的內(nèi)存都非常小,為了使該系統(tǒng)能分時(shí)運(yùn)行讀個(gè)用戶程序而引入了對(duì)換技術(shù)。根據(jù)每次對(duì)換時(shí)所兌換的數(shù)量,可將對(duì)換分為如下兩類:(1)整體對(duì)換。處理機(jī)中級(jí)調(diào)度實(shí)際上就是存儲(chǔ)器的對(duì)換功能,其目的是用來(lái)解決內(nèi)存緊X問(wèn)題,并進(jìn)一步提高內(nèi)存的利用率和系統(tǒng)的吞吐量。由于在中級(jí)調(diào)度中對(duì)換是以整個(gè)進(jìn)程為

12、單位的,故稱之為“進(jìn)程對(duì)換”或“整體對(duì)換”。這種對(duì)換被廣泛地應(yīng)用于多道程序系統(tǒng)中,并作為處理機(jī)的中級(jí)調(diào)度。(2)頁(yè)面(分段)對(duì)換,如果對(duì)換是以進(jìn)程的一個(gè)“頁(yè)面”或“分段”為單位進(jìn)行的,則分別稱之為“頁(yè)面對(duì)換”或“分段對(duì)換”,又統(tǒng)稱為“部分對(duì)換”。這種對(duì)換方法的目的是為了支持虛擬存儲(chǔ)系統(tǒng)。14.對(duì)文件區(qū)管理的目標(biāo)和對(duì)對(duì)換空間管理的目標(biāo)有何不同?(1)對(duì)文件區(qū)管理的主要目標(biāo)。文件區(qū)占用磁盤(pán)的大部分空間,用于存放各類文件。由于通常的文件都是較長(zhǎng)時(shí)間地駐留在外存上,對(duì)它的訪問(wèn)頻率是較低的。因此對(duì)文件區(qū)管理的主要目標(biāo)是提高文件存儲(chǔ)空間的利用率,然后才是提高對(duì)文件的訪問(wèn)速度。因此,對(duì)文件區(qū)的管理采取離散分

13、配方式。(2)對(duì)對(duì)換空間管理的主要目標(biāo)。對(duì)換空間只占用磁盤(pán)的小部分,用于存放從內(nèi)存換出的進(jìn)程。由于這些進(jìn)程在對(duì)換區(qū)駐留的時(shí)間是短暫的,而對(duì)換操作的頻率卻極高,故對(duì)對(duì)換空間管理的主要目標(biāo)是提高進(jìn)程換入換出的速度,然后才是提高文件存儲(chǔ)空間的利用率。為此,對(duì)對(duì)換區(qū)空間的管理采取連續(xù)分配方式,較少考慮外存中的碎片問(wèn)題。15.為實(shí)現(xiàn)對(duì)換,系統(tǒng)應(yīng)具備哪幾個(gè)方面的內(nèi)容?(1)對(duì)對(duì)換空間的管理。為了實(shí)現(xiàn)對(duì)對(duì)換區(qū)中的空閑盤(pán)塊的管理,在系統(tǒng)中應(yīng)配置相應(yīng)的數(shù)據(jù)結(jié)構(gòu),用于記錄外存對(duì)換區(qū)中空間盤(pán)塊的使用情況。對(duì)換分區(qū)的分配和回收,分配算法有首次適應(yīng)算法,循環(huán)首次適應(yīng)算法,最佳適應(yīng)算法和最壞適應(yīng)算法。(2)進(jìn)程的換出。選

14、擇被換出的進(jìn)程。進(jìn)程換出過(guò)程。在進(jìn)程換出時(shí),應(yīng)先申請(qǐng)對(duì)換空間,若申請(qǐng)成功,就啟動(dòng)磁盤(pán),將該進(jìn)程和數(shù)據(jù)傳送到磁盤(pán)的對(duì)換區(qū)上,若傳送過(guò)程未出現(xiàn)錯(cuò)誤,便可回收該進(jìn)程所占用的內(nèi)存空間,并對(duì)該進(jìn)程的進(jìn)程控制塊和內(nèi)存分配表等數(shù)據(jù)結(jié)構(gòu)做出相應(yīng)的修改。若此時(shí)內(nèi)存中還有可換出的進(jìn)程,則繼續(xù)執(zhí)行換出過(guò)程,直到內(nèi)存中再無(wú)阻塞進(jìn)程為止。(2)進(jìn)程的換入。對(duì)對(duì)換進(jìn)程將定期執(zhí)行換入操作,它首先查看PCB集合中所有進(jìn)程的狀態(tài),從中找出“就緒”狀態(tài)但已換出的進(jìn)程。當(dāng)有許多這樣的進(jìn)程時(shí),它將選擇其中已換出到磁盤(pán)上時(shí)間最久的進(jìn)程作為換入進(jìn)程,為他申請(qǐng)內(nèi)存,如果申請(qǐng)成功,可直接將進(jìn)程從外存調(diào)入內(nèi)存;如果失敗,則需先將內(nèi)存中的某些進(jìn)

15、程換出,騰出足夠的內(nèi)存空間后,再將進(jìn)程調(diào)入。16.在以進(jìn)程為單位進(jìn)行對(duì)換時(shí),每次是否都將整個(gè)進(jìn)程換出?為什么?在以進(jìn)程為單位進(jìn)行對(duì)換時(shí),并非每次都將整個(gè)進(jìn)程換出。從結(jié)構(gòu)上講,進(jìn)程由程序段、數(shù)據(jù)段和PCB組成,其中進(jìn)程控制塊總有部分或全部常駐內(nèi)存,不被換出。程序段和數(shù)據(jù)段可能正在被若干進(jìn)程共享,此時(shí)它們也不能換出。因?yàn)樵谶M(jìn)程的換出中,只能選擇換出非共享的數(shù)據(jù)段和程序段,而對(duì)于哪些共享的程序和數(shù)據(jù)段,只要還有進(jìn)程需要他,就不能被換出。17.基于離散分配時(shí)所用的基本單位不同,可將離散分配分為哪幾種?基于離散分配時(shí)所用的基本單位不同,可將離散分配分為:(1)分頁(yè)存儲(chǔ)管理方式。在該方式中,將用戶程序的地

16、址空間分為若干個(gè)固定大小的區(qū)域,稱為“頁(yè)”或“頁(yè)面”。典型的頁(yè)面大小為1KB。相應(yīng)的。也將內(nèi)存空間分為若干個(gè)物理塊或頁(yè)框,頁(yè)和塊的大小相同。這樣可將用戶程序的任一頁(yè)放入任一物理塊中,實(shí)現(xiàn)了離散分配。(2)分段存儲(chǔ)管理方式。這是為了滿足用戶要求而形成的一種存儲(chǔ)管理方式。它把用戶程序的地址空間分為若干個(gè)大小不同的段,每段可定義一組相對(duì)完整的信息。在存儲(chǔ)器分配時(shí),以段為單位,這些段在內(nèi)存中可以不相鄰接,所以也同樣實(shí)現(xiàn)了離散分配。(3)段頁(yè)式存儲(chǔ)管理方式。這是分頁(yè)和分段兩種存儲(chǔ)管理方式結(jié)合的產(chǎn)物。他同時(shí)具有兩者的優(yōu)點(diǎn),是目前應(yīng)用較廣泛的一種存儲(chǔ)管理方式。18.什么是頁(yè)面?什么是物理塊?頁(yè)面的大小應(yīng)如何

17、確定?(1)頁(yè)面。分頁(yè)存儲(chǔ)管理將進(jìn)程的邏輯空間分成若干個(gè)頁(yè),并為各頁(yè)加以編號(hào),從0開(kāi)始,如第0頁(yè)、第1頁(yè)等。(2)物理塊。相應(yīng)的,也把內(nèi)存的物理地址空間分成若干個(gè)塊,同樣也為它們加以編號(hào),如0#塊、1#塊等等。(1)頁(yè)面大小。在分頁(yè)系統(tǒng)中,若選擇過(guò)小的頁(yè)面大小,雖然一方面可以減小內(nèi)存的碎片,起到減少內(nèi)存碎片總空間的作用,有利于內(nèi)存利用率的提高,但另一方面卻會(huì)造成每個(gè)進(jìn)程占用較多的頁(yè)面,從而導(dǎo)致進(jìn)程的頁(yè)表過(guò)長(zhǎng),占用大量?jī)?nèi)存。此外,還會(huì)降低頁(yè)面的換進(jìn)換出的效率。然而,如果選擇的頁(yè)面過(guò)大,雖然可以減少頁(yè)表的長(zhǎng)度,提高頁(yè)面換進(jìn)換出的效率,但卻又會(huì)使頁(yè)內(nèi)碎片增大。因此,頁(yè)面的大小應(yīng)選擇適中,且頁(yè)面大小應(yīng)

18、是2的冪,通常為1KB8KB。19.什么是頁(yè)表?頁(yè)表的作用是什么?在分頁(yè)系統(tǒng)中,允許將進(jìn)程的各個(gè)頁(yè)離散的存儲(chǔ)在內(nèi)存的任一物理塊中,為保證進(jìn)程仍然能夠正確地運(yùn)行,即能在內(nèi)存中找到每個(gè)頁(yè)面所對(duì)應(yīng)的物理塊,系統(tǒng)又為每個(gè)進(jìn)程建立了一X頁(yè)面映像表,簡(jiǎn)稱頁(yè)表。在進(jìn)程地址空間內(nèi)的所有頁(yè)(0N),依次在頁(yè)表中有一頁(yè)表項(xiàng),其中記錄了相應(yīng)頁(yè)表在內(nèi)存中對(duì)應(yīng)的物理塊號(hào)。在配置了頁(yè)表后,進(jìn)程執(zhí)行時(shí),通過(guò)查找該表,即了找到每頁(yè)在內(nèi)存中的物理塊號(hào)??梢?jiàn),也表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射。20.為實(shí)現(xiàn)分頁(yè)存儲(chǔ)管理,需要哪些硬件支持?需要頁(yè)表寄存器、物理地址寄存器和聯(lián)想寄存器(快表)。頁(yè)表寄存器和物理地址寄存器是地址

19、變換機(jī)構(gòu)所需的基本寄存器,聯(lián)想寄存器是優(yōu)化了地址轉(zhuǎn)換過(guò)程后需要添加的一個(gè)寄存器。21.在分頁(yè)系統(tǒng)中是如何實(shí)現(xiàn)地址變換的?頁(yè)表功能是由一組專門(mén)的寄存器來(lái)實(shí)現(xiàn)的。一個(gè)頁(yè)表項(xiàng)用一個(gè)寄存器。由于寄存器具有較高的訪問(wèn)速度,因而有利于提高地址變換的速度,但由于寄存器成本較高,頁(yè)表又可能很大,因此,頁(yè)表大多駐留在內(nèi)存中,在系統(tǒng)中只設(shè)置一個(gè)頁(yè)表寄存器,在其中存放頁(yè)表在內(nèi)存的始址和頁(yè)表的長(zhǎng)度。當(dāng)進(jìn)程要訪問(wèn)某個(gè)邏輯地址中的數(shù)據(jù)時(shí),分頁(yè)地址變換機(jī)構(gòu)會(huì)自動(dòng)將有效地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,再以頁(yè)號(hào)為索引去檢索頁(yè)表。查找操作由硬件執(zhí)行。在執(zhí)行檢索之前,先將頁(yè)號(hào)與頁(yè)表長(zhǎng)度進(jìn)行比較,如果頁(yè)號(hào)大于或等于頁(yè)表長(zhǎng)度,則表示本次

20、所訪問(wèn)的地址已超越進(jìn)程的地址空間。于是,這一錯(cuò)誤將被系統(tǒng)發(fā)現(xiàn),并產(chǎn)生已地址越界中斷。若未出現(xiàn)越界中斷,則將頁(yè)表始址與頁(yè)號(hào)和頁(yè)表項(xiàng)長(zhǎng)度的乘積相加,便得到該表項(xiàng)在頁(yè)表中的位置,于是可從中得到該頁(yè)的物理塊號(hào),將之裝入物理地址寄存器中。與此同時(shí),再將有效地址寄存器中的頁(yè)內(nèi)地址送入物理地址寄存器的塊內(nèi)地址字段中。這樣便完成了從邏輯地址到物理地址的變換。22.具有快表時(shí)是如何實(shí)現(xiàn)地址變換的?為了提高地址變換的速度,可在地址變換機(jī)構(gòu)中增設(shè)一個(gè)具有并行查詢能力的特殊高速緩沖寄存器,又稱為“聯(lián)想寄存器”,或稱為“快表”,在IBM系統(tǒng)中又取名為T(mén)LB,用以存放當(dāng)前訪問(wèn)的那些頁(yè)表項(xiàng)。此時(shí)的地址變換過(guò)程是:在CPU給

21、出有效地址后,由地址變換機(jī)構(gòu)自動(dòng)的將頁(yè)號(hào)P送入高速緩沖寄存器,并將此頁(yè)號(hào)與高速緩沖中的所有頁(yè)號(hào)進(jìn)行比較,若其中有與此相匹配的頁(yè)號(hào),便表示索要訪問(wèn)的頁(yè)表項(xiàng)在快表中。于是,可直接從快表中讀出該頁(yè)所對(duì)應(yīng)的物理塊號(hào),并送到物理地址寄存器中。如在快表中未找到對(duì)應(yīng)的頁(yè)表項(xiàng),則還須訪問(wèn)內(nèi)存中的頁(yè)表,找到后,把從頁(yè)表中讀出的物理塊號(hào)送往地址寄存器;同時(shí),再將此頁(yè)表項(xiàng)存入快表的一個(gè)寄存器的單元中。亦即,重新修改快表。但如果聯(lián)想寄存器已滿,則OS必須找到一個(gè)老的且已被認(rèn)為是不再需要的頁(yè)表項(xiàng),將它換出。23.較詳細(xì)的說(shuō)明引入分段存儲(chǔ)管理是為了滿足用戶哪幾方面的需求。(1)方便編程。通常,用戶把自己的作業(yè)按照邏輯關(guān)系

22、劃分為若干段,每個(gè)段都從0開(kāi)始編址,并有自己的名字和長(zhǎng)度。因此,程序員們都迫切的需要訪問(wèn)的邏輯地址是由段名和段內(nèi)偏移量決定的,這不僅可以方便程序員編程,也可使程序方非常直觀,更具有可讀性。(2)信息共享。在實(shí)現(xiàn)對(duì)程序和數(shù)據(jù)的共享時(shí),是以信息的邏輯單位為基礎(chǔ)的。比如,為了共享某個(gè)過(guò)程、函數(shù)或文件。分頁(yè)系統(tǒng)中的“頁(yè)”只是存放信息的物理單位,并無(wú)完整的邏輯意義,這樣,一個(gè)可被共享的過(guò)程往往可能需要占用數(shù)十個(gè)頁(yè)面,這為實(shí)現(xiàn)共享增加了困難。段可以是信息的邏輯單位,因此,我們可以為該被共享過(guò)程建立一個(gè)獨(dú)立的段,這就極大地簡(jiǎn)化了共享的實(shí)現(xiàn)。(3)信息保護(hù)。信息保護(hù)同樣是以信息的邏輯單位為基礎(chǔ)的,而且經(jīng)常是以

23、一個(gè)過(guò)程、函數(shù)或文件為基本單位進(jìn)行保護(hù)的。(4)動(dòng)態(tài)增長(zhǎng)。在實(shí)際應(yīng)用中,往往存在著一些段,尤其是數(shù)據(jù)段,在它們的使用過(guò)程中,由于數(shù)據(jù)量的不斷增加,而使數(shù)據(jù)段動(dòng)態(tài)增長(zhǎng),相應(yīng)的他所需要的存儲(chǔ)空間也會(huì)動(dòng)態(tài)增加。然而,對(duì)于數(shù)據(jù)段究竟會(huì)增長(zhǎng)到多大,事先又很難確切的知道。對(duì)此,很難采取預(yù)先多分配的方法進(jìn)行解決。分段存儲(chǔ)管理方式能很好的解決這一問(wèn)題。24.在具有快表的段頁(yè)式存儲(chǔ)管理方式中,如何實(shí)現(xiàn)地址變換?在段頁(yè)式系統(tǒng)中,為了便于實(shí)現(xiàn)地址變換,須配置一個(gè)段表寄存器,其中存放段表始址和段長(zhǎng)TL。進(jìn)行地址變換時(shí),首先利用段號(hào)S,將它與段長(zhǎng)TL進(jìn)行比較。若STL,表示未越界,于是利用段表始址和段號(hào)來(lái)求出該段所對(duì)應(yīng)的段表項(xiàng)在段表中的位置,從中得到該段的頁(yè)表地址,并利用邏輯地址中的段內(nèi)頁(yè)號(hào)P來(lái)獲得對(duì)應(yīng)的頁(yè)表項(xiàng)地址,從中讀出該頁(yè)所在的物理塊號(hào)b,再利用塊號(hào)b和頁(yè)內(nèi)地址來(lái)構(gòu)成物理地址。為了提高執(zhí)行速度,在地址變換機(jī)構(gòu)中增設(shè)一個(gè)高速緩沖寄存器,每次訪問(wèn)它時(shí),都須同時(shí)利用段號(hào)和頁(yè)號(hào)去檢索高速緩沖,若找到匹配的表項(xiàng),便可從中得到相應(yīng)頁(yè)的物理塊號(hào),用來(lái)與頁(yè)內(nèi)地址一起形成物理地址;若未找到匹配表項(xiàng),則仍需第三次訪問(wèn)內(nèi)存。25.為什么說(shuō)分段系統(tǒng)比分頁(yè)系統(tǒng)更易于實(shí)

溫馨提示

  • 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)論