2.3 計算機的軟件系統
祼相對于計算機硬件而言,軟件是計算機無形的部分,但它的作用非常大。計算機系統是在硬件“機”的基礎上,通過一層層軟件的支持,向用戶呈現出強大的功能和友好方便的使用界面。通常將軟件分為系統軟件和應用軟件兩大類。
系統軟件是計算機設計者或廠商提供的使用和管理計算機的軟件。它包括操作系統、語言處理系統、數據庫系統、分布式軟件系統和人機交互系統等。實際上,系統軟件可以看作用戶與計算機的接口,它為應用軟件和用戶提供了控制、訪問硬件的手段。這些功能主要由操作系統完成,操作系統是軟件系統的核心。
1.操作系統
操作系統(Operating System,OS)是一組程序,它們用于統一管理計算機中的所有軟、硬件資源,合理地組織計算機的工作流程,協調計算機系統的各部件之間、系統之間、用戶與用戶之間的關系。由此可見,操作系統在計算機中占有重要的特殊地位。操作系統是底層的系統軟件,它是對硬件系統的首次擴充,所有的其他軟件(包括系統軟件和應用軟件)都建立在操作系統的基礎之上,并得到它的支持和服務。從用戶的角度看,當計算機配置了操作系統后,用戶不是直接操作計算機的硬件,而是利用操作系統所提供的命令與服務去操作計算機。
(1)操作系統的功能
通常操作系統具有以下幾個方面的功能:存儲器管理、處理器管理、設備管理、文件管理和作業管理。這也是通常所說的操作系統的五大主要任務。
①存儲器管理:主要是對主存儲器的管理。存儲器管理是為用戶分配存儲空間,保護主存中的程序和數據不被破壞,提高主存空間的利用率。
②處理器管理:操作系統對處理器的管理,包括中斷事件的處理和處理器的調度。處理器管理是為用戶合理分配處理器時間,盡可能地使處理器處于忙的狀態,提高處理器的工作效率。
③設備管理:是指對計算機系統中除了CPU和內存以外的所有輸入/輸出設備的管理。從使用角度可以把設備分成兩類:一類是獨占設備,是指一個作業在執行期間獨占使用的設備。這類設備一般采用靜態分配的辦法在作業執行前就分配出去了,直到作業結束撤離的時候,才將分配出去的設備收回,收回后才能再分配給其他需要使用該類設備的作業。另外一類是共享設備。這類設備可以由幾個作業同時使用。共享設備采用動態分配的辦法,這種方法不是在作業執行前分配,而是到作業需要啟用設備的時候才分配設備給作業。總之設備管理負責各種外圍設備,包括設備的分配、啟動以及SPOOL的實現技術。
④文件管理:是面向用戶實現按文件名存取文件,管理用戶信息的存儲、檢索、共享和保護,合理地分配和使用文件的存儲空間。
⑤作業管理:是實現作業調度和控制作業的執行。作業調度從等待處理的作業中選擇可以裝入主存儲器的作業,對已經裝入主存儲器中的作業按用戶的意圖控制其執行。
(2)操作系統的分類
操作系統的種類繁多,根據側重不同,有很多分類方法。依其功能和特性分為批處理操作系統、分時操作系統和實時操作系統;依其同時管理用戶數的多少分為單用戶操作系統和多用戶操作系統;按同時管理的作業數可分為單用戶單任務操作系統、單用戶多任務操作系統、多用戶多任務操作系統和網絡操作系統。
所謂批處理就是將作業按照它們的性質分組(或分批),然后再成組(或成批)地提交給計算機系統,由計算機自動完成后再輸出結果,從而減少作業建立和結束過程中的時間浪費。批處理系統的目的是提高系統吞吐量和資源的利用率。分時系統是使一臺計算機同時為幾個、幾十個甚至幾百個用戶服務的一種操作系統。其工作方式是一臺主機連接了若干個終端,每個終端有一個用戶在使用。用戶交互式地向系統提出命令請求,系統接受每個用戶的命令,采用時間片輪轉方式處理服務請求,并通過交互方式在終端上向用戶顯示結果,用戶根據上步結果發出下道命令。實時系統是指計算機對于外來信息能夠及時進行處理,并在控制對象允許時間范圍內做出快速反應,實時系統對響應時間的要求比分時系統更高。
分時系統是使一臺計算機同時為幾個、幾十個甚至幾百個用戶服務的一種操作系統。其工作方式是一臺主機連接了若干個終端,每個終端有一個用戶在使用。用戶交互式地向系統提出命令請求,系統接受每個用戶的命令,采用時間片輪轉方式處理服務請求,并通過交互方式在終端上向用戶顯示結果,用戶根據上步結果發出下一道命令。分時操作系統的特點是:多路性,即眾多聯機用戶可以同時使用同一臺計算機;獨占性,即各終端用戶感覺到自己獨占了計算機;交互性,用戶與計算機之間可進行“會話”;及時性,用戶的請求能在短時間內得到響應。
實時系統是指計算機對于外來信息能夠及時進行處理,并在控制對象允許時間范圍內做出快速反應,實時系統對響應時間的要求比分時系統更高。實時系統主要分為以下兩類:強實時系統,如在航空航天、軍事、核工業等一些關鍵領域中,應用時間需求應能夠得到完全滿足,否則就會造成重大地安全事故,造成重大的生命財產損失和生態的破壞;弱實時系統,如視頻點播系統、信息采集與檢索系統等,應用雖然提出了時間需求,但實時任務偶爾無法滿足這種需求對系統的運行以及環境不會造成嚴重影響。實時系統的特點:時間約束性,實時系統的任務具有一定的時間約束(截止時間);可預測性,系統能夠對實時任務的執行時間進行判斷,確定是否能夠滿足任務的時限要求;可靠性,大多數實時系統要求有較高的可靠性;與外部環境的交互作用性,實時系統通常運行在一定的環境下,外部環境是實時系統不可缺少的組成部分。
單用戶單任務操作系統是指一臺計算機同時只能有一個用戶在使用,該用戶一次只能提交一個作業,一個用戶獨自享用系統的全部硬件和軟件資源。常用的單用戶單任務操作系統有MS-DOS、PC-DOS、CP/M等,這類操作系統通常用在微型計算機系統中。
單用戶多任務操作系統也是為單個用戶服務的,但它允許用戶一次提交多項任務。例如,用戶可以在運行程序的同時開始另一文檔的編輯工作。常用的單用戶多任務操作系統有OS/2、Windows 95/98等,這類操作系統通常也用在微型計算機系統中。
多用戶多任務分時操作系統允許多個用戶共享使用同一臺計算機的資源,即在一臺計算機上連接幾臺甚至幾十臺終端機,終端機可以沒有自己的CPU與內存,只有鍵盤與顯示器,每個用戶都通過各自的終端機使用這臺計算機的資源,計算機按固定的時間片輪流為各個終端服務。由于計算機的處理速度很快,用戶感覺不到等待時間,似乎這臺計算機專為自己服務一樣。UNIX就是典型的多用戶多任務分時操作系統,這類操作系統通常用在大、中、小型計算機或工作站中。
網絡操作系統用于對多臺計算機的軟件和硬件資源進行管理和控制,提供網絡通信和網絡資源的共享功能。它要保證網絡中信息傳輸的準確性、安全性和保密性,提高系統資源的利用率和可靠性。網絡操作系統允許用戶通過系統提供的操作命令與多臺計算機軟件和硬件資源打交道。常用的網絡操作系統有NetWare、Windows Server等,這類操作系統通常用在計算機網絡系統的服務器上。
2.計算機設計語言與語言處理程序
人和計算機交流信息使用的語言稱為計算機語言或程序設計語言。計算機語言通常分為機器語言、匯編語言和高級語言三類。
(1)機器語言(Machine Language)
機器語言是一種用二進制代碼“0”和“1”形式表示的,能被計算機直接識別和執行的語言。用機器語言編寫的程序,稱為計算機機器語言程序。它是一種低級語言。
優點:計算機可直接識別;
運行速度快;
占用內存小。
缺點:不便于記憶、閱讀和書寫;
是面向機器的語言,通用性差;
需要人工分配內存,編程工作量大。
由于機器語言的缺點難以克服,給計算機的推廣造成了很大困難,因此通常不用機器語言直接編寫程序。
(2)匯編語言(Assemble Language)
匯編語言是一種用助記符表示的面向機器的程序設計語言,也是一種低級語言。匯編語言的每條指令對應一條機器語言代碼,不同類型的計算機系統一般有不同的匯編語言。
優點:運行速度快;
占用內存小;
易學易用、易查錯、易修改。
缺點:機器不能直接識別;
是面向機器的語言,通用性差;
需要人工分配內存,編程工作量大。
用匯編語言編制的程序稱為匯編語言程序,機器不能直接識別和執行,必須由“匯編程序”(或匯編系統)翻譯成機器語言程序才能運行。這種“匯編程序”就是匯編語言的翻譯程序。其執行過程如圖2-5所示。

