`
buliedian
  • 浏览: 1248890 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

操作系统发展史

作者:Raphael A. Finkel
刘建文略译(http://blog.csdn.net/keminlau

KEY:操作系统 发展历史 发展史

3.1 Open shop

早期的计算机体积庞大、价值昂贵,并且难以使用。计算机用户必须是专业人员,而且用户既是程序员,又是操作员,使用前必须先预约一段(blocks )时间(KEMIN:意思是说时间到了没计算完必须再次预约)。会话情形大似如下:

前OS.png

我们看看1964年时使用计算机 IBM 1620一个会话情况,这台计算机执行程序需要多步的编译:

首先,用户首轮载入FORTRAN的编译器,操作包括:

  • 通过控制台命令按钮清空主存;
  • 把编译器(用穿孔卡片保存的)放入读卡器;
  • 把待编译的源程序(穿孔卡片)放在编译器的后面,与编译器一起读入;
  • 按下读卡器的“load”按钮;

首轮计算输出的卡片叫“中间输出(intermediate output)”。如果有任何编译错误,控制台的灯会闪,错误信息出显示在控制台的打字机上(typewriter)。

假设一切完好,接着第二轮载入编译器和“中间输出”,并且成功的话输出第二组卡片,叫“executable deck”。第三步,用户会调整“executable deck”的顺序,并与子程序库(另一十寸长的卡片)一起载入计算机,细心观察计算机运行。

计算的结果会输出到卡片或打印纸上。计算结果常常是不正确的,为了调错,用户一般通过直接查看主存内容,或通过控制台的开关(console switches)对程序进行修改。如果时间不够用,挫败的用户会把主存内容打印出来(所谓的转储 dump of store),闲暇时再分析。如果用户在申请的时间段用完前提早完成了计算任务,那么计算机会一直闲置,直到下一个预约的时间段。

KEMIN:这种早期的单道程序单用户的计算机没有操作系统的需要,因为用户独占所有资源,无须“管理”;用户操作原语很原始,几乎在裸机上操作,没有虚拟机的概念。

3.2 Operator-driven shop

从上面预约式单道单用户的计算机使用方式来看,计算机的资源利用率是很低的。在用户不同的操作阶段都有部分计算机资源被闲置,如手工装入卡片时CPU被闲置,打印机在装卸卡片和计算过程中被闲置等。商业计算机不能容忍这种浪费,为了提高资源利用率,一种人工提速的使用方式被提出——专门雇用一位操作员负责管理计算机操作,包括加载作业(jobs)、开启计算机和收集计算输出等,会话情形如下:

前OS2.png

专职的操作员在一些繁杂的操作上(如装卸卡片或磁带)比新旧计算用户都要来的迅速,这样作业或各步骤间切换的时间被降低了。如果程序出错,操作员代为转储主存内容,用户不能再直接监视主存并对程序进行修补。不过因为作业加快了,用户可以很快的将修改好的程序提交再运行。这种方式,每个用户只需耗费作业运行所需的时间,不必预先约定一个固定时间而造成浪费。

操作员是个人,当然要比后来的资源管理者——操作系统一般多甚至更多的智能。例如,操作员通过批处理同类的作业来降低处理时间,如一批相似的作业只需两轮的载入编译器,无须一份作业两轮;操作员也可以根据作业的优先级或作业时间的长短来按排作业的顺序,如一长时间作业可按排到晚上运行。

KEMIN:这一阶段软件硬件功能没有改进

KEMIN: 资源管理的本质是多道程序的引入,多道并发争用资源。被雇用的操作员本身可以说是操作系统的始祖,因为他肩负着部分操作系统职责。但操作员本身不是程序。

KEMIN: 换个角度看,操作系统的本质是多道程序吗?在没有多道的计算环境还有操作系统的必须要吗,直接控制资源不可以了?光提供虚拟机功能(比如子程序库)还叫操作系统吗?

KEMIN:发展到这阶段,如果把操作员算作操作系统,那么这个操作系统也是单道的(CPU当前作业不可以被打断),它只是窄取作业内各步骤间或作业之间可能提速的空间罢了。

3.3 Offline transput

操作员的大部分工作都是机械化的,所以下一步的发展很自然是自动化这些工作步骤,如下图。首先作业的输入被离线收集,使用一台独立的被称为卫星机的机器将卡片数据转储到磁带上(tape)。当磁带满了后,操作员把它挂接(mount)到主计算机上。从磁带上读入作业比卡片快很多,这样传输(transput)资源被省下很多。计算输出也是输出到磁带上,然后再到卫星机离线打印出结果。

前OS3

从上图可以看到还是有一个操作员在计算机和用户之间,那么这时的操作员与之前的操作员有什么区别?还有磁带在挂接入主计算后和卸下输出磁带进行离线输出前,计算机的具体计算过程如何?

为了实现作业的自动执行,一段小的监控程序会驻留在主存,负责协调作业的运行,比如在一道作业执行完后重置主存或加载另一道作业。为了分隔磁带上的不同作业和为满足作业的不同需要,必须建立某种监控程序的控制约定(conventions),这些约定就是命令语言的雏形(rudiments)。比如约定在卡片的第一列标有星号的是控制卡片,用以与数据卡片进行区分。参考一下如下摘自《现代操作系统》的一幅图:

一道批处理作业卡片

监控程序有以下一些职责或功能:

  • 解释命令语言
  • 记录日记
  • 提供设备独立的输入输出功能(用卡片代替磁带作输入)

被执行的程序本身可直接处理输入输出,但是为了方便性,输入输出功能转移到监控程序,这也是设备驱动程序的始祖。

KEMIN:发展到脱机批处理阶段,监控程序可以说是名正言顺的操作系统始祖。但是它不是现代意思的操作系统。因为计算机主存内还是单道程序的,监控程序只接管大部分由操作员管理的工作,把单道步骤的时间压缩到了极限(看当时的硬件速度)。

KEMIN:这一阶段软件引入了监控程序,加快了单道各步骤间的速度;硬件引入了磁带机,加快了数据的输入速度。

3.4 Spooling systems

发展的下一阶段联机系统——Spooling systems,功能改进包括中断的引入,输入输出单元被设计成与计算机同时间运行。输入输出单元在完成读写操作后向主机发一个中断信号,主机接到信号后会保存一些重要信息(比如当前作业的程序计数器),并且跳转指定位置——设备服务程序进行对中断处理。设备服务程序就是设备驱动程序,它被集成入监控程序,用以处理中断请求。

Spooling systems

这一阶段有了磁盘用作计算机的辅助存储介质。这时候的计算机可以一边计算一道作业,一边把第二道个作业读入磁盘,还可以同时打印保存在磁盘的第三道作业的计算结果。不像磁带,磁盘是随机访问的,作业数据可以放在磁盘的任意位置,因此计算机无需按照作业载入的顺序执行任务。这个阶段的监控程序还集成了一个功能很原始的调度程序(scheduler),调度的根据是作业的优先级和执行时间,两个参数都是通过控制卡片指定的。

这个阶段的操作员还需参与部分管理工作:

  • 挂接磁带,载入作业数据;
  • 对作业进行优先级分配等策略决定;
  • 监控程序意外死机时重启机器。

这种运行模式的计算工被称为“spooling system”,这它的监控程序是现代操作系统的开端。

Spooling systems是共享式的计算机,没有为用户单独提供调试程序的机会,这也是下步发展的需求。

KEMIN: Spooling systems引了中断概念,实现了一定并发功能,提高资源的使用率,但是Spooling systems依然是单道的,主存一份作业独占。Spooling systems的监控程序虽然说是现代操作系统的开端,但它的更像是一个功能不多的自动机。体系结构有了一项重大的改变——引入中断机制,实现计算机的异步操作功能;还有随机访问的磁盘的发明增强计算机的功能。个人认为Spooling systems更多的是功能量的变化,没多少质的变化。

KEMIN:这一阶段软件改进……

3.5 Batch multiprogramming

Spooling systems并没有发挥计算机所有资源的最大效率。并不是所有单道作业需要占用全部主存。作业在进行输入输出时,CPU依然是闲置的。多道技术是下一步自然的发展。如下图(圆圈代表作业)。当一道作业在等待输入输出时,另一道作业可进行计算。由于作业的性质不一,多道技术还会有一些问题需要特别处理的。比如,计算集中的作业可能一直占用CPU,迫使数据处理集中的作业等好久而没法前进。时间资源的争夺和分配策略是进程管理一章的主要内容。

多道批处理

多道技术也会引发空间资源的竞争。计算机一次能运行几道作业程序取决于主存容量和硬件划分空间的能力。此外,必须引入某种保护机制防止作业程序间相互影响。在第三章的内存管理,我们将讨论空间分配策略和安全机制。

在主存内的各道程序基本上是互相独立的,监控程序能区分它们并对它们独立地应用策略(比如调度策略)。每道程序都有自己的时间、空间和数据传输的需求。进程的概念被引入用以代替作业的单一步骤的概念。操作系统(用以代替监控程序的称呼)负责跟踪控制进程活动。这一阶段的操作系统结构里,进程已经不可以直接控制输入输出设备了,进程必须向操作系统内核发出服务请求,输入输出也是竞争的资源。

为进程分配资源并不是一件简单的工作。因为进程会在运行过程的不同阶段申请各种资源,这是没法预测的。如果资源不可用,进程会被阻塞,之后又如何处理呢?这是第四章的内容。

随着多道技术的发展,操作系统发展出内核结构的思想。操作系统内核由一组管理子例程组成,负责管理计算机时间、空间和信息传送资源。管理的一种理解是对进程的各种资源请求作出响应。如上图中,来自上层的进程对服务的请求和下层的设备中断处理请求。

内核的各种不同活动会共享一些数据,这些数据不能被修改,必须保持前后一致性。并发控制的机制被添加到操作系统,防止这些活动互相干扰。第八章介绍互斥锁和同步问题。(KEMIN:并发控制只对内核活动吗?)

3.6 Interactive multiprogramming

操作系统发展的下一阶段是交互式多道(interactive multiprogramming)。如下图。面向用户的主要传输设备改用交互式终端,代替过去的卡片或磁带机。现在用户可直接与程序交互,输入任何程序需要的数据,不像过去只能在程序运行之前打包好所有数据。

交互多道

交互式计算常常是被添加到现有的批处理多道环境。比如,TSO(timesharing option)是 OS/360 操作系统的扩展模块。另一方面,批处理则被添加到现有的交互式环境。比如,Unix 操作系统就提供批处理服务。

交互式计算(也称为分时计算)对计算机的使用方式的改变是革命性的。计算机从数字搅碎机演变成了真正的信息处理机。用户可以通过交互式文本编辑软件在线的编纂数据文件。这些文件可以是程序、文档或纯数据。作业或作业步骤的概念没有了,取而代之是互交式会话(sessions ),会话是指从登录(通过终端链接到主机)到登出(断开主机的链接)的一段时间。

在登录的时候,用户一般需要提供用户名和密码。这些数据会被转换成一个用户标识,用户标识用来关联主机上所有用户开的进程和创建的文件。用户标识也用于操作系统内核实现一些控制功能,比如判定是否有权修改文件。

在会话期间,虽然可能同时已经有很多用户登入了,但是用户可以假想终端是独占整个计算机的。通常在用户登入后会有一个进程被创建来为用户提供服务,它就是命令行解释程序(command interpreter)。命令行解释程序和一些其它的交互工具会在第七章讨论,在那里也会对用户界面(user interface.)有一个一般的论述。

分享到:
评论

相关推荐

    Linux 操作系统发展史极其系统特点和应用情况

    Linux 操作系统发展史极其系统特点和应用情况 Linux 操作系统发展史极其系统特点和应用情况 Linux 操作系统发展史极其系统特点和应用情况 Linux 操作系统发展史极其系统特点和应用情况 Linux 操作系统发展史极其系统...

    windows操作系统发展史

    《Windows操作系统发展史》 操作系统,作为计算机硬件与软件资源的管理者,是计算机系统的基石,它的存在使得资源的管理和分配更为高效。操作系统的核心任务包括内存管理、资源优先级设定、输入输出设备控制、网络...

    浅谈计算机操作系统发展史.pdf

    浅谈计算机操作系统发展史 计算机操作系统的发展史是计算机历史的精华所在。操作系统提供了对硬件控制的调用和应用程序所需的功能。早期的计算机没有操作系统,用户需要单独地使用机器,每次只能执行一件任务。程序...

    windows操作系统发展史.docx

    "Windows操作系统发展史" Windows操作系统发展史可以追溯到1985年,微软首次推出了Windows操作系统。从初生到成熟,Windows操作系统经历了多个阶段的发展。以下是Windows操作系统发展史的重要知识点: 1. WINDOWS ...

    windows视窗操作系统发展史.docx

    ### Windows视窗操作系统发展史 #### 一、起源与初步发展(1985-1990) - **1985年11月20日**:微软正式发布首个Windows版本,即Windows 1.0。这个版本最初是为了MS-DOS系统提供一个更加友好的图形用户界面而设计...

    计算机操作系统发展史.ppt

    "计算机操作系统发展史" 计算机操作系统是计算机科学中最重要的组成部分之一,它是指控制和管理计算机硬件资源、提供公共服务的系统软件。操作系统的发展历程可以追溯到20世纪50年代,经过了多个阶段的发展,逐渐...

    计算机操作系统发展历史..ppt

    计算机操作系统发展历史是一个复杂而多样化的过程,它经历了从早期没有操作系统的计算机,到后来的操作系统发展壮大,然后到现代操作系统的崛起。下面是这段历史的重要知识点: 一、早期计算机时代 早期计算机没有...

    操作系统发展历史见解2500字

    操作系统发展历史见解 操作系统的发展历史是计算机技术发展的重要组成部分,从人工操作方式到现代操作系统,经历了从简单到复杂、从低级到高级的一个历史过程。操作系统是计算机硬件系统上的第一层软件,是计算机...

    操作系统发展史.doc

    总的来说,CP/M和DOS是操作系统发展史上的重要里程碑。CP/M开创了微机操作系统的先河,而DOS则通过与IBM PC的结合,确立了个人计算机操作系统的标准,为后来的Windows和其他操作系统奠定了基础。这两个系统的发展...

    计算机操作系统发展历史 .ppt

    在计算机操作系统发展的过程中,我们可以看到,操作系统的发展是和计算机硬件的发展密切相关的。操作系统的发展也推动了计算机的应用和普及,而计算机的应用和普及又反过来推动了操作系统的发展。这是一个互相影响和...

    对汉字操作系统发展史的过程

    汉字操作系统发展史 汉字操作系统发展史可以追溯到20世纪80年代,中国龙、超想、DOS、汇天等关键字都是汉字操作系统发展过程中的重要里程碑。 在汉字操作系统发展的过程中,国内对知识产权保护的大力倡导和软件...

    智能手机操作系统发展历史现状及趋势.pptx

    智能手机操作系统发展历史现状及趋势 智能手机操作系统的发展历史可以追溯到1996年,微软发布了Windows CE操作系统,从此微软慢慢渗透手机操作领域。2001年6月,塞班公司发布了Symbian S60操作系统,作为S60的开山...

    Windows操作系统发展史.pdf

    《Windows操作系统发展史》 Windows操作系统是全球广泛使用的个人计算机操作系统之一,它的历史可以追溯到上世纪80年代。本文将探讨Windows操作系统从最初的1.0版本到98版的重要发展历程。 1. Windows 1.0的诞生 ...

    计算机操作系统发展历史ppt课件.ppt

    "计算机操作系统发展历史" 计算机操作系统的发展历史可以追溯到早期的计算机时代,那时计算机没有操作系统,用户需要独自拥有机器,操作员会带着记录卡或较晚期的打孔纸带去操作机器。程序读入机器后,机器就会开始...

    Windows操作系统发展史.doc

    ### Windows操作系统发展史 #### 一、Windows 1.0:初露锋芒 ##### 1.1 诞生背景 1981年9月,微软公司开始着手开发一款名为“Interface Manager”的新软件,这款软件后来被命名为Windows 1.0。此时,微软正与IBM...

    Windows操作系统发展史参考.pdf

    《Windows操作系统发展史详解》 Windows操作系统,作为全球最广泛使用的个人计算机操作系统之一,其发展历程充满了创新和技术进步。本文将详述Windows从诞生到成熟的关键阶段,包括Windows 1.0、Windows 95和...

    Windows操作系统发展史可用.pdf

    《Windows操作系统发展史》 Windows操作系统,作为全球最广泛使用的个人计算机操作系统之一,自诞生以来经历了多次重大变革和发展。从最初的雏形到如今的现代化操作系统,Windows见证了个人计算机技术的飞速进步。 ...

    UNIX操作系统发展史.pdf

    UNIX操作系统发展史是一个充满创新与变革的技术历程,它起源于1965年AT&T贝尔电话实验室、通用电气公司和麻省理工学院MAC课题组共同发起的Multics计划。Multics的目标是创建一个能支持大量用户同时访问、具有强大...

    微软操作系统发展史_图片

    微软操作系统发展史,图片描述了微软的发展史

Global site tag (gtag.js) - Google Analytics