58
第3第 第第 第第 第第第第第第第第第第第第第第第第第 第第第第第第第第第第第第第 第第 第第第 第第第 第第第第第第第第第第第第第第 第第第第第第 第第第第 體。,體。 第第第第 第第 第第第第第第 第第第第第第第第第第第第第第第第第第第第第 體一, 第第第第 第第第第第第第第第第第 第第第 第第第 第第第第第第第第第 體,體。體 z 第第 第第 第第第第第第第第 第 第第第第第第第第 第第第第第第 第第第第第第第 體),體, 第第第第第第 第第第第第第第第第第 第第第第第第第第 第第第第第第第 體,體, 第第第第第第第 第第第 一體。

第 3 章 記憶體管理

Embed Size (px)

DESCRIPTION

第 3 章 記憶體管理. 作業執行時又可為自己申請附加主記憶體空間或為子孫處理程序申請主記憶體空間。因此,處理程序是向系統申請主記憶體的基本單位。電腦系統的主記憶體是一種有限資源,卻能滿足多元程式系統的眾多處理程序對主記憶體的要求,其關鍵在於有效的記憶體管理。記憶體管理是指主記憶暻瑊 z (輔助儲存體管理見檔案系統),包括分配主記憶體給處理程序,回收處理程序所佔用的主記憶體,為分配出去的主記憶體提供保護與共用,以及為作業提供一個虛擬的記憶體空間。. 3.1 實體記憶體. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 3 章  記憶體管理

第 3 章 記憶體管理作業執行時又可為自己申請附加主記憶體空

間或為子孫處理程序申請主記憶體空間。因此,處理程序是向系統申請主記憶體的基本單位。電腦系統的主記憶體是一種有限資源,卻能滿足多元程式系統的眾多處理程序對主記憶體的要求,其關鍵在於有效的記憶體管理。記憶體管理是指主記憶暻瑊z(輔助儲存體管理見檔案系統),包括分配主記憶體給處理程序,回收處理程序所佔用的主記憶體,為分配出去的主記憶體提供保護與共用,以及為作業提供一個虛擬的記憶體空間。

Page 2: 第 3 章  記憶體管理

3.1 實體記憶體實體記憶體簡稱主記憶體,它是電腦系統

中最重要的儲存裝置。現今的個人電腦上通常都配有 64 MB 以上的 RAM ,大型電腦上的主記憶體容量更大。主記憶體除了作業系統程式碼佔用一部分( Windows 95 佔用高位址段,而 UNIX 系統 V 佔用低位址段)外,餘者皆為使用者區域,由使用者處理程序瓜分。

Page 3: 第 3 章  記憶體管理

3.2 虛擬記憶體概念與虛擬記憶體管理眾所周知,程式段經編譯後形成一個以 0

位址開始的線性位址或多維位址(常見二維位址)序列。使用者作業可能由若干個程式段組成,必須經過鏈結( linking )才能產生一個可執行檔。鏈結工作的實質是按照各個程式段之間的相互參照的關係把各段的位址統一成從0 開始的一維線性位址。例如, Windows 95 提供了 4 GB 的虛擬記憶體(比 64 MB 的實際主記憶體大得多),如圖 3-1 (含 OS/2 的虛擬記憶體)所示。

Page 4: 第 3 章  記憶體管理

圖 3-1 應用程式看到的虛擬記憶體

(b) Win 32 的虛擬記憶體(a) OS/2 的虛擬記憶體

Page 5: 第 3 章  記憶體管理

下面是 Windows 95 使用者在虛擬記憶體中建立私用區段、保留虛擬空間和儲存映射檔的情況。

(1) 私用區段。使用者使用 HeapCreate()來產生私用空間,然後在該空間上充分利用系統業已存在的虛擬記憶體分配特性。

(2) 保留虛擬空間。使用者使用 VirtualAlloc( ) ,在虛擬記憶體中保留一個區域,並且能對該區域限制存取許可權。

(3) 儲存映射檔。對 Windows 95 的使用者來說,最主要的虛擬記憶體管理特性是透過儲存映射支援共用虛擬記憶體區域。

Page 6: 第 3 章  記憶體管理

3.3 位址轉換有人不明白為什麼要進行位址轉換。在多元程式環

境下,一作業的處理程序空間所在主記憶體中的位置要依據當時主記憶體的狀況而定。因此,儘管它們在邏輯上的虛擬位址是固定的,卻實體記憶體位址在每次執行時可能都不相同,不進行位址轉換是不行的。

