目錄算法
計算機分爲五大組成部分,分別爲控制器,運算器,存儲器,輸入設備,輸出設備。其中控制器+運算器是計算機的中央處理器(CPU),至關於人類的大腦。編程
計算機的指揮系統,大腦指揮全身的器官運做,可是大腦不會隨意的指揮身體運動,大腦只有在接受指令後猜會指控身體行動spa
運算器是計算機的運算系統。大腦除了指揮,無時無刻都在運算,即實現算術運算和邏輯運算。操作系統
1,算術運算:相似1 + 1 = 2翻譯
2,邏輯運算:相似 碰到瘋狗,弄死他,或者跑3d
相似:blog
吃飯流程示例。進程
計算器的存儲系統,須要注意的是:不管是內存仍是外存,計算機存儲數據的格式都是01,01的形式是0和1由電壓的電頻控制。計算機的存儲的一個二進制單位稱爲1bit,8bit=1Bytes稱爲一個字節,1024Bytes=1kb,1024kb=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB。事件
下圖展現了目前市場上經常使用的存儲器,從圖中能夠看出存儲器的速度,容量和價格是相互矛盾的。內存
內存是計算機臨時存儲數據的硬件設備,因爲內存讀取數據速度較快,CPU下達的指令會直接傳輸給內存,即CPU與內存會直接交互,常見的內存有內存條。
1.優勢(較於外存):
1.存取速度快。
缺點(較於外存):
1.容量小。
2.因爲內存基於電,存儲數據,所以斷電後數據會立刻消失。
外存是計算機內永久存儲數據的硬件設備,因爲外存容量大,因此外存主要用於存儲軟件等佔用量大的數據。當須要使用外存上的某個軟件時,CPU下達的指令須要傳輸給內存後,內存在從外存中讀取軟件信息,即CPU不與外存直接交互。
常見的外存有磁帶、磁盤,和U盤等。
1.優勢(較於內存):
1.容量大
2.能夠永久的存儲數據。
2.缺點(交於內存):
1.存取速度慢
電腦打開qq的流程示例:
1.雙擊qq圖標,CPU先向內存發出取指的命令。(CPU+內存)
2.內存從硬件中取出運行QQ的指令(硬盤)
3.控制器分析運行QQ的指令並告知運算器工做(控制器)
4.運算器進行一系列的算術運算和邏輯運算打開QQ,並從硬件中讀取QQ的代碼到內存(運算器+內存+硬盤)
5.計算機在內存中運行QQ的代碼(內存)
6.若是此時從QQ好友中接受一個文件而且下載,該文件將會永久保存在硬盤中(硬盤)
7.關閉QQ時CPU向內存發出關閉QQ的指令,內存關閉QQ並清理內存中的QQ代碼(內存)
計算機的輸入信息(程序,數據,聲音,文字,圖形,圖像)的設備
常見的輸入設備:鍵盤,鼠標,圖形掃描儀,觸摸屏,條形碼輸入,光筆等。外存儲器(u盤等)也是一種輸入設備。
計算機輸出信息的設備
常見的輸出設備:顯示器,打印機,繪圖儀等,外存儲器也是一種輸出設備。
注意因爲外存儲器便是一種輸入設備,也是一種輸出設備,所以外存儲器也被稱爲IO設備,其中I爲Input(輸入),O爲Output(輸出).
補充部分做爲選看部分,主要是爲了介紹計算機的啓動流程。
多核CPU:多個CPU,電腦能夠同時幹多個事件。如,四核CPU能夠同時作四件事情。
X86-64位:X86是CPU的一種型號,64表示CPU每次能取64位二進制數。X86-32表示CPU每次取32位二進制數。CPU具備向下兼容性,即64位電腦能下載32位的軟件,而32位的軟件下載64位的軟件會丟失數據。
ROM存儲器:ROM只讀存儲器(不可寫)在工廠中就被編程完畢,而後不再能修改。它通常存放BIOS(Basic input output system)程序,該程序通常用於啓動計算機,或用於處理底層設備的控制。
CMOS存儲器:CMOS存儲器由一塊電腦內置的電池驅動供電,它通常用來保持當前時間和日期的更新,也就是說,即便計算機沒有充電,時間也會持續更新;同時它也能夠存儲啓動磁盤的路徑。(裝機的時候通常會告訴計算機操做系統在計算機中的位置,如C:/)
總線至關於人類的神經、血管、鏈接計算機的全部硬件設備。
計算機加電。
BIOS開始運行,檢測硬件:CPU、內存、硬盤燈。
BIOS讀取CMOS存儲器中的參數,選擇啓動設備等。
從啓動設備上讀取第一個扇區的內容。
根據分區信息讀入bootloader啓動裝載模塊,啓動操做系統。
操做系統詢問BIOS,得到配置信息。對於每種設備,系統會檢查其設備驅動是否存在,若是沒有,系統則會要求用戶按照設備驅動程序,一旦有了所有的設備驅動程序,操做系統則會將它們調入內核,而後初始有關的表格(如進程表。
現在市場上的硬盤分爲機械硬盤和固態硬盤兩大類,咱們將從這兩大類出發和同窗們介紹硬盤的工做原理
機械硬盤主要有機械手臂、磁道和扇區組成,接下來咱們將從這三個方面對機械硬盤的工做原理。
機械手臂:機械硬盤經過機械手臂讀取數據,機械手臂的末端是磁頭。
磁道:磁道是機械硬盤的磁面中的一個一個圈,磁道用於存儲數據。
扇區:扇區的最小單位一般爲512KB(因爲磁盤大小不斷增大,也有部分廠商設定每一個扇區的大小是4096字節)。爲了減少IO操做,機械硬盤也會將多個相鄰的扇區組合在一塊兒,造成一個塊,這個塊便就是咱們在Windows系統中看到的C、D分區。
平均尋道時間:因爲數據存放在磁道上,所以機械手臂須要讀取數據首先要找到磁道。受限於工業水平的限制,目前機械手臂找到磁道的時間爲5ms,這個時間被稱爲平均尋道時間。
平均延遲時間:機械手臂尋道以後,須要尋找數據。因爲數據的位置是不肯定的,而目前的機械硬盤尋找數據會從硬盤的頭部掃描到尾部。以7200r/min的硬盤爲例,若是碰巧在硬盤頭部找到數據,時間約爲0ms;若是在硬盤尾部找到數據,時間約爲8.3ms,所以咱們採用一個平均時間4.15ms做爲機械手臂在磁道找到數據的時間,這個時間被稱爲平均延遲時間。
$$
7200/60 = 120r/s \
\frac{1}{120} = 0.00833s = 8.3ms \
\frac{0.83+0}{2} = 4.15 ms \
\text{尋找數據的時間} = 4.15+5 = 9.15ms \
$$
補充:平均延遲時間: 機械手臂到磁盤的時間 5ms (固態硬盤沒有這個時間)
平均尋數據的時間: (0 + 8.3) /2
從上述描述能夠得出:
尋找數據的時間=平均尋道時間+平均延遲時間尋找數據的時間=平均尋道時間+平均延遲時間
隨着人們對數據需求增多,存儲系統的瓶頸愈來愈明顯。而在嵌入式領域移動設備和工業自動化控制等惡劣環境下,傳統硬盤機械結構已經沒法知足要求,而全部這一切隨着固態存儲(SSD)的到來而發生了改變。
傳統的機械硬盤(HDD)運行主要是靠機械驅動頭,包括馬達、盤片、磁頭搖臂等必需的機械部件,它必須在快速旋轉的磁盤上移動至訪問位置,至少95%的時間都消耗在機械部件的動做上。SSD卻不一樣機械構造,無需移動的部件,主要由主控與閃存芯片組成的SSD能夠以更快速度和準確性訪問驅動器到任何位置。傳統機械硬盤必須得依靠主軸主機、磁頭和磁頭臂來找到位置,而SSD用集成的電路代替了物理旋轉磁盤,訪問數據的時間及延遲遠遠超過了機械硬盤。SSD有如此的「神速」,徹底得益於內部的組成部件:主控--閃存--固件算法。SSD經過這套組成部件,讓數據以電荷的方式存儲在每一個NAND存儲單元內。
上面講了這麼多,牢記一點:
固態硬盤是基於固態電子(SSD,斷電數據也會保留)和算法實現數據存儲的。