操作系統原理之內存管理(第四章第二部分)

?一、基本分頁存儲管理方式

1、分?存儲管理的基本原理:

  • 頁:將?個進程的邏輯地址空間分成若?個??相等的?
  • 頁框:將物理內存空間分成與???相同的若?個存儲塊
  • 分?存儲:將進程中的若??分別裝?多個可以不相鄰的?框中
  • 頁內碎片:進程最后???般裝不滿?個?框,形成?內碎?
  • 頁表:實現從?號到?框號的映射

?************************************************************************************************

?

?2、分?地址結構:基本分頁存儲管理方式的邏輯地址結構包括兩部分,即頁內偏移量 和頁號

*******************************************************************************************************************

?例題:

?

*****************************************************************************************************************

?

?

?3、分?地址變換

  • 進程執行,PCB中頁表起始地址和頁表長度送到CPU的頁表寄存器
  • CPU訪問某個邏輯單元A
  • 由分頁地址變換硬件自動將A分為頁號和頁內偏移兩部分
  • 由硬件檢索頁表,得到A所在的頁對應的頁框號
  • 頁框號和頁內偏移地址送物理地址寄存器,計算物理地址。物理地址=頁框大小?頁框號+頁內偏移量

4、???的選擇因素

  • 管理內存開銷 :頁較?,劃分為較多?,?表過?,占內存 較?
  • 內存的利?率: 頁較?,?內碎??,空間利?率低

5、快表TLB:

快表也稱“轉換后援緩沖”,是為了提?CPU訪存速度?采?的專?緩存, ?來存放最近被訪問過的?表項。

?

?

?快表TLB的計算:

?

***************************************************************************************************************************************

?

?

?

?

?6、兩級和多級?表

?將?表再分?,形成兩級或多級?表,將?表離散地存放在物理內存中。

?

?

?**********************************************************************************************************

?

二、基于分頁的虛擬存儲系統

1、虛擬存儲器:

  • 虛擬存儲器是指具有請求調?功能和置換功能,能從邏輯上對內存容量 進?擴充的?種存儲器系統
  • 就是說,先將進程的?部分裝?內存,其余的部分什么時候需要,什么 時候請求系統裝?,即請求調?
  • 如果請求調?時,沒有?夠的內存,則由操作系統選擇?部分內存中的 進程內容移到外存,以騰出空間把當前需要裝?的內存調?,即置換

?

?2、請求分?系統是最基本、最常?的虛擬存儲系統的實現?式

  請求分?中的硬件?持:

    為了實現請求分?,需要: 特殊的?表、缺?異常機構和?持請求分?的地址變換機構。

?

?

?

?

?

?

?

?

?  ?分配策略:

    

?*****************************************************************************************************************************?

    

?***********************************************************************************************************************************

?    

****************************************************************************************************************************************

3、 ?置換算法:從內存?中選擇換出?的算法

A、最佳置換算法(主要?于理論研究):選擇以后永遠不會被訪問的?或者在未來最?時間內不再被訪問的?作為換出?

?

B、先進先出置換算法FIFO(最簡單的?置換算法):為每個?記錄該?調?內存的時間,選擇換出?時,選擇進?內存時間最早的?

?

?

?

C、最近最久未使?置換算法 LRU(實現最佳算法的近似算法):選擇最近最久未使?的?換出(??個字段記錄?個??上次被訪問以來所經歷的時間)

?

?

?

D、附加引?位算法

E、簡單Clock置換算法:選擇最近沒有被訪問的淘汰

F、改進型Clock算法:選擇既沒有被訪問過?沒有被修改過的淘汰

G、最少使?置換算法:選擇最近時期內使?次數最少的淘汰

H、?緩沖算法

4、請求分?系統的性能:

a、缺?率對有效訪問時間的影響

有效訪問時間=0.1+24999.9?P(P為缺?率)

有效訪問時間與缺?率成正?,缺?率越?,有效訪問時間越?,訪問效率越低有效訪問時間越低

b、?作集 :? ?引??作集?的:降低缺?率,提?訪問內存效率? ? ?含義:某段時間間隔?,進程實際要訪問的?的集合

c、抖動 :? 運?進程的?部分時間都?于?的換?換出 ?乎不能完成任何有效果?作的狀態

產?原因:? ?進程數量太多? ? 分配?框太少

預防?法:采取局部置換策略? ? ? 引??作集? ? ? 掛起若?進程

?三、分段存儲管理

?分段機制的引?:在分段存儲管理的系統中,程序員使??維的邏輯地址,?個數?來表示段, 另?個數?來表示段內偏移。

