Milestone:The IBM 701 Computer at the General Motors Research Laboratories

USTC Linux Topic 2015 Spring Milestone 禹晓博  本次主要是对THE EVOLUTION OF OPERATING SYSTEMS原文的第一部分进行翻译,同时翻译了The IBM 701 Computer at the General Motors Research Laboratories的全文。并对相关内容做出介绍。

一、THE EVOLUTION OF OPERATING SYSTEMS第一部分的翻译

计算机进化史

PER BRINCH HANSEN 

(2000)

        笔者回顾了计算机发展历程中的前半个世纪并挑选了他认为最为经典的一些关于操作系统的论文进行介绍。这些论文涵盖了从上世纪50年代的比处理系统到90年代的分布式系统的内容。每篇论文都简明优雅的方式阐述了一个有趣的操作系统。这些论文的大部分作者都是那些对计算机系统有理想和憧憬并为之奋斗的先驱者。笔者总结了每一篇论文并得出的结论就是操作系统都是基于很少数的一些经典不变的优秀基本思想。

        引言

        2000年是计算机操作系统诞生的第五十周年。为了向该领域的先驱们学习,我选择了我最喜欢的一些经典的操作系统方面的论文。这些论文涵盖从20世纪50年代的批处理系统到20世纪90年代的分布式系统的该领域的整个历史。我假设你已经知道操作系统是如何工作的,但不一定了解他们是如何被发明的。

        我对广泛使用特定操作系统是不感兴趣的,因为它往往与这些系统的优点(或缺点)没有明显关系。套用GH.Hardy(1969)的话,美是第一次尝试:丑陋的想法在世上没有立足之地。 

        让我解释一下我是如何做出选择的:

        1、每篇论文描述了一个操作系统,这个操作系统以一种巧妙的方式使用有意义的想法。 

        2、我选择的论文大多是由有愿景和驱动以使他们的工作的先行者所写。也包括几篇优秀的但没有任何新的突破的操作系统,因为其却令人信服地展示当时所知的最好的想法。 

        3、我喜欢短论文,那是一种阅读享受。然而,正如Peter Medawar(1979)如实表述的那样,“大多数科学家不知道怎么写作。”在某些情况下,我只好勉强使用“表述清晰且文风即使不是优雅,但至少不会晦涩”的论文。 

         操作系统的发展通过七个主要阶段(表1)。其中六个显著改变了用户访问的计算机的方式,通过开放式计算站,批量处理,多道程序设计,分时操作,个人计算和分布式系统。在第七阶段并发编程的基础在模型操作系统中进行了开发和论证。 

 

        我信心十足的选择了经典的操作系统领域的24篇论文。因为在操作系统的历史上每个领域有这么多的竞争者存在,你可能会不同意我的一些选择。对于每个阶段,我尝试包括一些开创性的系统及其一些追随者。有些系统无疑已经被其他同样有代表性的系统取代。尽管我忽略了几个重要的系统,我希望没有缺失的环节。 

        出版日期显示,二十世纪六七十年代为操作系统丰收的年代;相比之下,二十世纪八九十年代出现的操作系统较少。这是可以预料的,因为早期的开拓者进入该领域的时候,最好的想法还没有被发明出来。 
文件显示,操作系统是基于很少的几个长远的基本理念(表二)。其余的在我看来明显是基本理念的一个重要推论。 


        接下来就是我所选文章的一些背景简介。自始至终我都会各自引用之前研究者的褒奖和批判的注解来使我的观点保持中立。

第一部分 开放式计算站

        我们从1954年开始讲述有关操作系统的故事。当时计算机还没有操作系统,是由它们的使用者手动操作:

