官术网_书友最值得收藏!

1.1 計算機系統的工作原理

本節將介紹計算機系統的組成、程序設計的基本知識,以及C語言概述。

1.1.1 計算機系統的組成

根據馮·諾依曼設計計算機的思想,計算機系統由計算機硬件和計算機軟件兩部分組成。

1. 計算機硬件

計算機硬件是指組成計算機系統的設備或機器,是“看得見,摸得著”的物理部件,它是組成計算機系統的基礎。計算機硬件一般包括中央處理器(CPU)、內存儲器、外存儲器、輸入設備和輸出設備。中央處理器包括運算器和控制器。CPU與內存儲器合稱為主機,外存儲器、輸入設備和輸出設備合稱為外部設備。計算機硬件的組成可以用下列公式表示,它們之間的關系如圖1-1所示。

圖1-1 計算機硬件之間的關系

計算機硬件=主機(CPU+內存儲器)+外設(外存儲器+輸入設備+輸出設備)

2. 計算機軟件

計算機軟件是指組成計算機系統的程序、數據和文檔。程序是指令的有序集合;數據是信息在計算機中的表示,是計算機處理的對象;文檔是各種說明文本,是軟件操作的輔助性資源。計算機的所有工作都必須在軟件的控制下才能進行,沒有軟件的計算機稱為“裸機”,是任何工作都不能做的。計算機軟件的組成可以用下列公式表示。

計算機軟件=系統軟件(OS+DBMS+編譯+服務程序)+應用軟件(源程序+應用軟件包)

根據軟件的作用可以把軟件分為系統軟件和應用軟件。系統軟件是支持和管理計算機硬件的軟件,是服務于硬件的,它創立的是一個平臺;應用軟件是完成用戶某項要求的軟件,是服務于特定用戶的,它滿足某一個應用領域。軟件的作用如圖1-2所示。

圖1-2 軟件的作用

系統軟件包括操作系統、數據庫管理系統、計算機編譯語言和各種系統服務性程序。應用軟件包括計算機源程序和應用軟件包。所有這些軟件,操作系統是基礎,是其他軟件的平臺。沒有操作系統,其他軟件就無法工作。

從軟件的構成上,可以用以下公式描述軟件:

軟件=程序+數據+文檔資料

(1)程序

從通俗的角度講,程序是讓計算機解決問題的方法步驟。從專業的角度講,程序是指令的有序集合,即程序=算法+數據結構。算法就是解決問題的方法。數據結構就是要計算機處理的數據在計算機中的存儲和描述,即為數據的表示范圍、數據間的關系和數據所能參與的運算。

也可以說程序是符號+規則,用規定的符號和符合規則的一組有意義的有序的指令集合稱之為程序。為了解決同一個問題而編寫的若干個程序的集合叫做程序集。在程序集中,首先被執行的程序叫主程序,在主程序執行期間被調用的程序稱之為子程序。在程序定義中的“有意義”強調了程序要解決問題的目的性。

要讓計算機按人們的意圖做某項工作,必須使計算機能接受人們向它發出的各種命令和信息。但目前的大部分計算機還不能直接懂得人類的自然語言,只能接受用特定的信息代碼編寫成的一條條指令。計算機能識別并執行的信息符號代碼的指令集合稱為計算機語言,根據其發展,把它分為機器語言、匯編語言和高級語言三類。

第一,機器語言。機器語言是指用二進制代碼直接表達指令的語言。機器語言程序可以被計算機識別并執行,但由于每條指令都是由0和1組成的數串,不好記憶,容易出錯,不同機型的指令代碼不同,現在一般的計算機用戶很少使用它設計程序。

第二,匯編語言。匯編語言是用一些指令助記符(指令功能的英文詞縮寫)來表示機器語言每條指令的一種語言。如加法指令ADD,減法指令SUB,傳送數據指令MOV等。匯編語言的指令要比機器語言易于記憶理解,不易出錯。但這種語言沒有從根本上減少指令,且繁瑣,不易移植,功能弱,一般用戶很少用這種語言編寫程序。用匯編語言編寫的程序不能被計算機直接執行,必須經過匯編程序匯編轉換成機器語言程序后,才能執行。

第三,高級語言。高級語言是比較接近人類自然語言和數學描述的語言。高級語言一條命令的功能可以代替幾條、幾十條匯編語言的指令功能。因此,高級語言更簡便、易學、易記,通用性強,兼容性好,便于移植,高級語言是目前廣泛使用的程序設計語言。常用的有BASIC、Fortran、Pascal、C語言等。

高級語言雖然好學易用,但用高級語言編寫的源程序,實際上是不能直接在計算機內運行的,還必須經過翻譯轉換成計算機所能識別的機器語言程序,即目標程序,才可運行。高級語言通常采用編譯程序和解釋程序兩種翻譯方式,如圖1-3所示。

圖1-3 源程序的兩種翻譯方式

