大机作业2.docx

上传人:b****7 文档编号:26640862 上传时间:2023-06-21 格式:DOCX 页数:17 大小:296.91KB
下载 相关 举报
大机作业2.docx_第1页
第1页 / 共17页
大机作业2.docx_第2页
第2页 / 共17页
大机作业2.docx_第3页
第3页 / 共17页
大机作业2.docx_第4页
第4页 / 共17页
大机作业2.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

大机作业2.docx

《大机作业2.docx》由会员分享,可在线阅读,更多相关《大机作业2.docx(17页珍藏版)》请在冰豆网上搜索。

大机作业2.docx

大机作业2

操作系统回首风雨路

任何数字电子计算机都必须在其硬件平台上加载程序相应的操作系统之后,才能构成一个可以协调程序运转的计算机系统。

操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。

它们能以尽量有效合理的方式组织和管理计算机的软硬件资源,合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机,使整个计算机系统能高效地运行。

没有操作系统,任何应用软件都无法运行。

操作系统实际上是一个计算机系统中硬、软件资源的总指挥部。

操作系统是软件技术含量最大、附加值最高的部分,是软件技术的核心,是软件的运行平台。

计算机的发展经历了电子管时代(1945年~1955年)、晶体管时代(1955年~1965年)、集成电路时代(1965年~1980年)以及大规模集成电路时代(1980年至今)等阶段。

由于操作系统与计算机系统结构联系非常密切,我们将按照计算机的换代历程介绍操作系统的发展历史。

在随着历史线索叙述的同时,介绍一些重要的操作系统。

第一台数字计算机是英国数学家CharlesBabbage设计的。

尽管Babbage投入了毕生精力,但却没能让它成功地运行起来,因为当时的技术不可能达到需要的精度。

当然,这台计算机没有操作系统。

1.第一代真空管计算机时期

由于二次大战对武器装备设计的需要,美国、英国和德国等国家陆续开始了电子数字计算机的研究工作。

这些非常巨大的机器,使用了数万个真空管,占据了几个房间,然而其运算速度却比现在最便宜的家用计算机还要慢得多。

在这个阶段,程序设计全部采用机器语言,通过在一些插板上的硬连线来控制其基本功能,没有程序设计语言(甚至没有汇编语言),更谈不上操作系统。

使用机器的方式是程序员提前在墙上机时表上预约一段时间,然后到机房将他的插件板插到计算机中,在接下来的几小时里计算自己的题目,期盼着在这段时间中,几万个真空管不会烧断。

这时机器处理的所有题目实际上都是数值计算问题。

2.第二代晶体管计算机时期

50年代晶体管的发明极大地改变了整个状况。

计算机比较可靠,厂商可以成批地生产并出售计算机给用户,用户可以指望计算机长时间运行,完成一些有用的工作。

FORTRAN、ALGOL、COBOL等高级语言分别于1956、1958和1959年设计完成。

此时,设计人员、生产人员、操作人员、程序人员和维护人员之间第一次有了明确的分工。

这些计算机安装在专门的空调房间里,有专业人员操作。

只有少数大公司、主要的政府部门或大学才能承受它数百万美元的标价。

要运行一个作业(Job,即一个或一组程序),程序员需要首先将程序写在纸上(用高级语言或汇编语言),然后穿孔成卡片,再将卡片盒带到输入室,交给操作员。

计算机运行完当前任务后,其计算结果从打印机上输出,操作员到打印机上撕下运算结果并送到输出室,程序员稍后就可以取到结果。

然后,操作员从已送到输入室的卡片盒中读入另一个任务。

如果需要FORTRAN编译器,操作员还要从文件柜中把它取来读入计算机。

许多机时就这样被浪费掉了。

第一个计算机用磁盘系统是1957年出品的IBM305RAMAC磁盘系统。

1957年为IBM704计算机设计的FORTRAN编译器完成。

1959年IBM公司推出了IBM1401计算机供商业处理,IBM1620计算机供科学计算。

IBM709和7094计算机也在此时期推出。