下面分兩種情況介紹記憶體管理方法。(1) 全部處理程序都能載入到主記憶體,其管理

方法主要有固定分區( Fixed Partition )、可變分區( Variable Partition )、分頁( Paging )、分段( Segmentation )。

(2) 只能部分處理程序或處理程序的一部分載入到主記憶體,其管理方法主要有需求分頁( Demand Paging )、需求分段( Demand Segmentation )。目前大多數作業系統都採用需求分頁方法。

Page 7: 第 3 章  記憶體管理

3.4 處理程序全部載入主記憶體

3.4.1 固定分區固定分區原理比較簡單,本節僅以舉例方

式說明其原理(如圖 3-2 所示)

圖 3-2 固定分區原理圖

Page 8: 第 3 章  記憶體管理

由於處理程序空間( Process Space, PS )的虛擬位址是從 0 開始遞增編址的,因此載入模組在把它載入到分區時,必須把所有虛擬位址轉換成從分區起始位址為起點的實體位址,其轉換公式是:

實體位址 =虛擬位址 +分區的起始位址在處理程序執行之前完成的位址轉換為靜態重定位

( static address relocation ),它不需要硬體支援。當某個 PS 從主記憶體的一個區域移動到另一個區域時,原先計算的實體位址不再有效,應當再次進行位址轉換,其轉換公式是:新實體位址 = 原區實體位址 -原區起始位址 + 新區起始位址

位址轉換部一定發生在載入模組在把某個 PS載入到分區時,有時會延遲到處理程序執行時,才會針對所參照到的物件做虛擬位址到實體位址的轉換,這叫做動態重定位( dynamic address relocation ),其過程如圖 3-3 所示。

Page 9: 第 3 章  記憶體管理

圖 3-3 動態重定位過程示意圖

Page 10: 第 3 章  記憶體管理

圖 3-4 分區與保護

上述位址轉換公式的計算需要硬體支援,增加了硬體費用。動態重定位花在位址轉換上的時間比靜態重定位少得多。

Page 11: 第 3 章  記憶體管理

3.4.2 可變分區可變分區管理不是事先把主記憶體空間一

次劃定,而是在系統執行過程中,根據處理程序實際需求的記憶空間大小來進行配置主記憶體。當處理程序釋放其所佔用的空間時,盡可能將那些較小的自由空間( Free Space)合併成較大的記憶體空間。在這種管理方法下,主記憶體分區的個數,各區域的大小,在主記憶體內活動的處理程序個數等都是隨時間而變化的。所以,可變分區又稱為動態分區。

Page 12: 第 3 章  記憶體管理

圖 3-5 可變分區管理初始狀態示例

Page 13: 第 3 章  記憶體管理

例如,設有一個總容量為 256 KB 的主記憶體,其中低位址部分的 40 KB 用於存放作業系統,其餘的216 KB 為 5 個處理程序空間所共同使用,如圖 3-5 所示。若按先來先服務( FCFS )演算法分配空間給 5個處理程序,則主記憶體配置的變化過程如圖 3-6 所示。

圖 3-6 依可變分區配置後記憶體的狀態

Page 14: 第 3 章  記憶體管理

以上是可變分區管理的基本想法,下面介紹實做的演算法。

資料結構資料結構一般常用有可用區塊表 FBT ( Free Block Table )和可用區塊串列 FBC ( Free Block Chain ) 兩種資料結構供可變分區管理選用。例如,設主記憶體空間有如圖 3-6(d) 所示的配置現狀,則可用 FBT或 FBC 描述之(如圖 3-7所示)。

Page 15: 第 3 章  記憶體管理

圖 3-7 兩種資料結構

Page 16: 第 3 章  記憶體管理

分區配置演算法分區配置演算法下面以 FBC 為基礎,介紹常見的三種分區

分配演算法。(1) 最先適合( First Fit )。每次分配

時總是順可用區塊尋找,找到第 1 個能滿足長度要求的可用區塊,將處理程序所需空間配置完畢後,剩餘的記憶體空間成為另一較小的可用區塊。

(2) 最佳適合( Best Fit )。這種方法是從可用區塊串列中挑選能滿足申請長度的最小可用區塊。

(3 )最差適合( Worst Fit )。總是挑選最大的可用區塊分配給申請者,這樣可使剩下的區域不致太小,還可供下次使用。