?

?

?

?引?分段機制的優點: ?便編程、分段共享、分段保護、動態鏈接,以及動態空間的增?。

分段:

  • 進程的地址空間被劃分成若?個段。
  • 每個段定義了?組邏輯信息,每個段的??由相應的邏輯信息組的?度確定,段 的??不?樣,每個段的邏輯地址從0開始,采??段連續的地址空間。 系統為每個段分配?個連續的物理內存區域,各個不同的段可以離散地放?物理 內存不同的區域。
  • 系統為每個進程建??張段表,段表的每?個表項紀錄的信息包括段號、段?和 該段的基址,段表存放在內存中。

分段的邏輯地址結構:

?

?

?段表:段表是由操作系統維護的?于?持分段存儲管理地址映射的數據結構。每個進程有?個段表,段表由段表項構成。每個段表項包括段號、段基址(段的 起始地址)和段?(段??)3個部分。

?

*********************************************************************************************************************************************************

?

?

?

**********************************************************************************************************************************

?

?分頁和分段都屬于離散分配?式,都要通過數據結構與硬件的配合來實現邏輯地址到物理地址的映射。

分?和分段的主要區別:

1)頁是按物理單位劃分的,分頁的引入是為了提高內存的利用率和支持虛擬存儲;分段是按邏輯單位劃分的,一個段含有一組意義相對完整的信息,引入分段的目的是為了方便程序員編程。
2)頁的大小是固定的,而段的大小不固定,取決于用戶編寫的程序;
3)分頁的地址空間是一維的,分段的地址空間是二維的

?

四、段?式存儲管理

1、段?式存儲管理的基本原理

?

?

?

?四、?Linux的伙伴系統

?

轉載于:https://www.cnblogs.com/jalja/p/11455440.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248176.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248176.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248176.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#代碼總結02---使用泛型來獲取Asp前臺頁面全部控件,并進行屬性修改

該方法&#xff1a;主要用于對前臺頁面的不同類型&#xff08;TextBox、DropDownList、等&#xff09;或全部控件進行批量操作&#xff0c;用于批量修改其屬性&#xff08;如&#xff0c;Text、Enable&#xff09;。 private void GetControlList<T>(ControlCollection c…

d3.js 教程 模仿echarts柱狀圖

由于最近工作不是很忙&#xff0c;隧由把之前的charts項目用d3.js重寫的一下&#xff0c;其實d3.js文檔很多&#xff0c;但是入門不是很難&#xff0c;可是想真的能做一個完成的&#xff0c;交互良好的圖還是要下一番功夫的。今天在echarts找到了一個柱狀圖&#xff0c;如圖。 …

簡單的動畫函數封裝(2)