由于当时计算机非常昂贵,人们很自然地想办法减少机时的浪费,而且为了改进主存和I/O设备之间的吞吐,IBM7094计算机引入了I/O处理机概念。

其思想是在输入室收集全部的作业,然后用一台相对便宜的计算机,如IBM1401计算机将它们读到磁带上。

IBM1401计算机适用于读卡片、拷贝磁带和输出打印,但不太适于做数值运算。

然后再用较昂贵的计算机,如IBM7094来完成真正的计算。

图1 批处理系统示意图

在一段时间的批量作业收集之后,磁带倒转后送到机房里并装到磁带机上。

随后操作员装入一个特殊的程序——批处理系统(图1)。

它从磁带上读入第一个作业并运行,其输出写到第二盘磁带上而不打印。

每个作业结束后,操作系统自动地从磁带上读入下一个作业并运行。

当一批作业完全结束后,操作员取下输入和输出磁带,将输入磁带换成下一批作业,并把输出磁带拿到一台1401机器上进行脱机打印。

整个工作过程中所使用的批处理系统就是现代操作系统的前身。

典型的输入作业(图2),一开始是一张$JOB卡片,它标识出所需的最大运行时间(单位为分钟)、计费账号以及程序员的名字。

接着是$FORTRAN卡片,通知操作系统从系统磁带上装入FORTRAN语言编译器。

之后是待编译的源程序,然后是$LOAD卡片,通知操作系统装入编译好的目标程序。

接着是$RUN卡片,告诉操作系统运行该程序并使用后附的数据。

最后,$END卡片标识作业结束。

这些基本的控制卡片是现代作业控制语言和命令解释器的先驱。

图2 作业卡片示意图

第二代计算机典型的操作系统是FMS(FORTRANMonitorSystem,FORTRAN监控系统)和IBMSYS(IBM为7094机配备的操作系统)。

这些操作系统由监控程序、特权指令、存储保护和简单的批处理构成。

3.第三代集成电路计算机时期

60年代初期,计算机开始采用集成电路。

大多数计算机厂商都有几条完全不同的计算机生产线,生产不同用途的计算机。

开发和维护完全不同的产品,对厂商来说是昂贵的。

另外,许多新的计算机用户在开始时只需要使用一台小计算机,后来可能需要一台较大的计算机,而且希望能够在新购置的较大的计算机上更快地执行原有的程序。

这样一来,厂家和用户都需要软件在不同型号的计算机之间兼容。

(1)IBMSystem/360操作系统

1964年4月7日IBM宣布推出System/360计算机系统,试图一次性地解决上述两个问题。

它的操作系统堪称一个庞大的软件恐龙。

由于所有的计算机都有相同的体系结构和指令集,因此在理论上,为一种型号机器编写的程序可以在其他所有型号的机器上运行。

System/360是第一个采用小规模集成电路的主流机型,它很快就获得了成功。

这些计算机的后代仍在大型的计算中心里使用。

这种“单一家族”思想也带来了缺点。

所有的软件,包括操作系统OS/360,都要能够在所有机器上运行,它要适用于所有型号的机器和不同的用途。

然而,IBM无法写出同时满足这些相互冲突的需求的操作系统软件。

其实别人也一样不能完成这项工作。

IBMOS/360操作系统的文件系统中有一类型字段,用来定义每一文件的类型,有定长、不定长记录、块状和非块状文件,这样用户对于输出文件的大小只有通过猜测,系统的存储管理受到硬件体系结构的限制。

尽管有基地址寄存器寻址方式,程序也可以访问和修改基地址寄存器,但是CPU生成的却是绝对地址。

这样一来虽然不用进行动态再分配,但程序却被钉在调入内存时的物理地址上了。

整个OS/360操作系统包含有数千名程序员写的数百万行汇编语言代码。

系统自身占据了大量存储空间和一半的CPU时间。

这数百万行汇编代码中有成千上万处错误,IBM不断地发行新的版本试图更正这些错误。

每个新版本在更正老错误的同时又引入新错误,所以随着时间的流逝,错误的数量大致保持不变。

在IBM360的基础上引入虚拟存储器以后,形成了IBM370体系结构。

