簡介 計算機系統 按人的要求接收和存儲信息,自動進行數據處理和計算,並輸出結果信息的機器系統。計算機是腦力的延伸和擴充,是近代科學的重大成就之一。
計算機系統由硬體(子)系統和軟體(子)系統組成。前者是藉助電、磁、光、機械等原理構成的各種物理部件的有機組合,是系統賴以工作的
實體 。後者是各種程式和檔案,用於指揮
全系統 按指定的要求進行工作。
自1946年第一台電子計算機問世以來,計算機技術在元件器件、硬體
系統結構 、軟體系統、套用等方面,均有驚人進步,
現代計算機 系統小到
微型計算機 和個人計算機,大到
巨型計算機 及其網路,形態、特性多種多樣,已廣泛用於科學計算、事務處理和
過程控制 ,日益深入社會各個領域,對社會的進步產生深刻影響。
電子計算機 分數字和模擬兩類。通常所說的計算機均指
數字計算機 ,其運算處理的數據,是用離散數字量表示的。而
模擬計算機 運算處理的數據是用連續模擬量表示的。模擬機和數字機相比較,其速度快、與物理設備
接口 簡單,但精度低、使用困難、穩定性和可靠性差、價格昂貴。故模擬機已趨淘汰,僅在要求
回響速度 快,但精度低的場合尚有套用。把二者優點巧妙結合而構成的混合型計算機,尚有一定的生命力。
特點 計算機系統的特點是能進行精確、快速的計算和判斷,而且通用性好,使用容易,還能聯成網路。
①計算:一切複雜的計算,幾乎都可用計算機通過
算術運算 和邏輯運算來實現。
②判斷:計算機有判別不同情況、選擇作不同處理的能力,故可用於管理、控制、對抗、
決策 、推理等領域。
③存儲:計算機能存儲巨量信息。
⑤快速:計算機一次操作所需時間已小到以納秒計。
⑥通用:計算機是可程式的,不同程式可實現不同的套用。
⑦易用:豐富的高性能軟體及智慧型化的人-機
接口 ,大大方便了使用。⑧聯網:多個計算機系統能超越地理界限,藉助
通信網路 ,共享遠程信息與軟體資源。
組成 硬體 軟體 軟體分為系統軟體、支撐軟體和套用軟體。
系統軟體 由作業系統、實用程式、
編譯程式 等組成。作業系統實施對各種軟硬體資源的管理控制。實用程式是為方便用戶所設,如文本編輯等。編譯程式的功能是把用戶用彙編語言或某種高級語言所編寫的程式,翻譯成機器可執行的機器語言程式。
支撐軟體 有
接口 軟體、
工具軟體 、
環境資料庫 等,它能支持用機的環境,提供
軟體研製工具 。
支撐 軟體也可認為是系統軟體的一部分。套用軟體是用戶按其需要自行編寫的專用程式,它藉助系統軟體和支援軟體來運行,是軟體系統的最外層。
分類 計算機系統 ① 專用機與通用機:早期計算機均針對特定用途而設計,具有專用性質。60年代起,開始製造兼顧科學計算、事務處理和
過程控制 三方面套用的
通用計算機 。特別是
系列機 的出現,標準文本的各種高級程式語言的採用,作業系統的成熟,使一種機型系列選擇不同軟體、
硬體配置 ,就能滿足各行業大小用戶的不同需要,進一步強化了通用性。但特殊用途的專用機仍在發展,例如連續動力學系統的全數字仿真機,超微型的空間
專用計算機 等。
② 巨型機、
大型機 、中型機、
小型機 、微型機:計算機是以大、中型機為主線發展的。20世紀60年代末出現
小型計算機 ,70年代初出現
微型計算機 ,因其輕巧、價廉、功能較強、可靠性高,而得到廣泛套用。70年代開始出現每秒可運算五千萬次以上的
巨型計算機 ,專門用於解決科技、國防、經濟發展中的特大課題。巨、大、中、小、微型機作為計算機系統的梯隊組成部分,各有其用途,都在迅速發展。
③ 流水線
處理機 與並行處理機:在元件、器件速度有限的條件下,從
系統結構 與組織著手來實現高速處理能力,成功地研製出這兩種處理機。它們均面向
ɑ i
θb i=
c i(
i =1,2,3,…,
n ;
θ 為算符)這樣一組數據(也叫向量)運算。流水線處理機是單指令
數據流 (SISD)的,它們用重疊原理,用流水線方式加工向量各元素,具有高加工速率。
並行處理 機是
單指令流多數據流 (SIMD)的,它利用並行原理,重複設定多個處理部件,同時並行處理向量各元素來獲得高速度(見
並行處理計算機系統 )。流水和
並行技術 還可結合,如重複設定多個流水部件,並行工作,以獲得更高性能。研究
並行算法 是發揮這類處理機效率的關鍵。在高級程式語言中相應地擴充向量語句,可有效地組織向量運算;或設有向量識別器,自動識別源程式中的向量成分。
一台普通
主機 (標量機)配一台
數組 處理器(僅作高速向量運算的流水線專用機),構成主副機系統,可大大提高系統的處理能力,且性能價格比高,套用相當廣泛。
④
多處理機 與多機系統、分布處理系統和計算機網:多處理機與多機系統是進一步發展
並行技術 的必由之路,是巨型、大型機主要發展方向。它們是
多指令流多數據流 (MIMD)系統,各機處理各自的指令流(進程),相互通信,聯合解決大型問題。它們比並行處理機有更高的並行級別,潛力大,靈活性好。用大量廉價微型機,通過
互連網路 構成系統,以獲得高性能,是研究多處理機與多機系統的一個方向。多處理機與多機系統要求在更高級別(進程)上研究
並行算法 ,高級程式語言提供並發、同步進程的手段,其作業系統也大為複雜,必須解決多機間
多進程 的通信、同步、控制等問題。
分布系統是多機系統的發展,它是由物理上分布的多個獨立而又相互作用的單機,協同解決用戶問題的系統,其系統軟體更為複雜(見
分布計算機系統 )。
現代
大型機 幾乎都是功能分布的多機系統,除含有高速
中央處理器 外,有管理輸入輸出的輸入輸出處理機(或前端用戶機)、管理遠程終端及
網路通信 的
通信控制處理機 、全系統維護診斷的維護診斷機和從事資料庫管理的資料庫處理機等。這是分布系統的一種低級形態。
多個地理上分布的計算機系統,通過
通信線路 和
網路協定 ,相互聯絡起來,構成
計算機網路 。它按地理上分布的遠近,分為局部(本地)計算機網路和遠程計算機網路。網路上各計算機可相互共享信息資源和軟硬體資源。訂票系統、情報資料檢索系統都是計算機網套用的實例。
⑤
諾依曼 機與非諾依曼機:存儲程式和指令驅動的諾依曼機迄今仍占統治地位。它
順序執行 指令,限制了所解問題本身含有的
並行性 ,影響處理速度的進一步提高。突破這一原理的非諾依曼機,就是從
體系結構 上來發展並行性,提高系統吞吐量,這方面的研究工作正在進行中。由數據流來驅動的
數據流計算機 以及按
歸約 式控制驅動和按需求驅動的高度並行計算機,都是有發展前途的非諾依曼計算機系統。
展望 計算機系統約每3~5年更新一次,性能價格比成十倍地提高,體積大幅度減小。
超大規模積體電路 技術將繼續快速發展,並對各類計算機系統均產生巨大而又深刻的影響。32位微型機已出現,64位微型機也已經問世,單片上做1000萬個元件已為時不遠。比
半導體積體電路 快10~100倍的器件,如砷化鎵、高電子遷移率器件、
約瑟夫遜結 、光元件等的研究將會有重要成果。提高組裝密度和縮短互連線的微組裝技術是新一代計算機的關鍵技術之一。光纖通信將大量套用。各種高速智慧型化外部設備不斷湧現,光碟的問世將使輔助
海量存儲器 面目一新。
多處理機系統 、多機系統、分布處理系統將是引人注目的
系統結構 。軟體硬化(稱
固件 )是發展趨勢。新型非諾伊曼機、推理計算機、知識庫計算機等已開始實際使用。軟體開發將擺脫落後低效狀態。
軟體工程 正在深入發展。軟體生產
正向工程 化、形式化、自動化、模組化、
集成化 方向發展。新的高級語言如邏輯型語言、函式型語言和人工智慧的研究將使人-機
接口 簡單自然(能直接看、聽、說、畫)。資料庫技術將大為發展。
計算機網路 將廣泛普及。以巨大處理能力(例如每秒 100~1000億次操作)、巨大知識信息庫、高度智慧型化為特徵的下一代計算機系統正在大力研製。計算機套用將日益廣泛。
計算機輔助設計 、計算機控制的生產線、智慧型機器人將大大提高社會勞動生產力。辦公、醫療、通信、教育及家庭生活,都將計算機化。計算機對人們生活和社會組織的影響將日益廣泛深刻。
工作流程 用戶使用計算機系統算題的一般流程:
①通過系統操作員建立帳號,取得使用權。帳號既用於識別並保護用戶的檔案(程式和數據),也用於系統自動統計用戶使用資源的情況(記帳,付款)。
②根據要解決的問題,研究算法,選用合適的語言,編寫
源程式 ,同時提供需處理的數據和有關控制信息。
③把②的結果在脫機的專用設備上放入軟磁碟,建立用戶檔案(也可在在線上終端上進行,直接在輔助存儲器中建立檔案,此時第四步省去)。
④藉助
軟碟 機把軟碟上用戶檔案輸入計算機,經加工處理,作為一個作業,登記並存入輔助存儲器。
⑤是要求編譯。作業系統把該作業調入主存儲器,並調用所選語言的編譯程式,進行編譯和連線(含所調用的
子程式 ),產生機器可執行的
目標程式 ,存入輔助存儲器。
⑥要求運算處理。作業系統把目標程式調入主存儲器,由中央處理器運算處理,結果再存入輔助
存儲器 。
⑦運算結果由作業系統按用戶要求的格式送外部設備輸出。
計算機內部工作(④~⑦)是在作業系統控制下的一個複雜過程。通常,一台計算機中有多個用戶作業同時輸入,它們由作業系統統一調度,交錯運行。但這種調度對用戶是透明的,一般用戶無需了解其內部細節。
用戶可用一台終端,互動式的控制③~⑦的進行(分時方式);也可委託操作員完成③~⑦,其中④~⑦是計算機自動進行的(
批處理 方式)。批處理方式的自動化程度高,但用戶不直觀,無中間干預。分時方式用戶直觀控制,可隨時干預糾錯,但自動化程度低。
現代計算機 系統大多提供兩種方式,由用戶選用。
作業系統 簡介 作業系統是方便用戶、管理和控制計算機軟硬體資源的系統軟體(或程式集合)。 從用戶角度看,作業系統可以看成是對
計算機硬體 的擴充;從人機互動方式來看,作業系統是用戶與機器的
接口 ;從計算機的
系統結構 看,作業系統是一種層次、模組結構的程式集合,屬於有序分層法,是無序模組的有序層次調用。作業系統在設計方面體現了計算機技術和管理技術的結合。作業系統在計算機中的地位:
作業系統是軟體,而且是系統軟體。它在計算機系統中的作用,大致可以從兩方面體會:
對內,作業系統管理計算機系統的各種資源,擴充硬體的功能;
對外,作業系統提供良好的人機界面,方便用戶使用計算機。它在整個計算機系統中具有承上啟下的地位。
作業系統是一個大型的軟體系統,其功能複雜,體系龐大。從不同的角度看的結果也不同,正是“橫看成嶺側成峰”,下面我們通過最典型的兩個角度來分析一下。
1、從程式設計師的角度看
正如前面所說的,如果沒有作業系統,程式設計師在開發軟體的時候就必須陷入複雜的硬體實現細節。程式設計師並不想涉足這個可怕的領域,而且大量的精力花費在這個重複的、沒有創造性的工作上也使得程式設計師無法集中精力放在更具有創造性的程式設計工作中去。程式設計師需要的是一種簡單的,高度抽象的可以與之打交道的設備。
將硬體細節與程式設計師隔離開來,這當然就是作業系統。
從這個角度看,作業系統的作用是為用戶提供一台等價的擴展機器,也稱
虛擬機 ,它比底層硬體更容易編程。
2、從使用者的角度看
從使用者的角度來看,作業系統則用來管理一個複雜系統的各個部分。
作業系統負責在相互競爭的程式之間有序地控制對CPU、記憶體及其它I/O
接口 設備的分配。
比如說,假設在一台計算機上運行的三個程式試圖同時在同一台
印表機 上輸出計算結果。那么頭幾行可能是程式1的輸出,下幾行是程式2的輸出,然後又是程式3的輸出等等。最終結果將是一團糟。這時,作業系統採用將列印輸出送到磁碟上的緩衝區的方法就可以避免這種混亂。在一個
程式結束 後,作業系統可以將暫存在磁碟上的檔案送到印表機輸出。
從這種角度來看,作業系統則是系統的資源管理者。
發展歷史 下面我們結合計算機的發展歷史來回顧一下作業系統的發展歷程。
40年代中期,
美國哈佛大學 、普林斯頓高等研究院、
賓夕法尼亞大學 的一些人使用數萬個真空管,構建了世界上第一台電子計算機。開啟計算機發展的歷史。這個時期的機器需要一個小組專門設計、製造、編程、操作、維護每台機器。程式設計使用
機器語言 ,通過插板上的硬連線來控制其基本功能。
這個時候處於計算機發展的最初階段,連
程式設計語言 都還沒有出現,作業系統更是聞所未聞。
2、第二代計算機(1955-1965):電晶體和
批處理系統 這個時期計算機越來越可靠,已從研究院中走出來,走進了商業套用。但這個時期的計算機主要完成各種科學計算,需要專門的操作人員維護,並且需要針對每次的計算任務進行編程。
第二代計算機主要用於科學與
工程計算 。使用FORTRAN與彙編語言編寫程式。在後期出現了作業系統的雛形:FMS(FORTRAN
監控系統 )和IBMSYS(IBM為7094機配備的作業系統)。
60年代初,計算機廠商根據不同的套用分成了兩個
計算機系列 ,一個針對科學計算,一個針對商業套用。
隨著計算機套用的深入,對統一兩種套用的計算機需求出現了。這時IBM公司試圖通過引入System/360來解決這個問題。
與這個計畫配套,IBM公司組織了OS/360作業系統的開發,然後複雜的需求,以及當時軟體工程水平低下使得OS/360的開發工作陷入了歷史以來最可怕的“軟體開發泥潭”,誕生了最著名的失敗論著----《神秘的人月》。雖然這個開發計畫失敗了,但是這個願望卻成為了計算機廠商的目標。
此時,MIT、Bell Lab(
貝爾實驗室 )和通用電氣公司決定開發一種“公用計算機服務系統”----MULTICS,希望其能同時支持數百名分時用戶的一種機器。結果這個計畫的研製難度超出了所有人的預料,最後這個系統也以失敗結束。不過,MULTICS的思想卻為後來的作業系統很多提示。
20世紀60年代未,一位貝爾實驗室曾參加過MULTICS研製工作的計算機科學家Ken Thompson,在一台無人使用的PDP-7機器上開發出了一套簡化的、單用戶版的MULTICS。後來導致了
UNIX作業系統 的誕生。
UNIX作業系統主導了
小型機 、工作站以及其他市場。也是至今最有影響力的作業系統之一,而Linux也是UNIX系統的一種衍生,下一講我們將專門介紹一下UNIX的發展歷史。
隨著計算機技術的不斷更新與發展,計算機神奇般地闖入了人們的生活,以低廉的價格就可以獲得強大計算能力的計算機。
價格不再是阻攔計算機普及的門檻時,降低計算機的易用性就顯得十分重要!由於UNIX系統的本身特點,使得其不太適合於在運行在個人計算機上,這時就需要一種新的作業系統。
在這一歷史關鍵時候,IBM公司由於低估了PC機的市場,並未使用最大的力量角逐這一市場,這時Intel公司趁機進入,成為了當今
微處理器 的老大。同時善於抓住時機的微軟公司的總裁
比爾·蓋茨 適時地進入了這一領域,用購買來的CP/M搖身一變成為
MS-DOS ,並憑藉其成為個人計算機作業系統領域的霸主。
雖然是
蘋果公司 在GUI方面先拔頭籌,但由於蘋果公司的不兼容、不開放的市場策略,未能擴大戰果,這時微軟又適時地進入了GUI方面,憑藉WINDOWS系統再次稱雄。
構成 一般來說,作業系統由以下幾個部分組成:
進程調度子系統決定哪個進程使用
CPU ,對進程進行調度、管理。
負責各個進程之間的通信。
4)設備管理子系統:
5)檔案子系統:
負責管理磁碟上的各種檔案、目錄。
6)網路子系統:
負責處理各種與網路有關的東西。
結構設計 作業系統有多種實現方法與設計思路,下面僅選取最有代表性的三種做一簡單的敘述。
一、整體式系統
這是最常用的一種組織方式,它常被譽為“大雜燴”,也可說,整體式系統結構就是“無結構”。
這種結構方式下,開發人員為了構造最終的目標作業系統程式,首先將一些獨立的過程,或包含過程的檔案進行編譯,然後用連結程式將它們連結成為一個單獨的目標程式。
Linux作業系統就是採用整體式的
系統結構 設計。但其在此基礎上增加了一些形如動態模組載入等方法來提高整體的靈活性,彌補整體式系統結構設計的不足。
計算機系統 二、層次式系統
層次式系統結構設計:
這種方式則是對系統進行嚴格的分層,使得整個系統層次分明,等級森嚴!這種系統學術味道較濃!實際完全按照這種結構進行設計的作業系統不多,也沒有廣泛的套用。
可以這么說,現在的作業系統設計是在整體式系統結構與層次式系統結構設計中尋求平衡。
三、微核心系統
微核心 系統結構設計是近幾年來出現的一種新的設計理念,最有代表性的作業系統有Mach和QNX。
微核心系統,顧名思義就是系統核心很小。比如說QNX的微核心只負責:進程間的通信、低層的網路通信、進程調度、第一級中斷處理。
橫向比較 計算機歷史中出現了許許多多的作業系統,然後大浪淘沙,無情地淘汰了許多,只留下一些經歷過市場考驗的:
一、桌面作業系統
1)MSDOS:Intel
x86 系列的PC機上的最早的作業系統,微軟公司產品,曾經統治了這個領域,現在已逐漸被自家兄弟WINDOWS系列所代替,現在除了一些低檔機外已不多見。
2)Windows:微軟公司產品,從
Windows 1.0 發展而來,現在是基於Intel x86系列的PC機上的主要作業系統,也是現然個人電腦中裝機量最大的作業系統。面向桌面、面向個人用戶。
3)Mac OS:
蘋果公司 所有,界面友好,性能優異,但由於只能運行在蘋果公司自己的電腦上而發展有限。但由於
蘋果電腦 獨特的市場定位,現在仍存活良好。
嚴格來講,Linux這個詞本身只表示
Linux核心 ,但在實際上人們已經習慣了用Linux來形容整個基於Linux核心,並且使用GNU 工程各種工具和資料庫的作業系統(也被稱為GNU/Linux)。基於這些組件的Linux軟體被稱為Linux發行版。一般來講,一個Linux發行套件包含大量的軟體,比如
軟體開發工具 ,資料庫,Web
伺服器 (例如Apache),X Window,
桌面環境 (比如GNOME和KDE),辦公套件等等。
二、伺服器作業系統
1)UNIX系列:UNIX可以說是源遠流長,是一個真正穩健、實用、強大的作業系統,但是由於眾多廠商在其基礎上開發了有自己特色的UNIX版本,所以影響了整體。在國外,UNIX系統可謂獨樹一幟,廣泛套用於科研、學校、金融等關鍵領域。但由於中國的計算機發展較為落後,UNIX系統的套用水平與國外相比有一定的滯後。
2)Windows NT系列:微軟公司產品,其利用Windows的友好的用戶界面的優勢打進
伺服器作業系統 市場。但其在整體性能、效率、穩定性上都與UNIX有一定差距,所以現在主要套用於中小企業市場。
3)Novell Netware系列:Novell公司產品,其以極適合於中小網路而著稱,在中國的證券行業市場占有率極高,而且其產品特點鮮明,仍然是
伺服器系統 軟體中的長青樹。
4)LINUX系列: Linux是一種自由和
開放源碼 的類Unix作業系統。目前存在著許多不同的Linux,但它們都使用了Linux核心。Linux可安裝在各種計算機硬體設備中,從手機、平板電腦、
路由器 和視頻遊戲控制台,到台式計算機、大型機和
超級計算機 。Linux是一個領先的作業系統,世界上運算最快的10台超級計算機運行的都是Linux作業系統。嚴格來講,Linux這個詞本身只表示Linux核心,但實際上人們已經習慣了用Linux來形容整個基於Linux核心,並且使用GNU 工程各種工具和資料庫的作業系統。Linux得名於計算機業餘愛好者Linus Torvalds。
弗林分類法 弗林(Flynn)分類法是按
指令流 、數據流及其
多倍性 分類的。共分四類:
SISD――指令部件只對一條
指令 處理,只控制一個操作部件操作。如一般的串列單處理機。
SIMD――由單一指令部件同時控制多個重複設定的處理單元,執行同一指令下不同
MISD――多個指令部件對同一數據的各個處理階段進行操作。這種機器很少見。
MIMD――多個獨立或相對獨立的處理機分別執行各自的程式、作業或進程。例如多
處理機。