一、計算機五大組成單元
組成計算機五大單元可以合並成三大核心組件:CPU、IO設備、主存儲器
1、控制單元+算數邏輯單元=>CPU
2、主存儲器,即主記憶體
3、輸入單元Input+輸出單元Outpu=>IO設備
二、CPU工作流程
CPU的核心工作在於進行運算和判斷,那么要被運算與判斷的數據是從哪里來的?
CPU讀取的數據都是從主存儲器(內存)來的!主存儲器內的數據則是從輸入單元所傳輸進來!而CPU處理完畢的數據也必須先寫回主存儲器中,最后數據才從主存儲器傳輸到輸出單元。
所以計算機五大組成部分的基本工作流程就是:輸入單元=>主存儲器=>CPU=>主存儲器=>輸出單元
而CPU會從內存中取指令->解碼->執行,然后再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。
三、CPU指令集
1.cpu的架構
四大 CPU 架構:ARM,X86,MIPS,PowerPC:
#1.ARM:功耗低,在無線局域網,3G,手機終端,手持設備,有線網絡通信設備應用廣泛;
#2.MIPS:被CISCO公司大量采用在高端路由器上;
#3.PowerPC:是通信和工業控制領域應用廣泛的處理器,華為中興的設備,
2.中央處理器體系結構
中央處理器體系結構:
#1.馮諾依曼:程序指令存儲器和數據存儲器合並在一起的存儲器結構;
#2.哈弗結構: 分開存儲;