新的操作系统OS/VS1建立了一个大的虚拟地址空间,OS/MVT在该虚拟地址空间中运行。

OS/VS2Release2又称作MVS,为每一位用户提供了各自的虚拟地址空间,但MVS基本上仍是一个批处理系统。

在IBM7094机上,若当前作业因等待I/O而暂停时,CPU就只能简单地踏步直至该I/O完成。

对于CPU操作密集的科学计算问题,浪费的时间很少。

然而对于商业数据处理,I/O操作等待的时间通常占到80%~90%,所以必须采取某种措施减少CPU时间的浪费。

具体的解决办法是将内存分几个部分,每一部分存放不同的作业。

当一个作业等待I/O操作完成时,另一个作业可以使用CPU。

在主存中同时驻留多个作业需要特殊的硬件来对其进行保护,以避免作业的信息被窃取或受到攻击。

这种思想就是多道程序设计(Multiprogramming)技术。

第三代计算机的另一个特性是Spooling技术,卡片被拿到机房后能够很快地将一个作业从卡片读入磁盘。

于是任何时刻当一个作业运行结束后,操作系统就能将一个新作业从磁盘读出,装入空出来的内存区域运行,这种技术叫做Spooling(SimultaneousPeripheralOperationOnLine),该技术同时也用于输出。

(2)分时系统

第三代计算机很适于大型科学计算和繁忙的商务数据处理,但其实质上仍旧是批处理系统。

许多程序员很怀念第一代计算机的使用方式,他们那时可以几个小时独占一台机器,可以即时地调试他们的程序。

而对第三代计算机,从一个作业提交到运算结果取回往往长达数小时,更有甚者,一个逗号的误用就会导致编译失败,而可能浪费程序员半天的时间。

分时系统(CompatibleTimeSharingSystem,CTSS)的出现使程序员们的希望最终得到了响应。

分时系统实际上是多道程序的一个变种,每个用户都有一个联机终端。

在分时系统中,假设有20个用户登录,其中17个在思考或谈论或喝咖啡,则CPU可给那3个需要的作业轮流分配服务。

由于调试程序的用户常常只发出简短的命令(如编译一个5页的源文件),而很少有长的费时命令(如上百万条记录的文件排序),所以计算机能够为许多用户提供交互式快速的服务,同时在CPU空闲时还能在后台运行大的作业。

分时系统(如图3所示)的思想于1959年在MIT正式提出。

第一个分时系统是由MIT的FernandoCorbato等人于1961年在一台改装过的IBM7090/7094机上开发成功的,当时有32个交互式用户。

IBM7090/7094计算机本身有32KB内存,系统使用5KB,用户使用27KB。

用户存储映像在内存和一台磁鼓之间切换。

CPU调度采用多级反馈队列算法。

图3分时操作系统示意图

在英国,1962年曼彻斯特大学的Atlas计算机投入运行,这是第一个具有虚拟存储器(VirtualMemory)和页面调度(Paging)的机器,而它的指令执行是管道式(Pipelined)的,运行速度为200kFLOPS。

IBM曾打算在360上引入MIT分时系统,但是MIT认为360的地址空间对于MULTICS而言太小了,IBM最后决定自行开发分时系统。

1965年8月IBM公布了360机上的分时系统TSS/360。

但IBMTSS/360是一个失败的系统,它太大也太慢,结果没有一家用户真正使用IBMTSS/360这个分时系统。

由于受到CTSS成功研制的鼓舞,1965年在ARPA(美国国防高级研究计划局)的支持下,MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”,希望能够同时支持整个波士顿所有的分时用户。

该系统称作MULTICS(MULTiplexedInformationandComputingService)。

MULTICS的设计目标是:

提供便利的远程终端使用,大量终端通过电话线接入计算机主机;连续工作(无关机);可变的配置能力,无需用户程序重新配置;高可靠的大型文件系统;大容量的用户信息共享;提供存储和构造层次化信息结构的能力;支持从数字运算到分时系统的各种应用,且不降低效率;多种程序设计环境和人机界面;允许随技术的发展而不断进化系统。

