第5章儲存管理習題答案

2021-03-04 09:45:59 字數 4971 閱讀 3260

(1) 儲存管理的任務和功能是什麼?

解:儲存管理的主要任務是:

1. 支援多道程式的併發執行,使多道程式能共享儲存資源,在互不干擾的環境中併發執行。

2. 方便使用者,使使用者減少甚至擺脫對儲存器的管理,使使用者從儲存器的分配、保護和共享等繁瑣事物中解脫出來。

3. 提高儲存器的利用率和系統吞吐量。

4. 從邏輯上擴充記憶體空間,支援大程式能在小的記憶體空間執行或允許更多的程序併發執行。

為了完成上述任務,現代作業系統的儲存管理應具有以下功能:

1. 儲存空間的分配和**。

2. 位址轉換,實現邏輯位址到實體地址的對映。

3. 主存空間的共享。

4. 主存空間的保護。

5. 主儲存空間的擴充。

6. 對換,對換的主要任務是實現在記憶體和外存之間的全部或部分程序的對換,即將記憶體中處於阻塞狀態的程序調換到外存上,而將外存上處於就緒狀態的程序換入記憶體。對換的目的主要是為了提高記憶體利用率,提高系統的吞吐量。

(2) 為什麼要配置層次式儲存器?

解:為了解決cpu和儲存器之間速度上的不匹配,在現代計算機系統中,儲存系統通常採用層次結構,儲存層次可粗略分為**:最高層為cpu暫存器,中間為主存,最底層是輔存。根據具體功能還可以細分為暫存器、快取記憶體、主儲存器、磁碟快取、輔儲存裝置(固定磁碟、可移動儲存介質)5層。

乙個檔案的資料可能出現在儲存系統的不同層次中,例如,乙個檔案資料通常被儲存在輔存中(如硬碟),當其需要執行或被訪問時,就必須調入主存,也可以暫時存放在主存的磁碟快取記憶體中。大容量的輔存常常使用磁碟,磁碟資料經常備份在可移動磁碟或者光碟上,以防止硬碟故障時丟失資料。

(3) 什麼是邏輯位址?什麼是實體地址?為什麼要進行二者的轉換工作?

解:邏輯位址是應用程式中使用的訪存位址,有時也稱為相對位址,由邏輯位址構成的位址空間稱為邏輯空間。每個應用程式的邏輯位址空間都是從零號位址碼開始的。

實體地址是記憶體儲器的實際儲存單元位址,有時也稱為絕對位址,由實體地址構成的位址空間稱為物理空間。實體地址空間也是從零號位址碼開始的。

在多道程式環境下,程式邏輯位址空間和記憶體實體地址空間是不一致的。使用者程式的邏輯位址可以是一維線性或多維線性,而記憶體中的每乙個儲存單元都有相應的記憶體位址相對應,屬於一維線性位址。在將使用者程式部分或全部地裝入記憶體空間時,要實現邏輯位址到實體地址的對映。

(4) 位址重定位,靜態位址重定位和動態位址重定位有什麼區別?

解:位址重定位指從邏輯位址到實體地址的對映過程,也稱為位址對映。

靜態位址重定位是指在使用者程式執行之前完成位址對映工作,即把程式的邏輯位址都轉換為實際的記憶體實體地址。靜態位址重定位的位址變換只是在裝入時一次完成,而在程式執行期間不再變化。

動態位址重定位是指在程式執行過程中,cpu在訪問記憶體之前,將要訪問的程式或資料位址轉換為記憶體位址。

(5) 什麼是內部碎片和外部碎片?。

解:在乙個分割槽內部出現的碎片(即被浪費的空間)稱作內部碎片,如固定分割槽法就會產生內部碎片;

在所有分割槽之外新增的碎片稱作外部碎片,如在動態分割槽法實施過程中出現的越來越多的小空閒塊就是外部碎片,由於它們太小,無法裝入乙個程序,因而被浪費掉。

(6) 什麼是分頁和分段儲存技術,兩者有何區別?

解:在分頁系統中,系統會把使用者程式的位址空間劃分成若干個大小相等的區域,每個區域稱作乙個頁面或頁。每個頁都有乙個編號,叫做頁號。

頁號一般從0開始,如0,1,2,…,等。類似地,也把記憶體空間劃分成若干和頁大小相同的物理塊,這些物理塊叫「幀」(frame)或記憶體塊。同樣,每個物理塊也有乙個編號,塊號也是從0開始依次順序排列。

系統為程序分配記憶體時,以塊為單位將程序中的若干頁分別裝入多個可以不相鄰接的塊中。

