上世纪八十年代初,乘改革开放东风,国外流行的,以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章 三代计算并发共享 电子工业出版社)