MULTICS硬件开始采用的是GE635计算机,后来成为GE645计算机,增加了段页式存储硬件。

MULTICS系统的虚拟地址由18位段号和16位字偏移量组成。

MULTICS文件系统是多级树形结构的,并允许用户建立自己的子目录结构。

MULTICS的CPU调度同CTSS类似,采用多级反馈队列算法。

MULTICS的每个文件都有一个访问列表,用于文件保护目的,而对于执行进程则采用一套保护环的安全机制。

最终完成的MULTICS系统几乎完全是由PL/1语言写成的,大约有30万行代码。

实际投入运行的MULTICS硬件环境是一个多处理机系统,它允许当某个CPU被取出维护时,整个系统继续运行。

MULTICS的研制难度超出了所有人的预料。

由于长期的研制工作达不到预期目标,1969年4月贝尔实验室退出了,通用电气公司也退出了计算机领域。

经过了多年的努力,MULCS最终被成功地应用在MIT以及其他几十个系统中。

多数运行MULTICS的计算机系统在90年代中陆续被关闭,目前还有少数MULTICS在运行。

MULTICS引入了许多现代操作系统领域的概念雏形,对随后的操作系统特别是Unix的成功有着巨大的影响。

(3)小型计算机、电子游戏和Unix的成功

第三代计算机的另一个主要进展是小型机的崛起,以1961年DEC的PDP-1作为起点。

PDP-1计算机只有4K个18比特的内存,每台售价120000美元。

这个售价在今天看来,昂贵得不可思议,但在当时,它价格还不到IBM7094的5%,所以该机型非常热销。

PDP-1开辟了一个全新的小型计算机产业。

图4Unix操作系统简要示意图

1969年,在贝尔实验室退出了MULTICS研制项目之后,两名贝尔实验室曾参加过MULTICS研制的计算机科学家KenThompson和DennisM.Ritchie在一台无人使用的PDP-7机器上重新摆弄起一个原先在MULTICS项目上设计的“空间旅行”电子游戏。

为了使这个游戏软件能够在PDP-7机器上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、命令解释器(shell)和汇编程序。

到了1970年,在这一切都完成之后,他们给新系统起了一个同MULTICS发音相近的名字Unix。

随后,整个Unix用C语言全部重写。

自此,Unix诞生了。

Unix是现代操作系统的代表,显示出了强大的生命力。

Unix运行时的安全性、可靠性以及强大的计算能力赢得了广大用户的信赖。

是什么促使Unix系统成功呢?

首先,由于Unix用C语言编写,因此它是可移植的,Unix是世界上惟一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统。

第二,系统源代码非常有效,系统容易适应特殊的需求。

最后一点也是最重要的一点,它是一个良好的、通用的、多用户、多任务的分时操作系统。

Unix(如图4所示)有良好的树形文件系统和一定的安全机制,有简洁的字符流文件和文件保护机制。

Unix有功能强大的shell,它既是命令解释器,又是编程用高级语言,还可用于扩充系统的功能。

Unix在1970年诞生于贝尔实验室,那时贝尔实验室与AT&T公司仍是一家。

在最初5年左右的时间中,Unix是一个只限于AT&T内部使用的操作系统。

为了支持教育,Unix对大学发放了免费的许可证。

在Unix诞生第7年后,Unix开始出售,真正成为了一个商业产品。

70年代末,Unix在加州大学伯克利分校有很大的发展,这就是著名的BSDUnix系列。

1992年,伯克利大学决定不再发展Unix,BSDUnix最后的版本是4.4BSD。

80年代,除AT&T及伯克利以外,对Unix进行重大改进的一个单位就是卡内基-梅隆大学的Mach项目,现在有不少微处理器、多处理器以及超级计算机所采用的操作系统都多少跟Mach有关。

而在AT&TUnix方面,自SystemⅢ诞生起,有SystemⅣ和SystemⅤ版本。

现今多数的Unix版本便是根据SystemⅤ发展而来的。

SystemⅤ本身则是从SystemVR2、SystemVR3发展而来。

