操作系統(tǒng)原理與實(shí)踐教程(第四版)習(xí)題及答案 第5章_第1頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第四版)習(xí)題及答案 第5章_第2頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第四版)習(xí)題及答案 第5章_第3頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第四版)習(xí)題及答案 第5章_第4頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第四版)習(xí)題及答案 第5章_第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)介

第5章存儲(chǔ)管理存儲(chǔ)管理的任務(wù)和功能是什么?答:存儲(chǔ)管理的主要任務(wù)是:支持多道程序的并發(fā)執(zhí)行,使多道程序能共享存儲(chǔ)資源,在互不干擾的環(huán)境中并發(fā)執(zhí)行。方便用戶,使用戶減少甚至擺脫對(duì)存儲(chǔ)器的管理,使用戶從存儲(chǔ)器的分配、保護(hù)和共享等繁瑣事物中解脫出來(lái)。提高存儲(chǔ)器的利用率和系統(tǒng)吞吐量。從邏輯上擴(kuò)充內(nèi)存空間,支持大程序能在小的內(nèi)存空間運(yùn)行或允許更多的進(jìn)程并發(fā)執(zhí)行。為了完成上述任務(wù),現(xiàn)代操作系統(tǒng)的存儲(chǔ)管理應(yīng)具有以下功能:(1)存儲(chǔ)空間的分配和回收。(2)地址轉(zhuǎn)換,實(shí)現(xiàn)邏輯地址到物理地址的映射。(3)主存空間的共享。(4)主存空間的保護(hù)。(5)主存儲(chǔ)空間的擴(kuò)充。(6)對(duì)換,對(duì)換的主要任務(wù)是實(shí)現(xiàn)在內(nèi)存和外存之間的全部或部分進(jìn)程的對(duì)換,即將內(nèi)存中處于阻塞狀態(tài)的進(jìn)程調(diào)換到外存上,而將外存上處于就緒狀態(tài)的進(jìn)程換入內(nèi)存。對(duì)換的目的主要是為了提高內(nèi)存利用率,提高系統(tǒng)的吞吐量。2.為什么要配置層次式存儲(chǔ)器?答:為了解決CPU和存儲(chǔ)器之間速度上的不匹配,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)系統(tǒng)通常采用層次結(jié)構(gòu),存儲(chǔ)層次可粗略分為三級(jí):最高層為CPU寄存器,中間為主存,最底層是輔存。根據(jù)具體功能還可以細(xì)分為寄存器、高速緩存、主存儲(chǔ)器、磁盤(pán)緩存、輔存儲(chǔ)設(shè)備(固定磁盤(pán)、可移動(dòng)存儲(chǔ)介質(zhì))5層。一個(gè)文件的數(shù)據(jù)可能出現(xiàn)在存儲(chǔ)系統(tǒng)的不同層次中,例如,一個(gè)文件數(shù)據(jù)通常被存儲(chǔ)在輔存中(如硬盤(pán)),當(dāng)其需要運(yùn)行或被訪問(wèn)時(shí),就必須調(diào)入主存,也可以暫時(shí)存放在主存的磁盤(pán)高速緩存中。大容量的輔存常常使用磁盤(pán),磁盤(pán)數(shù)據(jù)經(jīng)常備份在可移動(dòng)磁盤(pán)或者光盤(pán)上,以防止硬盤(pán)故障時(shí)丟失數(shù)據(jù)。3.什么是邏輯地址?什么是物理地址?為什么要進(jìn)行二者的轉(zhuǎn)換工作?答:邏輯地址是應(yīng)用程序中使用的訪存地址,有時(shí)也稱(chēng)為相對(duì)地址,由邏輯地址構(gòu)成的地址空間稱(chēng)為邏輯空間。每個(gè)應(yīng)用程序的邏輯地址空間都是從零號(hào)地址碼開(kāi)始的。物理地址是內(nèi)存儲(chǔ)器的實(shí)際存儲(chǔ)單元地址,有時(shí)也稱(chēng)為絕對(duì)地址,由物理地址構(gòu)成的地址空間稱(chēng)為物理空間。物理地址空間也是從零號(hào)地址碼開(kāi)始的。在多道程序環(huán)境下,程序邏輯地址空間和內(nèi)存物理地址空間是不一致的。用戶程序的邏輯地址可以是一維線性或多維線性,而內(nèi)存中的每一個(gè)存儲(chǔ)單元都有相應(yīng)的內(nèi)存地址相對(duì)應(yīng),屬于一維線性地址。在將用戶程序部分或全部地裝入內(nèi)存空間時(shí),要實(shí)現(xiàn)邏輯地址到物理地址的映射。4.地址重定位,靜態(tài)地址重定位和動(dòng)態(tài)地址重定位有什么區(qū)別?答:地址重定位指從邏輯地址到物理地址的映射過(guò)程,也稱(chēng)為地址映射。靜態(tài)地址重定位是指在用戶程序執(zhí)行之前完成地址映射工作,即把程序的邏輯地址都轉(zhuǎn)換為實(shí)際的內(nèi)存物理地址。靜態(tài)地址重定位的地址變換只是在裝入時(shí)一次完成,而在程序運(yùn)行期間不再變化。動(dòng)態(tài)地址重定位是指在程序執(zhí)行過(guò)程中,CPU在訪問(wèn)內(nèi)存之前,將要訪問(wèn)的程序或數(shù)據(jù)地址轉(zhuǎn)換為內(nèi)存地址。5.什么是內(nèi)部碎片和外部碎片?。答:在一個(gè)分區(qū)內(nèi)部出現(xiàn)的碎片(即被浪費(fèi)的空間)稱(chēng)作內(nèi)部碎片,如固定分區(qū)法就會(huì)產(chǎn)生內(nèi)部碎片;在所有分區(qū)之外新增的碎片稱(chēng)作外部碎片,如在動(dòng)態(tài)分區(qū)法實(shí)施過(guò)程中出現(xiàn)的越來(lái)越多的小空閑塊就是外部碎片,由于它們太小,無(wú)法裝入一個(gè)進(jìn)程,因而被浪費(fèi)掉。6.什么是分頁(yè)和分段存儲(chǔ)技術(shù),兩者有何區(qū)別?答:在分頁(yè)系統(tǒng)中,系統(tǒng)會(huì)把用戶程序的地址空間劃分成若干個(gè)大小相等的區(qū)域,每個(gè)區(qū)域稱(chēng)作一個(gè)頁(yè)面或頁(yè)。每個(gè)頁(yè)都有一個(gè)編號(hào),叫做頁(yè)號(hào)。頁(yè)號(hào)一般從0開(kāi)始,如0,1,2,…,等。類(lèi)似地,也把內(nèi)存空間劃分成若干和頁(yè)大小相同的物理塊,這些物理塊叫“幀”(frame)或內(nèi)存塊。同樣,每個(gè)物理塊也有一個(gè)編號(hào),塊號(hào)也是從0開(kāi)始依次順序排列。系統(tǒng)為進(jìn)程分配內(nèi)存時(shí),以塊為單位將進(jìn)程中的若干頁(yè)分別裝入多個(gè)可以不相鄰接的塊中。在分段存儲(chǔ)管理方式中,程序按內(nèi)容或過(guò)程(函數(shù))關(guān)系劃分為若干個(gè)段,每個(gè)段定義一組邏輯信息,都有自己的名字。一個(gè)用戶作業(yè)所包含的段對(duì)應(yīng)于一個(gè)二維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位進(jìn)行內(nèi)存分配,然后通過(guò)地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換為實(shí)際的內(nèi)存物理地址。分段和分頁(yè)有許多相似之處,比如,二者在內(nèi)存中都采用離散分配方式,而不是整體連續(xù)分配方式,而且都要通過(guò)地址映射機(jī)構(gòu)來(lái)實(shí)現(xiàn)地址轉(zhuǎn)換。但二者在概念上卻完全不同,具體表現(xiàn)在下述三個(gè)方面:頁(yè)是信息的物理單位,而段是信息的邏輯單位。分頁(yè)是為了實(shí)現(xiàn)離散分配,減少內(nèi)存碎片,提高內(nèi)存利用率。或者說(shuō),分頁(yè)是由于系統(tǒng)管理的需要,而不是用戶的需要。段則是信息的邏輯單位,它含有一組意義相對(duì)完整的信息。段的長(zhǎng)度不是固定的,取決于用戶所編寫(xiě)的程序。分段的目的是為了能更好地滿足用戶的需要,更方便用戶編程,更好地實(shí)現(xiàn)信息共享和保護(hù)。頁(yè)的大小由系統(tǒng)確定,由系統(tǒng)把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,整個(gè)系統(tǒng)只能有一種大小的頁(yè)面;而段的長(zhǎng)度卻不固定,它取決于用戶的程序。通常由編譯程序在對(duì)源碼進(jìn)行編譯時(shí),根據(jù)程序的性質(zhì)來(lái)劃分。分頁(yè)的進(jìn)程地址空間是一維的,即單一的線性空間;而分段的進(jìn)程地址空間是二維的,由段號(hào)和段內(nèi)地址兩部分組成。7.什么是虛擬存儲(chǔ)器?列舉采用虛擬存儲(chǔ)器的必要性和可能性。答:虛擬存儲(chǔ)器是指在具有層次結(jié)構(gòu)存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中,具有請(qǐng)求調(diào)入和交換功能,為用戶提供一個(gè)比實(shí)際物理內(nèi)存容量大得多的可尋址的一種存儲(chǔ)器系統(tǒng),它能從邏輯上對(duì)內(nèi)存容量進(jìn)行擴(kuò)充。采用虛擬存儲(chǔ)器的必要性:傳統(tǒng)存儲(chǔ)管理方式要求將作業(yè)全部裝入內(nèi)存之后才能運(yùn)行,這一特征導(dǎo)致大作業(yè)和多個(gè)作業(yè)要求運(yùn)行時(shí)系統(tǒng)無(wú)法滿足;另外,傳統(tǒng)存儲(chǔ)管理方式具有駐留性,即作業(yè)裝入內(nèi)存直到運(yùn)行結(jié)束,便一直駐留在內(nèi)存中。盡管進(jìn)程在運(yùn)行中會(huì)因I/O等原因而長(zhǎng)期處于阻塞狀態(tài),或有的程序模塊在運(yùn)行過(guò)一次后就不再需要,但它們都仍將繼續(xù)占用寶貴的內(nèi)存資源。采用虛擬存儲(chǔ)器的可能性:根據(jù)程序的局部性定理,應(yīng)用程序在執(zhí)行之前,沒(méi)有必要全部裝入內(nèi)存,而只需要將那些當(dāng)前要運(yùn)行的部分頁(yè)或段先裝入內(nèi)存即可運(yùn)行,其余部分可以仍然留在外存。程序在執(zhí)行時(shí),如果它所訪問(wèn)的頁(yè)(段)已經(jīng)調(diào)入內(nèi)存,便可繼續(xù)執(zhí)行下去。但如果程序所要訪問(wèn)的頁(yè)(段)不在內(nèi)存中(稱(chēng)為缺頁(yè)或缺段),此時(shí)程序可以利用操作系統(tǒng)提供的請(qǐng)求調(diào)頁(yè)(段)功能,將它們調(diào)入內(nèi)存,以便程序能夠繼續(xù)執(zhí)行下去。如果內(nèi)存已滿,無(wú)法裝入新調(diào)入的頁(yè)(段),則必須利用一定的頁(yè)(段)置換功能,將內(nèi)存中暫時(shí)不用的頁(yè)(段)換到外存中,以騰出足夠的空間來(lái)存放新調(diào)入的頁(yè)(段),從而保證程序的順利執(zhí)行。這樣,一個(gè)大的程序就可以在較小的內(nèi)存空間中執(zhí)行。從用戶的角度來(lái)看,該系統(tǒng)所具有的內(nèi)存容量比實(shí)際內(nèi)存容量大了很多。但實(shí)際上,用戶所看到的大容量存儲(chǔ)器是不存在的,只是虛擬的,故把這樣的存儲(chǔ)器稱(chēng)為虛擬存儲(chǔ)器。(8.一個(gè)計(jì)算機(jī)系統(tǒng)的虛擬存儲(chǔ)器,其最大容量和實(shí)際容量分別由什么決定?答:虛擬存儲(chǔ)器的最大容量由主存和輔存的容量之和確定。虛擬存儲(chǔ)器的實(shí)際容量由指令中表示地址的字長(zhǎng)決定,也就是計(jì)算機(jī)的地址結(jié)構(gòu)決定的。9.描述下列算法:①首次適應(yīng);②最佳適應(yīng);③最差適應(yīng)答:最先適應(yīng)算法又稱(chēng)首次適應(yīng)算法,該算法要求空閑分區(qū)表或空閑分區(qū)鏈按起始地址遞增的次序排列。在進(jìn)行內(nèi)存分配時(shí),從空閑分區(qū)表(鏈)首開(kāi)始順序查找,一旦找到大于或等于所要求內(nèi)存長(zhǎng)度的分區(qū),則結(jié)束查找。然后,該算法從該分區(qū)中劃出所要求的內(nèi)存長(zhǎng)度分配給請(qǐng)求者,余下的空閑分區(qū)仍留在空閑分區(qū)表(鏈)中,同時(shí)修改其相應(yīng)的表(鏈)項(xiàng)。最佳適應(yīng)算法要求空閑分區(qū)按容量大小遞增的次序排列。當(dāng)用戶作業(yè)申請(qǐng)一個(gè)空閑區(qū)時(shí),存儲(chǔ)管理程序從空閑分區(qū)表(鏈)首開(kāi)始順序查找,當(dāng)找到第一個(gè)滿足要求的空閑區(qū)時(shí),停止查找。按這種方式為作業(yè)分配內(nèi)存,就能把既滿足作業(yè)要求又與作業(yè)大小最接近的空閑分區(qū)分配給作業(yè)。如果空閑分區(qū)大于作業(yè)的大小,則與最先適應(yīng)算法相同,將減去作業(yè)請(qǐng)求長(zhǎng)度后的剩余空閑區(qū)仍然留在空閑分區(qū)表(鏈)中。最壞適應(yīng)算法要求空閑分區(qū)按其大小遞減的順序組成空閑分區(qū)表(鏈)。當(dāng)用戶作業(yè)申請(qǐng)一個(gè)空閑區(qū)時(shí),先檢查空閑分區(qū)表(鏈)的第一個(gè)空閑分區(qū)的大小是否大于或等于所要求的內(nèi)存長(zhǎng)度,若空閑分區(qū)表(鏈)的第一項(xiàng)長(zhǎng)度小于所要求的大小,則分配失敗,否則從該空閑分區(qū)中劃出與作業(yè)大小相等的一塊內(nèi)存空間分配給作業(yè),余下的空閑分區(qū)仍然留在空閑分區(qū)表(鏈)中。10.如果內(nèi)存劃分為100KB、500KB、200KB、300KB和600KB(按順序),那么,首次適應(yīng)、最佳適應(yīng)和最差適應(yīng)算法各自將如何放置大小分別為215KB、414KB、110KB和430KB(按順序)的進(jìn)程,哪一種算法的內(nèi)存利用率高?解:見(jiàn)下圖,在首次適應(yīng)和最差適應(yīng)算法中,最后430KB沒(méi)有空間分配。由圖可知,最佳適應(yīng)算法的內(nèi)存利用率高。11.某操作系統(tǒng)采用分區(qū)存儲(chǔ)管理技術(shù)。操作系統(tǒng)占用了低地址端的100KB的空間,用戶區(qū)從100KB處開(kāi)始共占用512KB,初始時(shí),用戶區(qū)全部空閑,分配時(shí)截取空閑區(qū)的低地址部分作為一個(gè)分配區(qū)。在執(zhí)行了如下的申請(qǐng)、釋放操作序列后:作業(yè)1申請(qǐng)300KB、作業(yè)2申請(qǐng)100KB、作業(yè)1釋放300KB、作業(yè)3申請(qǐng)150KB、作業(yè)4申請(qǐng)50KB、作業(yè)5申請(qǐng)90KB。①分別畫(huà)出采用首次適應(yīng)算法、最佳適應(yīng)算法進(jìn)行內(nèi)存分配后的內(nèi)存分配圖和空閑區(qū)隊(duì)列;②若隨后又申請(qǐng)80KB,針對(duì)上述兩種情況會(huì)產(chǎn)生什么后果?解:采用首次適應(yīng)算法、最佳適應(yīng)算法進(jìn)行內(nèi)存分配后的內(nèi)存分配圖和空閑區(qū)隊(duì)列圖如下所示。若隨后又申請(qǐng)80KB,只有采用首次適應(yīng)算法的內(nèi)存分配還有空間可以分配,分配圖如下:12.假設(shè)一個(gè)有8個(gè)1024字節(jié)頁(yè)面的邏輯地址空間,映射到一個(gè)有32幀的物理內(nèi)存:①邏輯地址有多少位?②物理地址有多少位?答:邏輯地址有13位;物理地址有15位。13.某虛擬內(nèi)存的用戶編程空間共32頁(yè),每頁(yè)的大小為1KB,內(nèi)存為16KB,假設(shè)某時(shí)刻系統(tǒng)為用戶的第0、1、2、3頁(yè)分配的物理塊為5、10、4、7,而該用戶作業(yè)的長(zhǎng)度為6頁(yè),試將16進(jìn)制的虛擬地址0A5C、093C、1A5C轉(zhuǎn)換成物理地址。答:虛擬地址為0A5C,對(duì)應(yīng)的二進(jìn)制數(shù)為:0000101001011100。其中,頁(yè)內(nèi)偏移量占10位地址碼,為25C。頁(yè)號(hào)占6位地址碼,為2號(hào)頁(yè)。因第2頁(yè)存儲(chǔ)在4號(hào)塊中,其基地址為:0001000000000000,即十六進(jìn)制的1000H。這樣,其物理地址為十六進(jìn)制的125C。虛擬地址為093C,對(duì)應(yīng)的二進(jìn)制數(shù)為:0000100100111100。其中,頁(yè)內(nèi)偏移量占10位地址碼,為13C。頁(yè)號(hào)占6位地址碼,為2號(hào)頁(yè)。因第2頁(yè)存儲(chǔ)在4號(hào)塊中,其基地址為:0001000000000000,即十六進(jìn)制的1000H。這樣,其物理地址為十六進(jìn)制的113C。虛擬地址為1A5C,對(duì)應(yīng)的二進(jìn)制數(shù)為:0001101001011100。頁(yè)內(nèi)偏移量占10位地址碼,為25C。頁(yè)號(hào)占6位地址碼,為6號(hào)頁(yè)。因?yàn)樵撚脩糇鳂I(yè)的長(zhǎng)度為6頁(yè),最大的頁(yè)號(hào)為5號(hào)。因?yàn)樘摂M地址為1A5C對(duì)應(yīng)的6號(hào)頁(yè)超出了地址范圍,所以屬于越界。14.覆蓋技術(shù)和虛擬存儲(chǔ)技術(shù)有何區(qū)別,交換技術(shù)和虛擬存儲(chǔ)器中使用的調(diào)入和調(diào)出技術(shù)有何區(qū)別和聯(lián)系?解:覆蓋技術(shù)與虛擬存儲(chǔ)技術(shù)最本質(zhì)的不同在于覆蓋程序段的最大長(zhǎng)度要受內(nèi)存容量大小的限制,而虛擬存儲(chǔ)器中程序的最大長(zhǎng)度不受內(nèi)存容量的限制,只受計(jì)算機(jī)地址結(jié)構(gòu)的限制。另外,覆蓋技術(shù)中的覆蓋段由程序員設(shè)計(jì),且要求覆蓋段中的各個(gè)覆蓋具有相對(duì)的獨(dú)立性,不存在直接聯(lián)系或相互交叉訪問(wèn);而虛擬存儲(chǔ)技術(shù)對(duì)用戶的程序段之間沒(méi)有這種要求。交換技術(shù)就是把暫時(shí)不用的某個(gè)程序及數(shù)據(jù)從內(nèi)存移到外存中去,以便騰出必要的內(nèi)存空間,或把指定的程序或數(shù)據(jù)從外存讀到內(nèi)存中以允許其運(yùn)行的一種內(nèi)存擴(kuò)充技術(shù)。交換技術(shù)與虛存中使用的調(diào)入/調(diào)出技術(shù)的主要相同點(diǎn)是:都要在內(nèi)存與外存之間交換信息。主要區(qū)別是:交換技術(shù)調(diào)入/調(diào)出整個(gè)進(jìn)程,因此一個(gè)進(jìn)程的大小要受內(nèi)存容量大小的限制;而虛存中使用的調(diào)入/調(diào)出技術(shù)在內(nèi)存和外存之間來(lái)回傳遞的是頁(yè)面或分段,而不是整個(gè)進(jìn)程,從而使得進(jìn)程的地址映射具有了更大的靈活性,且允許進(jìn)程的大小比可用的內(nèi)存空間大。15.在虛擬頁(yè)式存儲(chǔ)系統(tǒng)中引入了缺頁(yè)中斷,說(shuō)明引入缺頁(yè)中斷的原因,并給出其實(shí)現(xiàn)的方法。答:虛擬頁(yè)式存儲(chǔ)系統(tǒng)中,系統(tǒng)允許作業(yè)的一部分頁(yè)面在內(nèi)存。當(dāng)系統(tǒng)產(chǎn)生了缺頁(yè)中斷后,操作系統(tǒng)才能將不在內(nèi)存的頁(yè)面從外存調(diào)入內(nèi)存。當(dāng)缺頁(yè)被調(diào)入,使中斷恢復(fù),進(jìn)程就可以繼續(xù)執(zhí)行它的程序了。缺頁(yè)中斷的實(shí)現(xiàn)由硬件和軟件兩部分組成。其實(shí)現(xiàn)方法如下:當(dāng)CPU執(zhí)行一條指令時(shí),形成操作數(shù)的有效地址。其中的頁(yè)號(hào)部分用來(lái)檢查頁(yè)表,看該頁(yè)是否在內(nèi)存。如果在內(nèi)存,則進(jìn)行地址變換,按變換后的地址取出操作數(shù);如果不在內(nèi)存,則引起缺頁(yè)中斷,進(jìn)入缺頁(yè)中斷處理程序。在缺頁(yè)中斷處理程序中,主要的處理為:(1)利用存儲(chǔ)器分塊表檢查實(shí)存是否有空閑頁(yè)面。(2)如果有空閑存儲(chǔ)塊,則根據(jù)頁(yè)表提供的磁盤(pán)地址調(diào)入所需的頁(yè)面,修改頁(yè)表和分塊表后返回。(3)如果沒(méi)有空閑存儲(chǔ)塊,則選擇一頁(yè)淘汰掉。若該頁(yè)被修改過(guò)還需寫(xiě)回外存,調(diào)入所需的頁(yè)面。然后修改頁(yè)表和分塊表,返回。16.試述缺頁(yè)中斷與一般中斷的主要區(qū)別。答:程序在執(zhí)行時(shí),當(dāng)訪問(wèn)的頁(yè)面不在內(nèi)存時(shí),便產(chǎn)生缺頁(yè)中斷,請(qǐng)求操作系統(tǒng)將所缺頁(yè)調(diào)入內(nèi)存。中斷處理程序?qū)芽刂妻D(zhuǎn)向缺頁(yè)中斷子程序。然后系統(tǒng)執(zhí)行此子程序,把所缺頁(yè)面裝入主存中。接著處理器將重新執(zhí)行缺頁(yè)時(shí)打斷的指令。缺頁(yè)中斷是一種特殊的中斷,也就是說(shuō),缺頁(yè)中斷同樣需要經(jīng)歷諸如保護(hù)CPU環(huán)境、分析中斷原因、轉(zhuǎn)入缺頁(yè)中斷處理程序進(jìn)行處理、恢復(fù)CPU環(huán)境等幾個(gè)步驟,但與一般的中斷相比,它又具有以下不同點(diǎn):一般中斷是一條指令完成后中斷,而缺頁(yè)中斷是在一條指令執(zhí)行時(shí)中斷。通常,CPU都是在一條指令執(zhí)行完之后,才檢查是否有中斷請(qǐng)求到達(dá)。如果有,便去響應(yīng)中斷,否則,繼續(xù)執(zhí)行下一條指令。然而,缺頁(yè)中斷則是在指令執(zhí)行期間,發(fā)現(xiàn)所訪問(wèn)的指令或數(shù)據(jù)不在內(nèi)存時(shí)所產(chǎn)生和處理的。一條指令執(zhí)行時(shí)可能產(chǎn)生多個(gè)缺頁(yè)中斷。如指令可能訪問(wèn)多個(gè)內(nèi)存地址,這些地址在不同的頁(yè)中。17.假設(shè)有下面的段表:下面邏輯地址的物理地址分別是多少?①[0,430];②[1,12];③[2,500];④[3,400];⑤[4,122]段基址長(zhǎng)度02196001230014290100313275804195296答:①:649;②:2312;③:越界;④:1727;⑤:越界18.考慮下面存儲(chǔ)訪問(wèn)序列,該程序的大小為460字(以下數(shù)字均為十進(jìn)制數(shù)字):10、11、104、170、73、309、185、245、246、434、458、364該頁(yè)面的大小為100字,該程序的基本可用內(nèi)存為200字,計(jì)算采用FIFO、LRU和OPT置換算法的缺頁(yè)次數(shù)。解:因?yàn)轫?yè)面的大小為100字,該程序的基本可用內(nèi)存為200字,即可用內(nèi)存為2塊。程序的存儲(chǔ)訪問(wèn)序列可轉(zhuǎn)換為如下頁(yè)面訪問(wèn)序列:1、1、2、2、1、4、2、3、3、5、5、4采用FIFO、LRU和OPT置換算法的訪問(wèn)序列如下:由圖可知FIFO算法的缺頁(yè)次數(shù)為6次,LRU的缺頁(yè)次數(shù)為7次,OPT的缺頁(yè)次數(shù)為5次。19.有一個(gè)矩陣inta[100][100]以行為先進(jìn)行存儲(chǔ)。有一虛擬存儲(chǔ)系統(tǒng),物理內(nèi)存共有3塊,其中1塊用于存放程序,其余2塊用于存放數(shù)據(jù)。假設(shè)程序已經(jīng)在內(nèi)存中占用1塊,其余2塊空閑。程序A:程序B:for(i=0;i<100;i++)for(j=0;i<100;j++)for(j=0;j<100;j++)for(i=0;i<100;i++)a[i][j]=0;a[i][j]=0;若每頁(yè)可存放200個(gè)整數(shù),則程序A和程序B在執(zhí)行過(guò)程中各會(huì)發(fā)生多少次缺頁(yè)?若每頁(yè)只能存放100個(gè)整數(shù)呢?以上說(shuō)明了什么問(wèn)題?答:由題目所給條件可知,數(shù)組a有100100=10000個(gè)整數(shù),系統(tǒng)中共有2個(gè)內(nèi)存塊用于存放數(shù)組信息,數(shù)組中的元素按行編址。若每頁(yè)可以存放200個(gè)整數(shù),則一個(gè)內(nèi)存頁(yè)中可以存放2行數(shù)組元素,對(duì)于程序A,數(shù)組元素的訪問(wèn)順序?yàn)椋篴[0][0],a[0][1],…,a[0][99]a[1][0],a[1][1],…,a[1][99]…a[99][0],a[99][1],…,a[99][99]顯然,程序A對(duì)數(shù)組a的訪問(wèn)順序與存儲(chǔ)順序一致,也是按行進(jìn)行的。因此程序A每訪問(wèn)2行數(shù)組元素都會(huì)產(chǎn)生一次缺頁(yè)中斷,則訪問(wèn)整個(gè)數(shù)組會(huì)產(chǎn)生100/2=50次缺頁(yè)中斷。對(duì)于程序B,數(shù)組元素的訪問(wèn)順序是:a[0][0],a[1][0],…,a[99][0]a[0][1],a[1][1],…,a[99][1]…a[0][99],a[1][99],…,a[99][99]顯然,程序B對(duì)數(shù)組a的訪問(wèn)順序與存儲(chǔ)順序不一致。因此程序B每訪問(wèn)2個(gè)元素將產(chǎn)生一次缺頁(yè)中斷,則訪問(wèn)整個(gè)數(shù)組將產(chǎn)生10000/2=5000次缺頁(yè)中斷。若每塊只能存放100個(gè)整數(shù),則一個(gè)內(nèi)存塊中只能存放1行數(shù)組元素,對(duì)于程序A,每訪問(wèn)1行數(shù)組元素都會(huì)產(chǎn)生一次缺頁(yè)中斷,則訪問(wèn)整個(gè)數(shù)組會(huì)產(chǎn)生100次缺頁(yè)中斷;對(duì)于程序B,每訪問(wèn)1個(gè)元素將產(chǎn)生一次缺頁(yè)中斷,則訪問(wèn)整個(gè)數(shù)組將產(chǎn)生10000次缺頁(yè)中斷。以上結(jié)果說(shuō)明,缺頁(yè)中斷的次數(shù)和數(shù)據(jù)存放方法及程序訪問(wèn)數(shù)據(jù)的方法有很大關(guān)系;當(dāng)缺頁(yè)次數(shù)較少時(shí),減小頁(yè)面大小影響不大,當(dāng)缺頁(yè)次數(shù)很大時(shí),頁(yè)面的減小對(duì)系統(tǒng)效率及程序的執(zhí)行會(huì)帶來(lái)很大影響。什么是進(jìn)程在某時(shí)刻t的工作集?工作集與頁(yè)面的調(diào)入和淘汰策略有什么關(guān)系?答:工作集是指在某段時(shí)間間隔Δ里,進(jìn)程實(shí)際訪問(wèn)的頁(yè)面集合,具體地說(shuō)便是把某進(jìn)程在時(shí)間t-Δ~t之間所訪問(wèn)的頁(yè)面集合計(jì)為w(t,Δ),把變量Δ稱(chēng)為工作集窗口尺寸。正確選擇工作集窗口尺寸,對(duì)存儲(chǔ)器的有效利用和系統(tǒng)吞吐率的提高,都將產(chǎn)生重要影響。一方面,如果把Δ選得很大,進(jìn)程雖不易產(chǎn)生缺頁(yè),但存儲(chǔ)器也將不會(huì)得到充分利用。另一方面,如果把Δ選得過(guò)小,則會(huì)使進(jìn)程在運(yùn)行過(guò)程中頻繁地產(chǎn)生缺頁(yè)中斷,反而降低了系統(tǒng)的吞吐率。什么是抖動(dòng)?產(chǎn)生抖動(dòng)的原因是什么?答:抖動(dòng)是由于內(nèi)存空間競(jìng)爭(zhēng)引起的。當(dāng)需要將一個(gè)新頁(yè)面調(diào)入內(nèi)存時(shí),因內(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)論