計算機基礎之硬件linux
程序員與計算機之間溝通是經過編程語言和操做系統,程序員經過寫編程語言作成軟件,軟件運行在操做系統上,轉化爲計算機(硬件)理解的機器語言。程序員
一臺計算機包括的部分有:CPU,內存,外存,I/O設備,他們之間經過總線(bus)連接起來。編程
1. 處理器緩存
CPU從內存中讀取數據,解碼,執行,每一個CPU都有一套可執行的專門指令集。多線程
CPU內部有一些寄存器,用來存儲一些關鍵變量和臨時數據,寄存器的材質和CPU同樣,運行速度快,用來調和cpu高速度和內存低速度的矛盾。編程語言
寄存器可分爲4種:性能
1通用寄存器:保存關鍵變量和臨時文件spa
2程序計數器:CPU一次只能運行一條指令,但能夠運行「多個」指令,寄存器用來記錄正在運行的指令的運行程度和下一條指令的運行程度和他們對應在內存中的地址操作系統
3堆棧指針:堆棧 先進後出 隊列 先進先出線程
4程序狀態字寄存器PSW:利用二進制位對用戶態和內核態之間切換
CPU的兩種模式:
用戶態:應用軟件對硬件發送指令不可執行。若要切換必須使用系統調用(system call),使用TRAP指令
內核態:操做系統能夠對硬件CPU發送指令並所有執行
寄存器的維護:操做系統必須知道全部的寄存器,以便記錄每一個程序的運行程度。
CPU在逐漸發展的過程當中,能夠同時取出,解碼多個指令,存入緩衝區,最後同時執行。
隨着CPU硬件的擴大,性能也逐漸加強,
1.加入寄存器
2.多線程。引入線程的操做系統中,一般都是把進程做爲分配資源的基本單位,把線程做爲獨立運行和獨立調配的基本單位。進程是一個程序在處理機上的一次執行過程,能夠申請和擁有系統資源,經過程序計數器的值和處理寄存器的內容來表示。多個線程共享數據空間,每一個線程都有本身的執行堆棧和程序計數器爲其執行上下文,而且速度高於進程間的上下文切換。
3多核芯片 一枚處理器中集成兩個或多個完整的內核,相互獨立,並行處理,提升性能。
2. 存儲器
寄存器>高速緩存>內存>磁盤>磁帶
L1緩存:寄存器 容量:32位CPU中爲32*32
64位cpu中爲64*64
L2緩存:高速緩存 放在cpu內部或接近cpu的地方,程序須要讀取存儲時,硬件檢查高速緩存,若找到則爲高速緩存命中,若找不到,則未命中,訪問內存。CPU對L2的訪問有1-2個時鐘週期的延遲
主存 RAM 隨機訪問存儲 易失性
ROM 只讀,非易失性 用於啓動計算機的引導加載模塊存放在ROM中(BIOS程序)
閃存 應用於固態硬盤 速度上介於RAM和磁盤之間,可擦出重寫
CMOS 易失性 保持當前的日期,時間和配置的參數 用BIOS電池永久供電
磁盤 寫入磁盤:Linux操做系統中8個扇區爲一個block塊 ,4kb 硬盤最小的讀寫單位,一個扇區512bit
讀取磁盤:
平均尋道時間:機械手臂移動和磁頭找到數據所在磁道的時間
平均延遲時間:機械手臂找到磁道以後旋轉到扇區的時間
虛擬內存:在linux中稱爲swap,快速的映射內存地址,由CPU中的一個部件負責,成爲存儲器管理單元MMU
上下文切換:從一個程序切換到另外一個程序
磁帶:經常使用於地震災害和備份時
3 I/O設備 包括控制器和設備
控制器: 是主板上的一塊或一組芯片,目的是爲操做系統屏蔽這些複雜而具體的工做。
4 總線 bus
計算機各個部件之間傳遞信息的公共通訊幹線。
北橋 PCI橋 鏈接高速設備
南校 ISA橋 鏈接慢速設備
5啓動計算機的流程
計算機插電後首先啓動BIOS程序(存放於RAM中),
程序檢測輸入輸出設備情況,
讀取CMOS中的參數和配置信息,
讀取系統盤的第一個扇區,根據讀取的信息載入bootloader模塊,啓動操做系統,
操做系統詢問BIOS,得到配置信息和設備驅動程序。
BIOS程序產生的數據存儲在CMOS中