最近有幸獲得機會,能夠參與到公司比較核心的業務,須要常常關注服務器的CPU,內存,磁盤IO方面的知識,遂對之前的東西,進行總結和梳理。算法
你們仔細看看上圖,認真體會,想一想咱們程序是怎麼和計算機打交道的。數組
馮諾依曼體系結構的特色:採用二進制,硬件由五個部分組成(運算器,控制器,存儲器,輸入設備和輸出設備),提出了「存儲程序」的原理,使用同一個存儲器,經由同一總線傳輸,程序和數據統一存儲在程序的控制下自動工做。服務器
須要特別指出的是,它的程序指令存儲器和數據存儲器是合併在一塊兒的,特別要指出,它的程序指令存儲器和數據存儲器是合併在一塊兒的,程序指令存儲地址和數據存儲地址指向同一個存儲器的不一樣物理位置。由於程序指令和數據都是用二進制碼錶示,且程序指令和被操做數據的地址又密切相關,因此早先選擇這樣的結構是合理的。數據結構
這種設計的不合理地方在於,一、隨着計算機處理速度和內存容量的成長速度遠大於二者之間的流量,將大量數值內存搬入搬出的操做佔用了大部分的執行時間,也形成了總線的瓶頸。二、程序執行的指令是串行的,由程序計數器控制,這樣使得即時相關數據準備好了,也必須遵循指令序列,影響了系統的運行速度;三、存儲器是線性偏址,按順序排序的地址訪問,這樣是有利於存儲和執行機器語言,適用於數值計算。但高級語言中的每一個操做對於任何數據類型都是通用的,無論採用何種數據結構,多維數組,二叉樹仍是圖,最終存儲器上都必須轉換爲一維的線性存儲模型進行存儲。這些因素都致使了機器語言和高級語言之間存在很大的語義差距,這些語義差距之間的映射大部分都要由編譯程序來完成,在很大程度上增長了編譯程序的工做量。四、馮諾依曼體系結構計算機是爲邏輯和數值運算而誕生的,它以CPU爲中心,IO設備與存儲器間的數據傳輸都要通過運算器,在數值處理方面已經達到了很高的速度和精度,但對非數值數據處理效率比較低,須要在體系結構方面有改革性的突破。設計
主要改進以下:一、多個處理器並行執行,依靠時間上的重疊來提升處理效率,造成支持多指令流,多數據流的並行算法結構。3d
二、改變傳統的計算機控制流的驅動工做方式,設計數據流驅動的工做方式,只要數據準備好,就能夠採起並行執行相關指令。blog
三、跳出電信號二進制的範疇,選取其餘物質做爲執行部件和信息載體,如光子,量子,生物分子等。排序
抽空了解了一下,計算機的硬件組成,收穫不少... 內存