計算機體系結構:運算器+控制器=CPU中央處理單元
運算器:就是一個加法器,只能做二進制計算,算數和邏輯運算,如加減乘除,移位
控制器:控制協調運算器和存儲器交流,接受控制指令,指示運算器如何運算,指示在存儲器裏存 儲數據存取位置
存儲器:編址存儲設備,8位一字節,存放數據和指令,不能保存數據,指令,剛加電時裏面是空的
I/O設備(輸入和輸出):硬盤,網卡,性能最差,輸入 輸出設備,用來人與計算機打交道,硬 盤也屬於一種輸入輸出設備
關係:控制器協調着把存儲器的哪個存儲單元裏面的數據讀取到運算器上
主板上的各類總線提供五大部件連接線通路
總線BUS:數據,控制信號傳輸
1.地址總線:尋址
2.控制總線
3.數據總線
4.線路複用:加數,被加數(數據),指令都可以在此線路傳輸
Cpu每個針腳代表一種功能(運算方式)
CPU指令集規定了1和0各種拼湊方式代表什麼意義,硬件應該如何執行
CPU時鐘頻率:Ghz爲單位 4Ghz代表最大1秒鐘變化40多億次,傳輸40多億個數據,通過晶體管震盪實現開關閉合打開製造出0和1
緩存:高速存儲器,可以從內存中複製部分常用數據,直接交給CPU,也用來協調硬盤與內存CPU速率差異,連接CPU和內存(內存速度跟不上CPU,需要緩存)一級,二級,三級,數字越小和CPU速度相差越小,預取機制,遵循空間局部性和時間局部性,緩存造價高昂
read ahead:預取,預先加載到緩存中
寄存器:CPU中用來暫時存儲傳入的數據的,讓CPU有記憶功能
中斷:CPU通過中斷控制器來判斷和區分輸入輸出設備是哪一個,外圍設備只有靠不停中斷來與CPU交互
敲鍵盤時,鍵盤會發出中斷信號給cpu,告訴cpu鍵盤發生狀況了,來瞧一下
可編程中斷控制器:上面每一根線表示通過向量連接多個設備
Tip:中斷多了也會影響cpu性能
4G內存需要32個二進制數字編碼,因爲2的32次方是4G,所以32位的計算機總線最多尋址4G內存,因爲只有32根總線,每根線只表示0和1 64位就是4G個4G
ROM:只讀存儲器,適用於計算機的指令,這些指令可以映射到內存中,因爲RAM沒有斷電保存的功能。這些指令可以告訴計算機檢測輸入輸出設備等,用於POST加電自檢
前端總線(FSB):
北橋:高速總線控制器,需要大量數據,高頻率交換(鏈接CPU和內存)
現在一般把高速的輸入輸出設備(如固態硬盤直接接到北橋上,速度更快。離CPU較近,告訴總線控制器----快速實現數據交換
南橋:低速總線控制器---連接各種外圍設備,硬盤,鍵盤,鼠標,通過總線連接到北橋
如何讓系統更快:固態硬盤直接連接在北橋上
虛擬機:硬件+軟件一起模擬實現硬件功能
CPU虛擬化:將CPU被切割成時間片
內存虛擬:線性地址空間---=每個進程自身認爲自己有3G內存空間(還有1G給內核),事實上並不是
虛擬機內存:將本來已經虛擬的內存再進行虛擬,物理地址空間虛擬爲線性地址空間
爲了方便地和計算機打交道,有了操作系統,可以封裝底層計算能力,抽象爲統一接口,讓程序員無需基於二進制編程,這樣程序員就可以面向操作系統寫程序了,簡單了很多。特權指令只能由內核代爲執行,普通指令則程序自己可以調用執行
kernel內核功能:
進程管理
內存管理
文件系統
網絡功能
硬件驅動
安全機制
內核調用
system call(內核接收其他程序的請求)
malloc(), free() 申請內存和釋放內存的兩個系統調用
庫調用:封裝系統調用
liberal call
解釋器,編譯器,虛擬機
API(庫):一種高級語言與計算機交互的環境 庫被調用纔可以執行。硬件與編程語言之間的兼容層,讓多種語言能在多種硬件平臺上運行
庫:一堆程序,沒有執行入口,可以被其他程序調用執行,不能被獨立執行
將底層系統調用組合起來,做成一個更高級的接口,方便程序和硬件打交道,一些公共的程序,所有程序都會用到它
二進制編程--->微碼編程(彙編語言)--->系統調用編程(基於操作系統)---->庫調用編程(c,c++庫)---->高級語言編程(基於各種編譯器或解釋器)
POS: Portable Operating System POSIX
一種規則-----可移植操作系統規範,在不同平臺寫的程序可以相互兼容(API相同)
編譯 彙編 鏈接 執行
彙編:彙編語言轉換爲計算機認識的二進制代碼
編譯:其他語言轉換爲彙編語言的過程
Windows共享庫:.dll文件動態鏈接庫
Linux庫:.so文件 共享對象,一份庫誰都可以用,極大節約資源,極大地節約了內存
NUMA:非一致性內存訪問,每一顆CPU都有自己專有的內存空間,不過需要進程和CPU綁定。
程序運行:向內核申請佔據CPU執行指令
寫的程序一旦編譯後就只能在特定平臺上運行了,但是java不是這樣的
應用程序是否能運行還依賴於支持哪種架構的CPU
API:編譯前
ABI:編譯後
CPU架構類型:
x86
x64
arm
m68000,m68k
power
powerpc
ultrasparc
alpha
安騰