The IBM 701 computer at the General Motors Research Laboratories.George F. Ryckman (1983):

        乔治·里赫曼记得对于在开放计算站里的著名的701--IBM公司的第一批电脑,大量低下的工作效率: 每个用户被分配了一个最低15分钟的时隙。在这15分钟里,他通常要为配置设备以做计算而花掉10分钟。等他的准备工作完成的时候,他经常最多有5分钟的时间来完成实际的计算--浪费了2/3的时间。每个月因浪费的计算时间造成的花费高达14.6万美元。要知道那时可是1954年!

        John McCarthy (1962) 同样是基于开发室计算站的模式在MIT开发了一个相似的系统TX-0,他说道:如果TX-0仅仅是一个更大一点的电脑,如果还是用同样的方式去操作那么他还会适应那么多的用户。

二、The IBM 701 Computer at the General Motors Research Laboratories 翻译

        作者备注:Ryckman回忆701每过3.5小时才会出现错误——这是一个很优秀的记录。他回忆了分享的开始还有被看做第一个在704上的显示器以及一些其他的IBM计算机。Michael Chancellor是技术代表二Warren Hume是分销经理。

        在1952年的夏天通用汽车研究室(GMR)(现在是通用汽车实验室)安装了一台IBM的卡片式编程计算机(CPC)这保守估计每个月会消耗1800美元。这台计算机以每分钟150条三地址指令的速度运算着,用于设计和简化数据计算。例如扭矩震动分析,燃油涡轮增压发动机的数据压缩,发动机轴承计算,信息检索项目和一些其他的计算任务。

        但是在不到一年的时间里他就变得不能再胜任GMR和GM的Allison Division所需要的更高级的设计评估和数据处理工作。与此同时IBM发布了全新的,高级的程序存储式计算机——701电子数据计算机,有着相比于CPC100倍的操作处理速度和10倍于CPC的价格花费。在Allison Division的帮助下,GMR在副总裁的批准下订购了一台IBM701。此后通用公司再也没有批准这样一台如此弱的计算机了。这是通用公司的第一个程序存储式计算机。他在1954年的4月正式部署完成并用一些应用证明了它存在的价值——大部分都是应用在工程领域,但其中也有一个重要的商业应用。

        下面就是他当时的一些应用:扭转振动的研究,高级轴承负荷计算,螺旋桨设计和数据处理,反馈检测谐波分析,自动提前凸轮经销商,泵压力波分析,汽轮机叶片的疲劳性能,数据分析,准双曲面齿轮的设计。

        GMR同时也担任了通用公司人事部门的光宇750,000小时就业力的精算和统计任务。这是一个高级机密,同时也验证了701的高强度任务处理能力,这也使我们的工程师对数据检验和程序控制有了理解。我们也知道能源平衡但是必须将它量化以确保每一项合起来和总和相等。这里面当然也包括这样一个事实就是701的MTBF( 故障间隔时间)是3.5小时(这大多数还是由其阴极射线管静电内存故障引起的),基于这样的一种故障频率,我们的程序被设计成每5分钟进行一次自检以确保其始终完整正确运行。这就是那时我们所谓的X项目正在机房中运行,只有Joseph T Olstzyn,M Elizabeth Kerr和我在内的几个操作人员允许进入这个区域。


         想象一下一台机器的运行周期(cycle time)只有12ms,而每一条指令只需要花费5个这样的周期就可以完成。我们当中的一些人用区域汇编语言(Regional Assembly Language,这个语言是由Marie Clark 在纽约的IBM课程中教授的)对IBM701进行编程。但是大多数应用则是用SPEEDCODE或者ACOM两种语言编写的,这些语言将单地址的定点运算转换成三地址的浮点运算。SPEEDCODE是联合航空公司的Walter A Ramshaw和他的人授权的。ACOM是由Jack Horner和其他一些通用汽车公司的人编写的。这两套系统都是由子程序来进行浮点运算的,这使得701的基础速度从每秒15000条单地址定点指令降到了150条的三地址浮点运算指令。

        在X项目出现之前,尊敬的F. Harroff,James J. Fishman和我编写了一组“编译器”(现在我们叫宏处理程序)以帮助提高项目的实时性(对项目及时执行有所帮助)我的编译器叫做READ,是用于将读到的十进制的或者字符型的数据元素转换成适当的机器内部使用的二进制的形式。这个编译器程序从读卡器中读取数据然后将它们记录到具有每英尺100bit的高密度存储磁带上!堆积成山的项目输入卡片最后都被存储到了仅仅20个磁带盘上。Harroff 和Fishman’s的编译器叫做PRINT,做着相反的工作。他们将数据从二进制转换到10进制或者字符类型上。编译好的程序从磁带中读取数据然后利用打印机(printer)记录他们。这些特殊的程序被编写成可以执行所有给定在这个“巨大的”数据库中处理信息。但是尽管如此还是不得不说相对在制表机器上一天得到结果,这样几个小时就运行完成任务还是很令人兴奋的。

        与此同时,IBM和瓦特公司也购买了一些GMR的701的计算时间。在那个时候计算时间还是很昂贵的,我们内个像是收取300美元——即使是这样他们也很乐意。在那个时候全世界只有19台701计算机,他们都被最大化利用。即使是IBM也认为这个世界上的计算能力已经过剩了,但我们仍然夜以继日的运行它。

        那个时候调度计算机的使用时间还是很潦草的。每一个用户被分配一个最低15分钟的时间,但是他们通常会使用10分钟去设置设备进行计算准备。他们安装好磁盘然后设定读卡器,卡片打孔机,打印进然后进行运算。这样他才能开始他的运算,这时他就只有5分钟或者更少的时间去完成任务——2/3的时间被浪费了。标准的读卡器和打印机对这个问题有所缓解但是浪费的时间依旧很多。后来就有了流水线操作。

       当然也还有其他的一些想法在701的用户中涌现出来,这些都是在1955年夏天的Santa Monica, California.会议上。会议的结果就是“GM”成了GMR的编码(code)现在仍然是这样。北美航空和GMR共同推出了“输入输出系统”这也是第一个操作系统。这也将用于1956年5月安装的IBM704计算机上。知道1956年秋天所有的程序都被转移到704上面了。然后GMR的第一个大型机就这样退市了,真是令人兴奋的一个时代。

