作業系統記憶體管理問題集錦

2021-07-27 15:23:32 字數 3151 閱讀 8612

1. 可採用哪幾種方式將程式裝入記憶體?它們分別適用於何種場合?

a. 首先由編譯程式將使用者源**編譯成若干目標模組,再由鏈結程式將編譯後形成的目標模組和所需的-庫函式鏈結在一起,組成乙個裝入模組,再由裝入程式將裝入模組裝入記憶體; 

b. 裝入模組的方式有: 絕對裝入方式,可重定位方式和動態執行時裝入方式; 

c. 絕對裝入方式適用於單道程式環境下; 

d. 可重定位方式適用於多道程式環境下; 

e. 動態執行時裝入方式也適用於多道程式環境下.

2. 何謂靜態鏈結及裝入時動態鏈結和執行時的動態鏈結?

a. 靜態鏈結是指事先進行鏈結形成乙個完整的裝入模組,以後不再拆開的鏈結方---式;

b. 裝入時動態鏈結是指目標模組在裝入記憶體時,邊裝入邊鏈結的鏈結方式;

c. 執行時的動態鏈結是將某些目標模組的鏈結推遲到執行時才進行.

3. 在進行程式鏈結時,應完成哪些工作?

a. 對相對位址進行修改; 

b. 變換外部呼叫符號.

4. 在動態分割槽分配方式中,可利用哪些分割槽分配演算法?

a. 首次適應演算法; 

b. 迴圈首次適應演算法; 

c. 最佳適應演算法.

5. 在動態分割槽分配方式中,應如何將各空閒分割槽鏈結成空閒分割槽鏈?

應在每個分割槽的起始位址部分,設定一些用於控制分割槽分配的資訊,以及用於鏈結各分割槽的前向指標;在分割槽尾部則設定一后向指標,通過前,後向指標將所有的分割槽鏈結成乙個雙向鏈.

6. 為什麼要引入動態重定位?如何實現?

a. 為了在程式執行過程中,每當訪問指令或資料時,將要訪問的程式或資料的邏輯位址轉換成實體地址,引入了動態重定位. 

b. 可在系統中增加乙個重定位暫存器,用它來裝入(存放)程式在記憶體中的起始位址,程式在執行時,真-正訪問的記憶體位址是相對位址與重定位暫存器中的位址相加而形成的,從而實現動態重定位.

7. 在採用首次適應演算法**記憶體時,可能出現哪幾種情況?應怎樣處理這些情況?

a. **區與插入點的前乙個分割槽相鄰接,此時可將**區與插入點的前一分割槽合併,不再為**分割槽分配新表項,而只修改前鄰接分割槽的大小;

b. **分割槽與插入點的後一分割槽相鄰接,此時合併兩區,然後用**區的首址作為新空閒區的首址,大-小為兩者之和;

c. **區同時與插入點的前後兩個分割槽鄰接,此時將三個分割槽合併,使用前鄰接分割槽的首址,大小為三區之和,取消後鄰接分割槽的表項;

d. **區沒有鄰接空閒分割槽,則應為**區單獨建立乙個新表項,填寫**區的首址和大小,並根據其首址,插入到空閒鏈中的適當位置.

8. 在系統中引入對換後帶有哪些好處?

能將記憶體中暫時不執行的程序或暫時不用的程式和資料,換到外存上,以騰出足夠的記憶體空間,把已具備執行條件的程序或程序所需的程式和資料換入記憶體,從而大大地提高了記憶體的利用率.

9.為實現對換,系統應具備哪幾方面功能?

a. 對對換空間的管理; 

b. 程序的換出; 

c. 程序的換入.

10.在以程序為單位進行對換時,每次是否都將整個程序換出?為什麼?

a. 以程序為單位進行對換時,每次都將整個程序換出; 

b. 目的為了解決記憶體緊張的問題,提高記憶體的利用率.

11.請較詳細地說明,引入分段儲存管理是為了滿足使用者哪幾方面的需要?

