Day01_電腦硬體及啟動流程

来源:http://www.cnblogs.com/sama/archive/2017/11/17/7854280.html
-Advertisement-
Play Games

一.電腦硬體介紹 概念:由一條匯流排把CPU、記憶體和I/O設備串聯起來並與其他設備進行通信。 CPU負責運算,記憶體用於儲存臨時變數,硬碟用於儲存數據 應用程式、操作系統及硬體的關係:參考應用程式的啟動流程 1. 處理器CPU( 寄存器+控制器 ) 取指令 解碼 執行 ,直到程式結束。 1. 通用寄存 ...


一.電腦硬體介紹

  • 概念:由一條匯流排把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
  • 操作系統啟動流程及應用程式啟動流程需搞清
  • 今日主要是整理了硬體方面相關概念,還需白天進一步加強記憶,畢竟海峰老師說過基礎不好,應該回家種地,明天加油了。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 關於WCF即可以寄宿於IIS,也可以自我寄宿,本文采用的是自我寄宿方式。之所以採用自我寄宿方式,很大程度上,在一些特殊的場景,例如下載大文件(如幾百MB、1G等)、圖片、文檔等,如果以IIS為宿主,可能會產生記憶體不夠用。所以這裡採用自我寄宿的方式為例子。WCF是由微軟開發的一系列支持數據通信的應用程... ...
  • 問題描述 在發佈項目的時候,有一些文件是json文件,在網頁中進行載入,但是在IIS7發佈的時候,json文件居然是404,無法找到,在URL上輸入地址也一樣。 錯誤原因 IIS內部機制,不支持直接訪問json擴展名文件,沒有mime映射。因此IIS不認Json文件,如需要支持訪問json文件時,需 ...
  • 上一篇文章介紹了使用Authorize特性實現了ASP.NET MVC中針對Controller或者Action的授權功能,實際上這個特性是MVC功能的一部分,被稱為過濾器(Filter),它是一種面向切麵編程(AOP)的實現,本章將從以下幾個方面來介紹ASP.NET MVC中的過濾器。 ● ASP ...
  • 首先出個題: 如圖: 假設對成長速度顯示規定如下: 成長速度為5顯示1個箭頭; 成長速度為10顯示2個箭頭; 成長速度為12顯示3個箭頭; 成長速度為15顯示4個箭頭; 其他都顯示都顯示0各箭頭。 用代碼怎麼實現? 差一點的if,else: Js代碼 var add_level = 0; if(ad ...
  • 背水一戰 Windows 10 之 控制項(控制項基類 - UIElement ): 拖放的基本應用, 手動開啟 UIElement 的拖放操作 ...
  • 在我們開發工作流模塊的時候,有時候填寫申請單過程中,暫時不想提交審批,那麼可以暫存為草稿,以供下次繼續填寫或者提交處理,那麼這個草稿的功能是比較實用的,否則對於一些填寫內容比較多的申請單,每次要重填寫很多數據,那會被用戶罵的,從用戶的角度上來講,提供草稿保存的功能是比較友好的。本篇隨筆介紹在工作流模... ...
  • 簡介 排序演算法是我們編程中遇到的最多的演算法。目前主流的演算法有8種。 平均時間複雜度從高到低依次是: 冒泡排序(o(n2)),選擇排序(o(n2)),插入排序(o(n2)),堆排序(o(nlogn)), 歸併排序(o(nlogn)),快速排序(o(nlogn)), 希爾排序(o(n1.25)),基數排 ...
  • 結構體List則表示鏈表這種數據結構(見示例1)。這個結構由5個成員組成:size表示鏈表中元素個數;match並不由鏈表本身使用,而是由鏈表數據結構派生而來的新類型所使用;destroy是封裝之後傳遞給list_init的析構函數;head是指向鏈表中頭結點元素的指針;tail則是指向鏈表中末尾結... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...