記憶體管理與虛擬化技術

更新 發佈閱讀 6 分鐘

終於來到作業系統與 CPU 的最後一個筆記 ᕦ(ò_óˇ)ᕤ,本篇的學習目標是

目標:了解記憶體分配與虛擬化應用

在作業系統中,記憶體管理是非常重要的一環。由於物理記憶體有限,系統需要有效地分配與管理資源,確保應用程式能正常運作,同時避免資源浪費與衝突。

邏輯記憶體與實體地址 (Logical Memory & Physical Address)


1. 邏輯地址 (Logical Address)

  • 由 CPU 產生的虛擬地址,應用程式使用的地址。

2. 實體地址 (Physical Address)

  • 記憶體單元的實際地址,對應於實體記憶體(如 RAM)。

3. 地址轉換:Page Table & MMU

  • Page Table (頁表):
    就像 電影座位分配系統的資料庫,記錄了每位乘客的座位號碼與實際的座位位置。當有人選位時,系統檢查資料庫,確認是否有空位可分配。
  • Memory Management Unit (MMU):
    就像引導人員,當你進到電影院時時,它會根據系統的分配結果,即時將你引導到正確的座位。
    • 如果有臨時變動,它會即時重新調整,並將你導引到新的位置。

為什麼需要邏輯記憶體 (Logical Memory)?

  1. 提供應用程式的簡單視角
    • 引入 邏輯記憶體,應用程式只需與簡單的虛擬地址打交道,不需知道資料實際儲存的位置。
    • 比喻: 就像訂機票時選擇座位,你只需選擇「邏輯上的座位號碼」,不用操心飛機上的實際空位如何安排。

2. 支援多工處理 (Multitasking)

    • 每個應用程式都擁有獨立的邏輯記憶體區域,作業系統負責將這些區域對應到實體記憶體,避免相互干擾。

4. 支援記憶體擴充 (虛擬記憶體管理)

  • 問題: 當應用程式需要的記憶體超過實體記憶體時,系統必須想辦法解決。
    • 邏輯記憶體可以超過實體記憶體的容量,作業系統會啟用虛擬記憶體技術,將不常用的資料暫存到硬碟,並動態調整記憶體配置。

2. 分段與頁面管理 (Segmentation and Paging)

比喻:圖書館與書架管理

當作業系統管理記憶體空間時,必須決定如何分配應用程式所需的空間。以下用圖書館書架的比喻來解釋兩種常見的管理方式:

(1) 分段管理 (Segmentation)

  • 場景:
    • 想像圖書館的書架分成固定的「段」,每個段用來放完整的書集。
    • 如果某個書集需要 5 個空間,但目前書架上只有兩個空格和三個空格分開的位置,即使加起來是 5 個空間,也無法放進書集,因為分段管理不允許分割
  • 應用:
    • 例如:一個簡報程式需要 5 個單位,但系統只剩下兩個和三個分開的空間,因此無法啟動。
raw-image

Segmented, Paged and Virtual Memory

優點: 更容易管理大型應用程式,資料邏輯結構清晰。

缺點: 空間分散容易產生「記憶體碎片 (Fragmentation)」。


(2) 頁面管理 (Paging)

比喻:拆散的圖書館書籍

  • 場景:
    • 如果圖書館允許將一本書拆成多個部分,儲存在不同的書架空格中,只要書目索引 能記錄每個部分的位置,就能正確找到整本書。
    • 例如:簡報程式需要 5 個單位,即使記憶體只剩下分散的空格,如兩個和三個單位的空間,也可以分開存放,並由 頁表 (Page Table) 記錄資料的位置。
  • 應用:
    • 程式碼、資料段等都可以分頁處理,避免記憶體碎片。
raw-image


優點: 更有效利用記憶體,幾乎不會浪費空間。

缺點: 頁表管理複雜,可能產生額外的處理時間。


3. 虛擬記憶體管理 (Virtual Memory Management)

當實體記憶體 (RAM) 不夠用時,作業系統會啟用虛擬記憶體,將不常用的資料暫時存到硬碟中,騰出空間給更急需的應用程式。

比喻:後台應用管理

場景:手機的應用程式管理

  • 如果你同時打開了多個應用程式,手機的記憶體可能不夠。
  • 作業系統會將不常用的應用程式「暫存到後台」,即存到硬碟中,讓 RAM 空出來。
  • 當你切回這些應用程式時,系統會將它們 重新載入 (Page In)

警告:磁碟風暴 (Disk Thrashing)

  • 如果系統記憶體不足,頻繁地將資料從 RAM 存到硬碟,或從硬碟載回 RAM,系統效能會大幅下降,這種狀況稱為 磁碟風暴

4. 虛擬記憶體與容器技術 (Virtual Memory & Containers)

比喻:雲端遊戲伺服器資源分配

當遊戲伺服器需要支援多個玩家或應用程式時,虛擬化技術會將伺服器資源分成多個「虛擬機 (VM)」或「容器 (Containers)」。

raw-image

