彭民德:《電子計算60年》 (14) 以IBM 360為代表的多使用者計算機系統
上世紀八十年代初,乘改革開放東風,國外流行的,以IBM 360為代表的,第三代機及其資料被引進來。作業系統軟體管理層,在內部開創了一個萬馬奔騰的微觀世界,使得一臺計算機虛擬化成了幾十臺,變一人獨佔為多使用者併發共享,使計算機變得聰明、高效起來。人機互動式介面讓計算機親切好用了。國人儘可能把視線轉向第三代機,深入理解其內部工作的奧妙,對計算機的認識和用機水平都有了一個飛躍。
按照通常對計算機發展階段的劃分,以中、小規模積體電路作為運算和邏輯元件的計算機,被劃分為第三代計算機。最早採用積體電路的計算機是IBM 360,這款機器被認為是三代機的典型代表。1972年的IBM 370就被劃分為三代半機。從軟體特點看,三代機採用批處理或者分時的多道程式設計技術,多使用者共享主機,成批自動地或者以互動命令方式用機,雖然只有一個CPU,但是可以巨集觀上同時執行許多個人的程式。
上世紀六七十年代,受國際政治背景的影響,我們不得不長時間封閉地處於第二代計算機年代。雖然自己也在搞DJS 100系列機,但是整個民族計算機工業和技術都比較脆弱。據百度文庫的《計算機發展大事記》資料,“到1982年底,我國計算機工業總產值僅佔國民經濟總產值的0.1%,佔電子工業總產值的2.6%”。(引自:http://wenku.baidu.com/link?url=R-UWTql2yMwMSvUtdWyq6JaXiQNjin3dOlbcyq97VdCh3cJklFGhUzl7tz4nOLlbdYkIWoQIfTWelqJs4Wl4pexo9z5El1KNILBV4XuJi4a)。經過一段時間封閉後,我們的計算機水平跟西方的差距進一步拉大了。
70年代末改革開放後,西方的計算機被陸續引進來,用機環境陸續轉向新機型。我國的教育也有了很大調整,不學俄文改回學英文了,計算機和計算機教材也改用美歐的了。這種轉向對於我國計算機用機水平和計算機教育有一個大的飛躍。這個時候,在世界上第三代計算機出現十多年後,我們也終於有機會接觸到它。引進新機器,新技術,雖然不可能是人家最先進的東西,也讓我們計算機界的人眼前一亮。計算機的功能,用機的方便性,比一、二代機已經大大推進了。
IBM公司當時是世界上計算機界毫無爭議的老大。1967年,IBM 360的作業系統OS/360開發完成,它是世界上第一個通用、最典型的作業系統。80年代初我國引進這款機器,邀請美國的專家來講學。1981年我調到高校任教,有機會接觸這款機器,並用它作為我所在學校的計算機教材。我國恢復高考後第一批計算機專業學生,就採用基於IBM 360/370例項的教材。
從第二代計算機到IBM 370,那真是“鳥槍換炮”了,早期用機水平已經不能與之同日而語。我們第二代國產機,運算速度還在每秒10萬次以內。IBM則從360機的50萬次,到1972年的200萬次。IBM 370/168更達到了每秒250萬次(參見王昊鵬:《計算機發展簡史》藍天出版社, 2013.4)。儲存容量我們原先僅16K單元,它可達16M位元組,容量大大提高了。而隨著容量與速度提高的軟體環境,更達到了一種新境界。
IBM在這款機器上首次引進的“位元組”,成為以後的計算機,直至今天的多媒體計算機的基本資訊單位。記憶體定址原來以單元為單位,比如以32位的單元為單位,現在可以精準到定址8位(bit)的一個位元組(byte)。這款機器資料型別增多,表示數的範圍和精度提高了,有16位的短定點數、32位的長定點數;有32位的短浮點數、64位的長浮點數;還有壓縮和不壓縮的十進位制數;有了邏輯數和字串。這使得計數的範圍和精準度提高了。指令大為豐富,有多種對記憶體的定址方式。提供16個32位通用暫存器和4個64位專用暫存器。為CPU設立了特權態和使用者態兩種工作狀態,使作業系統在特權態工作,不受使用者程式干擾。提供只能在特權狀態下專供作業系統用的一組特權指令。在指令中可以用2進位制、16進位制或2-10進位制等不同形式表示數。提供2進位制的機器語言、助記符機器語言,有組合語言和高階程式語言。外設增多,功能增強。相應地提供了CPU中斷機制,可以設定或遮蔽某些中斷,使外設能夠與CPU並行而受控地工作。有卡片輸入機、磁碟、磁帶、印表機等多種外設。為CPU配備了“通道”,讓通道專門負責管理外設,處理所有輸入/輸出事宜,並隨時將情況向CPU報告,讓CPU集中精力做計算。此時的計算機有如此大的容量,如此快的速度,如此眾多外設,硬體上已經是一個龐大的家族了。
計算機硬體的主機終端體系結構和配備了以作業系統為代表的軟體以後,用機者不再直接面對裸機,眼前的機器是包括軟體在內的一整個計算機系統,工作方式有了革命性變化。過去的計算機只能一個人用,叫資源獨佔;每次執行一個程式,序列工作方式。在以往計算機速度較慢時,人工操作所用的時間還可以容忍。現在計算機速度快了,資源多了,人工操作時間便成了提高資源利用率的瓶頸。原先大約3分鐘裝卸紙帶的人工操作時間,在整個用機時間中,所佔比例大幅提高而難以容忍。例如,原先一個程式,在CPU上執行一個小時,3分鐘人工操作時間佔執行時間1/20,這不算多。現在因為速度提高,CPU時間只需1分鐘,那麼3分鐘人工操作時間將是執行時間的3倍,比重就太大了。IBM 370採取成批處理架構,在作業系統支援下,由操作員把多人的作業成批地集中輸入到輔存上。作業系統再依據某種策略,適時地從輔存自動將作業調入記憶體。記憶體共存多個程式,巨集觀上同時執行。這樣大大縮短了I/O的時間和作業的轉接時間。
為了照顧人們以往單機獨佔可以隨意干預自己的程式的習慣,增加用機的靈活性,三代機上又有了帶鍵盤和顯示器的終端,一臺主機同時與多臺終端相連,每個人都在一臺終端前面與機器互動地工作,直接把各個使用者的程式輸入到記憶體中被作業系統劃定的區域。在軟體控制下,讓多個人的程式可以分時地同時工作,共享整個計算機的軟體和硬體資源。第三代計算機無論採用批處理方式,還是採用多終端分時方式,資源利用率都大大提高了,計算任務的週轉時間縮短了。
軟體方面,IBM有兩個成功的舉措,令人耳目一新。一是實行系列機概念,將他自己的機器執行向上相容的政策。當時大多數廠商,包括CDC、Honeywell、RCA等,以及IBM自己,都有兩條完全不相容的生產線。一條生產基於字的大型科學計算用機,諸如IBM 7094,這種機器不能做事務處理。另一條生產基於字元的商用計算機,諸如IBM 1401,不能用於科學計算。兩種機器都只能做一方面的事,不能兼而用之。廠商開發和維護兩種不同產品,要兩條生產線,成本太昂貴。而不同機器沒有相容性,使用者就要買兩種機器,無法保證自己的投資利益。IBM公司自其360型號起,就保證了機器相容性,一臺機器既能做科學計算又能做事務處理。硬體升級的同時,保證原來的軟體可以繼續使用。這個理念存續到今天,一臺微機集科學計算和事務處理功能於一身。出了問題也不用扔掉重新買一臺,硬碟壞了只買一個新的硬碟就好了,CPU可以換,主機板同樣可以換,原來的其它部分照樣可以用。
軟體方面的又一舉措是為計算機寫了OS/360作業系統,使得計算機變得聰明、高效而且容易使用。從這款計算機開始,IBM公司率先引進了軟體的概念。在我國還處在第二代計算機年代,雖然後來為DJS 21配備一個編譯程式,隨後便可以支援ALGOL 60源程式編譯後執行,但當時只是把編譯程式叫做“程式”而已。此時被稱為“軟體”者,除了程式還有相關的使用說明文件、版本說明、修改補丁等。特別是軟體可以獨立於硬體存在和發售,這也是IBM對電腦業的一大貢獻。在作業系統管理下,計算機支援多工,允許多個使用者的程式巨集觀上同時工作。每個人在終端面前,用鍵盤命令跟計算機互動,通過顯示器看到程式的執行情況,還可以經由鍵盤干預程式的執行。因為每個人的程式都巨集觀上在執行,就好比自己獨佔整個機器一樣,跟二代機相比,那實在是一種人力的解放和效率的提高。
支援使用者程式使用虛擬記憶體,即使程式尺寸超過實體記憶體容量,系統也可以自動地幫助程式執行。這些一直保留到當今計算機中仍然採用的技術,始於第三代計算機。
第三代計算機上,在作業系統的支撐下還有一批其它軟體。包括:
文件和源程式的編輯程式。以往我們的機器沒有文件概念,只會執行程式用來解題。現在有了文字和檔案,藉助編輯程式,可以聯機書寫、修改文件和源程式。這比以往只能在紙上寫程式,再穿孔上機方便多了。
除錯程式。藉助它,可以對程式進行除錯,比如控制程式單步執行,可以設定斷點自動執行某段程式,分析一些變數中間值變化。這有利於發現和改正程式中可能有的錯誤,縮短程式設計除錯周期。
編譯程式。此時的機器已經能夠支援多種高階語言,不單是ALGOL、 FORTRAN,還有PL/1、COBOL等,廠家可以提供多種編譯程式讓使用者單位選購。
連線、裝配程式。此時的程式設計環境已經大為改善,提供了許多庫函式,支援程式設計人員和編譯程式對其應用程式進行動態連線和裝配。
資料庫及其管理系統。在作業系統檔案系統支援下,提供資料庫並支援使用者建立自己的資料庫。系統提供使用者對其資料庫中資料記錄的新增、排序、刪除、查詢等常用的功能。
大量接觸西方的新機器、新書刊,對計算機的認識很快達到一個新的高度。倒是覺得以往英語基礎不夠,學習難有更高效率。好在《計算機工程與應用》等雜誌辦得活躍。1980年,《計算機世界》報創刊,有了一份面向計算機領域各階層人士,特別是計算機應用愛好者的報紙,對於學習交流計算機技術,掌握行業發展動向很有幫助。1984年創刊的《軟體報》也是一份有實用特色,受歡迎的計算機報刊。
(與本文相關的更多內容 可參看 彭民德《電子計算60年》第4章 三代計算併發共享 電子工業出版社)
相關文章
- 電子計算60年 (彭民德著)
- 彭民德:《電子計算60年》(15) 作業系統造就計算機活的靈魂作業系統計算機
- 彭民德:《電子計算60年》 (37)跨入雲端計算時代
- 彭民德:《電子計算60年》 (31)計算機網路與第四代計算機計算機網路
- 彭民德:《電子計算60年》 (27) 多種媒體形式擴充套件電子計算內涵套件
- 彭民德:《電子計算60年》(34) 863城市供水排程計算
- 彭民德:《電子計算60年》(6)我國首臺電子數字計算機104機計算機
- 彭民德:《電子計算60年》(4) 從學習蘇聯電子管計算機開始計算機
- 彭民德:《電子計算60年》 (33)網路計算極大地提升了計算能力
- 彭民德(42) 電子計算大眾化,人人都有計算祕書如影隨形
- 彭民德:《電子計算60年》 (22) IBM PC如潮水般湧來IBM
- 彭民德:《電子計算60年》 (16) UNIX強勢走來
- 彭民德:《電子計算60年》 (25)可愛又可恨的BASICA
- 彭民德:《電子計算60年》(5)用手搖計算機做三峽大壩下不穩定流計算計算機
- 彭民德:《電子計算60年》(9)空空導彈彈道和脫靶量計算
- 彭民德:《電子計算60年》 (3)學習計算數學跟未來結緣
- 彭民德:《電子計算60年》 (13) 程式語言曾被人無端稱作計算機語言計算機
- 彭民德:《電子計算60年》(8)DJS 21機的資料、指令和程式JS
- 彭民德(43)智慧計算成果斐然
- 彭民德:《電子計算60年》(32) 網路數字資訊的特點
- 彭民德:《電子計算60年》(7)DJS 21機的結構和用機環境JS
- 彭民德:《電子計算60年》 (26) Windows 主導圖形化PCWindows
- 彭民德:《電子計算60年》(12)ALGOL 60與程式自動化Go
- 彭民德:《電子計算60年》(18)UNIX原始碼的一些運用原始碼
- 彭民德:《電子計算60年》 (2)數學的嚴密推理和美的薰陶
- 彭民德:《電子計算60年》(17)分析UNIX原始碼揭去作業系統神祕感原始碼作業系統
- 彭民德:《電子計算60年》(29)電腦漢化、文件編輯與鐳射照排
- 彭民德:《電子計算60年》(28 )輸入裝置的發展與運用
- 彭民德:《電子計算60年》(35)網際網路時代的製造型企業
- 彭民德:《電子計算60年》(21) 全國第一屆C語言交流會C語言
- 彭民德:《電子計算60年》 (20) UNIX一本經典著作的生命力
- 彭民德:《電子計算60年》 (19) UNIX核心反彙編程式碼有啃頭
- 彭民德:《電子計算60年》 (36) 從面向硬體的控制檯操作到瀏覽器人機介面瀏覽器
- 彭民德:《電子計算60年》(10)對付U-2偵察機的15號及317任務
- 彭民德:《電子計算60年》 (23)駕馭PC,應用開發百花齊放
- 彭民德:《電子計算60年》(24)PC與微控制器聯合控制的水文流速儀實時檢定系統
- 彭民德:《電子計算60年》(30) 在列印技術發展長河中,16針印表機未能曇花一現
- 彭民德:(40)基於移動計算的物聯網共享單車