操作系统发展历史

操作系统诞生距今已经有了几十年的时间,它是计算机资源的管理者。最初的人们是没有操作系统来对计算机加以控制的,一直都处于人工管理方式来对计算机进行操作和管理,人机交互之间出现了人工手动的低速和计算机的高速处理形成了尖锐的矛盾,资源利用率非常的低,从而导致计算机的效率十分低下。

为了解决人工干预和 CPU 速度不匹配的矛盾,提高计算机的使用效率,后来出现了世界上第一个的操作系统——脱机输入/输出,用户先将卡片输入到纸带机,然后通过卫星机的处理,将纸带的数据高速写入磁带,主机运行时再将磁带上的数据高速读入内存,输出也可以这样中转,由于数据的读取和写入是脱离主机运行的,所以这样的处理方式称为脱机输入/输出方式。

虽然脱机输入输出方式进一步提高了计算机的运行效率,但是在计算机工作过程中还是需要人工进行干预,后来就出现了批处理系统。在批处理系统中,操作员将一批作业输入进磁带中,然后运行第一个程序,当第一个作业完成后自动读入下一个作业,直至所有作业全部完成。由于该类系统的内存中只能保持一个作业运行,所以这类系统又称为单通道批处理系统。

到了 20 世纪 60 年代出现了多道批处理系统能够做到计算机内存中的作业并发执行。直到后来出现的分时操作系统能够让多个用户共同使用一个操作系统可以随时和计算机进行交互,并且让各个用户都感受不到其他用户的存在。随着计算机技术的发展,越来越多的用户希望操作系统能够实时地对用户进行反馈,在 1980 年,为了让计算机能够实时地反馈,后来又出现了实时操作系统,对冶炼、发电、炼油、化工、机械加工等的自动控制起到了重要作用。如今操作系统仍然发挥着越来越重要的作用,本文将对操作系统发展史上最为经典的三种进行详细综述。

批处理系统

定义:批处理系统就是成批处理一些程序的系统。批处理分为联机批处理和脱机批处理两种。

诞生时间:20 世纪 50 年代。

代表作:第二代通用计算机 IBM 的 1401 和 7094。

背景:为了提高单一操作员单一控制终端的操作系统 SOSC 的效率,人们提出了批处理操作系统。SOSC 效率低下是因为计算机总是在等待人的下一步动作,而人的动作总是很慢。因此,人们觉得,如果去掉等待人的时间,即让所有的人先想好自己要运行的命令,列成一个清单,打印在纸带上,然后交给一个工作人员来一批一批的处理,效率不就提高了吗?这样就形成了批处理操作系统。

下面就批处理系统的三个方面进行讨论。

联机批处理

在联机批处理中,编制了一个常驻内存的监督程序,用来控制用户作业的运行。其处理过程为:用户将所需解决的问题组成作业,交给操作员,操作员有选择地把若干作业合成一批,并把一批作业装到输入设备上,然后由监督程序控制送到辅存,再从辅村中将一个一个作业调入内存运行,直到全部作业处理完毕。

脱机批处理

脱机批处理系统由主机和卫星机组成。卫星机又称外围计算机,它不与主机直接连接,只与外部设备打交道。作业通过卫星机输入到磁带上,当主机需要输入作业时,就把输入带从卫星机的磁带机上取下,并装入到主机的磁带机上。于是,主机可以连续的处理由输入带输入的许多用户作业,并把这些作业的运行结果不断地输出到输出带上。最后,多个用户作业的输出结果再通过卫星机连接的打印机打印出来。

脱机批处理产生的目的

缓解主机与外设的矛盾提高 CPU 的利用率。

多道批处理系统

诞生时间:20世纪60年代

多道程序系统

多道程序系统是控制多道程序同时运行的程序系统,由它决定在某一个时刻运行哪一个作业,或者说,是在计算机内存中同时存放几道互相独立的程序,使他们在管理程序控制之下,相互穿插地运行,即使多道程序在系统内并行工作。

主要特征:

  1. 多道,即计算机内存中同时存放几道相互独立的程序。

  2. 宏观上并行,同时进入系统的几道程序都处于运行过程中,即他们先后开始了各自的运行,但都未运行完毕。

  3. 微观上串行,内存中的多道程序轮流地或分时地占有 CPU,交替执行。

多道批处理系统

多道批处理系统有两个含义:一是多道,二是批处理。多道是在计算机内存中同时存放多个作业,它们在操作系统的控制下并发执行,而且在外存中还存放有大量的作业,并组成一个后备作业队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业调入内存运行。

分时系统

分时系统的起源

**背景:**在多道批处理系统的时代,人们主要提高对系统资源的利用率和系统的吞吐量。但是由于时代的发展,人们又提出了另一个问题,在人们将制作在卡片上的程序交由计算机执行时,用户无法即时获得程序运行的结果。这一问题很有可能导致很严重的后果发生。基于这个问题,人们考虑能否让人回到计算机前来,每个人即时管理自己的程序,但又由于20世纪60年代计算机还十分昂贵,所以一台计算机要同时供多个用户共享使用,每个用户在共享一台计算机时都希望能像独占时一样,不仅可以随时与计算机进行交互,而且还不会感觉到其他用户的存在。于是分时系统就在这样情况下诞生。

