搜尋
首頁常見問題基本分頁儲存管理方式是什麼

基本分頁儲存管理方式是什麼

推薦教學:#常見問題

簡介

在記憶體管理中,連續分配方式會形成許多“碎片”,雖然可透過“緊湊”方法將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。

  如果允許將一個進程直接分散地裝入到許多不相鄰的分區中,則無須再進行「緊湊」。基於這個想法而產生了離散分配方式。如果離散分配的基本單位是頁,則稱為分頁儲存管理方式。在分頁儲存管理方式中,如果不具備頁面對換功能,則稱為基本分頁儲存管理方式,或稱為純分頁儲存管理方式,它不具有支援實作虛擬記憶體的功能,它要求把每個作業全部裝入記憶體後方能運行。

為什麼要分頁儲存

  在記憶體的分配過程中,連續分配方式容易產生大量的碎片,雖然可以透過「緊湊”對其進行整理,但是這樣需要大量的開銷。

  因此,如果能夠在進程的記憶體分配的時候,將連續的邏輯記憶體打散分配在多個可以不相連的實體記憶體上,那麼將會利用到原來被浪費的大塊碎片,降低不可利用碎片的最大大小(降至頁面的大小,因為如果碎片的大小超過頁面的大小,那麼將可以被利用),提升記憶體利用率。根據這種思想,產生了離散分配方式,如果離散分配的基本單位是頁,則稱之為分頁存儲管理方式;如果不具備頁面對換功能,那麼就是基本分頁存儲管理方式。

基本概念

##  分頁儲存管理方式將進程的連續的邏輯位址空間分割為若干大小相等的位址片,稱為頁或頁。並將其編號,如第0頁、第1頁。在邏輯上,這些頁中的各個位址拼接起來是連續的,但是他們對應的實體區塊位址是可以不連續的。對應的實體塊也相應的被命名為第0塊、第1塊等。在進程分配記憶體時,進程的若干個頁分別被裝入對應的實體區塊,由於最後一頁經常裝不滿,所以形成了無法被利用的頁內碎片

  採用分頁儲存管理方式的目的就是更多的利用記憶體碎片,因此,頁面的大小相對來說是小於正常進程所需的位址空間大小。那麼頁面多大是比較適合的呢?頁面如果太小,雖然可以使得記憶體中不可利用碎片的最大大小降低,提升記憶體空間的使用率,但是也會導致進程佔用過多的頁面,使得頁表過長,降低頁面的換進換出的效率。同樣,如果頁面過大,雖然提升了頁面換進換出的效率,但是也會使得記憶體碎片增大。所以,根據經驗,頁面的大小最好選擇512B~8KB左右。

頁表 

  頁表就是進程中維護的一段位址空間,其中儲存了頁面和實體區塊的映射關係,在討論頁表之前,先理清分頁中的位址結構。 

  對於實體位址空間,總的記憶體位址空間是固定的。而對於一個進程,分配的邏輯記憶體空間也是固定且連續的,該邏輯位址空間從0開始,假設某個進程中的一個位元組的邏輯位址為 1088B, 而頁面大小為512B。在介紹頁面 時說過,邏輯位址空間雖然分給為若干個頁,但是這些頁的邏輯位址仍然是連續的。那麼我們可以知道該位元組所屬的頁號 P = 2 (從0開始),頁內位址 d = (1088 - 512 * 2) = 64。

  也就是說在頁面長度已知的情況下,根據邏輯位址可以簡單的知道該位址空間所屬的頁號和在該頁面中的相對位址。根據這兩個參數和頁表,就能夠知道該位址對應的實體位址了。

  頁表是用來對應頁面和實體區塊的一張表,如下圖: 

 

基本分頁儲存管理方式是什麼

  透過頁表和頁號,我們知道了物理塊號,也就知道了對應物理塊空間的起始位址。再加上頁內地址,就知道對應的實體地址了。透過這種方式,我們能夠實現從邏輯位址到實體位址的轉換。

位址轉換

