最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

一文讀懂存儲(chǔ)管理之頁式、段式、段頁式存儲(chǔ)及優(yōu)缺點(diǎn)

2022-06-23 16:24 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

內(nèi)存管理方式主要分為:頁式管理、段式管理和段頁式管理。

頁式管理的基本原理是將各進(jìn)程的虛擬空間劃分為若干個(gè)長度相等的頁。把內(nèi)存空間按頁的大小劃分為片或者頁面,然后把頁式虛擬地址與內(nèi)存地址建立一一對應(yīng)的頁表,并用相應(yīng)的硬件地址轉(zhuǎn)換機(jī)構(gòu)來解決離散地址變換問題。頁式管理采用請求調(diào)頁和預(yù)調(diào)頁技術(shù)來實(shí)現(xiàn)內(nèi)外存存儲(chǔ)器的統(tǒng)一管理。 優(yōu)點(diǎn):沒有外碎片,每個(gè)內(nèi)碎片不超過頁的大小。 缺點(diǎn):程序全部裝入內(nèi)存,要求有相應(yīng)的硬件支持,如地址變換機(jī)構(gòu)缺頁中斷的產(chǎn)生和選擇淘汰頁面等都要求有相應(yīng)的硬件支持。增加了機(jī)器成本和系統(tǒng)開銷。


段式管理的基本思想是把程序按內(nèi)容或過程函數(shù)關(guān)系分成段,每段有自己的名字。一個(gè)用戶作業(yè)或者進(jìn)程所包含的段對應(yīng)一個(gè)二維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位分配內(nèi)存,然后通過地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換為實(shí)際內(nèi)存物理地址。 優(yōu)點(diǎn):可以分別編寫和編譯,可以針對不同類型的段采取不同的保護(hù),可以按段為單位來進(jìn)行共享,包括通過動(dòng)態(tài)鏈接進(jìn)行代碼共享。 缺點(diǎn):會(huì)產(chǎn)生碎片。 段頁式管理,系統(tǒng)必須為每個(gè)作業(yè)或者進(jìn)程建立一張段表以管理內(nèi)存分配與釋放、缺段處理等。另外由于一個(gè)段又被劃分為若干個(gè)頁,每個(gè)段必須建立一張頁表以把段中的虛頁變換為內(nèi)存中的實(shí)際頁面。顯然與頁式管理時(shí)相同,頁表也要有相應(yīng)的實(shí)現(xiàn)缺頁中斷處理和頁面保護(hù)等功能的表項(xiàng)。 段頁式管理是段式管理和頁式管理相結(jié)合而成,具有兩者的優(yōu)點(diǎn)。 由于管理軟件的增加,復(fù)雜性和開銷也增加。另外需要的硬件以及占用的內(nèi)存也有所增加,使得執(zhí)行速度下降。

  • 首先看一下“基本的存儲(chǔ)分配方式”種類:


1. ?離散分配方式的出現(xiàn)

  • 由于連續(xù)分配方式會(huì)形成許多內(nèi)存碎片,雖可通過“緊湊”功能將碎片合并,但會(huì)付出很大開銷。于是出現(xiàn)離散分配方式:將一個(gè)進(jìn)程直接分散地裝入到許多不相鄰的內(nèi)存分區(qū)中。

  • 下面主要介紹“離散分配”三種方式的基本原理以及步驟:

2. ?基本分頁存儲(chǔ)

2.1.步驟

  1. 邏輯空間等分為頁;并從0開始編號

  2. 內(nèi)存空間等分為塊,與頁面大小相同;從0開始編號

  • 分配內(nèi)存時(shí),以塊為單位將進(jìn)程中的若干個(gè)頁分別裝入到多個(gè)可以不相鄰接的物理塊中。

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)? ? ?


2.2.地址結(jié)構(gòu)

  • 分兩部分:頁號、位移量(業(yè)內(nèi)地址)


  • 業(yè)內(nèi)地址的位數(shù)可以決定頁的大小(如上圖每頁大小為4K)。

  • 邏輯地址=頁號&位移量(&號是連接符號,是將頁號作為邏輯地址的最高位)

2.3.地址映射(邏輯地址--->物理地址)

  • 如下圖所示:(物理地址=塊號&塊內(nèi)地址)


  • 因?yàn)閴K的大小=頁的大小,所以塊內(nèi)位移量=頁內(nèi)位移量,所以只需求出塊號即可:


  • 如何求塊號呢?頁表來幫你

頁表:


  • 給定一個(gè)邏輯地址和頁面大小,如何計(jì)算物理地址?

  1. 根據(jù)頁面大小可計(jì)算出頁內(nèi)地址的位數(shù)

  2. 頁內(nèi)地址位數(shù)結(jié)合邏輯地址計(jì)算出頁內(nèi)地址(即,塊內(nèi)地址)和頁號

  3. 頁號結(jié)合頁表,即可得出塊號

  4. 塊號&塊內(nèi)地址即可得出物理地址

2.4.地址變換原理及步驟


  • 請看上圖,給出邏輯地址的頁號和頁內(nèi)地址,開始進(jìn)行地址變換:

  1. 在被調(diào)進(jìn)程的PCB中取出頁表始址和頁表大小,裝入頁表寄存器

  2. 頁號與頁表寄存器的頁表長度比較,若頁號大于等于頁表長度,發(fā)生地址越界中斷,停止調(diào)用,否則繼續(xù)

  3. 由頁號結(jié)合頁表始址求出塊號

  4. 塊號&頁內(nèi)地址,即得物理地址

  • 以上即為頁式存儲(chǔ)的原理及整個(gè)過程……