圖2-5 匯編語言源程序的匯編運行過程
匯編語言適用于編寫直接控制機器操作的低層程序,它與機器密切相關,不容易使用。
(3)高級語言(High Level Language)
高級語言是一種比較接近自然語言和數學表達式的計算機程序設計語言,是面向用戶的程序設計語言。
優點:脫離具體的機器,可移植性強;
接近自然語言,易學易用、易查錯、易修改;
無須人工分配內存。
缺點:機器不能直接識別和運行;
運行速度慢,占用內容空間大。
目前,高級語言包括第三代程序設計語言和第四代超高級程序設計語言(簡稱4GL)。第三代程序設計語言是面向過程的,它利用類英語的語句和命令,盡量不再指導計算機如何去完成一項操作,如BASIC、COBOL和FORTRAN等。第四代程序設計語言是面向對象的,比第三代程序設計語言更像英語但過程更弱,與自然語言非常接近,它兼有過程性和非過程性的兩重特性,如數據庫查詢語言、程序生成器等。
用高級語言編寫的程序稱為“高級語言源程序”,計算機不能識別和執行,要把用高級語言編寫的源程序翻譯成機器指令,通常有編譯和解釋兩種方式。
編譯方式是將源程序整個編譯成目標程序,然后通過鏈接程序將目標程序鏈接成可執行程序,如圖2-6所示。

