1. 程式人生 > >第七章—記憶體管理【計算機作業系統】

第七章—記憶體管理【計算機作業系統】

7.1 記憶體管理需要滿足哪些需求?

重定位、保護、共享、邏輯組織和物理組織。

7.2 為什麼需要重定位程序的能力?

通常情況下,並不能事先知道在某個程式執行期間會有哪個程式駐留在主存中。此外還希望通過提供一個巨大的就緒程序池,能夠把活動程序換入和換出主存,以便使處理器的利用率最大化。在這兩種情況下,程序在主存中的確切位置是不可預知的。

7.3 為什麼不可能在編譯時實施記憶體保護?

由於程式在主存中的位置是不可預測的,因而在編譯時不可能檢查絕對地址來確保保護。並且,大多數程式設計語言允許在執行時進行地址的動態計算(例如,通過計算陣列下標或資料結構中的指標)。因此,必須在執行時檢查程序產生的所有儲存器訪問,以便確保它們只訪問了分配給該程序的儲存空間。

7.4 允許兩個或多個程序訪問程序的某一特定區域的原因是什麼?

如果許多程序正在執行同一程式,則允許每個程序訪問該程式的同一個副本要比讓每個程序有自己單獨的副本更有優勢。同樣,合作完成同一任務的程序可能需要共享訪問同一個資料結構。

7.5 在固定分割槽方案中,使用大小不等的分割槽有什麼好處?

通過使用大小不等的固定分割槽:1.可以在提供很多分割槽的同時提供一到兩個非常大的分割槽。大的分割槽允許將很大的程序全部載入主存中。2.由於小的程序可以被放入小的分割槽中,從而減少了內部碎片。

7.6 內部碎片和外部碎片有什麼區別?

內部碎片是指由於被裝入的資料塊小於分割槽大小而導致的分割槽內部所浪費的空間。外部碎片是與動態分割槽相關的一種現象,它是指在所有分割槽外的儲存空間會變成越來越多的碎片的。

7.7 邏輯地址、相對地址和實體地址間有什麼區別?

邏輯地址是指與當前資料在記憶體中的物理分配地址無關的訪問地址,在執行對記憶體的訪問之前必須把它轉化成實體地址。相對地址是邏輯地址的一個特例,是相對於某些已知點(通常是程式的開始處)的儲存單元。實體地址或絕對地址是資料在主存中的實際位置。

7.8 頁和幀之間有什麼區別?

在分頁系統中,程序和磁碟上儲存的資料被分成大小固定相等的小塊,叫做頁。而主存被分成了同樣大小的小塊,叫做幀。一頁恰好可以被裝入一幀中。

7.9 頁和段之間有什麼區別?

分段是細分使用者程式的另一種可選方案。採用分段技術,程式和相關的資料被劃分成一組段。儘管有一個最大段長度,但並不需要所有的程式的所有段的長度都相等。