第七章—內存管理【計算機操作系統】

7.1 內存管理需要滿足哪些需求?

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

7.2 爲什麼需要重定位進程的能力?

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

7.3 爲什麼不可能在編譯時實施內存保護?

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

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

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

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

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

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

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

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

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

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

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章