linux 深入理解計算機系統 一

2021-09-26 09:52:00 字數 4201 閱讀 3130

電子計算機三大核心部件

含義:

1. 作為計算機系統的運算和控制核心,是資訊處理、程式執行的最終執行單元。

2. 計算機系統中所有軟體層的操作,最終都將通過指令集對映為cpu的操作

功能:

1. 解釋計算機指令

2. 處理計算機軟體中的資料

結構:

1. 運算器: 計算機中進行各種算術和邏輯運算操作的部件, 其中算術邏輯單元是**處理核心的部分。

1. 算術邏輯單元(alu)

算術邏輯單元是指能實現多組 算術運算與邏輯運算的組合邏輯電路,其是**處理中的重要組成部分。

算術邏輯單元的運算主要是進行二位元算術運算,如加法、減法、乘法。

2. 中間暫存器(ir)

其長度為 128 位,其通過運算元來決定實際長度。ir 在「進棧並取數」指令中發揮重要作用,在執行該指令過程中,

將acc的內容傳送於ir,之後將運算元取到acc,後將ir內容進棧

3. 運算累加器(acc)

當前的暫存器一般都是單累加器,其長度為128位。對於acc來說,可以將它看成可變長的累加器。在敘述指令過程中,acc長度的表示一般

都是將acs的值作為依據,而acs長度與 acc 長度有著直接聯絡,acs長度的加倍或減半也可以看作acc長度加倍或減半。

4. 描述字暫存器(dr)

其主要應用於存放與修改描述字中

5. b暫存器

其在指令的修改中發揮重要作用,b 暫存器長度為32位,

在修改位址過程中能儲存位址修改量,主存位址只能用描述字進行修改。

2. 控制器

按照預定順序改變主電路或控制電路的接線和 改變電路中電阻值來控制電動機的啟動、調速、制動與反向的主令裝置。

3. 高速緩衝儲存器及實現它們之間聯絡的資料、控制的匯流排。

工作流程:

1. 取指令階段

即將一條指令從主儲存器中取到指令暫存器的過程。程式計數器中的數值,

用來指示當前指令在主存中的位置。當一條指令被取出後,pc中的數值將根據指令字長度自動遞增。

2. 指令解碼階段

取出指令後,指令解碼器按照預定的指令格式,對取回的指令進行拆分和解釋,

識別區分出不同的指令類 別以及各種獲取運算元的方法。

3. 執行指令階段

cpu的不同部分被連線起來,以執行所需的操作。

4. 訪訪問數

根據指令需要訪問主存、讀取運算元,cpu得到運算元在主存中的位址,

並從主存中讀取該運算元用於運算。部分指令不需要訪問主存,則可以跳過該階段。

5. 結果寫回。

結果寫回階段把執行指令階段的執行結果資料「寫回」到某種儲存形式。結果資料一般會被寫到cpu的內部暫存器中,以便被後續的指令快速地訪問;

許多指令還會改變程式狀態字暫存器中標誌位的狀態,這些標誌位標識著不同的操作結果,可被用來影響程式的動作。

效能衡量指標:

1. 主頻: 

x32/x64

2. cpu的位數:

核數3. cpu的快取指令集。

cpu 的快取可以分為一級快取、二級快取和**快取,而那些處理能力比較強的處理器則一般具有較大的**快取。

功能:

1. 是與cpu進行溝通的橋梁

2. 計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大。

3. 其作用是用於暫時存放cpu中的運算資料,以及與硬碟等外部儲存器交換的資料。

頻率:

1. 記憶體主頻和cpu主頻一樣,習慣上被用來表示記憶體的速度,它代表著該記憶體所能達到的最高工作頻率(mhz)

2. 記憶體主頻越高在一定程度上代表著記憶體所能達到的速度越快。

3. 記憶體主頻決定著該記憶體最高能在什麼樣的頻率正常工作。

記憶體頻寬:

1. 是什麼

功能: 記憶體的容量決定「倉庫」的大小,而記憶體的頻寬決定「橋梁」的寬窄,兩者缺一不可,這也就是我們常常說道的「記憶體容量」與「記憶體速度」。

除了記憶體容量與記憶體速度,延時週期也是決定其效能的關鍵。

流程: 當cpu需要記憶體中的資料時,它會發出乙個由記憶體控制器所執行的要求,記憶體控制器接著將要求傳送至記憶體,並在接收資料時向cpu報告

整個週期(從cpu到記憶體控制器,記憶體再回到cpu)所需的時間。

2. 重要性

系統工作的過程: 基本上當cpu接收到指令後,它會最先向cpu中的一級快取(l1cache)去尋找相關的資料,雖然一級快取是與cpu同頻執行的,

