- 計(jì)算機(jī)系統(tǒng)由硬件和系統(tǒng)軟件組成。
- 信息 = 位 + 上下文
- 程序被其他程序翻譯成不同的格式(編譯系統(tǒng))
- 處理器讀并解釋儲(chǔ)存在內(nèi)存中的指令(程序運(yùn)行)
- 操作系統(tǒng)
- 網(wǎng)絡(luò)
- 一些重要概念
信息 = 位 + 上下文
- 源程序:0和1組成的比特序列(字節(jié)序列),序列中每個(gè)字節(jié)對(duì)應(yīng)程序的一個(gè)字符。
- 所有信息都是一串比特,區(qū)分?jǐn)?shù)據(jù)對(duì)象的唯一方法是上下文。
- 只由ASCII碼字符構(gòu)成的文件稱為文本文件, 其他文件成為二進(jìn)制文件。
程序被其他程序翻譯成不同的格式(編譯系統(tǒng))

處理器讀并解釋儲(chǔ)存在內(nèi)存中的指令(程序運(yùn)行)
編譯系統(tǒng)的翻譯結(jié)果儲(chǔ)存在磁盤上,等待命令行調(diào)用后運(yùn)行。
-
shell:命令行解釋器
系統(tǒng)的硬件組成
I/O總線:傳送字節(jié)或字(字節(jié)塊)[1]
-
I/O設(shè)備:用戶輸入,用戶輸出,磁盤
每個(gè)I/O設(shè)備都通過控制器或適配器與總線相連
主存:臨時(shí)存儲(chǔ)設(shè)備,存儲(chǔ)程序和數(shù)據(jù)(可以理解為線性字節(jié)數(shù)組)
-
處理器CPU:驅(qū)動(dòng)解釋或執(zhí)行主存中的指令
- PC:程序計(jì)數(shù)器,指向主存中的命令地址
- ALU:算術(shù)/邏輯單元,對(duì)數(shù)據(jù)或地址進(jìn)行算術(shù)運(yùn)算
- 寄存器文件
程序運(yùn)行過程



高速緩存存儲(chǔ)器
- 用于存儲(chǔ)處理器近期可能用到的信息,使得大部分內(nèi)存操作都可以在高速緩存中完成
- 多級(jí)高速緩存:兩級(jí)(L1,L2)、三級(jí)(L1,L2,L3)
存儲(chǔ)器層次結(jié)構(gòu)
- 上一層存儲(chǔ)器作為下一層的高速緩存
操作系統(tǒng)
操作系統(tǒng)可以理解為應(yīng)用程序和硬件之間插入的一層軟件。
-
操作系統(tǒng)的基本功能
- 防止硬件被失控的應(yīng)用程序?yàn)E用
- 為應(yīng)用程序提供控制硬件的機(jī)制
操作系統(tǒng)的三個(gè)基本抽象概念

-
進(jìn)程:運(yùn)行中的程序
并發(fā)運(yùn)行:兩個(gè)進(jìn)程的指令交錯(cuò)執(zhí)行,通過處理器的上下文切換實(shí)現(xiàn)。
上下文:進(jìn)程運(yùn)行所需的狀態(tài)信息,包括PC和寄存器文件的當(dāng)前值和主存內(nèi)容等。
上下文切換:保存當(dāng)前進(jìn)程上下文,恢復(fù)新進(jìn)程上下文,并將控制權(quán)交給新進(jìn)程。
操作系統(tǒng)內(nèi)核:系統(tǒng)管理進(jìn)程所用代碼和數(shù)據(jù)的集合,操作系統(tǒng)擁有控制權(quán)實(shí)際上內(nèi)核掌握控制權(quán)。
線程:進(jìn)程的執(zhí)行單元,一個(gè)線程可以理解為一個(gè)控制流。相較于多進(jìn)程,多線程之間更容易共享數(shù)據(jù)且更高效。

-
虛擬內(nèi)存:每個(gè)進(jìn)程看到相同的內(nèi)存空間
- 程序代碼和數(shù)據(jù)
- 堆:malloc/free
- 共享庫:C標(biāo)準(zhǔn)庫、數(shù)學(xué)庫等
- 棧:函數(shù)
- 內(nèi)核虛擬內(nèi)存:應(yīng)用程序不能直接讀寫內(nèi)核文件或調(diào)用內(nèi)核函數(shù),必須通過調(diào)用內(nèi)核來執(zhí)行這些操作
文件:文件就是字節(jié)序列。所有I\O設(shè)備(包括網(wǎng)絡(luò))都可以看做文件。
網(wǎng)絡(luò)
- 網(wǎng)絡(luò)也是一種I/O設(shè)備。
- 網(wǎng)絡(luò)的功能
- 將信息從一臺(tái)機(jī)器復(fù)制到另外一臺(tái)機(jī)器,如電子郵件,即時(shí)通信等。
- 本地服務(wù)器可以通過網(wǎng)絡(luò)在遠(yuǎn)程服務(wù)器上執(zhí)行程序并返回到本地。
一些重要概念
Amdahl定律
系統(tǒng)某個(gè)部分加速后,對(duì)系統(tǒng)總性能的影響取決于該部分的比例和加速程度。
要想顯著加速系統(tǒng),就需要提升系統(tǒng)中相當(dāng)大部分的速度。

并發(fā)與并行
并發(fā):具有多個(gè)活動(dòng)的系統(tǒng)
并行:用并發(fā)使系統(tǒng)運(yùn)行更快
- 線程級(jí)并發(fā)
- 單處理器系統(tǒng)只能模擬進(jìn)程的并發(fā)執(zhí)行(上下文切換)。
- 多處理器系統(tǒng)減少了模擬進(jìn)程并發(fā)的需要。
- 超線程處理器允許一個(gè)處理器執(zhí)行多個(gè)控制流,可以實(shí)現(xiàn)多線程并行執(zhí)行。
- 指令級(jí)并行
- 現(xiàn)代處理器可以同時(shí)執(zhí)行多條指令。
- 流水線(pipelining):將指令分為多個(gè)不同步驟,處理器分為多個(gè)不同階段,一個(gè)階段執(zhí)行一個(gè)步驟,且不同階段可以并行操作。
- 超標(biāo)量處理器:執(zhí)行速率比一個(gè)周期執(zhí)行一條指令更快。
- 單指令、多數(shù)據(jù)并行(SIMD并行)
- 允許一條指令產(chǎn)生多個(gè)可以并行的操作,如單精度浮點(diǎn)數(shù)加法。
抽象
進(jìn)程:對(duì)運(yùn)行中的程序的抽象
虛擬內(nèi)存:對(duì)程序存儲(chǔ)器的抽象
文件:對(duì)I/O設(shè)備的抽象
指令集架構(gòu):對(duì)處理器的抽象
虛擬機(jī):對(duì)整個(gè)計(jì)算機(jī)的抽象,包括操作系統(tǒng)、處理器、程序
-
我們所說的32位,64位均指機(jī)器字長(zhǎng) ?