在分段儲存管理方式中,程式按內容或過程(函式)關係劃分為若干個段,每個段定義一組邏輯資訊,都有自己的名字。乙個使用者作業所包含的段對應於乙個二維線性虛擬空間,也就是乙個二維虛擬儲存器。段式管理程式以段為單位進行記憶體分配,然後通過位址對映機構把段式虛擬位址轉換為實際的記憶體實體地址。

分段和分頁有許多相似之處,比如,二者在記憶體中都採用離散分配方式,而不是整體連續分配方式,而且都要通過位址對映機構來實現位址轉換。但二者在概念上卻完全不同,具體表現在下述三個方面:

1. 頁是資訊的物理單位,而段是資訊的邏輯單位。分頁是為了實現離散分配,減少記憶體碎片,提高記憶體利用率。

或者說,分頁是由於系統管理的需要,而不是使用者的需要。段則是資訊的邏輯單位,它含有一組意義相對完整的資訊。段的長度不是固定的,取決於使用者所編寫的程式。

分段的目的是為了能更好地滿足使用者的需要,更方便使用者程式設計,更好地實現資訊共享和保護。

2. 頁的大小由系統確定,由系統把邏輯位址劃分為頁號和頁內位址兩部分,整個系統只能有一種大小的頁面;而段的長度卻不固定,它取決於使用者的程式。通常由編譯程式在對原始碼進行編譯時,根據程式的性質來劃分。

3. 分頁的程序位址空間是一維的,即單一的線性空間;而分段的程序位址空間是二維的,由段號和段內位址兩部分組成。

(7) 什麼是虛擬儲存器?列舉採用虛擬儲存器的必要性和可能性。

解:虛擬儲存器是指在具有層次結構儲存器的計算機系統中,具有請求調入和交換功能,為使用者提供乙個比實際物理記憶體容量大得多的可定址的一種儲存器系統,它能從邏輯上對記憶體容量進行擴充。

採用虛擬儲存器的必要性:傳統儲存管理方式要求將作業全部裝入記憶體之後才能執行,這一特徵導致大作業和多個作業要求執行時系統無法滿足;另外,傳統儲存管理方式具有駐留性,即作業裝入記憶體直到執行結束,便一直駐留在記憶體中。儘管程序在執行中會因i/o等原因而長期處於阻塞狀態,或有的程式模組在執行過一次後就不再需要,但它們都仍將繼續占用寶貴的記憶體資源。

採用虛擬儲存器的可能性:根據程式的區域性性定理,應用程式在執行之前,沒有必要全部裝入記憶體,而只需要將那些當前要執行的部分頁或段先裝入記憶體即可執行,其餘部分可以仍然留在外存。程式在執行時,如果它所訪問的頁(段)已經調入記憶體,便可繼續執行下去。

但如果程式所要訪問的頁(段)不在記憶體中(稱為缺頁或缺段),此時程式可以利用作業系統提供的請求調頁(段)功能,將它們調入記憶體,以便程式能夠繼續執行下去。如果記憶體已滿,無法裝入新調入的頁(段),則必須利用一定的頁(段)置換功能,將記憶體中暫時不用的頁(段)換到外存中,以騰出足夠的空間來存放新調入的頁(段),從而保證程式的順利執行。這樣,乙個大的程式就可以在較小的記憶體空間中執行。

從使用者的角度來看,該系統所具有的記憶體容量比實際記憶體容量大了很多。但實際上,使用者所看到的大容量儲存器是不存在的,只是虛擬的,故把這樣的儲存器稱為虛擬儲存器。

(8) 乙個計算機系統的虛擬儲存器,其最大容量和實際容量分別由什麼決定?

解:虛擬儲存器的最大容量由主存和輔存的容量之和確定。

虛擬儲存器的實際容量由指令中表示位址的字長決定,也就是計算機的位址結構決定的。

(9) 描述下列演算法:

①首次適應;②最佳適應;③最差適應

解:最先適應演算法又稱首次適應演算法,該演算法要求空閒分割槽表或空閒分割槽鏈按起始位址遞增的次序排列。在進行記憶體分配時,從空閒分割槽表(鏈)首開始順序查詢,一旦找到大於或等於所要求記憶體長度的分割槽,則結束查詢。

然後,該演算法從該分割槽中劃出所要求的記憶體長度分配給請求者,餘下的空閒分割槽仍留在空閒分割槽表(鏈)中,同時修改其相應的表(鏈)項。

最佳適應演算法要求空閒分割槽按容量大小遞增的次序排列。當使用者作業申請乙個空閒區時,儲存管理程式從空閒分割槽表(鏈)首開始順序查詢,當找到第乙個滿足要求的空閒區時,停止查詢。按這種方式為作業分配記憶體,就能把既滿足作業要求又與作業大小最接近的空閒分割槽分配給作業。