3.指令集
我們已經知道CPU內部是含有微指令集的,我們所使用的的軟件都要經過CPU內部的微指令集來完成才行。這些指令集的設計主要又被分為兩種設計理念,這就是目前世界上常見到的兩種主要的CPU種類:分別是精簡指令集(RISC)與復雜指令集(CISC)系統。下面我們就來談談這兩種不同CPU種類的差異!
# 1.精簡指令集(了解)
精簡指令集(Reduced Instruction Set Computing,RISC):這種CPU的設計中,微指令集較為精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的事情,就要由多個指令來完成。常見的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、與ARM系列等。【注:Sun已經被Oracle收購;】
SPARC架構的計算機常用於學術領域的大型工作站中,包括銀行金融體系的主服務器也都有這類的計算機架構;
PowerPC架構的應用,如Sony出產的Play Station 3(PS3)使用的就是該架構的Cell處理器。
ARM是世界上使用范圍最廣的CPU了,常用的各廠商的手機、PDA、導航系統、網絡設備等,幾乎都用該架構的CPU。
# 2.復雜指令集
復雜指令集(Complex Instruction Set Computer,CISC)與RISC不同,在CISC的微指令集中,每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。因此指令執行較為復雜所以每條指令花費的時間較長,但每條個別指令可以處理的工作較為豐富。常見的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架構的CPU。
# 3.總結:
RISC: 指令少,指令單周期執行,目標代碼更大;ARM,MIPS,PowerPC
CISC: 指令復雜,指令周期長,目標代碼多;X86,
CPU按照指令集可以分為精簡指令集CPU和復雜指令集CPU兩種,區別在於前者的指令集精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的事情,就要由多個指令來完成。后者的指令集每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。因為指令執行較為復雜所以每條指令花費的時間較長,但每條個別指令可以處理的工作較為豐富。
4.x86架構64位
#1.x86架構
x86是針對cpu的型號或者說架構的一種統稱,詳細地講,最早的那顆Intel發明出來的CPU代號稱為8086,后來在8086的基礎上又開發出了80285、80386....,因此這種架構的CPU就被統稱為x86架構了。
由於AMD、Intel、VIA所開發出來的x86架構CPU被大量使用於個人計算機上面,因此,個人計算機常被稱為x86架構的計算機!
程序員開發出的軟件最終都要翻譯成cpu的指令集才能運行,因此軟件的版本必須與cpu的架構契合,舉個例子,我們在MySQL官網下載軟件MySQL時名字為:
Windows(x86,32-bit),ZIP Archive
(mysql-5.7.20-win32.zip)
我們發現名字中有x86,這其實就是告訴我們:該軟件應該運行在x86架構的計算機上。
#2.64位
cpu的位數指的是cpu一次性能從內存中取出多少位二進制指令,64bit指的是一次性能從內存中取出64位二進制指令。
在2003年以前由Intel所開發的x86架構CPU由8位升級到16、32位,后來AMD依此架構修改新一代的CPU為64位,到現在,個人計算機CPU通常都是x86_64的架構。
cpu具有向下兼容性,指的是64位的cpu既可以運行64位的軟件,也可以運行32位的軟件,而32位的cpu只能運行32位的軟件。這其實很好理解,如果把cpu的位數當成是車道的寬,而內存中軟件的指令當做是待通行的車輛,寬64的車道每次肯定既可以通行64輛車,也可以通信32輛車,而寬32的車道每次卻只能通行32輛車
5.內核態與用戶態
內核態與用戶態,代表cpu的兩種工作狀態:
#1.內核態:運行的程序是操作系統,可以操作計算機硬件
#2.用戶態:運行的程序是應用程序,不能操作計算機硬件
6.內核態與用戶態的轉換
應用程序的運行必然涉及到計算機硬件的操作,那就必須有用戶態切換到內核態下才能實現,所以計算機工作時在頻繁發生內核態與用戶態的轉換
7.多線程與多核芯片
2核4線程:
2核代表有兩個cpu,4線程指的是每個cpu都有兩個線程=》假4核
4核8線程:
4核代表有4個cpu,8線程指的是每個cpu都有兩個線程=》假8核
8.CPU歷史
微處理器由一片或少數幾片大規模集成電路組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。微處理器能完成取指令、執行指令,以及與外界存儲器和邏輯部件交換信息等操作,是微型計算機的運算控制部分。它可與存儲器和外圍電路芯片組成微型計算機。
計算機的發展主要表現在其核心部件——微處理器的發展上,每當一款新型的微處理器出現時,就會帶動計算機系統的其他部件的相應發展,如計算機體系結構的進一步優化,存儲器存取容量的不斷增大、存取速度的不斷提高,外圍設備的不斷改進以及新設備的不斷出現等。根據微處理器的字長和功能,可將其發展划分為以下幾個階段。
第1階段(1971——1973年)是4位和8位低檔微處理器時代,通常稱為第1代。
第2階段(1974——1977年)是8位中高檔微處理器時代,通常稱為第2代。
第3階段(1978——1984年)是16位微處理器時代,通常稱為第3代。
第4階段(1985——1992年)是32位微處理器時代,又稱為第4代。
第5階段(1993-2005年)是奔騰(pentium)系列微處理器時代,通常稱為第5代。
第6階段(2005年至今)是酷睿(core)系列微處理器時代,通常稱為第6代。“酷睿”是一款領先節能的新型微架構,設計的出發點是提供卓然出眾的性能和能效,提高每瓦特性能,也就是所謂的能效比。
9.運算器和控制器
常將運算器和控制器合稱為中央處理器(Central Processing Unit,CPU)。
其中運算器用來主要負責程序運算與邏輯判斷,控制器則主要協調各組件和各單元的工作,所以CPU的工作主要在於管理和運算。可以說計算機的大腦就是CPU
#1.運算器
運算器是對信息進行處理和運算的部件。經常進行的運算是算術運算和邏輯運算,所以運算器又可稱為算術邏輯運算部件(Arithmetic and Logical,ALU)。
運算器的核心是加法器。運算器中還有若干個通用寄存器或累加寄存器,用來暫存操作數並存放運算結果。寄存器的存取速度比存儲器的存放速度快很多。
#2.控制器
控制器是整個計算機的指揮中心,它的主要功能是按照人們預先確定的操作步驟,控制整個計算機的各部件有條不紊的自動工作。
控制器從主存中逐條地讀取出指令進行分析,根據指令的不同來安排操作順序,向各部件發出相應的操作信號,控制它們執行指令所規定的任務。
四、存儲器
1.存儲器的分類
#1.RAM(內存)
隨機存取存儲器(random access memory,RAM)又稱作“隨機存儲器”,是與CPU直接交換數據的內部存儲器,也叫主存(內存)。它可以隨時讀寫,而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介。
#2.ROM (只讀內存)
只讀內存(Read-Only Memory)是一種只能讀取資料的內存。在制造過程中,將資料以一特制光罩(mask)燒錄於線路中,其資料內容在寫入后就不能更改,所以有時又稱為“光罩式只讀內存”(mask ROM)。此內存的制造成本較低,常用於電腦中的開機啟動。
#3.CMOS
存取速度慢,斷電數據丟失,耗電量極低
#4.硬盤
硬盤是電腦主要的存儲媒介之一,由一個或者多個鋁制或者玻璃制的碟片組成。碟片外覆蓋有鐵磁性材料。
硬盤有固態硬盤(SSD 盤,新式硬盤)、機械硬盤(HDD 傳統硬盤)、混合硬盤(HHD 一塊基於傳統機械硬盤誕生出來的新硬盤)。
SSD采用閃存顆粒來存儲,HDD采用磁性碟片來存儲,混合硬盤(HHD: Hybrid Hard Disk)是把磁性硬盤和閃存集成到一起的一種硬盤。絕大多數硬盤都是固定硬盤,被永久性地密封固定在硬盤驅動器中。
機械硬盤:
磁道:一圈數據,對應着一串二進制(1bit代表一個二進制位)
8bit比特位=1Bytes字節
1024Bytes=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB
200G=200*1000*1000B
扇區:
一個扇區通過為512Bytes
站在硬盤的解讀,一次性讀寫數據的最小單為為扇區
操作系統一次性讀寫的單位是一個block塊=》8扇區的大小=4096Bytes
#5.軟盤
軟盤(Floppy Disk)是個人計算機(PC)中最早使用的可移介質。軟盤的讀寫是通過軟盤驅動器完成的。軟盤驅動器設計能接收可移動式軟盤,目前常用的就是容量為1.44MB的3.5英寸軟盤。
軟盤存取速度慢,容量也小,但可裝可卸、攜帶方便。作為一種可移貯存方法,它是用於那些需要被物理移動的小文件的理想選擇。
軟盤在早期計算機上必備的一個硬件,也是計算機上面最早使用的可移介質。軟盤英文縮寫是FIoppy Disk,它作為一種可移儲存硬件適用於一些需要被物理移動的小文件,軟盤的讀寫是用過軟驅也就是軟盤驅動器來完成的。
#6.光盤
光盤是以光信息做為存儲的載體並用來存儲數據的一種物品。分不可擦寫光盤,如CD-ROM、DVD-ROM等;和可擦寫光盤,如CD-RW、DVD-RAM等。
光盤是利用激光原理進行讀、寫的設備,是迅速發展的一種輔助存儲器,可以存放各種文字、聲音、圖形、圖像和動畫等多媒體數字信息。
光盤定義:即高密度光盤(Compact Disc)是近代發展起來不同於完全磁性載體的光學存儲介質(例如:磁光盤也是光盤),用聚焦的氫離子激光束處理記錄介質的方法存儲和再生信息,又稱激光光盤。
#7.U盤
U盤,全稱USB閃存盤,英文名“USB flash disk”。 [1] 它是一種使用USB接口的無需物理驅動器的微型高容量移動存儲產品,通過USB接口與電腦連接,實現即插即用。 [1]
U盤的稱呼最早來源於朗科科技生產的一種新型存儲設備,名曰“優盤”,使用USB接口進行連接。U盤連接到電腦的USB接口后,U盤的資料可與電腦交換。而之后生產的類似技術的設備由於朗科已進行專利注冊,而不能再稱之為“優盤”,而改稱諧音的“U盤”。 [1] 后來,U盤這個稱呼因其簡單易記而因而廣為人知,是移動存儲設備之一。現在市面上出現了許多支持多種端口的U盤,即三通U盤(USB電腦端口、iOS蘋果接口、安卓接口)。
2.IO延遲
IO延遲:
7200轉/min
120轉/s
1/120轉/s=轉一圈需要花費8ms
平均尋道時間:機械手臂轉到數據所在磁道需要花費的時間,受限於物理工藝水平,目前機械硬盤可以達到的是5ms
平均延遲時間:轉半圈需要花費4ms,受限於硬盤的轉速
IO延遲=平均尋道時間+平均延遲時間
優化程序運行效率的一個核心法則:能從內存取數據,就不要從硬盤取
3.緩存
緩存就是數據交換的緩沖區(稱作Cache),當某一硬件要讀取數據時,會首先從緩存中查找需要的數據,如果找到了則直接執行,找不到的話則從內存中找。由於緩存的運行速度比內存快得多,故緩存的作用就是幫助硬件更快地運行。
因為緩存往往使用的是RAM(斷電即掉的非永久儲存),所以在用完后還是會把文件送到硬盤等存儲器里永久存儲。電腦里最大的緩存就是內存條了,最快的是CPU上鑲的L1和L2緩存,顯卡的顯存是給顯卡運算芯片用的緩存,硬盤上也有16M或者32M的緩存。
4.虛擬內存
IO設備=設備的控制+設備本身
五、總線
計算機總線是一組能為多個部件分時共享的信息傳送線,用來連接多個部件並為之提供信息交換通路。總線不僅是一組信號線,從廣義上講,總線是一組傳送線路及相關的總線協議。
六、操作系統的啟動流程
1.BIOS介紹
BIOS:Basic Input Output System
BIOS被寫入ROM設備
裸機:
cpu
ROM:充當內存,存放BIOS系統
CMOS:充當硬盤
2.操作系統的啟動流程
1.計算機加電
2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等
3.BIOS讀取CMOS存儲器中的參數,選擇啟動設備
4.從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,后64為分區信息,最后兩個為標志位)
5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統
6.然后操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核
BIOS
1、存有win10系統的光盤、u盤、移動硬盤:無密碼
2、本地硬盤上的win7系統:密碼
3.應用程序的啟動流程
應用程序的啟動流程
1、雙擊exe快捷方式--》exe文件的絕對路徑,就是在告訴操作系統
說:我有一個應用程序要執行,應用程序的文件路徑是(exe文件的絕對路徑)
2、操作系統會根據文件路徑找到exe程序在硬盤的位置,控制其代碼從硬盤加載到內存
3、然后控制cpu從內存中讀取剛剛讀入內存的應用程序的代碼執行,應用程序完成啟動