a. 方便了程式設計; 

b. 實現了分段共享; 

c. 實現了分段保護; 

d. 實現了動態鏈結; 

e. 實現了動態增長;

12.在具有快表的段頁式儲存管理方式中,如何實現位址變換?

首先,必須配置一段表暫存器,在其中存放段表始址和段長tl. 進行位址變換時,先利用段號s,與段長tl進行比較,若stl,表示未越界,(若s=tl,表示段號太大,訪問越界,產生越界中斷訊號)於是利用段表始址和段號來求出該段對應的段表項在段表中的位置,從中求出該段的頁表始址,並利用邏輯位址中的段內頁號p來獲得對應頁的頁表項位置,從中讀出該頁所在的物理塊號b,再用塊號b和頁內位址構成實體地址.

13.為什麼說分段系統較之分頁系統更易於實現資訊共享和保護?

a. 對於分頁系統,每個程式段是分散儲存的,乙個程式段可能對應著幾個不同的頁。為了實現資訊共享和保護,則頁面之間需要一一對應起來,為此需要建立大量的頁表項;

b. 而對於分段系統,每個段都從0開始編址,並採用一段連續的位址空間,這樣在實現共享和保護時.只需為所要共享和保護的程式設定乙個段表項,將其中的基址與記憶體位址一一對應起來即可.

14.分頁和分段有何區別?

a. 分頁和分段都採用離散分配的方式,且都要通過位址對映機構來實現位址變換,這是它們的共同點;

b. 對於它們的不同點有三,第一,從功能上看,頁是資訊的物理單位,分頁是為實現離散分配方式,以消減記憶體的外零頭,提高記憶體的利用率,即滿足系統管理的需要,而不是使用者的需要;而段是資訊的邏輯單位,它含有一組其意義相對完整的資訊,目的是為了能更好地滿足使用者的需要;

c. 頁的大小固定且由系統確定,而段的長度卻不固定,決定於使用者所編寫的程式;

d. 分頁的作業位址空間是一維的,而分段的作業位址空間是二維的.

15.試全面比較連續分配和離散分配方式.

a. 連續分配是指為乙個使用者程式分配乙個連續的位址空間,包括單一連續分配方式和分割槽式分配方式,前者將記憶體分為系統區和使用者區,系統區供作業系統使用,使用者區供使用者使用,是最簡單的一種儲存方式,但只能用於單使用者單任務的作業系統中;分割槽式分配方式分為固定分割槽和動態分割槽,固定分割槽是最簡單的多道程式的儲存管理方式,由於每個分割槽的大小固定,必然會造成儲存空間的浪費;動態分割槽是根據程序的實際需要,動態地為之分配連續的記憶體空間,常用三種分配演算法: 首次適應演算法ff,該法容易留下許多難以利用的小空閒分割槽,加大查詢開銷;迴圈首次適應演算法,該演算法能使記憶體中的空閒分割槽分布均勻,但會致使缺少大的空閒分割槽;最佳適應演算法,該演算法也易留下許多難以利用的小空閒區;

b. 離散分配方式基於將乙個程序直接分散地分配到許多不相鄰的分割槽中的思想,分為分頁式儲存管理,分段儲存管理和段頁式儲存管理. 分頁式儲存管理旨在提高記憶體利用率,滿足系統管理的需要,分段式儲存管理則旨在滿足使用者(程式設計師)的需要,在實現共享和保護方面優於分頁式儲存管理,而段頁式儲存管理則是將兩者結合起來,取長補短,即具有分段系統便於實現,可共享,易於保護,可動態鏈結等優點,又能像分頁系統那樣很好的解決外部碎片的問題,以及為各個分段可離散分配記憶體等問題,顯然是一種比較有效的儲存管理方式;c. 綜上可見,連續分配方式和離散分配方式各有各自的特點,應根據實際情況加以改進和利用.

作業系統記憶體管理

作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...

作業系統記憶體管理

作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...

作業系統記憶體管理

記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。1.頁式管理 a.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...