UnixSVR4与SVR3有很大的不同,因为SRV4开始引进了BSDUnix的特色。

在IBM个人计算机出现之后,SCO公司推出了PC版本的Unix——SCOUnix。

随后,Unix也被移植到Motorola68000CPU的微机上。

80年代中期,工作站又把Unix带入更广的应用领域,Sun公司的Solaris(Unix的兼容操作系统)是其典型代表。

在嵌入式操作系统中,著名的QNX也是Unix的兼容操作系统。

90年代,Internet的迅猛发展为Unix带来了巨大的机会,Internet中的Web服务器大都使用Unix类操作系统。

到目前为止,在技术成熟程度以及稳定性和可靠性等方面,Unix继续保持着领先。

但是,由于基于Unix系列操作系统的厂商都有自己的版本,相互之间不完全一致,成为Unix类操作系统的一大不足。

(4)70年代中国的操作系统

60年代末期,我国国民经济急需装备先进的电子计算机。

但是,由于国际上的封锁,花钱也买不来先进的计算机,惟一的办法就是依靠国内科学家自己研制。

1973年,北京大学在杨芙清院士主持下,研制出百万次/秒的集成电路电子计算机和具备多道程序功能的操作系统,后来又研制出中国第一个用高级语言书写的操作系统DJS200/XT2-240机操作系统。

这两项科技成果分别获得全国科学大会奖和电子部颁发的科技成果一等奖。

这些国产操作系统无论从设计思想上还是从实际功能上都不比当时国外的操作系统逊色。

事实说明中国软件研究人员有能力研制出同国际水平相当的系统软件。

4.第四代大规模集成电路计算机时期

在个人计算机出现之前,IBM实际上是全球计算机领域的霸主。

随着大规模集成电路的发展,个人计算机时代到来了。

各种类型的个人计算机和软件层出不穷。

(1)CP/M的冷落和MSDOS的兴旺

1973年GaryKildall看到对于个人计算机操作系统的需求,设计了CP/M操作系统(ControlProgram/MicroprocessororMicrocomputer)。

CP/M操作系统有较好的层次结构。

它的BIOS(基本输入输出系统)把操作系统的其他模块与硬件配置分隔开,即只有BIOS与硬件配置有关,所以它的可移植性好,还具有较好的可适应性和易学易用性。

到了1981年,CP/M操作系统成为世界上流行最广的8位操作系统之一。

个人计算机的成功,逼得IBM不得不采取紧急的战略行动,决定要在1980年尽快设计、生产出自己的微型计算机以应付挑战。

但是没有操作系统是不行的。

要想快,最好就是找现成的系统配套。

然而IBM公司和GaryKildall洽谈CP/M操作系统不顺利,机遇落到了微软公司身上。

在这关键时刻,开发新的操作系统,在时间和人手上已经不可能,于是微软找到了西雅图计算机产品公司,双方达成了由微软经销西雅图计算机产品公司的QDOS操作系统的协议。

当时西雅图计算机产品公司并不知道他们的QDOS操作系统将被转卖给IBM蓝色巨人,否则历史将会怎样演变,谁也无法知晓。

IBM在1981年8月12日推出个人计算机的同时,也宣布了DOS操作系统。

随着IBMPC和MSDOS的普及,CP/M逐渐从高峰走向下坡路。

MSDOS操作系统具有性能优良的文件系统,但它受到Intelx86体系结构的限制,并缺乏以硬件为基础的存储保护机制,它仍属于单用户单任务操作系统。

从1981的1.0版到1998年隐藏在Windows95/98之下的7.0版,MSDOS历经了16个年头。

迄今仍有一批MSDOS爱好者们为MSDOS继续开发着各种应用软件产品。

(2)拯救苹果公司的MACOS

在蓝色巨人推出IBMPC机之后,市场卷起一股蓝色的龙卷风,连IBM自己也没有预料到他们的产品会有如此巨大的成功。

市场是残酷的,IBM的成功就说明必有其他公司失败。

多数的微机生产厂家盈利大幅下滑,有的甚至破产。

甚至连苹果公司也遇到了问题,销售数量落到了蓝色巨人的后面。

