探索Linux 作業系統記憶體模型和管理-1(轉)
探索Linux 作業系統記憶體模型和管理-1[@more@]理解 Linux 設計的第一步 在這篇 Linux? 記憶體模型指南中,我們將學習如何構建和管理記憶體方面的基礎知識。本指南介紹了記憶體控制單元、分頁模型方面的內容,並詳細介紹了實體記憶體區域方面的知識。 理解 Linux 使用的記憶體模型是從更大程度上掌握 Linux 設計和實現的第一步,因此本文將概述 Linux 記憶體模型和管理。 Linux 使用的是單一整體式結構 (Monolithic),其中定義了一組原語或系統呼叫以實現作業系統的服務,例如在幾個模組中以超級模式執行的程式管理、併發控制和記憶體管理服務。儘管出於相容性考慮,Linux 依然將段控制單元模型 (segment control unit model) 保持一種符號表示,但實際上已經很少使用這種模型了。 與記憶體管理有關的主要問題有: ●虛擬記憶體的管理,這是介於應用程式請求與實體記憶體之間的一個邏輯層。 ●實體記憶體的管理。 ●核心虛擬記憶體的管理/核心記憶體分配器,這是一個用來滿足對記憶體的請求的元件。這種對記憶體的請求可能來自於核心,也可能來自於使用者。 ●虛擬地址空間的管理。 ●交換和快取。 本文探討了以下問題,可以幫助您從作業系統中記憶體管理的角度來理解 Linux 的內幕: ●段控制單元模型,通常專用於 Linux ●2分頁模型,通常專用於 Linux ●實體記憶體方面的知識 雖然本文並沒有詳細介紹 Linux 核心管理記憶體的方法,但是介紹了有關整個記憶體模型的知識以及系統的定址方式,這些介紹可為您進一步的學習提供一個框架。本文重點介紹的是 x86 架構,但本文中的知識對於其他硬體實現同樣適用。 x86 記憶體架構 在 x86 架構中,記憶體被劃分成 3 種型別的地址: ●邏輯地址 (logical address) 是儲存位置的地址,它可能直接對應於一個物理位置,也可能不直接對應於一個物理位置。邏輯地址通常在請求控制器中的資訊時使用。 ●線性地址 (linear address) (或稱為 平面地址空間)是從 0 開始進行定址的記憶體。之後的每個位元組都可順序使用下一數字來引用(0、1、2、3 等),直到記憶體末尾為止。這就是大部分非 Intel CPU 的定址方式。Intel? 架構使用了分段的地址空間,其中記憶體被劃分成 64KB 的段,有一個段暫存器總是指向當前正在定址的段的基址。這種架構中的 32 位模式被視為平面地址空間,不過它也使用了段。 ●實體地址 (physical address) 是使用實體地址匯流排中的位表示的地址。實體地址可能與邏輯地址不同,記憶體管理單元可以將邏輯地址轉換成實體地址。 CPU 使用兩種單元將邏輯地址轉換成實體地址。第一種稱為分段單元 (segmented unit),另外一種稱為分頁單元 (paging unit)。 圖 1. 轉換地址空間使用的兩種單元 下面讓我們來介紹一下段控制單元模型。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9417382/viewspace-940057/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 探索Linux 作業系統記憶體模型和管理8(轉)Linux作業系統記憶體模型
- 作業系統-記憶體管理作業系統記憶體
- 作業系統——記憶體管理作業系統記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 作業系統記憶體管理概述作業系統記憶體
- 作業系統記憶體管理-原理作業系統記憶體
- 【作業系統】記憶體管理概述作業系統記憶體
- Linux作業系統記憶體管理的原始碼實現(轉)Linux作業系統記憶體原始碼
- 作業系統-記憶體、檔案管理作業系統記憶體
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- Linux作業系統:快速記憶體操作技術(轉)Linux作業系統記憶體
- Linux作業系統記憶體淺析Linux作業系統記憶體
- Linux作業系統中記憶體buffer和cache的區別(轉載)Linux作業系統記憶體
- 作業系統(十) -- 段頁結合的實際記憶體管理模型作業系統記憶體模型
- 作業系統的記憶體管理你知道嗎作業系統記憶體
- 淺談作業系統對記憶體的管理作業系統記憶體
- linux作業系統修改共享記憶體的簡單方法(轉)Linux作業系統記憶體
- 作業系統——記憶體連續分配管理方式作業系統記憶體
- Linux作業系統中記憶體buffer和cache的區別Linux作業系統記憶體
- 新手看招:掌握Linux系統記憶體管理(轉)Linux記憶體
- WindowsXP作業系統記憶體最佳化指南(轉)Windows作業系統記憶體
- 探索Java記憶體模型Java記憶體模型
- 華納雲:Linux作業系統的記憶體管理方法是什麼Linux作業系統記憶體
- 作業系統思考 第六章 記憶體管理作業系統記憶體
- linux查詢作業系統資訊(CPU、記憶體、硬碟)Linux作業系統記憶體硬碟
- 作業系統的虛擬記憶體作業系統記憶體
- RedHat Linux作業系統軟體包的管理(轉)RedhatLinux作業系統
- 深度探索 OpenBSD作業系統(轉)作業系統
- HP-UX作業系統的記憶體UX作業系統記憶體
- windows作業系統支援的最大記憶體Windows作業系統記憶體
- 計算機作業系統——虛擬記憶體與實體記憶體計算機作業系統記憶體
- 作業系統:x86下記憶體分頁機制 (1)作業系統記憶體
- 作業系統記憶體管理:頁、頁表項和頁框之間的關係作業系統記憶體
- Linux 記憶體管理 pt.1Linux記憶體
- ucore作業系統學習筆記(二) ucore lab2實體記憶體管理分析作業系統筆記記憶體
- Java記憶體模型-(1)Java記憶體模型
- Unix/Linux 系統自動化管理: 記憶體管理篇Linux記憶體
- C++記憶體模型實踐探索C++記憶體模型