读《系统虚拟化-原理与实现》-第二章
生活随笔
收集整理的這篇文章主要介紹了
读《系统虚拟化-原理与实现》-第二章
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
x86構架及操作系統概述
x86內存構架
-
地址空間和地址
-
- 物理地址空間:內存和其他硬件資源組合到一起,分布在CPU的物理地址空間內,CPU使用物理地址索引這些資源
-
- 線性地址空間:一個平臺只有一個物理地址空間,但每個程序都認為自己獨享整個平臺的硬件資源,每個進程都有自己的私有線性地址空間
-
- 邏輯地址:
-
- 物理地址:是CPU提交導總線用于訪問平臺內存或硬件設備的最終地址
-
- 線性地址: 又叫虛擬地址,當分頁機制開啟時,線性地址必須轉換為物理地址才能訪問平臺內存或硬件設備
-
分頁機制
-
- 分頁機制是更加粒度化的內存管理機制,典型頁大小是4KB頁。其核心思想是通過頁表將線性地址轉換為物理地址。
-
- 相關的寄存器:CR0的PG置1開啟分頁機制、CR3存儲頁表基地址
-
頁表
-
- 頁目錄項: 包含頁表的物理地址。CPU使用線性地址的22~31為索引頁目錄。每個頁目錄大小為4B
-
- 頁表項: 包含該線性地址對應的PFN(physical frame number)CPU使用線性地址的12~ 22位索引,每項大小為4B,PFN+線性地址0~11位得到物理地址。
X86構建的基本運行環境
-
三種基本模式
-
- 實模式:CPU上電首先進入的就是此模式,無權限分級。
-
- 保護模式: 操作系統運行時常用的模式,有特權分級。
-
- 虛擬8086模式
-
基本寄存器
-
- 通用寄存器:有8個32位通用寄存器
-
- 內存管理寄存器: 包括端寄存器和描述符表寄存器
-
- EFLAGS寄存器:32位的用來保存程序運行中的一些標志信息(如異常、開啟終端與否)
-
- EIP寄存器: 32位的,用來保存想當前指令的地址,也叫PC指針
-
- 浮點運算寄存器
-
- 控制寄存器: CR0~CR4,決定了CPU運行的模式和特征
-
中斷與異常
PIC:programmable interrupt controller 可編程中斷控制器
IRR: interrupt request register 中斷請求寄存器
ISR:in service register 服務中寄存器
IMR:interrupt mask register 中斷屏蔽寄存器
- PIC向中斷提交中斷流程:
- 多處理器平臺出現后APIC應運而生,其結構如下圖(摘自百度百科)
概念
- 異常: 異常最大的不同在于它是在程序的執行過程中同步發送的
- 進程: 是一個容器,其中包含了當執行一個程序的特定實例時所用到的各種資源
- 上下文:是程序運行時所需要的寄存器的最小集合
- 上下文切換
- 用戶態切換、內核態的切換
- 進程切換
- 中斷上下文切換
I/O構架
- Port I/O:通過I/O端口訪問設備寄存器,X86有65536個8位的I/O端口(64K)可以使用IN/OUT命令訪問端口
- MMIO: Memory Map IO,通過訪問內存的方式來訪問設備寄存器或設備RAM
總結
以上是生活随笔為你收集整理的读《系统虚拟化-原理与实现》-第二章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能大数据时代下的工程伦理问题探讨
- 下一篇: 【Networking】容器网络大观