想象一個最簡單的場景, 我們打開記事本, 然后通過鍵盤輸入123, 則顯示器上就顯示出了123. 這個過程, 計算器為我們完成了那些操作呢? 這一切是如何運轉(zhuǎn)的呢? 首先看一下計算機的結(jié)構(gòu).
馮諾依曼計算機主要由CPU, 存儲器, 輸入設(shè)備和輸出設(shè)備組成. 其中CPU又由運算器和控制器組成. 存儲器就是內(nèi)存, 內(nèi)存斷電內(nèi)容就會丟失. 鍵盤鼠標(biāo)等都是輸入設(shè)備, 顯示器打印機等屬于輸出設(shè)備.
我們的程序最初都在硬盤中存儲, 包括操作系統(tǒng). 硬盤是沒有辦法直接和CPU進行交互的, 必須先加載到內(nèi)存中才能被CPU處理. 開機其中一個主要步驟就是將硬盤的操作系統(tǒng)加載到內(nèi)存. CPU可以看做計算機的大腦, 所有程序的控制和數(shù)據(jù)的計算都需要由CPU完成. 我們知道計算機是二進制存儲的, 所以內(nèi)存中保存的是010101這樣的二進制序列, 其中包括指令和數(shù)據(jù), 這兩者從存儲形式上并沒有區(qū)別. 指令是能夠被CPU執(zhí)行的命令, 比如加法指令, 左移指令.
再回到最初的場景中, 記事本程序原來存儲在硬盤中. 我們打開時候, 就會加載到內(nèi)存中, 然后CPU讀取其指令, 成功執(zhí)行. 鍵盤輸入數(shù)據(jù)的時候, CPU按照輸入執(zhí)行對應(yīng)指令, 并通過輸出設(shè)備進行展示.