📚 3.1 記憶體管理的概念
🔵 3.1.1 記憶體管理的基本原理和要求
【存儲管理的目的】:
存儲管理的目的有兩個:
一、友善使用者;
二、提高記憶體使用率。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
1、程式連結和裝入
(1)程式的【三種連結】
靜态連結 | |
裝入時動态連結 | 邊裝入記憶體邊連結 |
運作時動态連結 | 運作進行時才進行連結 |
① 靜态連結
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
② 裝入時動态連結
在裝入記憶體時,邊裝入邊連結![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
③ 運作時動态連結
僅在運作需要某個目标子產品時,才調入記憶體進行連結可提升對記憶體的使用率![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【補充】
程式的動态連結與程式的邏輯結構相關,分段存儲管理将程式按照邏輯段進行劃分,是以有利于其動态連結。
其他的記憶體管理方式與程式的邏輯結構無關
(2)程式的【三種裝入⭐️】
絕對裝入 |
靜态重定位(/可重定位裝入) |
動态重定位(/動态運作時裝入) |
① 絕對裝入
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 注:
– 絕對裝入隻适用于單道程式環境。
單道程式環境:指早期的,還沒有作業系統的那個階段,是以這個過程是由編譯器完成的。
【缺點】:
由于編譯後産生的絕對位址是固定的,不能保證在其他電腦适用,靈活性極低
② 靜态重定位(可重定位裝入)
在裝入子產品(一般指
.exe
檔案)裝入記憶體時進行位址的重定位
用于早期的多道批處理作業系統
在程式運作之前,由裝配程式完成的,必須配置設定其要求的全部連續記憶體空間。
特點:![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
- 要求配置設定的空間是連續的,必須一次全部裝入;
- 若無足夠記憶體,不裝入;
- 由于在裝入時,位址寫死,故在運作過程中不可發生記憶體變換(如申請記憶體)
③ 動态重定位(動态運作時裝入)
– 現在系統使用的位址轉換機制
– 裝入時同樣使用邏輯位址,僅在程式真正要執行時才進行位址轉換
– 需引入重定位寄存器
CPU在執行時,會結合重定位寄存器以及邏輯位址來确定真實的實體位址![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
在連結過程中,除自己的![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 檔案,還有其需要的庫檔案會同時連結到
*.o
檔案中
*.exe
1![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 連結步驟,确定了完整的邏輯位址
裝入步驟,确定了最終的實體位址
2、邏輯位址空間與實體位址空間
【位址重定位】:
當裝入程式将可執行代碼裝入記憶體時,必須通過位址轉換将邏輯位址裝換成實體位址,這個過程稱為 位址重定位。
3、記憶體保護
記憶體保護可采取兩種方法:
上、下限寄存器 |
重定位寄存器+界位址寄存器 |
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【方法一:上、下限寄存器】
【方法二:重定位寄存器+界位址寄存器】
【界位址寄存器】:
最大邏輯位址的比較對象,若超出則發生越界;
【重定位寄存器】:
程式在記憶體中的始址,同合法的邏輯位址相加後得到相應的實體位址。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【注】:
因為系統處理器在同一時刻隻能執行一條指令或通路資料,是以為每道程式(資料)設定一個寄存器沒有必要(也不現實,貴),隻需在切換程式執行時重置寄存器的内容。
⚪* 3.1.2 覆寫與交換
22考研大綱已删
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 程序相關的PCB會保留在記憶體中,并插入到所謂的挂起隊列中,直到記憶體空間充足時,再将程序相關的資料再換入記憶體,PCB用于記錄程序存放在外存的存放位置
中級排程就是為了實作交換技術而使用的一種排程政策,
在交換技術中的作用是,選擇一個處于外存的程序,将其換入記憶體
在加入挂起狀态後,可引入程序的7狀态模型![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 離散配置設定方式:大限度提高存儲空間使用率
連續配置設定方式:提高換入換出速度
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
T
在交換技術中,程序正在進行 I/O 操作時不能換出主存,否則其 I/O 資料區将被新換入的程序占用,導緻錯誤。
但可以在作業系統中開辟 I/O 緩沖區。
将資料從外設輸入或将資料輸出到外設的 I/O 活動在系統緩沖區中進行,這時系統緩沖區與外設 I/O 時,程序交換不受限制。
》《
覆寫和交換的提出是為了解決主存空間不足的問題,但不是在實體上擴充主存,隻是将暫時不用的部分換出主存,以節省空間,進而在邏輯上擴充主存。
🔵 3.1.3 連續配置設定管理方式
有以下三種:
單一連續配置設定 固定連續配置設定 動态分區配置設定(/可變分區配置設定) 連續配置設定:指為使用者的程序配置設定的必須是一個連續的記憶體空間。![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
1、單一連續配置設定
(題目中有時會稱之為,單使用者連續配置設定)
不支援多道程式并發運作
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【優點】:
簡單;無外部碎片;可以采用覆寫技術擴充記憶體;不一定需要采取記憶體保護(eg:早期的PC作業系統MS-DOS)
【缺點】:
隻能用于單使用者、單任務的作業系統中;有内部碎片;存儲器使用率極低
2、固定分區配置設定
固定分區配置設定是最簡單的一種多道程式存儲管理方式。
20世紀60年代出現了支援多道程式的系統,為了能在記憶體中裝入多道程式,且這些程式之間又不會互相幹擾,
于是将整個使用者空間劃分為若幹個固定大小的分區,在每個分區中隻裝入一道作業,
這樣就形成了最早的、最簡單的一種可運作多道程式的記憶體管理方式,
稱其為固定分區配置設定。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 【優點】:
簡單;
無外部碎片
【缺點】:
① 當使用者程式太大時,可能所有的分區都不能滿足需求,此時不得不采用覆寫技術來解決,但會是以降低性能。
② 會産生内部碎片,記憶體使用率低。
内部碎片:單個分區因未充分利用,餘下的空間因分區内有程序而禁止其他程序使用(占着茅坑不拉屎)
外部碎片:因空間太小導緻其他程序想用也用不了的空間。
3、動态分區配置設定(/可變分區配置設定)
在程序裝入記憶體時,根據程序的大小動态地建立分區,并使分區的大小正好适合程序的需要。是以系統分區的大小和數目是可變的![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
2、當很多個空閑分區都能滿足需求時,應該選擇哪個分區進行配置設定?
應該用最大還是最小的?又或是用位址最低的部分進行配置設定?
将一個新作業裝入記憶體時,須按照一定的動态分區配置設定算法,從空閑分區表(或空閑分區鍊)中選出一個分區配置設定給該作業。後面介紹四種動态分區配置設定算法。
3、如何進行分區的配置設定與回收操作?
假設系統采用的資料結構是“空閑分區表”,如何配置設定?如何回收?![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 各表項順序也可以按照分區大小、位址遞增等各種名額進行排序,取決于具體的動态配置設定算法。![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(一)使用什麼樣的資料結構來記錄記憶體的使用情況?
答:一般會使用兩種資料結構:空閑分區表、空閑分區鍊
(二)幾種動态配置設定算法
答:後面講
(三)如何對記憶體空間的分區進行配置設定與回收?
答:···,注意在回收的過程中會遇到四種情況,總得來說,在進行記憶體分區回收時,回收後發現有一些空閑分區是相鄰的,則需要将相鄰分區合并
【動态分區配置設定關于内/外部碎片的問題】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 三種裝入方式中,動态重定位的方式最友善實作程序在記憶體中的位置移動,是以采用動态重定位的方式。
“緊湊”之後需要将各個程序的起始位址進行修改,這個資訊存放在對應的PCB中,當程序上CPU運作之前,會将PCB中的位址資訊放到重定位寄存器(又稱基址寄存器)中
4、小結
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
配置設定方式 | 内部碎片 | 外部碎片 |
---|---|---|
單一連續配置設定 | 有内部碎片 | 無外部碎片 |
固定連續配置設定 | 有内部碎片 | 無外部碎片 |
動态分區配置設定 | 無内部碎片 | 有外部碎片 |
【動态分區配置設定算法】
動态分區配置設定算法:在動态分區配置設定方式中,當很多個空閑分區都能滿足需求時,應該選擇哪個分區進行配置設定?![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(1)首次适應算法(First Fit)
(2)最佳适應算法(Best Fit)
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
實作方式:
空閑分區按照容量遞增次序連結,每次配置設定記憶體時,順序查找空閑分區鍊(或空閑分區表),找到大小能滿足要求的第一個空閑分區。
(3)最壞适應算法(Worst Fit)
又稱 最大适應算法(Largest Fit)![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(4)鄰近适應算法(Next Fit)
NF不必重新排列連結清單![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(5)小結
首次适應(First Fit) | 最簡單,性能最好 | ⭐️⭐️⭐️ |
最佳适應(Best Fit) | 性能差 | |
最壞适應(Worst Fit)(/最大适應(Largest Fit)) | 性能差 | |
鄰近适應(Next Fit)(/循環首次适應) | 比FF差 |
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 【關于此處的算法開銷問題】
BF、WF需要對連結清單進行二次排序,而FF、NF不需要,故算法開銷小。
這裡的算法開銷主要發生在對連結清單的二次排序上。
🔵 3.1.4 非連續配置設定管理方式
重難點![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
非連續配置設定管理方式根據分區的大小是否固定,分為兩種:分頁存儲管理方式和分段存儲管理方式。
其中分頁存儲管理方式又分為基本分頁存儲管理方式和請求分頁存儲管理方式
分頁存儲管理方式 | 基本分頁存儲管理方式 |
請求分頁存儲管理方式 | |
分段存儲管理方式 |
1、基本分頁存儲管理方式
(1)分頁存儲的幾個基本概念
頁面和頁面大小 |
位址結構 |
頁表 |
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【子問題:如何确定一個邏輯位址對應的頁号、頁内偏移量】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【邏輯位址結構】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(2)基本位址變換機構⭐️
選擇題、大題均可能考![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 分頁存儲管理中,若要将邏輯位址轉換為實體位址,共需要做四件事
1、要知道邏輯位址對應的頁号;
2、要知道邏輯位址對應的頁内偏移量
3、要知道邏輯位址對應的頁面在記憶體中存放的位置;
4、根據頁面在記憶體中的起始位置和頁内偏移量,即可得最終的實體位址
【頁表寄存器】
頁内偏移量的位數與頁面的大小可互推注意對頁号的越界檢查![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 最小3B
實際應用為4B
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 在CPU得到待通路的邏輯位址後,一直到實際通路到這個邏輯位址對應的記憶體單元的整個過程中,總共需要進行兩次通路記憶體的操作。
第一次通路記憶體:在查詢頁表時進行;
第二次通路記憶體:在實際通路目标記憶體單元時進行。
思考,是否可用其他的位址變換機構,進而實作降低訪存次數,進而加快整個位址變換。
(3)具有快表的位址變換機構
在基本位址變換機構的基礎上引入快表![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 快表并非狹義上的Cache
【視訊:具有快表的位址變換機構的過程···】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 下圖為其過程的甘特圖![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(4)兩級頁表
單級頁表存在什麼問題?如何解決? |
兩級頁表的原理、邏輯位址結構 |
如何實作位址變換 |
兩級頁表問題需要注意的幾個細節 |
【單級頁表存在的問題】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【兩級頁表的原理、位址結構】
【兩級頁表的位址變換】
參考單級頁表的位址變換【??】這裡的頁内偏移量正确嗎??不應該是 2 12 = 4096 2^{12}=4096 212=4096 嗎?![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 缺頁中斷,是指在執行某一條指令時,該指令欲通路的某一條暫時還沒有調入頁面時産生的,是以該中斷信号和目前執行的指令有關,是以該中斷屬于内中斷。![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【兩級頁表中的細節問題】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 假設沒有快表機構,
則 n n n 級頁表的訪存次數為 n + 1 n+1 n+1 次
【小結】
== 分頁存儲管理中,
邏輯位址配置設定是按頁為機關進行配置設定的,
而主存的配置設定即實體位址配置設定是以記憶體塊為機關配置設定的。
== 每個程序都有一個單獨的邏輯位址,有一張屬于自己的頁表。
== t
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 408中,常用頁目錄表來稱一級頁表
需要熟練掌握位址變換的實作
2、基本分段存儲管理方式
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 基本分段存儲管理與“分頁”最大的差別就是——離散配置設定時所配置設定位址空間的基本機關不同。
【引入段式存儲的優勢】:
引入段式存儲管理方式,主要是為了滿足使用者的下列要求:友善程式設計、分段共享、分段保護、動态連結和動态增長
【分段】
分段是指在使用者程式設計時,将程式按照邏輯劃分為幾個邏輯段。![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【段表】
頁表的作用:建立了各個邏輯頁面到實際的實體頁框之間的映射關系;
段表的作用:建立了各個邏輯段到實際的實體記憶體存放位置之間的映射關系。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 在分頁管理中,因為頁長固定,是以不需要顯式存放;
在分段管理中,因為段長不固定,是以需要顯式存放。
【位址變換機構】
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 在記憶體的系統區中,存放着很多用于管理系統中軟硬體資源的資料結構,包括程序控制塊PCB。
當一個程序要上處理機運作之前,程序切換相關的運作程式會将程序的運作環境恢複,其中包括很重要的硬體寄存器當中資料的恢複,也就是段表寄存器的恢複
在程序沒有上處理機進行運作時,段表始址F和段表長度M存放在PCB中;
當程序上處理機進行運作時,這兩個資料會被放入段表寄存器中。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 注意:
④ 在找到段号對應的段表項之後,系統還會對邏輯位址中的段内位址W進行檢查,判斷其是否超過段的最大段長;
若段内位址大于等于段長,則會産生越界中斷,否則繼續執行。(與頁式管理差別最大的步驟)
頁式管理中,每個頁面的頁長固定,系統不用檢查頁内偏移量是否超過頁面的長度;當時在分段存儲管理方式中不同,各個段的長度不同,是以必須要對段内的位址進行越界檢查
(3)分段、分頁管理的對比
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(4)段的共享與保護
【純代碼/可重入代碼】
不能被修改的代碼,不屬于臨界資源,這樣的代碼和不能修改的資料可以共享,而可修改的代碼和資料不能共享。
(5)【小結】
== 段式配置設定中CPU每次從記憶體中取一次資料需要2次訪存
第一次,先從記憶體中查找段表;
第二次,通過拼成的實體位址通路記憶體。
3、段頁式管理方式
== 段頁式配置設定中CPU每次從記憶體中取一次資料需要 3 次訪存
第一次,先從記憶體中查找段表;
第二次,通路記憶體查找相應的頁表;
第三次,通過拼成的實體位址通路記憶體。
【小結】
== 實作分頁、分段和段頁式存儲管理需要特定的資料結構支援,如頁表、段表等。為了提高性能,還需要硬體提供快存和位址加法器等,代價高。
分區存儲管理是滿足多道程式設計的最簡單的存儲管理方案,特别适合嵌入式等微型裝置。
== 段頁式結合兩者的優點
采用分段方法,來配置設定和管理使用者位址空間;
采用分頁方法,來管理實體存儲空間。
【三種存儲管理方式】
分頁式 | 分段式 | 段頁式 | |
---|---|---|---|
一維 | 二維 | ||
頁長固定 | 段長不固定 | ||
訪存次數 | 2 | 2 | 3 |
= =【通路主存的機關】
不同于對主存的配置設定,對主存的通路是以位元組或字位機關的。例如,在頁式管理中,不僅要知道塊号,而且要知道頁内偏移。
🔵 3.1.6
一、選擇題
1(C)
補充:
形成該邏輯位址的階段是:連結
完成該變換過程的階段是:裝載
2(D)?
解析:
虛拟記憶體的管理需要有相關的硬體和軟體支援,有請求分頁頁表機制、缺頁中斷機構、位址變換機構等。
幹擾項:
對C;編址空間的大小取決于硬體的訪存能力,一般有位址總線寬度決定。
5
6(B)
區分四種動态分區配置設定算法
23(D)
頁表的功能由一組專門的存儲器實作
頁表始址存放在 頁表基址寄存器(PTBR)中;
頁表長度存放在 頁表長度寄存器(PTLR)中。
程序未執行時,頁表始址和頁表長度存放于PCB中;
程序執行時,才将頁表始址和頁表長度存放到頁表寄存器(一般将PTBR和PTLR統稱為頁表寄存器(PTR))
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 【注意】
本類題型為了考察頁表寄存器,是以在未說明程序是否執行的情況下,預設頁表始址F和頁表長度M均存在于頁表寄存器(PTR)中。
28(D)
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
二、應用題
📚 3.2 虛拟記憶體管理
🔵 3.2.1 虛拟記憶體的基本概念
1、傳統存儲管理方式的特征
虛拟技術的提出,是基于著名的局部性原理![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
2、局部性原理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
3、虛拟存儲器的定義和特征
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
4、虛拟記憶體技術的實作
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 虛拟記憶體技術提供了兩個重要功能,
在請求分頁存儲管理中,分别為:請求調頁、頁面置換;
在請求分段存儲管理中,分别為:請求調段、段置換。
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
🔵 3.2.2 請求分頁管理
為了實作請求分頁,系統需提供一定的硬體支援。
除了需要一定容量的記憶體及外存的計算機系統,還需要有頁表機制、缺頁中斷機制和位址變換機構。
頁表機制 |
缺頁中斷機制 |
位址變換機構 |
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
1、頁表機制
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
2、缺頁中斷機構
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
3、位址變換機構
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
🔵 3.2.3 頁面置換算法
考查的置換算法有五種:
最佳置換算法(OPT) |
先進先出頁面置換算法(FIFO) |
最近最久未使用置換算法(LRU) |
時鐘置換算法(CLOCK) |
改進型時鐘置換算法 |
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
1、最佳置換算法
最佳(Optimal,OPT)置換算法,
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
2、先進先出頁面置換算法
先進先出(FIFO)頁面置換算法,
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【注】:
FIFO 算法可能出現 Belady 異常
FIFO 算法的性能很差。
3、最近最久未使用置換算法
最近最久未使用(Least Recently Used,LRU)置換算法
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【注】:
LRU 算法性能較好,接近OPT算法。但需要寄存器和棧的硬體支援,實作比較困難,開銷大。
LRU 是堆棧類的算法。
理論上可以證明,堆棧類算法不可能出現Belady異常。
FIFO 算法基于隊列實作,不是堆棧類算法
4、時鐘置換算法
時鐘(CLOCK)置換算法,又稱 最近未用(Not Recently Used,NRU)算法
簡單的時鐘置換算法
改進型的時鐘置換算法
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
5、改進型的時鐘置換算法
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
【小結】:
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
🔵 3.2.4 頁面配置設定政策
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
1、駐留集大小
針對駐留集大小是否可變,分為:固定配置設定和可變配置設定
針對當頁面置換時,置換的範圍,分為:局部置換和全局置換這兩種政策
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(1)固定配置設定局部置換
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(2)可變配置設定全局置換
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
(3)可變配置設定局部置換
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
2、調入頁面的時機
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
3、從何處調入頁面
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
🔵 3.2.5 抖動(颠簸)現象
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理
🔵 3.2.6 工作集
![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理 ![]()
第三章____記憶體管理📚 3.1 記憶體管理的概念📚 3.2 虛拟記憶體管理