Page 17: 第 3 章  記憶體管理

分配分配 // 回收程式與優先順序考慮回收程式與優先順序考慮回收過程( free_block )是分配過程

( get_block )的逆操作。在回收時要考慮回收的自由區是否與原自由區鄰接。鄰接有四種情況,如圖 3-8 所示,除 (a) 外,在其他三種情況下都應把回收區與原自由區合併構成一個更大的自由區。回收後要調整 FBC。

圖 3-8 自由區鄰接情況

Page 18: 第 3 章  記憶體管理

地址轉換與保護地址轉換與保護可變分區管理採用動態重定位完成虛位址

到實體位址的轉換;基址 / 限長保護法(如圖3-9 ) 保證:當有越界事件產生時,當前指令不會去存取本分區之外的主記憶體。

圖 3-9 地址轉換與保護

Page 19: 第 3 章  記憶體管理

分區共用分區共用只要兩個處理程序空間包含相同的虛擬位

址(如 Windows 95 ),實體記憶體分區即被二處理程序所共用。同理,允許多處理程序共用分區。

Page 20: 第 3 章  記憶體管理

3.4.3 分頁管理固定分區管理存在“內部斷裂”,可變分區管理存

在一些小的難以使用之可用區塊(重新重組這些可用空間的代價太大),被稱為“外部斷裂”。由於內部斷裂的存在,主記憶體的利用率不高。其根本原因是它們都把處理程序使用空間作為不可分割,需整體申請一個整個區塊的主記憶體空間,固定分區是處理程序“整體”空間需求小於實體記憶體固定長度的分區,而產生內部斷裂,可變分區是“整區”大於“整體”而產生外部斷裂。也將實體記憶體劃分成較小的片段(稱為頁框),使分頁大小與頁框大小一致,恰好 1 個分頁正好佔用實體記憶體的 1 個頁框。申請者申請若干分頁,分配者分給等量的頁框,縱然有斷裂( fragmentation )產生,至多平均浪費半個頁框空間而已。這就是分頁法的基本想法。如圖 3-10 所示。

Page 21: 第 3 章  記憶體管理

圖 3-10 頁式管理示意圖

Page 22: 第 3 章  記憶體管理

圖 3-11 虛擬空間表與各頁表的關係

Page 23: 第 3 章  記憶體管理

圖 3-12 主記憶體可用頁框表的資料結構

圖 3-12 列出主記憶體可用頁框的三種資料結構表示法,。三種資料結構中,可用頁框串列最常被使用。 MBT 記錄的資訊多,在頁面置換時有用。位元示圖用得少。

Page 24: 第 3 章  記憶體管理

圖 3-13 頁式地址轉換

Page 25: 第 3 章  記憶體管理

圖 3-14 儲存鍵保護法

圖 3-14 清楚地說明了這一方法。儲存鍵由記憶體硬體邏輯實現,保護過程是由硬體自動完成的。由於 I/O 通道存取主記憶體不經過頁表,所以儲存鍵保護對 I/O 通道是十分有用的。

Page 26: 第 3 章  記憶體管理

分頁法有兩個問題值得研究。先講第 1 個問題。每次存取主記憶體都要

增加 1 次存取分頁表的操作,顯然,指令執行的時間會拉長。能在幾個指令週期時間內按分頁號找到對應的實體記憶體頁框號。相關暫存器是硬體對分頁法最有力的支援,其結構如圖3-15 所示。設置相關暫存器後存取主記憶體的流程如下:

Page 27: 第 3 章  記憶體管理

圖 3-15 相關暫存器的使用

Page 28: 第 3 章  記憶體管理

圖 3-16 共用常式的頁面

Page 29: 第 3 章  記憶體管理

3.4.4 分段管理在許多實際系統中,來源程式( So

urce program )經編譯和載入鏈結所形成的目的模組並不是一維的而是二維的位址,特別是用結構化編程語言寫的程式更是如此。針對這種現實,提出了分段儲存管理的方法。它的直觀圖解如圖3-17。

Page 30: 第 3 章  記憶體管理

分段管理是指處理程序執行之前全部分段都裝入主記憶體,每個分段必須分配在主記憶體的一段位址連續的區域內,但各段之間不強求連續主記憶體。由此看來,它是一種以段為單位分配與回收記憶體空間的管理方法。

