1. 程式人生 > >Day01_計算機硬件及啟動流程

Day01_計算機硬件及啟動流程

運算 blog 也不能 512字節 工作 連接慢 inux 數據庫系統 總結

一.計算機硬件介紹

  • 概念:由一條總線把CPU、內存和I/O設備串聯起來並與其他設備進行通信。CPU負責運算,內存用於儲存臨時變量,硬盤用於儲存數據
  • 應用程序、操作系統及硬件的關系:參考應用程序的啟動流程
    1. 處理器CPU(寄存器+控制器)
      • 取指令->解碼->執行,直到程序結束。
      1. 通用寄存器:用來保存變量和臨時結果
      2. 程序計數器:它保存了將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令
      3. 堆棧指針寄存器:它指向內存中當前棧的頂端。該棧包含已經進入但是還沒有退出的每個過程中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量。(知識補充:1.堆棧:就像往箱子裏放置疊好的衣服,一件一件往箱子裏放,遵循後進先出原則,就像要把第一件衣服取出來,必須從最後一件開始取,直到取出第一件。2.隊列:就像排隊刷卡出大門,遵循先進先出原則,一條隊列,肯定是第一個排隊的人刷卡先走)
      4. 程序狀態字寄存器(PSW):這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種其他控制位。用戶通常讀入整個PSW,但是只對其中少量的字段寫入
      5. 內核態與用戶態:
        • 程序狀態字寄存器中有一個二進制位控制這兩種模式(0、1)
        1. 內核態:當cpu在內核態運行時,cpu可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬件的所有功能,(操作系統在內核態下運行,從而可以訪問整個硬件)
        2. 用戶態:用戶程序在用戶態下運行,僅僅只能執行cpu整個指令集的一個子集,該子集中不包含操作硬件功能的部分,因此,一般情況下,在用戶態中有關I/O和內存保護(操作系統占用的內存是受保護的,不能被別的程序占用),當然,在用戶態下,將PSW中的模式設置成內核態也是禁止的
        3. 內核態與用戶態切換:用戶態下工作的軟件不能操作硬件,但是我們的軟件比如暴風影音,一定會有操作硬件的需求,比如從磁盤上讀一個電影文件,那就必須經歷從用戶態切換到內核態的過程,為此,用戶程序必須使用系統調用(system call),系統調用陷入內核並調用操作系統,TRAP指令把用戶態切換成內核態,並啟用操作系統從而獲得服務
      • CPU中的一級緩存L1就是寄存器。二級緩存L2用於多核CPU之間的通信,訪問速度比訪問內存快一點
    2. 存儲器
      • 寄存器就是L1緩存,高速緩存就是L2
      1. 高速緩存命中:高速緩存硬件檢查所需要的高速緩存行是否在高速緩存中,如果是,則為高速緩存命中
      2. 內存RAM:斷電後數據全部消失,易失性儲存
      3. ROM:只讀存儲器在工廠中就被編程完畢,然後再也不能修改
      4. 閃存:類似固態硬盤,不像機械硬盤那麽脆弱,但是擦除次數過多就會損壞
      5. CMOS儲存器:內置一小塊電池,主要用於記錄時間和日期參數,還保存一些其他參數,入記錄哪一個是系統磁盤等等
    3. 磁盤
      1. 扇區:機械硬盤中,盤面一個圓中的一小段
      2. 平均尋道時間:機械手臂從一個柱面隨機移動到相鄰的柱面的時間成為尋到時間,找到了磁道就以為著招到了數據所在的那個圈圈,但是還不知道數據具體這個圓圈的具體位置
      3. 平均延遲時間:機械臂到達正確的磁道之後還必須等待旋轉到數據所在的扇區下,這段時間成為延遲時間
      4. 虛擬內存:用於運行大於物理內存的程序,從機械硬盤中分一塊來暫時運行內存暫時不需要但是將要運行的指令,在linux中成為swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成為存儲器管理單元(MMU)
    4. 磁帶
      • 容量高,價格便宜但是速度低,一般用來備份(常見於大型數據庫系統中)
    5. 總線
      1. 北橋PCI:主板上的一塊芯片,連接高速設備
      2. 南橋ISA:主板上的一塊芯片,連接慢速設備

二.計算機啟動流程

  • 操作系統啟動流程
    1. 計算機加電
    2. BIOS開始運行,檢測硬件:CPU、內存、硬盤等
    3. BIOS讀取CMOS存儲器中的參數,選擇啟動設備
    4. 從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,後64為分區信息,最後兩個為標誌位)
    5. 根據分區信息讀入BootLoader啟動裝載模塊,啟動操作系統
    6. 然後操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動是否存在,如果沒有,系統會要求用戶安裝設備驅動。
  • 應用程序啟動流程
    1. 操作系統實時監控應用程序
    2. 應用程序發起一個請求,操作系統進行回應
    3. 在硬盤上進行查找,然後讀取到內存

三.單位轉換

  • 待補充
  • 硬盤讀寫單位及大小

今日總結

  • 需將‘處理器’、‘存儲器’及‘磁盤’相關概念搞清,主要是
    1. cpu、內存、硬盤工作原理
    2. cpu與寄存器
    3. 內核態於用戶態及轉換機制
    4. L1,L2緩存,RAM,閃存,CMOS
    5. 磁盤結構、尋道與延遲時間
    6. 虛擬內存與MMU
  • 操作系統啟動流程及應用程序啟動流程需搞清
  • 今日主要是整理了硬件方面相關概念,還需白天進一步加強記憶,畢竟海峰老師說過基礎不好,應該回家種地,明天加油了。

Day01_計算機硬件及啟動流程