#

  上面的基礎概念介紹簡單介紹了一下地址轉換的原理,以下詳細看看具體流程。

  上面說到透過尋找頁表找到頁號到實體區塊號碼的映射,那麼頁表存放在哪裡,如何找到頁表呢? ? 

  頁表可以透過一組暫存器來實現,一個暫存器儲存一條頁表項,因為暫存器的存取速度快,可以提高頁表位址轉換的速度。然而,暫存器成本較高,頁表中的頁表項可能會非常大,達到數百上千項。因此頁表通常也儲存在記憶體中,在系統中,只設定一個頁表暫存器PTR,用來儲存頁表在記憶體中的起始位址和長度。平時,進程未執行時,頁表的始址和頁表長度存放在本進程的PCB中。當調度程式調度到某一進程時,才將這兩個資料裝入頁表暫存器中。因此,在單一處理機環境下,雖然系統中可以運行多個進程,但只需一個頁表寄存器(也就是說,多進程同時運行的情況下,需要分別儲存多個進程內的頁表資料) 。

  當進程要存取某個邏輯位址中的資料時,分頁位址變換機構會自動地將有效位址(相對位址)分成頁號頁內位址兩部分,再以頁號為索引去檢索頁表。在執行檢索之前,先將頁號與頁表長度進行比較,如果頁號大於或等於頁表長度,則表示本次所造訪的位址已超越進程的位址空間。於是,這錯誤將被系統發現並產生一地址越界中斷。若未出現越界錯誤,則將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,於是可從中得到該頁的物理塊號,將之裝入物理位址寄存器中。同時,再將有效位址暫存器中的頁內位址送入實體位址暫存器的區塊內位址欄位中。這樣便完成了從邏輯位址到實體位址的變換。下圖示出了分頁系統的位址變換機構 

基本分頁儲存管理方式是什麼

#快表

  由於頁表是存放在記憶體而非暫存器中,所以每次讀取一個地址的時候需要訪問兩次內存,第一次訪問頁表找到物理塊號,第二次才是訪問真正的物理地址獲取數據。因此,採用這種方式將使計算機的處理速度降低近1/2。

  為了提升位址變換效率,在位址變換機構中加入了一組具有並行查尋能力的特殊高速緩衝暫存器,又稱為“聯想暫存器”(Associative Memory),或稱為“快表” ,用來儲存目前存取的頁表項資料(類似緩存,儲存先前尋找過的頁表項,提升頁號到實體區塊號碼的轉換效率)。透過這種方式,位址轉換過程變成瞭如下圖: 

 基本分頁儲存管理方式是什麼

#  在CPU取得邏輯位址後,位址轉換機構將頁號交給快表查詢對應的物理塊號,如果查到,則直接根據頁內地址找到物理地址訪問數據,如果沒有則按正常的方式查找物理塊號,並同時將其保存在快表中。如果快表已滿,則係統會自動在其中去掉一個頁表項替換出來。 

  簡而言之,快表就相當於頁表項快取。

以上是基本分頁儲存管理方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
deepseek網頁版官方入口deepseek網頁版官方入口Mar 12, 2025 pm 01:42 PM

國產AI黑馬DeepSeek強勢崛起,震撼全球AI界!這家成立僅一年半的中國人工智能公司,憑藉其免費開源的大模型DeepSeek-V3和DeepSeek-R1,在性能上與OpenAI等國際巨頭比肩,甚至在成本控制方面實現了突破性進展,贏得了全球用戶的廣泛讚譽。 DeepSeek-R1現已全面上線,性能媲美OpenAIo1正式版!您可以在網頁端、APP以及API接口體驗其強大的功能。下載方式:支持iOS和安卓系統,用戶可通過應用商店下載;網頁版也已正式開放! DeepSeek網頁版官方入口:ht

深度求索deepseek官網入口深度求索deepseek官網入口Mar 12, 2025 pm 01:33 PM

2025年開年,國產AI“深度求索”(deepseek)驚艷亮相!這款免費開源的AI模型,性能堪比OpenAI的o1正式版,並已在網頁端、APP和API全面上線,支持iOS、安卓和網頁版多端同步使用。深度求索deepseek官網及使用指南:官網地址:https://www.deepseek.com/網頁版使用步驟:點擊上方鏈接進入deepseek官網。點擊首頁的“開始對話”按鈕。首次使用需進行手機驗證碼登錄。登錄後即可進入對話界面。 deepseek功能強大,可進行代碼編寫、文件讀取、創

deepseek服務器繁忙怎麼解決deepseek服務器繁忙怎麼解決Mar 12, 2025 pm 01:39 PM

DeepSeek:火爆AI遭遇服務器擁堵,如何應對? DeepSeek作為2025年開年爆款AI,免費開源且性能媲美OpenAIo1正式版,其受歡迎程度可見一斑。然而,高並發也帶來了服務器繁忙的問題。本文將分析原因並提供應對策略。 DeepSeek網頁版入口:https://www.deepseek.com/DeepSeek服務器繁忙的原因:高並發訪問:DeepSeek的免費和強大功能吸引了大量用戶同時使用,導致服務器負載過高。網絡攻擊:據悉,DeepSeek對美國金融界造成衝擊,

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境