分段管理的實現分段管理的實現實作分段管理需建立如下資料結構:1. 與可變分區管理類似的 FBT 或 FBC ,用以

記住未分配主記憶體空間的現狀;2. 每個作業 1 張分段表 ST ( Segment Tabl

e ),以記錄該作業各段情況。 FBT 和 FBC 已介紹過,下面介紹 ST。

Page 31: 第 3 章  記憶體管理

ST 主要包括:段長、主記憶體始址、存取許可權。許可權通常是 R(讀)、 W(寫)、 E(執行),且互不相斥。段的存取許可權在編譯時形成。顯然,對資料段只能讀或寫,不能執行,而對一個單純程序段(可重入段)能執行、讀,但不能更改。

其中 k 表示作業空間的分段總數, s1, s2 ,

…, sk分別表示各段的段長, p 是傳回的指向段表的指標。如果分配不成功則 p為零。此 cmalloc過程連續地為一作業的各段分配空間,只要有一次不成功便前功盡棄,整個配置失敗。

Page 32: 第 3 章  記憶體管理

圖 3-18 分段地址轉換

Page 33: 第 3 章  記憶體管理

分段式管理下,分段的共用和分頁式管理下的分頁的共用是相似的。

效能研究效能研究( 1 )由於要存取實際參照到的實體記憶體位

址,首先就要存取分段表,即增加了 1 倍的存取時間,仿分頁管理,在 CPU 和主記憶體之間設置一個相關暫存器( associative register )來提高存取速度。

( 2 )分段管理下主記憶體空間的利用率問題。若認為分段管理是可變分區管理的擴展,則只要取得小,幾乎沒有什麼內部斷裂產生,但卻可能有相當數量的外部斷裂,用空占比來衡量主記憶體空間利用率。在動態平衡時,主記憶體的空閒區和已占區(即已存放作業資料的區域)之比稱為空占比。

Page 34: 第 3 章  記憶體管理

從已占區的類型入手。隨著主記憶體空間的動態分配,已占區有 4 種基本類型如圖 3-19中 A , B , C , D 所示。當已占區 G 釋放後獲得 A′ , B′ , C′ , D′ 。在 A′ 情況下空閒區個數比原來增加了 1 個, D′ 則減少了 1 個,而B′ , C′ 不變。令 A , B , C , D 情況下已占區個數分別為 a, b, c, d,令 m, n分別為主記憶體中已占區和空閒區的個數,於是有:

Page 35: 第 3 章  記憶體管理

圖 3-19 (a) 已占區的 4 種基本類型 (b) 已占區 G 釋放後的 4 種情況

Page 36: 第 3 章  記憶體管理

3.5.1 請求頁式管理請求頁式管理是對分頁管理加以改進。

按實際需要載入頁面的做法可避免載入那些在執行中用不著的分頁,比起純粹的分頁管理,無疑節省了主記憶體空間。

圖 3-20 是需求分頁法下指令的執行過程。對圖 3-20 有幾點說明。

Page 37: 第 3 章  記憶體管理

圖 3-20 請求頁式下指令執行過程

Page 38: 第 3 章  記憶體管理

圖 3-21 Windows 95 頁表格式

( 1 ) CPU 給出的虛擬位址可能是指令本身的位址,也可能是指令中運算元的位址,按規定虛擬位址被分成頁號和頁內位移兩部分。圖 3-21 是 Windows 95 的頁表格式。

Page 39: 第 3 章  記憶體管理

(2 )根據 MBT 可以回答“主記憶體有可用區塊嗎”。處理程序在執行中產生了分頁錯誤中斷,該處理程序要等待頁面的置入,例如它等待將它的第 2 個頁面載入到主記憶體第 150塊中。在等待期, CPU 正在執行其他處理程序。

(3 )如圖 3-20 所示,當分頁錯誤中斷處理完後,要重新啟動被中斷的指令,它的意思是,不管中斷發生在指令的哪一個指令週期中,都要重頭開始執行指令,稱為“指令複執”。

(4 )一條指令的執行有可能產生多次分頁錯誤中斷。

(5 )從對換區調入所缺頁面或把淘汰的頁面寫回對換區涉及到對換區管理問題。

Page 40: 第 3 章  記憶體管理

頁面置換演算法頁面置換演算法如圖 3-20 ,替換主記憶體中的 1 個頁面,目的