解釋程序是邊翻譯邊運行,即從源程序中取一條指令轉換一次執行一次,直到結束。編譯程序是翻譯完后再運行,即將源程序的每條指令全部轉換成機器語言表達的程序(目標程序)再運行。每一種高級語言,都有一套與之相對應的翻譯程序。

(2)數據

數據有廣義和狹義之分。廣義的數據概念是指對客觀事物的描述,即用語言、文字、聲音、圖形、圖像等手段對客觀事物的形狀、顏色、質地、運行狀態等特性的描述。也就是用數字表示的是數據,用其他符號表示的也是數據。如268是數據,“我是一個學生”也是數據,一張照片、一段錄音、一段電影都是數據。

在講狹義的數據之前,先介紹一個概念——信息。信息是有用的數據或加工后的數據。所有的描述都是數據,但不一定是信息。今天對我來說數據有用,它就是信息;明天對我來說數據無用,就不是信息了。所以,信息具有一定的時效性、相對性。

從狹義上來講,也就是是否能被計算機接收和處理,若能被計算機接收和處理的信息就是計算機數據。在計算機內部,通常數據和信息不加區分,數據就是信息,信息就是數據。在計算機中往往把數據分成不同的類型,對數量描述的能進行算術運算的數據是數值型數據,如268。對事物性質描述的是字符型數據,如“我是一個學生”。

(3)文檔資料

文檔資料是由應用軟件和系統軟件產生的信息的集合,一般以文件的形式保存在磁盤上。在程序設計中,我們所處理的文檔資料大多是數據文件。

計算機硬件和計算機軟件在計算機系統中是相輔相成、缺一不可的,它們共同組成了計算機系統,如圖1-3 所示。計算機硬件是計算機的軀體和基礎,計算機軟件是計算機的頭腦和靈魂,沒有軟件的計算機和缺少硬件的計算機都不能成為完整的計算機系統。二者相互推動,共同促進計算機的發展。

圖1-3 計算機系統的組成

1.1.2 計算機系統的工作過程

計算機開機后,CPU首先執行固化在只讀存儲器(ROM)中的一小部分操作系統程序,這部分程序稱為基本輸入輸出系統(BIOS),它啟動操作系統的裝載過程,先把一部分操作系統從磁盤讀入內存,然后再由讀入的這部分操作系統裝載其他的操作系統程序。裝載操作系統的過程稱為自舉或引導。操作系統被裝載到內存后,計算機才能接收用戶的命令,執行其他的程序,直到用戶關機。程序是由一系列指令所組成的有序集合,計算機執行程序就是執行這一系列指令。

1. 指令和程序的概念

指令就是讓計算機完成某個操作所發出的指令或命令,即計算機完成某個操作的依據。一條指令通常有操作碼和操作數兩部分組成,操作碼指明該指令要完成的操作,操作數是所要完成操作的對象。一臺計算機的所有指令的集合,稱為該計算機的指令系統。

使用者根據解決某一問題的步驟,選用一條條指令進行有序的排列。計算機執行了一個指令序列,便可完成預定的任務。這一個指令序列就稱為程序。顯然,程序中的每一條指令必須使用計算機的指令系統中的指令。因此指令系統是提供給使用者編制程序的基本依據。指令系統反映了計算機的基本功能,不同的計算機其指令系統也不相同。

2. 計算機執行指令的過程

計算機執行指令一般分為三個階段。首先將要執行的指令從內存中取出送入CPU,然后由CPU對指令進行分析譯碼,判斷該條指令要完成的操作,最后向各個部件發出完成該操作的控制信號,完成該指令的功能。當一條指令執行完后就處理下一條指令。一般將第一階段稱為取指令階段,第二階段稱為分析指令階段,第三個階段稱為執行指令階段。

3. 程序的執行過程

計算機在運行時,CPU從內存讀出一條指令到CPU內執行,指令執行完后再從內存讀出下一條執行。CPU不斷地取指令、分析指令、執行指令。

總之,計算機的工作就是執行程序,即自動連續地執行一系列指令,而程序開發人員的工作就是編制程序。一條指令的功能雖然是有限的,但是在人精心編制下的一系列指令組成的程序可完成的任務是無限多的。

主站蜘蛛池模板: 清远市| 扶风县| 措勤县| 满洲里市| 屏山县| 吴忠市| 沈阳市| 垦利县| 平山县| 平邑县| 工布江达县| 红原县| 和林格尔县| 沾益县| 马龙县| 天镇县| 东乡县| 海阳市| 罗山县| 西平县| 马鞍山市| 长泰县| 于都县| 九江市| 东丽区| 班戈县| 宜丰县| 鄂伦春自治旗| 永新县| 马边| 昭平县| 英山县| 正定县| 勐海县| 通城县| 青河县| 缙云县| 内丘县| 竹溪县| 芷江| 罗江县|