虛擬機 (VM) (這部分我還需要查資料,還是不太熟)

  • 搬整個作業系統
  • 伺服器將一整個虛擬作業系統分配給某個應用程式。
  • 就像擁有自己的 遊戲機主機,能完整控制,但需要更高的資源與效能支援。

容器 (Containers)

  • 比喻:遊戲伺服器內的專屬房間
  • 容器只分配應用程式運行所需的基本資源,類似「遊戲伺服器的專屬房間」,節省資源,且啟動快速。
左邊是整個作業系統,右邊 container 只有應用程式

左邊是整個作業系統,右邊 container 只有應用程式

參考影片及圖片來源:

Virtual Machines vs Containers

留言
avatar-img
留言分享你的想法!
avatar-img
越南放大鏡 X 下班資工系
47會員
92內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
本章節將為你打開數位邏輯世界的大門,從最根本的角度建立「什麼是數字系統」的清晰概念。
Thumbnail
本章節將為你打開數位邏輯世界的大門,從最根本的角度建立「什麼是數字系統」的清晰概念。
Thumbnail
在我們進入執行一個指令的實際流程示範前,我們還必須了解微處理機的指令格式與記憶體位址解碼的原理。 本章節將會詳細介紹上述兩者。
Thumbnail
在我們進入執行一個指令的實際流程示範前,我們還必須了解微處理機的指令格式與記憶體位址解碼的原理。 本章節將會詳細介紹上述兩者。
Thumbnail
本章節將帶你全面認識計算機的中央處理器,針對一些重要的觀念知識進行系統性介紹。
Thumbnail
本章節將帶你全面認識計算機的中央處理器,針對一些重要的觀念知識進行系統性介紹。
Thumbnail
本章將深入解析 C 語言的檔案處理 ,學習如何使用 標準 I/O 函式 (fopen(), fclose(), fgets(), fprintf()等) 來讀取與寫入檔案。檔案處理是 儲存與管理數據 的核心技術,適用於日誌記錄等應用。 透過本章學習,你將能夠 熟練操作 C 語言的檔案處理
Thumbnail
本章將深入解析 C 語言的檔案處理 ,學習如何使用 標準 I/O 函式 (fopen(), fclose(), fgets(), fprintf()等) 來讀取與寫入檔案。檔案處理是 儲存與管理數據 的核心技術,適用於日誌記錄等應用。 透過本章學習,你將能夠 熟練操作 C 語言的檔案處理
Thumbnail
深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
Thumbnail
深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
Thumbnail
終於來到作業系統與 CPU 的最後一個筆記,本篇的學習目標是記憶體分配與虛擬化應用。我會學習邏輯與實體記憶體、分段與頁面管理、虛擬記憶體管理、虛擬記憶體與容器技術。
Thumbnail
終於來到作業系統與 CPU 的最後一個筆記,本篇的學習目標是記憶體分配與虛擬化應用。我會學習邏輯與實體記憶體、分段與頁面管理、虛擬記憶體管理、虛擬記憶體與容器技術。
Thumbnail
本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
Thumbnail
本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
Thumbnail
「第二大腦」是生理大腦之外,另外打造出來的數位知識庫,用來紀錄及管理個人知識。 這次的閱讀筆記中,我主要分享三個重點,包含方法(第二大腦核心功用CODE)、行動(做出改變與實踐的策略)以及目的(第二大腦真正的用途)。
Thumbnail
「第二大腦」是生理大腦之外,另外打造出來的數位知識庫,用來紀錄及管理個人知識。 這次的閱讀筆記中,我主要分享三個重點,包含方法(第二大腦核心功用CODE)、行動(做出改變與實踐的策略)以及目的(第二大腦真正的用途)。
Thumbnail
我們以前的學習,大多是被動地接收老師所教授的知識,依據老師的要求進行產出,我們的學習任務就結束了。但是我們現在的學習路線應當讓自己能夠有目的的學習以及吸收知識,再適當地找出精華之處,產出學習歷程檔案,進而修正目標。這是比國中時期更加進階的學習系統。
Thumbnail
我們以前的學習,大多是被動地接收老師所教授的知識,依據老師的要求進行產出,我們的學習任務就結束了。但是我們現在的學習路線應當讓自己能夠有目的的學習以及吸收知識,再適當地找出精華之處,產出學習歷程檔案,進而修正目標。這是比國中時期更加進階的學習系統。
Thumbnail
認知心理學是教學的理論基礎。 有些課程的安排,我是分成兩周。第一周是進入短期記憶,第二周是希望能進入長期記憶。之後再來個碎碎念教學法(反覆提醒),加深定錨點,打好地基,務本而道生。學生需要經過「編碼(encoding)」、「儲存(storage)」和「檢索(retrieval)」。 為什麼我會給學生
Thumbnail
認知心理學是教學的理論基礎。 有些課程的安排,我是分成兩周。第一周是進入短期記憶,第二周是希望能進入長期記憶。之後再來個碎碎念教學法(反覆提醒),加深定錨點,打好地基,務本而道生。學生需要經過「編碼(encoding)」、「儲存(storage)」和「檢索(retrieval)」。 為什麼我會給學生
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News