是空出 1 個可用區塊以便存放新參照的頁面。替換哪個頁面的首要問題是決定針對整個主記憶體空間範圍內還是只在本處理程序所分配的頁框集中選擇。在需求分頁法中,可選用的頁面置換演算法有下列四種:(1)FIFO(First In First Out )即先進先出演算法。 (2) OPT( OPTimal )即最優置換演算法。(3 ) NUR ( Not Used Recently )演算法即替換最近一段時間內未參考到的頁面。(4 ) LRU ( Least Recently Used )演算法被 UNIX 系統 V、 Windows 95Windows NT、 OS/2 所採用。

Page 41: 第 3 章  記憶體管理

要為每個頁面設置一特定欄位來記錄自上次存取後到當前(替換時刻)的時間量,所以實現 LRU 演算法需對各頁面存取的歷史情況時時加以記錄和更新,系統的管理性成本會較大,一般是利用硬體與軟體配合來減少時間成本。下面提供兩個近似實作方法。

1. 計時法,即為每頁增設一個計時單元,每當頁被存取時,把系統絕對時間置入計時單元,置換時,比較各頁面的計時單元,選有最小值(最久未使用頁面)的頁面淘汰之。

2. 暫存器法,即為每頁設置一個 n 位的暫存器: R = rn-1 rn-2…r0,當某頁被存取時,便設定相應的 rn-1位為 1 ,然後每隔一個時鐘單位,將所有 R右移 1 位。置換時,比較各暫存器值(無符號整數)的大小,值最小的頁面作為被替換的頁面。該方法比記時法的資訊含量多。例如:暫存器中值 1 的個數表示最近該頁被存取的頻率,頻率高低反映頁面在歷史上的“盛衰”,供 LRU 置換作進一步參考。

Page 42: 第 3 章  記憶體管理

性能研究性能研究(1 ) M與 的關係一般說來, M (分給處理程序空間的實體記憶體頁框數)越大, (分頁錯誤率)越小。

(2)分頁的大小( Page Size)與的關係較大的分頁,則頁面存取的命中率高,就小,較小的分頁,則大。

(3)與主記憶體有效存取時間的關係主記憶體有效存取時間 EAT ( effective access time)是存取主記憶體所需時間的平均值。

(4 )翻轉( thrashing )與工作集模式( working-set model )

Page 43: 第 3 章  記憶體管理

如果處理程序花在頁面置入 / 置出上的時間多於實際的執行時間,稱為系統發生了翻轉。僅在本處理程序空間發生的翻轉稱局部翻轉。導致處理程序處於翻轉狀態的原因可能是所佔實體記憶體頁框數不足、置換演算法不良或頁面存取序列異常。

圖 3-23 工作集

Page 44: 第 3 章  記憶體管理

對換區(對換區( SwappingSwapping )管理)管理被替換的頁面理應“從哪裡來回哪裡去”,

但若該分頁內容有被修正過:如果替換頁沒有被修改過,則不必回存至輔助儲存體,因為輔助儲存體中已有其備份版本;如果替換頁已被修改過,則更不能回寫到磁片中它的正本位置上,而應暫時駐留在由若干區塊組成的專用對換區中。

Page 45: 第 3 章  記憶體管理

頁面共用頁面共用若干處理程序共用某個頁面,只要把該頁面

所佔主記憶體區塊編號填入各自的分頁表中即可,如圖 3-24 所示。

圖 3-24 請求頁式下的頁面共用

Page 46: 第 3 章  記憶體管理

實例──實例── UNIXUNIX 系統系統 VV 的記憶體管理的記憶體管理UNIX 系統 V採用請求分頁法記憶體管理。

( 1) UNIX 系統 V的虛擬記憶體( 2)主記憶體空閒塊的管理

處理程序的 p0區和 p1區要進入主記憶體時,用 memalloc ( base , size )申請空閒塊。 memalloc 程式採用改進的位元示圖結構。釋放空間時使用 memfree ( base , size ),其中 base指向處理程序頁表始址, size為主記憶體塊數。( 3)把處理程序空間的一部分載入主記憶體

作業系統為選中的作業建立一個作業控制處理程序,此處理程序空間的 p0區存放作業的可執行代碼(程式段),而 p1

區為資料段,兩段的虛擬頁表被全部載入主記憶體的頁表區,但 p0區和 p1區按該處理程序應佔用的主記憶體載入其一部分頁面,其餘的頁面由頁面置換(分頁錯誤時)演算法負責。