3. ? 基本分段存儲(chǔ)

3.1.步驟

  • 邏輯空間分為若干個(gè)段,每個(gè)段定義了一組有完整邏輯意義的信息(如主程序Main()),如:


  • 內(nèi)存空間為每個(gè)段分配一個(gè)連續(xù)的分區(qū)

  • 段的長度由相應(yīng)的邏輯信息組的長度決定,因而各段長度不等,引入分段存儲(chǔ)管理方式的目的主要是為了滿足用戶(程序員)在編程和使用上多方面的要求。

  • 要注重理解,完整的邏輯意義信息,就是說將程序分頁時(shí),頁的大小是固定的,只根據(jù)頁面大小大小死生生的將程序切割開;而分段時(shí)比較靈活,只有一段程序有了完整的意義才將這一段切割開。(例如將一個(gè)人每隔50厘米切割一段,即為分頁;而將一個(gè)人分割為頭部、身體、腿部(有完整邏輯意義)三段,即為分段)

3.2.地址結(jié)構(gòu)

  • 分兩部分:段號、位移量(段內(nèi)地址)


  • 段內(nèi)地址的位數(shù)可以決定段的大小

  • 邏輯地址=段號&段內(nèi)地址(&號是連接符號,是將段號作為邏輯地址的最高位)

3.3.地址映射(邏輯地址--->物理地址)

  • 如下圖所示:(物理地址=基址+段內(nèi)地址)(注意為+號,而不是&號)


  • 由上圖可知若想求物理地址,只需求出基址即可:

  • 如何求基址呢?段表來幫你

段表:


  • 求基址的過程與頁式存儲(chǔ)中求塊號的過程原理相同,這里需要注意的是,物理地址是基址+段內(nèi)地址,而不是基址&段內(nèi)地址,由邏輯地址得到段號、段內(nèi)地址,再根據(jù)段號和段表求出基址,再由基址+段內(nèi)地址即可得物理地址。

3.4.地址變換原理及步驟


  • 請看上圖,給出邏輯地址的段號和段內(nèi)地址,開始進(jìn)行地址變換:

  1. 在被調(diào)進(jìn)程的PCB中取出段表始址和段表長度,裝入控制寄存器

  2. 段號與控制寄存器的頁表長度比較,若頁號大于等于段表長度,發(fā)生地址越界中斷,停止調(diào)用,否則繼續(xù)

  3. 由段號結(jié)合段表始址求出基址

  4. 基址+段內(nèi)地址,即得物理地址

  • 以上即為段式存儲(chǔ)的原理及整個(gè)過程……

分頁和分段的主要區(qū)別:


4. ?基本段頁式存儲(chǔ)

4.1.步驟

  • 用戶程序先分段,每個(gè)段內(nèi)部再分頁(內(nèi)部原理同基本的分頁、分段相同)


4.2.地址結(jié)構(gòu)

  • 分三部分:段號、段內(nèi)頁號、頁內(nèi)地址


4.3.地址映射(邏輯地址--->物理地址)

  • 邏輯地址----- >段號、段內(nèi)頁號、業(yè)內(nèi)地址

  • 段表寄存器--- >段表始址

  • 段號+段表始址---- >頁表始址

  • 頁表始址+段內(nèi)頁號----->存儲(chǔ)塊號

  • 塊號+頁內(nèi)地址------>物理地址


4.4.地址變換原理及步驟


  • 請看上圖,給出邏輯地址的段號、頁號、頁內(nèi)地址,開始進(jìn)行地址變換:

  1. 在被調(diào)進(jìn)程的PCB中取出段表始址和段表長度,裝入段表寄存器

  2. 段號與控制寄存器的頁表長度比較,若頁號大于等于段表長度,發(fā)生地址越界中斷,停止調(diào)用,否則繼續(xù)

  3. 由段號結(jié)合段表始址求出頁表始址和頁表大小

  4. 頁號與段表的頁表大小比較,若頁號大于等于頁表大小,發(fā)生地址越界中斷,停止調(diào)用,否則繼續(xù)

  5. 由頁表始址結(jié)合段內(nèi)頁號求出存儲(chǔ)塊號

  6. 存儲(chǔ)塊號&頁內(nèi)地址,即得物理地址

  • 以上即為段頁式存儲(chǔ)的原理及整個(gè)過程……

5. ?總結(jié)

  • 在頁式、段式存儲(chǔ)管理中,為獲得一條指令或數(shù)據(jù),須兩次訪問內(nèi)存;而段頁式則須三次訪問內(nèi)存



一文讀懂存儲(chǔ)管理之頁式、段式、段頁式存儲(chǔ)及優(yōu)缺點(diǎn)的評論 (共 條)

分享到微博請遵守國家法律
靖宇县| 遵义市| 正蓝旗| 和政县| 乌兰察布市| 康乐县| 于都县| 任丘市| 平乡县| 二手房| 宽甸| 丁青县| 攀枝花市| 江油市| 新泰市| 阿拉善盟| 视频| 福建省| 右玉县| 安康市| 应城市| 咸丰县| 南宁市| 中卫市| 枝江市| 郴州市| 大邑县| 桦南县| 桓仁| 双辽市| 玛曲县| 遵化市| 东兰县| 麻城市| 莲花县| 蒙自县| 开原市| 沅江市| 杨浦区| 项城市| 呼伦贝尔市|