圖2-6 高級語言源程序的編譯運行過程
解釋方式是將源程序逐句翻譯,翻譯一句執行一句,邊翻譯邊執行,不產生目標程序,如圖2-7所示。由計算機執行解釋程序自動完成,如BASIC語言。如圖2-7所示。

圖2-7 高級語言源程序的解釋運行過程
3.數據庫系統
數據庫系統(DataBase System,DBS)是一個實際可運行的存儲、維護和應用系統提供數據的軟件系統,是存儲介質、處理對象和管理系統的集合體。
數據庫系統是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。計算機的高速處理能力和大容量存儲器提供了實現數據管理自動化的條件。
數據庫系統是由計算機硬件、系統軟件、數據庫管理系統、用戶以及在它支持下建立起來的數據庫、應用程序組成的綜合系統。作為數據庫系統的核心,數據庫管理系統的強弱決定了數據庫系統的優劣。
數據庫系統的主要功能包括數據庫的定義和操縱、共享數據的并發控制、數據的安全和保密等。按數據定義模塊劃分,數據庫系統可分為關系數據庫、層次數據庫和網狀數據庫。按控制方式劃分,可分為集中式數據庫系統、分布式數據庫系統和并行數據庫系統。數據庫系統研究的主要內容包括:數據庫設計、數據模式、數據定義和操作語言、關系數據庫理論、數據完整性和相容性、數據庫恢復與容錯、死鎖控制和防止、數據安全性等。
數據庫系統的出現是計算機應用的一個里程牌,它使得計算機應用從以科學計算為主轉向以數據處理為主,并從而使計算機得以在各行各業乃至家庭普遍使用。
4.服務程序
服務程序主要是對用戶的程序和數據提供通用的服務,如編輯程序、連接程序、分類合并程序、PCTOOLS等。
- Bootstrap Site Blueprints Volume II
- Apache ZooKeeper Essentials
- BeagleBone Media Center
- Clojure for Domain:specific Languages
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優化計算
- Spring Cloud、Nginx高并發核心編程
- Web全棧工程師的自我修養
- Linux Device Drivers Development
- Learning FuelPHP for Effective PHP Development
- Troubleshooting Citrix XenApp?
- STM8實戰
- INSTANT LESS CSS Preprocessor How-to
- Getting Started with hapi.js
- AI輔助編程Python實戰:基于GitHub Copilot和ChatGPT
- MonoTouch應用開發實踐指南:使用C#和.NET開發iOS應用