但是由於容量較小,所以不可能每次都命中。這時cpu會繼續向下一級的二級快取(l2cache)尋找,同樣的道理,當所需要的資料在二級快取中也沒有的話,

會繼續轉向l3cache(如果有的話,如k6-2+和k6-3)、記憶體和硬碟。由於目前系統處理的資料量都是相當巨大的,

此幾乎每一步操作都得經過記憶體,這也是整個系統中工作最為頻繁的部件。

含義:

作業系統是乙個用來和硬體打交道並為使用者程式提供乙個有限服務集的低階支撐軟體。乙個計算機系統是乙個硬體和軟體的共生體,

它們互相依賴,不可分割。計算機的硬體,含有外圍裝置、處理器、記憶體、硬碟和

其他的電子裝置組成計算機的發動機

主要模組:

儲存管理、cpu和程序管理、檔案系統、裝置管理和驅動、網路通訊,以及系統的初始化(引導)、系統呼叫等。
含義:

sci 層提供了某些機制執行從使用者空間到核心的函式呼叫。

sci 實際上是乙個非常有用的函式呼叫多路復用和多路分解服務

程序管理的重點是程序的執行。

核心通過 sci 提供了乙個應用程式程式設計介面(api)來建立乙個新程序(fork、exec 或 portable operating system inte***ce [posⅸ] 函式),停止程序(kill、exit),並在它們之間進行通訊和同步(signal 或者 posⅸ 機制)。

程序管理還包括處理活動程序之間共享 cpu 的需求。核心實現了一種新型的排程演算法,不管有多少個執行緒在競爭 cpu,這種演算法都可以在固定時間內進行操作。

這種演算法就稱為 o⑴ 排程程式,這個名字就表示它排程多個執行緒所使用的時間和排程乙個執行緒所使用的時間是相同的。

o⑴ 排程程式也可以支援多處理器(稱為對稱多處理器或 smp)

核心所管理的另外乙個重要資源是記憶體。為了提高效率,如果由硬管理虛擬記憶體,

記憶體是按照所謂的記憶體頁 方式進行管理的(對於大部分體系結構來說都是 4kb)。

linux 包括了管理可用記憶體的方式,以及物理和虛擬對映所使用的硬體機制。

不過記憶體管理要管理的可不止 4kb緩衝區。linux 提供了對 4kb緩衝區的抽象,例如 slab 分配器。這種記憶體管理模式使用 4kb緩衝區為基數,

然後從中分配結構,並跟蹤記憶體頁使用情況,比如哪些記憶體頁是滿的,

哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據系統需要來動態調整記憶體使用。

功能:

虛擬檔案系統(vfs)是 linux 核心中非常有用的乙個方面,因為它為檔案系統提供了乙個通用的介面抽象。vfs 在 sci 和核心所支援的檔案系統之間提供了乙個交換層。

檔案系統層之下是緩衝區快取,它為檔案系統層提供了乙個通用函式集(與具體檔案系統無關)。這個快取層通過將資料保留一段時間

(或者隨即預先讀取資料以便在需要是就可用)優化了對物理裝置的訪問。緩衝區快取之下是裝置驅動程式,它實現了特定物理裝置的介面。

讀《深入理解計算機系統》 一

最近在讀 深入理解計算機系統 這本書,朋友推薦的,豆瓣評分九點幾分,相當不錯。看了一周,有些收穫,記錄下來以後回看。一。計算機是如何執行我們的oc呢?或者說是如何執行高階程式語言呢?我們都知道計算機執行是靠二進位制來計算,計算機的cpu是由很多的電晶體,二極體,微控制器組成的,當我們在 中寫下x 2...

深入理解計算機系統(一 計算機系統漫遊)

處理單元 cpu 簡稱處理器,是解釋 或執行 儲存在主存中指令的引擎。處理器的核心是乙個字長的儲存裝置 或暫存器 成為程式計數器 pc 在任何時刻,pc都指向主存中的某條機器語言指令 即含有該條指令的位址 從系統通電開始,直到系統斷電,處理器一直在不斷的執行程式計數器指向的指令,再更新程式計數器,使...

計算機系統那些事 深入理解計算機系統(一)

一枚程式設計小白從2018.9.1的學習歷程 世界上沒有什麼是努力辦不到的,如果有,那麼就更努力一些吧 1.在unix系統上,原始檔到目標檔案是如何轉化的呢?從源程式也就是hello.c經過預處理 cpp 也就是那些 引入的標頭檔案啦,把它直接插到程式中,結果呢,得到hello.i這個時候程式就變得...