分时系统的介绍

分时系统是允许多个联机用户同时使用一台计算机进行处理的系统。系统将 CPU 在时间上分割成很小的时间段,每个时间段称为一个时间片。每个联机用户通过终端以交互方式控制程序的运行,系统把 CPU 时间轮流分配给个联机作业,每个作业只运行极短的时间片,从而使每个用户都有一种 “独占计算机” 的感觉。

分时系统实现的关键问题

  1. 人机交互问题

    • 及时接收
    • 及时处理
  2. 共享主机问题

分时系统的主要目标

为了方便用户使用计算机系统,并在尽可能的情况下,提高系统资源的利用率。

分时系统的主要特征

多路性

是指系统允许将多台终端同时连接到主机上,并按分时原则为每个用户服务。多路性允许多个用户共享一台主机,显著提高资源利用率,降低使用费用,促进计算机更广泛的应用。

独立性

是指系统提供了这样的用机环境,即每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是一个人在使用主机。

交互性

是指用户可通过终端与系统进行广泛的人人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务,如进行文件编辑和数据处理,访问系统中的文件和数据库,请求提供打印服务等。

及时性

是指用户的请求能在很短的时间内获得响应。这一时间间隔是根据人们所能接受的等待时间确定的,通常仅为 1~3 秒钟。

分时系统的优点

自然操作方式

该系统使用户能在较短的时间内采用交互式会话工作方式,及时输入、调度、修改和运行自己的程序,因而加快了解题周期。

扩大了应用范围

无论是本地用户,还是运地用户,只要与计算机连在一台终端设备,就可以随时随地使用计算机。

便于共享和交换信息

远近终端用户均通过系统中的文件系统彼此交流信息和共享各种文件。

经济实惠

用户只须有系统配备的终端,即可完成各种处理任务,可共享大型的具有丰富资源的计算机系统。

分时系统实例解析

若选择时间片为 100ms,系统中有 20 个用户分享 CPU,并忽略用户程序间的切换时间开销,则每个用户的平均响应时间为:100ms*20=2秒。在假设 CPU 运行速度为 200 万次/秒,则对每个用户程序来说,等价的 CPU 速度为:200/20=10万次/秒。

分时系统的图形表示

02_操作系统发展历史.png

实时操作系统

实时操作系统的起源

1980 年,加拿大两个大学生 Gordon Bell 和 Dan Dodge,在学习操作系统设计课程期间,萌发了设计 “实时操作系统(RTOS)” 的念头,并且动手干了起来,最终做出了一个实时操作系统的微内核。

实时操作系统的定义

实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有软实时系统和硬实时系统之分。软实时系统在规定时间得不到响应所产生的后果是可以承受的,如流水装配线。即使装配线瘫痪,也只是损失了资金;而硬实时系统在得不到实时响应后则可能产生不能承受的灾难,如导弹防卫系统。如果反应迟钝,结果就可能是严重损失。

实时操作系统的分类

计算机应用到实时控制中,配置实时操作系统,就可组成各种各样的实时系统。目前,在计算机应用中,过程控制和信息处理都有一定的实时要求,据此,把实时系统分为实时过程控制系统和实时信息处理系统两大类。[2]

实时过程控制

它又可分为两类:一类是以计算机位控制中枢的生产过程自动化系统,如冶炼、发电、炼油、化工、机械加工等的自动控制。在这类系统中,要求计算机及时采集和处理现场信息,控制有关的执行装置,使得某些参数,如温度、压力、流量、液位等按一定规律变化,从而达到实现生产过程自动化的目的。

另一类是飞行物体的自动控制,如飞机、导弹、人造卫星的制导等。这类系统要求反应速度快,可靠性高。通常要求系统的响应时间在毫秒甚至微秒级内。

实时信息处理

它通常配有大型文件系统或数据,事先存有经过合理组织的大量数据,它能及时响应来自终端用户的服务请求,如进行信息的检索、存储、修改、更新、加工、删除、传递等,并能在短时间内对用户作出正确的回答。

如情报检索、机票预定、银行业务、电话交换等都属此类系统。这类系统除要求响应时间及时外,并要求有较高的可靠性、安全性和保密措施等。

实时操作系统的特点

对外部进入系统的信号或信息应能做到实时响应。

实时系统较一般的通用系统有规律,有许多操作具有一定的可预计性。

实时系统的终端一般作为执行和询问使用,不具有分时系统那样有较强的会话能力。

实时系统对可靠性和安全性要求较高,常采用双工工作方式。

实时系统的代表——VxWorks

VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连 1997 年 4 月在火星表面登陆的火星探测器、2008 年 5 月登陆的凤凰号,和 2012 年 8 月登陆的好奇号也都使用到了 VxWorks 上。