閱讀627 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《計算機科學導論》一1.3 計算機組成部分

本節書摘來異步社區《計算機科學導論》一書中的第1章 ,第1.3節,[美]貝赫魯茲A. 佛羅讚(Behrouz A. Forouzan)著 劉藝劉哲雨等譯, 更多章節內容可以訪問雲棲社區“異步社區”公眾號查看。

1.3 計算機組成部分

我們可以認為計算機由三大部分組成:計算機硬件、數據和計算機軟件。

1.3.1 計算機硬件

當今的計算機硬件基於馮·諾依曼模型,且包含四部分,盡管可以有不同類型的存儲單元,不同類型的輸入/輸出子係統等。在第5章我們將詳細討論計算機硬件。

1.3.2 數據

馮·諾依曼模型清楚地將一台計算機定義為一台數據處理機。它接收輸入數據,處理並輸出相應的結果。
1.存儲數據
馮·諾依曼模型並沒有定義數據如何存儲在計算機中。如果一台計算機是一台電子設備,最好的數據存儲方式應該是電子信號,例如以電子信號的出現和消失的特定方式來存儲數據,這意味著一台計算機可以以兩種狀態之一的形式來存儲數據。
顯然,在日常使用的數據並不是以兩種狀態之一的形式存在,例如,我們在數字係統中使用的數字可以是0~9十種狀態中的任何一個。但是你不能(至少到目前為止)將這類信息存儲到計算機內部,除非將這類信息變換成另一種隻使用兩種狀態(0和1)的係統。同樣,你也需要處理其他類型的數據(例如文本、圖像、聲音、視頻),它們同樣也不能直接存儲到計算機中,除非將它們轉變成合適的形式(0和1序列)。
在第3章中,我們將會了解不同類型的數據是怎樣以0和1序列的二進製的形式存儲在計算機內部的。第4章將介紹在計算機內部由二進製組成的數據是怎樣被操作處理的。
2.組織數據
盡管數據隻能以一種形式(位模式)存儲在計算機內部,但在計算機外部卻可以表現為不同的形式。另外,計算機(以及數據處理表示法)開創了一門新興的研究領域—數據組織。在將數據存儲到計算機中之前,能否有效地將數據組織成不同的實體和格式?如今,數據並不是按照雜亂無章的次序來組織信息的。數據被組織成許多小的單元,再由這些小的單元組成更大的單元,等等。在第11~14章中,我們將會從這個角度去認識數據。

1.3.3 計算機軟件

圖靈或馮·諾依曼模型的主要特征是程序的概念。盡管早期的計算機並沒有在計算機的存儲器中存儲程序,但它們還是使用了程序的概念。編程在早期的計算機中體現為係列開關的打開或閉合以及配線的改變。編程在數據實際開始處理之前是由操作員或工程師完成的一項工作。
1.程序必須是存儲的
在馮·諾依曼模型中,這些程序被存儲在計算機的存儲器中,存儲器中不僅要存儲數據,還要存儲程序(見圖1-6)。

image


2.指令的序列
這個模型還要求程序必須是有序的指令集。每一條指令操作一個或者多個數據項。因此,一條指令可以改變它前麵指令的作用。例如,圖1-7顯示了一個輸入兩個數據,將它們相加,最後打印出結果的程序。這段程序包含4個獨立的指令集。

image


也許我們會問為什麼程序必須由不同的指令集組成,答案是重用性。如今,計算機完成成千上萬的任務,如果每一項任務的程序都是相對獨立而且和其他程序之間沒有任何的公用段,編程將會變成一件很困難的事情。圖靈模型和馮·諾依曼模型通過仔細地定義計算機可以使用的不同指令集,從而使得編程變得相對簡單。程序員通過組合這些不同的指令來創建任意數量的程序。每個程序可以是不同指令的不同組合。
3.算法
要求程序包含一係列指令使得編程變得可能,但也帶來了另外一些使用計算機方麵的問題。程序員不僅要了解每條指令所完成的任務,還要知道怎樣將這些指令結合起來完成一些特定的任務。對於一些不同的問題,程序員首先應該以循序漸進的方式來解決問題,接著盡量找到合適的指令(指令序列)來解決問題。這種按步驟解決問題的方法就是所謂的算法。算法在計算機科學中起到了重要的作用,我們將在第8章討論。
4.語言
在計算機時代的早期,隻有一種稱為機器語言的計算機語言。程序員依靠寫指令的方式(使用位模式)來解決問題。但是隨著程序越來越大,采用這種模式來編寫很長的程序變得單調乏味。計算機科學家們研究出利用符號來代表位模式,就像人們在日常中用符號(單詞)來代替一些常用的指令一樣。當然,人們在日常生活中所用的一些符號與計算機中所用的符號不同。這樣計算機語言的概念誕生了。自然語言(例如英語)是豐富的語言,並有許多正確組合單詞的規則;相對而言,計算機語言隻有比較有限的符號和單詞。第9章將介紹計算機語言。
5.軟件工程
在馮·諾依曼模型中沒有定義軟件工程,軟件工程是指結構化程序的設計和編寫。今天,它不僅僅是用來描述完成某一任務的應用程序,還包括程序設計中所要嚴格遵循的原理和規則。我們所討論的這些原理和規則綜合起來就是第10章中要說的軟件工程。
6.操作係統
在計算機發展演變過程中,科學家們發現有一係列指令對所有程序來說是公用的。例如,一條告訴計算機在哪接收和發送數據的指令在幾乎所有的程序中都要用到。如果這些指令隻編寫一次就可以用於所有程序,那麼效率將會大大提高。這樣,就出現了操作係統的概念。計算機操作係統最初是為程序訪問計算機部件提供方便的一種管理程序。今天,操作係統所完成的工作遠不止這些,具體的內容將在第7章介紹。

最後更新:2017-06-21 16:01:48

  上一篇:go  《計算機科學導論》一1.4 曆史
  下一篇:go  《計算機科學導論》一1.2 馮·諾依曼模型