三、相关介绍

        1952年4月29日,向公众公布了IBM 701的诞生,即开发的国防计算机。它是第一台商用科学计算机。IBM 701系统使用真空管逻辑电路和静电存储。由能够存储1024位的威廉姆斯管组成,每个威廉姆斯管直径达3英寸。701包含了算术组件、输入和输出控制电路和存储程序控制电路,同时也安装了操作员面板。算法部分包含内存寄存器,累加寄存器和乘商寄存器。每个寄存器有35位和标记。累加寄存器有两个额外位叫做溢出位。 控制部分解码存储程序和指示机器自动执行其指令。指令只能手动输入到控制部分通过静电存储或从运营商的面板。整个机器可以从运营商的手动控制面板通过各种按钮、按键、开关和信号灯。操作员可以手动控制信息插入静电存储或各种寄存器。各种寄存器的内容也可以显示在霓虹灯的操作员观察。
    IBM 701机器工作周期为12毫秒。执行一条或一个序列的指令所需的时间是这个周期的整数倍,而执行所需乘法或除法指令需要456微秒。701可以执行33种不同的操作。
    701单元的每月租金大约是8100美元。并于1954年10月1日退市。
          TX-0是麻省理工学院林肯实验室1956年研制出的全世界第一台晶体管电脑。
它有着三大特点:用晶体管取代电子管,占用空间小(不过看上去仍然酷似发电厂的控制台);将键盘、打印机、磁带阅读机和打孔机集成在一起,操作员可以通过键盘编程,生成印好的磁带后直接输入机器;配有一台可编程显示。
TX-0的这三大特点启动了计算机由神至人的转变,普通信徒们不必再去忍受白衣巫师的傲慢,他们可以定定心心地坐在电脑前,编写属于自己的程序。正是通过这台TX-0,我们的第一批程序员和设计师被培养了起来。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值