<div></div><!-- <span></span> --><button class"btn1">點擊500</button><button class"btn2">點擊800</button>div{width: 100px;height: 100px;background-color: red;position: absolute;top: …

【蔡勒公式 】根據給定的年月日求出對應星期幾

蔡勒公式 蔡勒&#xff08;Zeller&#xff09;公式&#xff0c;是一個計算星期的公式&#xff0c;隨便給一個日期&#xff0c;就能用這個公式推算出是星期幾。時間復雜度&#xff1a;O(1)。具體的在紅書P229有。 若要計算的日期是在1582年10月4日或之前&#xff0c;公式則為&am…

MFC的程序,不想顯示窗口,任務欄里也不顯示

在dialog的oninitdialog里設置如下屬性&#xff0c;很簡單&#xff0c;網上一些亂七八糟的做法&#xff0c;一行代碼就能搞定啊 SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW); ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW); 轉載于:https://www.cnblog…

放大鏡制作(2)—此方法比較容易理解

<div class"box" id"box"><!--左側的盒子--><div class"left_img"><!--圖片--><img src"images/small.jpg" class"aaa" alt"小圖片"/><!--黃色小盒子--><div class"…

call / apply / bind

對于 call / apply / bind 來說&#xff0c;他們的首要目的是用于改變執行上下文的 this 指針。 call / apply 對 call / apply 的使用&#xff0c;一般都如下&#xff0c;用于改變執行環境的上下文。只是 call 接受的是一個一個的參數&#xff0c;而 apply 則是接受的是一個參…

js(Dom+Bom)第八天—Swiper(插件)

Swiper插件(庫) 01-基本介紹 Swiper 是一款免費以及輕量級的移動設備觸控滑塊的js框架&#xff0c;使用硬件加速過渡&#xff08;如果該設備支持的話&#xff09;。主要使用于移動端的網站、移動web apps&#xff0c;native apps和hybrid apps。主要是為IOS而設計的&#xff…

第七節:EF Core調用SQL語句和存儲過程

一. 查詢類(FromSql) 1.說明 A. SQL查詢必須返回實體的所有屬性字段。 B. 結果集中的列名必須與屬性映射到的列名相匹配。 C. SQL查詢不能包含關聯數據 D. 除Select以為的其它SQL語句無法運行。 2.調用SQL語句的幾種情況 A. 基本的原生SQL查詢 B. 利用$內插語法進行傳遞 C. 原生…

沒用的一些水貨

1. 不遞歸的子函數加上inline會跑的很快。 2. 在稠密圖中用dijkstra堆優化會導致跑的很慢。 3. 連著開幾個數組的話&#xff0c;有可能越界了評測機卻返回WA。 4. 如果你用的Dev-C&#xff0c;那么有的時候會出現一些莫名其妙的編譯錯誤。請檢查是否存在未關閉的代碼生成的.exe…

js(Dom+Bom)第八天

JavaScript 移動端事件介紹 touch事件類型 移動設備上無法使用鼠標&#xff0c;當手指按下屏幕的時候會觸發 click,mousedown,mouseup事件&#xff0c;但是在移動設備上有專門的事件&#xff1a; touch 備注&#xff1a; 在移動端touch事件需要通過事件監聽的方式添加touchsta…

程序員計算器HEX、EDC、OCT等等的意思

binary 二進制 對應的是 BINoctal 八進制的 ---- OCThexadecimal 十六進制的 --- HEXdecimal 十進制的 -- DEC 轉載于:https://www.cnblogs.com/132818Creator/p/11459984.html

為什么mysql 5.7.24啟停不顯示錯誤信息?log-error_verbosity參數

關鍵詞&#xff1a;log-error_verbosity &#xff0c;mysql啟停沒有信息&#xff0c;mysql啟停不顯示錯誤信息&#xff0c;mysql不顯示啟停信息 原因就是因為 log-error_verbosity 2 被設置成了1/2&#xff0c;需要設置成3才行。 轉載自&#xff1a;https://www.cnblogs.com/k…

ASP.NET Core 3.0中使用動態控制器路由

原文&#xff1a;Dynamic controller routing in ASP.NET Core 3.0 作者&#xff1a;Filip W 譯文&#xff1a;https://www.cnblogs.com/lwqlun/p/11461657.html 譯者&#xff1a;Lamond Lu 譯者注 今天在網上看到了這篇關于ASP.NET Core動態路由的文章&#xff0c;感覺蠻有意思…

Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet

一個地圖上有若干障礙&#xff0c;問允許出現一個障礙的最大子矩形為多大&#xff1f; 最大子矩形改編 #include<bits/stdc.h> using namespace std; #define rep(i, j, k) for (int i int(j); i < int(k); i) #define dwn(i, j, k) for (int i int(j); i > int…

d3.js 教程 模仿echarts折線圖

今天我們來仿echarts折線圖,這個圖在echarts是折線圖堆疊&#xff0c;但是我用d3改造成了普通的折線圖&#xff0c;只為了大家學習&#xff08;其實在簡單的寫一個布局就可以&#xff09;。廢話不多說商行代碼。 1 制作 Line 類 class Line {constructor() {this._width 1100;…

vue中v-for的使用

本人正在開始學習Vue,每天寫寫基礎的記錄,希望對大家有幫助,如有錯誤還望指出,我也是一個小白,也希望大家能一起進步 v-for指令的使用: 1.循環普通數組 item in list 中的item是自己個想寫什么名寫什么名 另一種寫法 i 表示索引值 2.循環對象數組 3.循環普通對象 4.迭代數字 注…

js高級第一天

JavaScript面向對象 1.1兩大編程思想&#xff1a; 1、面向過程 ? 面向過程&#xff1a;POP(Process-oriented programming) 面向過程就是分析出解決問題所需要的步驟&#xff0c;然后用函數把這些步驟一步一步實現&#xff0c;使用的時候再一個一個的依次調用就可以了。 ?…

d3.js 教程 模仿echarts legend功能

上一節記錄沒有加上echarts的legend功能&#xff0c;這一小節補一下。 1. 數據 我們可以從echarts中看出&#xff0c;折線數據并不是我們傳進入的原始數據&#xff08;多數情況下我們也不會修改原始數據&#xff09;&#xff0c;而是原始數組的一個備份而已。備份數組的方法有很…