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