苹果公司推出的Lisa机遭到了失败,AppleⅢ型也遭到了失败。

分析家们认为,在微机市场上的这场战斗似乎蓝色巨人要赢了。

但是IBM从来不去注意施乐公司的PltoAlto研究中心。

这是70年代的计算机研究思想库。

世界上第一台个人计算机Alto于1972年在这里出现,图形界面、手持鼠标、面向对象程序设计、微机网络、桌面出版和激光打印等等具有先进概念和技术的原型都首次出现在施乐公司的PltoAlto研究中心。

在PltoAlto研究中心的研究基础上,苹果公司决定立即开发采用这些新技术的个人计算机。

到了1984年,人们看到了一则名为“Whatwasthat?

”的广告和对于苹果Macintosh计算机的介绍,这是一台配有图形界面操作系统MACOS和鼠标的新型个人计算机。

MAC机一上市立即在市场上获得极大的成功。

当年甚至比尔•盖茨都说,这是一台连他母亲也能使用的计算机。

配有图形界面操作系统MACOS和鼠标的新型个人计算机Macintosh把苹果公司从连续的失败之中拯救出来,苹果公司又开始奋勇向前了。

也正是Macintosh的先进图形界面操作系统技术,超前了PC机若干年,造就了一大批苹果公司的忠实追随者。

他们在随后的多年里,始终坚定不渝地热爱和使用Macintosh,从来不把PC机看在眼里。

(3)一波三折的Windows操作系统

在PC机市场方面,配有图形界面的产品也在不少公司中加紧开发。

微软内部也制定了类似的方案。

1983年10月,在PC机市场上,竞争厂家的图形界面相关产品上市。

面对巨大的市场压力,比尔•盖茨在1983年11月10日宣布推出配有交互式图形功能的Windows操作系统。

然而宣布容易,交货就不那么简单了。

1984年,配有高品质交互式图形功能操作系统的苹果Macintosh计算机取得了巨大成功,反衬了微软Windows交货期的灾难,成了当年计算机界的笑柄。

一直到1985年11月20日,可以同时执行多个程序的Windows1.0才正式上市。

Windows在当时微软的历史上创造了几个记录:

延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多。

不过几年之后,Windows终于创造了销售成绩最佳的历史记录。

1992年4月,微软推出了更稳定的Windows3.1。

1993年5月,微软发布WindowsNT,它具备了安全性和稳定性的特征,主要是针对网络和服务器市场。

Windows95在1995年8月正式登台亮相,这是第一个不要求使用者先安装MSDOS的Windows版本。

从此,Windows9x便取代Windows3.x以及MSDOS操作系统,成为个人计算机平台的主流操作系统。

1996年11月微软推出嵌入式WindowsCE操作系统。

1998年6月,微软发布Windows98。

微软同时还将WindowsNT5.0改名为Windows2000,作为下一代操作系统。

目前个人计算机中采用Windows操作系统的占90%以上,微软公司成了垄断PC行业的同义词。

(4)基于微内核的Mach操作系统

从操作系统技术的发展角度上看,世界各国知名大学中的操作系统研究组起着极为重要的作用。

1975年Rochester大学开发了一个名为RIG(RochesterIntelligentGateway)的操作系统,这是Mach的雏形。

当这个系统的设计者之一RichardRashid移居到卡内基-梅隆大学之后,在DARPA资金的支持下,1984年开始了操作系统项目Mach的开发,希望Mach能与Unix兼容,可以运行线程,提供更好的进程通信机制,支持多处理机以及一个构想很好的虚拟存储系统。

为了使它与4.2BSD兼容,开发者们把Mach与4.2BSD组合在一个核中。

尽管这样做导致了一个很大的核,但它的确做到了与4.2BSD的绝对兼容。

Mach的第一个版本是1986年为VAX11/784--一个4CPU的多处理机发布的。

1988年的Mach2.5版包含了大量的BSDUnix的代码。

1989年,Mach内核中去掉了所有的BSDUnix的代码,将它们放在用户区中,剩下了一个纯的Mach微内核,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1