如果空閒分割槽大於作業的大小,則與最先適應演算法相同,將減去作業請求長度後的剩餘空閒區仍然留在空閒分割槽表(鏈)中。

最壞適應演算法要求空閒分割槽按其大小遞減的順序組成空閒分割槽表(鏈)。當使用者作業申請乙個空閒區時,先檢查空閒分割槽表(鏈)的第乙個空閒分割槽的大小是否大於或等於所要求的記憶體長度,若空閒分割槽表(鏈)的第一項長度小於所要求的大小,則分配失敗,否則從該空閒分割槽中劃出與作業大小相等的一塊記憶體空間分配給作業,餘下的空閒分割槽仍然留在空閒分割槽表(鏈)中。

(10) 如果記憶體劃分為100kb、500kb、200 kb、300 kb和600 kb(按順序),那麼,首次適應、最佳適應和最差適應演算法各自將如何放置大小分別為215 kb、414 kb、110 kb和430 kb(按順序)的程序,哪一種演算法的記憶體利用率高?

解:見下圖,在首次適應和最差適應演算法中,最後430kb沒有空間分配。由圖可知,最佳適應演算法的記憶體利用率高。

(11) 某作業系統採用分割槽儲存管理技術。作業系統占用了低位址端的100kb的空間,使用者區從100kb處開始共占用512kb,初始時,使用者區全部空閒,分配時擷取空閒區的低位址部分作為乙個分配區。在執行了如下的申請、釋放操作序列後:

作業1申請300kb、作業2申請100kb、作業1釋放300kb、作業3申請150kb、作業4申請50kb、作業5申請90kb。

① 分別畫出採用首次適應演算法、最佳適應演算法進行記憶體分配後的記憶體分配圖和空閒區佇列;

② 若隨後又申請80kb,針對上述兩種情況會產生什麼後果?

解: 採用首次適應演算法、最佳適應演算法進行記憶體分配後的記憶體分配圖和空閒區佇列圖如下所示。

若隨後又申請80kb,只有採用首次適應演算法的記憶體分配還有空間可以分配,分配圖如下:

(12) 假設乙個有8個節頁面的邏輯位址空間,對映到乙個有32幀的物理記憶體:

① 邏輯位址有多少位實體地址有多少位?

解:邏輯位址有13位;實體地址有15位。

(13) 某虛擬記憶體的使用者程式設計空間共32頁,每頁的大小為1 kb,記憶體為16 kb,假設某時刻系統為使用者的第0、1、2、3頁分配的物理塊為5、10、4、7,而該使用者作業的長度為6頁,試將16進製制的虛擬位址0a5c、093c、1a5c轉換成實體地址。

解:1. 虛擬位址為0a5c,對應的二進位制數為:

0000 1010 0101 1100。其中,頁內偏移量佔10位位址碼,為25c。頁號佔6位位址碼,為2號頁。

因第2頁儲存在4號塊中,其基位址為:0001 0000 0000 0000,即十六進製制的1000h。這樣,其實體地址為十六進製制的125c。

2. 虛擬位址為093c,對應的二進位制數為:0000 1001 0011 1100。

其中,頁內偏移量佔10位位址碼,為13c。頁號佔6位位址碼,為2號頁。因第2頁儲存在4號塊中,其基位址為:

0001 0000 0000 0000,即十六進製制的1000h。這樣,其實體地址為十六進製制的113c。

第4章儲存管理習題及答案

第四章儲存器管理習題分析 一 判斷改錯題 判斷敘述是否正確,正確的打 錯誤的打 並改正。1.進行程式的相對位址到實體地址的轉換,就是位址重定位。2.在分頁管理中所產生的記憶體碎片,最多小於幀的大小。3.段頁式儲存管理是通過請求調入和替換功能,對內外存進行統一管理,為使用者提供了比實際記憶體容量大的多...

第5章習題答案

第5章靜態成員與友元 一 選擇題 1.下述靜態資料成員的特性中,d 是錯誤的。a.說明資料成員時前邊要加修飾符staticb.靜態資料成員要在類體外進行初始化 c.引用靜態資料成員時,要在靜態資料成員名前加 類名 和作用域運算子d.靜態資料成員不是所有物件所共有的。2.關於友元,下面說法中正確的是 ...

第5章外匯風險管理習題答案

第五章外匯風險管理 一 單項選擇題 1 本幣對外幣公升值對進出口具有 b 的作用。a 獎出限入 b 獎入限出 c 無影響 d 獎出限出 2 在進出口業務中防範交易風險首要的是 a a 靈活選擇和使用計價與結算貨幣 b 簽訂貨幣保值條款 c 金融交易防範d 借款 投資法 3.運用外幣選擇法來防範外匯風...