自己動手從零寫桌面作業系統GrapeOS系列教程——7.計算機組成與執行原理

成宇佳發表於2023-03-01

學習作業系統原理最好的方法是自己寫一個簡單的作業系統。


在大學計算機課程中會學到一個叫馮·諾依曼結構的東西,很多同學當時學的也不是很清楚,也就是記住馮·諾依曼結構中五個部分的名稱,能應付考試。主要原因還是當時大家的計算機知識比較少,的確不好深入理解。
計算機組成與執行原理和馮·諾依曼結構密切相關,今天我們就來回顧一下馮·諾依曼結構,也許能溫故知新。

1946年馮·諾依曼提出了計算機的三個基本原則:

  1. 計算機硬體由五個部分組成:運算器、控制器、儲存器、輸入裝置和輸出裝置。
  2. 計算機採用二進位制。
  3. 計算機採用“儲存程式”模式。

以上三個基本原則雖然是七十多年前提出的,但現在的計算機仍然沿用這些原則。
下面將這三個基本原則簡單介紹一下:

一、計算機硬體的五個部分

馮·諾依曼結構中五個部分分別對應哪些東西呢?我大概列舉了一下:

  • 運算器+控制器=CPU。
  • 儲存器:隨機儲存器RAM(記憶體、視訊記憶體),只讀儲存器ROM。
  • 外部儲存:硬碟、軟盤、光碟、優盤、磁帶、紙帶等。
  • 輸入裝置:鍵盤、滑鼠、掃描器、外部儲存等。
  • 輸出裝置:顯示器、音響、印表機、外部儲存等。

計算機發明七十多年了,在計算機發展的初期,計算機是一個龐然大物,馮·諾依曼結構中的五個部分每個都很大。而現在的膝上型電腦很輕便,一個人就能很輕鬆的拎走。我們需要結合現在和歷史的角度去分析馮·諾依曼結構中的五個部分。
從現在的角度看,運算器和控制器已經整合到同一個晶片裡了,叫CPU,就像圖中畫的那樣。
儲存器包括隨機儲存器RAM和只讀儲存器ROM。RAM主要是指記憶體和視訊記憶體。ROM主要存放BIOS等計算機內建程式,特點是斷電後不會像RAM那樣丟失資料。
有時候我們會看到一個叫“外部儲存器”的概念,主要包括硬碟、優盤、光碟、軟盤,甚至包括古老的磁帶和紙帶。這些東西都不屬於馮·諾依曼結構中的儲存器,而屬於輸入裝置或輸出裝置。

二、計算機採用二進位制

在今天看來計算機採用二進位制是理所當然的事,然而當年一開始發明的計算機採用的是十進位制,因為十進位制符合人類的習慣。為了讓計算機硬體在設計上更加簡單可靠,後來還是採用了馮·諾依曼提倡的二進位制。因為從電路上說,有電和沒電是兩種非常容易區分的兩種狀態,正好對應數學上的二進位制。

三、計算機採用“儲存程式”模式

這個可以對比一下算盤,在用算盤做計算時,算盤上只有資料,而怎麼計算是人來一步一步操作的。也就是說算盤並不知道該怎麼計算,這樣就導致算盤無法實現計算自動化。而馮·諾依曼提出的“儲存程式”的意思就是將演算法和資料都設計成計算指令(也就是後來的彙編指令),放入記憶體中,然後控制器會從記憶體中讀入第一條指令並執行,然後會讀入並執行下一條指令,然後會讀入並執行下下一條指令……就這樣,計算機終於實現了計算自動化。而且計算機取指令和執行指令的速度要比人撥動算盤快很多,這樣使計算機實現了高速自動化計算,同時也使計算機有了更大的實用價值。而我們平時寫的各種程式,最終會轉化為這樣的指令。我覺得這才是程式設計師誕生的起點。這裡需要注意的一點是我們平時說的程式放在硬碟或其它外部儲存器中只是一個普通的檔案,只有載入到記憶體後才能執行。

相關文章