讀《系統虛擬化-原理與實現》-第二章

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向中斷提交中斷流程:
  1. IR管腳上有觸發電平,若對應中斷沒有被屏蔽則IRR中對應位被置1
  2. PIC拉高INT管腳通知CPU中斷髮生
  3. CPU通過INTA管腳銀達PIC
  4. PIC收到INTA應答後,將IRR中最高優先級中斷位清0,並設置對應的ISR位
  5. CPU通過INTA管腳第二次發出脈衝,PIC收到後計算最高優先級的中斷vector,並提交到數據線上
  6. PIC等待CPU寫EOI,收到EOI後,ISR中優先級最高的位被清0
  • 多處理器平臺出現後APIC應運而生,其結構如下圖(摘自百度百科)
  • APIC結構

概念

  • 異常: 異常最大的不同在於它是在程序的執行過程中同步發送的
  • 進程: 是一個容器,其中包含了當執行一個程序的特定實例時所用到的各種資源
  • 上下文:是程序運行時所需要的寄存器的最小集合
    • 上下文切換
    1. 用戶態切換、內核態的切換
    2. 進程切換
    3. 中斷上下文切換

I/O構架

  • Port I/O:通過I/O端口訪問設備寄存器,X86有65536個8位的I/O端口(64K)可以使用IN/OUT命令訪問端口
  • MMIO: Memory Map IO,通過訪問內存的方式來訪問設備寄存器或設備RAM
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章