計算機系統由硬件和軟件兩大部分組成,其中軟件是驅動硬件、實現各種功能的邏輯指令集合。理解計算機軟件的分類、計算機的工作過程以及系統的層次結構,是掌握計算機科學與技術的基礎。
1.2.3 計算機軟件的分類
計算機軟件通常分為兩大類:系統軟件和應用軟件。
1. 系統軟件
系統軟件是管理、控制和維護計算機硬件與軟件資源的程序集合,為應用軟件提供運行平臺。主要包括:
- 操作系統:如Windows, Linux, macOS,是計算機系統的核心,負責資源管理、任務調度、文件管理和用戶界面等。
- 語言處理程序:包括匯編程序、編譯程序和解釋程序,負責將程序員編寫的高級語言或匯編語言源代碼“翻譯”成機器能直接執行的機器語言。
- 數據庫管理系統:如Oracle, MySQL,用于高效地組織、存儲、管理和檢索大量數據。
- 系統支撐與服務程序:如驅動程序、診斷程序、調試程序,為系統開發和維護提供工具支持。
2. 應用軟件
應用軟件是為解決特定領域問題或滿足用戶具體需求而設計的軟件。種類繁多,例如:
- 通用應用軟件:辦公軟件(如WPS, Microsoft Office)、媒體播放器、網頁瀏覽器等。
- 專用應用軟件:針對特定行業或業務定制的軟件,如銀行結算系統、企業資源規劃系統、計算機輔助設計軟件等。
1.2.4 計算機的工作過程
計算機的工作過程本質上是執行程序的過程,遵循“存儲程序”原理,即程序和數據預先存入內存,計算機自動地、逐條地從內存中取出指令并執行。這個過程可以概括為一個核心循環——指令周期,主要包括以下四個階段:
- 取指令:程序計數器指示當前指令的地址,控制器從內存中取出該指令,送入指令寄存器。
- 指令譯碼:控制器分析指令寄存器中的指令,識別出需要執行的操作(操作碼)和操作對象(地址碼)。
- 執行指令:運算器根據譯碼結果,執行具體的操作,如算術運算、邏輯運算或數據傳送。
- 結果寫回/更新計數器:將執行結果寫入指定的寄存器或內存單元,然后更新程序計數器,指向下一條要執行的指令地址,從而開始下一個指令周期。
這個循環由控制器指揮,在運算器、存儲器、輸入/輸出設備的協同下完成,體現了計算機自動、高速、精確處理信息的基本能力。
1.2.5 計算機系統的多級層次結構與軟件開發
現代計算機系統是一個復雜的整體,為了便于理解、設計和使用,常被抽象為一個多級層次結構。從底層硬件到頂層用戶應用,每一層都為其上層提供功能接口,同時隱藏下層的實現細節。一個典型的層次模型如下:
- 第0級:數字邏輯層——由門、觸發器等硬件電路組成,是計算機的物理基礎。
- 第1級:微程序/機器語言層——由微指令或直接由硬件執行的機器指令構成,是實際硬件執行的操作。
- 第2級:操作系統層——管理和抽象硬件資源,提供進程管理、內存管理、文件系統等服務。
- 第3級:匯編語言層——提供與機器指令一一對應的符號化表示,通過匯編程序轉換為機器語言。
- 第4級:高級語言層——如C, Java, Python,使用接近自然語言的語法,極大地提高了編程效率。需要通過編譯或解釋轉換為下層語言。
- 第5級:應用程序層——用戶直接使用的各種軟件,如瀏覽器、游戲、辦公軟件等。
計算機軟件開發正是建立在這個層次結構之上。軟件開發人員通常在高級語言層(第4級)或匯編語言層(第3級)進行編程。他們利用下層(尤其是操作系統層)提供的服務和接口,調用系統資源,實現具體的應用邏輯。開發出的應用程序運行于層次結構的頂層,最終通過層層翻譯和控制,轉化為底層硬件的電子信號動作,從而完成復雜的信息處理任務。
而言,清晰的軟件分類幫助我們組織和管理軟件資源;對計算機工作過程(指令周期)的理解揭示了計算機自動工作的奧秘;而多級層次結構模型則為軟硬件協同、尤其是軟件開發提供了清晰的理論框架和工程實踐路徑,使得在復雜系統上構建高效、可靠的軟件成為可能。