Page 47: 第 3 章  記憶體管理

( 4)把系統空間載入主記憶體作業系統初啟時,由初啟程式負責把系統空間和未用

空間一併分頁並形成系統頁表,然後把作業系統本身的程式段和資料段(含系統堆疊),連同系統分頁表一併載入主記憶體的低位址部分。系統分頁表的起始位址和長度載入系統分頁表基底位址暫存器 SBR 和長度暫存器 SLR 中,如圖 3-26 所示。( 5)地址轉換

UNIX 系統 V的位址轉換分兩種情況。第 1 種是將虛擬記憶體中的系統空間位址轉換到主記憶體的作業系統區;第 2 種是把虛擬記憶體的處理程序空間位址轉換到主記憶體的使用者區。兩種位址轉換都由硬體自動完成。

Page 48: 第 3 章  記憶體管理

圖 3-25 虛擬記憶體佈局、位址結構與頁表項格式

Page 49: 第 3 章  記憶體管理

圖 3-26 主記憶體佈局

Page 50: 第 3 章  記憶體管理

3.5.2 請求段頁式管理請求段頁式管理是把請求段式與請求頁式

結合起來的一種記憶體管理方法。它最主要的優點是具備段的動態鏈結功能──在執行過程中進行段的鏈結與裝入。

實現原理實現原理( 1 ) 虛擬位址構成

主記憶體分塊,每塊等長,使用者程式的段分頁,頁面長度與主記憶體塊長相同,因此虛擬位址是二維的實體上分佈在各個頁表中。段內代碼通過頁表邏輯上連續,實體上分散在主記憶體的各個實體塊中。

Page 51: 第 3 章  記憶體管理

( 2 )段表、頁表和地址轉換段表包括段號、頁表始址、頁表長度、段的存

取許可權、擴充標記、在主記憶體還是不在主記憶體的狀態位元、共用段表入口號等。頁表包括主記憶體塊號、在不在主記憶體的狀態位元、外存位址、修改標記等。地址轉換過程如圖 3-27 所示。

( 3 ) 管理演算法1. 越界中斷處理2. 越權中斷處理3. 缺頁中斷處理4. 缺段中斷處理5. 鏈結中斷處理

Page 52: 第 3 章  記憶體管理

圖 3-27 請求段頁式管理的位址轉換

Page 53: 第 3 章  記憶體管理

圖 3-28 MULTICS 的動態鏈結

Page 54: 第 3 章  記憶體管理

分段動態鏈結分段動態鏈結先介紹 MULTICS 系統採用的動態鏈結方法,然後再

看看利用 DLL(動態連結程式庫)機制的動態鏈結。( 1) MULTICS方法

MULTICS 方法需要編譯(或彙編)程式和兩個附加的硬體設施(間接變址指示位元 @和鏈結障礙位元 L)的支持。( 2)動態連結程式庫( DLL)機制

使用者把處理程序空間中的各個分段按 DLL 機制的約定分別編譯,作業系統自動實現動態鏈結。動態鏈結程式分成鏈結和裝入兩個步驟。

Windows 自己在很大程度上可以說就是 DLL的大集成,並且系統依靠運行時刻名稱辨別函數來實現其各成員的內部鏈結。圖 3-28列出了 Windows3.1 Hewlett-Packard PCL和 PostScript印表機驅動程式的動態鏈結的前幾項。

Page 55: 第 3 章  記憶體管理

圖 3-28 印表機驅動程式中的驅動鏈結入口

Page 56: 第 3 章  記憶體管理

分段共用分段共用圖 3-28 中 M 段使用 X 段中的資料,若另

有一個 N 段,也使用 X 段中的資料,則 X 段成為共用段。在 M 段中的動態鏈結分配段號 5 給X 段,在 N 段中的動態鏈結分配另一段號給 X段。由此可見分段共用很方便。圖 3-29 表示兩個處理程序共用 X段的示意圖。

Page 57: 第 3 章  記憶體管理

圖 3-29 甲處理程序的 5 號段、乙處理程序的

Page 58: 第 3 章  記憶體管理

33 號段共用號段共用 XX 段段當共用段調出主記憶體時,必須通知各共

用處理程序。可以為共用段設置專用段表(共用段表)供鏈結時使用。如果設置了共用段表,這種通知可直接作用于共用段表,比通知各處理程序要節省時間。