通过操作系统的发展历史搞懂作业、脱机、单道、多道等概念(Windows程序员视角)

我是荔园微风,作为一名在IT界整整25年的老兵,最近发现在所有学习操作系统的同学中,普遍发现不理解作业、脱机、单道、多道等概念。

很多老师上课并没有仔细讲解这些概念,使学生不理解操作系统中的作业、脱机、单道、多道等概念,给学生带来了巨大的痛苦,使他们完成不理解后续的一些问题。还有一些老师认为这是不言自明的概念,也就没有讲解。其实学生如果不理解其中的概念,又会花很多时间去查阅相关概念,浪费更多的时间。

要真正理解操作系统中的作业、脱机、单道、多道等概念,那就一定要从操作系统的历史讲起。下面我们开始讲解:

操作系统的发展过程其实和早期人们遇到的问题有很大关系,比如,为解决处理器和设备的速度矛盾而提出了脱机输入/输出技术,为了减少人为干预而产生了批处理技术等。

操作系统是由客观需要而产生的,它随着计算机技术本身及其应用的发展而不断完善。操作系统也经历了如下发展过程:无操作系统阶段(手工操作与脱机输入/输出)、单道批处理系统和多道批处理系统(多道程序设计)。

1.无操作系统阶段

(上图是搜索引擎搜索出来的,觉得做得真的很好,于是贴上来)

在第一代计算机时期,构成计算机的主要元器件是电子管,计算机运行速度慢,没有操作系统,没有软件,人们采用手工操作方式操作计算机。在手工操作方式下,用户一个接一个地轮流使用计算机,每个用户的使用过程大致如下:先将程序纸带(或卡片)装入输入机,然后启动输入机把程序和数据送入计算机,接着通过控制台开关启动程序运行,当程序运行完毕后,由用户取走纸带和结果。

由此可以推断,这种操作方式具有用户独占计算机资源、资源利用率低以及CPU等待等人工操作的特点。随着CPU速度的大幅提高,手工操作的慢速与CPU运算的高速之间出现了矛盾。此外,CPU和I/O设备之间速度不匹配的矛盾也越来越明显。为了缓和这个问题,引入了脱机输入/输出技术,终于获得了较为满意的效果。

脱机输入/输出技术是为了解决CPU和I/O设备之间速度不匹配的矛盾而提出的,此技术减少了CPU的空闲等待时间,提高了I/O速度。其输入/输出方式如下图所示。

为解决低速输入设备与CPU速度不匹配的问题,可以将用户程序和数据在一台外围机的控制下,预先从低速输入设备(纸带机)输入到输入带上,当CPU需要这些程序和数据时,再直接从输入带高速输入到内存,从而大大加快输入速度,减少CPU等待输入的时间,这就是脱机输入技术。

类似地,当程序运行完毕或告一段落,当CPU需要输出时,无须直接把计算结果送至低速输出设备(打印机),而是高速地把结果送到输出带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术。若输入/输出操作在主机控制下进行,则称为联机输入/输出。

采用脱机输入/输出技术后,低速I/O设备上数据的输入/输出都在外围机的控制下进行,而CPU只与高速的输入带及输出带打交道,从而有效地减少了CPU等待慢速设备输入/输出的时间。

详细说明这个的目的在于使大家了解脱机输入/输出的模型,因为缓冲区技术以及SPOOLing技术等,都是基于这种原理产生的。理解了这个模型,对之后学习有较大的帮助。

2.单道批处理系统

(上图是搜索引擎搜索出来的,觉得做得真的很好,于是贴上来)

早期的计算机系统非常贵,为了能充分利用,应尽量使系统连续运行,以减少空闲时间。为此,通常是把一批作业以脱机输入方式输入到磁带上,并在系统中配置监督程序(管理作业的运行,负责装入和运行各种系统程序来完成作业的自动过渡),在其控制下,先把磁带上的第一个作业传送到内存,并把运行的控制权交给第一个作业,当第一个作业处理完后又把控制权交还给监督程序,由监督程序再把第二个作业调入内存。计算机系统按这种方式对磁带上的作业自动地一个接一个进行处理,直至把磁带上的所有作业全部处理完毕,这样便形成了早期的批处理系统。下图给出了单道批处理系统工作示例。

从图中可以看出,每当程序发出I/O请求时,CPU便处于等待I/O完成的状态,致使CPU空闲。

单道批处理系统主要有如下特点:

自动性。在顺利的情况下,在磁带上的一批作业能自动地依次运行,而无须人工干预。

顺序性。磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序在正常情况下应完全相同,即先调入内存的作业先完成。

单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

3.多道批处理系统

(上图是搜索引擎搜索出来的,觉得做得真的很好,于是贴上来)

为进一步提高CPU的利用率,引入了多道程序设计技术,由此而形成了多道批处理系统。多道程序设计技术是将一个以上的作业存放在主存中,并且同时处于运行状态。这些作业共享处理器、外设以及其他资源。现代计算机系统一般都基于多道程序设计技术。下图给出了多道程序工作示例。

在单处理器系统中,多道程序运行的特点如下:

多道。计算机内存中同时存放多道相互独立的程序。

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

微观上串行。实际上,内存中的多道程序轮流占用CPU,交替运行。

多道程序设计技术能有效提高系统的吞吐量和改善资源利用率。但实现多道程序系统时,由于主存中总是同时存在几道作业,因此还需要妥善解决下述一系列问题。

如何分配处理器,以使处理器既能满足各程序运行的需要又有较高的利用率;将处理器分配给某程序后,应何时收回等问题。

如何为每道程序分配必要的内存空间,使它们各得其所又不致因相互重叠而失去信息;如何防止因某个程序出现异常情况而破坏其他程序。

系统中可能有多种类型的I/O设备供多道程序共享,应如何分配这些I/O设备;如何做到既方便用户对设备的使用,又能提高设备的利用率。

在计算机系统中,通常都存放着大量的程序和数据,应如何组织它们才能便于用户使用并能保证数据的安全性和一致性。

对于系统中的各种应用程序,它们有的属于计算型,有的属于1/O型,有的作业既重要又紧迫,有的作业要求系统能及时响应,这时应如何组织这些作业。

4.操作系统的形成

为了解决上述问题,应在多道程序系统中增设一组软件,用这组软件对上述问题进行妥善有效的处理。此外,还应提供方便用户使用计算机的软件,这样便形成了操作系统。操作系统是一组控制和管理计算机硬件和软件资源,合理地组织计算机工作流程以及方使用户的程序的集合。

下面再来看看操作系统的分类

操作系统有3种基本类型,即批处理操作系统、分时操作系统和实时操作系统。随着计算机体系结构的发展,许多种操作系统应运而生,比如嵌入式操作系统、个人多任务计算机操作系统和分布式操作系统。

有很多资料和书上还分出一个什么网络操作系统,我对这种分类持保留意见,我认为把操作系统分出一类网络操作系统真的是很没有必要,也很莫名其妙,网络只是操作系统的一个功能,用一个功能代指整个系统好像有点那个什么,毕竟除了网络之外,操作系统每一个部分都有创新啊。我认为分为个人多任务计算机操作系统比较合理一些。

1.批处理操作系统

描述任何一种操作系统都要用到“作业”的概念。所谓作业,就是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。

单道批处理操作系统是早期计算机系统中配置的一种操作系统类型。其工作流程大致如下:系统操作员将用户作业收集起来,并将这些作业组成一批输入并传送到外存。批处理操作系统每次将其中的一个作业调入运行,同时只有一道作业处于运行状态,运行完成或出现错误而无法再进行下去时,输出有关信息并调入下一个作业运行。如此反复处理,直到这一批作业全部处理完毕为止。

单道批处理操作系统大大提高了机器的利用率,减少了人工操作的时间。但是对于某些作业来说,当其发出输入/输出请求后,CPU必须等待IO的完成,这就意味着CPU空闲,特别是当I/O设备的速度较慢时,将导致CPU的利用率很低。为了提高CPU的利用率,引入了多道程序设计技术。

在单道批处理操作系统中引入多道程序设计技术,就形成了多道批处理操作系统。在多道批处理操作系统中,不仅在主存(也称内存)中可以同时有多道作业运行,而且作业可随时(不一定集中成批)被接受进入系统,并存放在外存中形成作业队列,然后由操作系统按一定的原则从作业队列中调度一个或多个作业进入主存运行。多道批处理操作系统一般用于计算中心的大型计算机系统。

多道批处理操作系统的主要特点如下:

用户脱机使用计算机。用户提交作业之后,在获得结果之前几乎不和计算机交互。

成批处理。工作人员把用户提交的作业分批进行处理,由监督程序负责每批作业间的自动调度。

多道程序运行。按多道程序设计的调度原则,从一批后备作业中选取多个作业调入内存并组织其运行,成为多道批处理系统。

由于多道批处理系统中的资源为多个作业所共享,作业之间自动调度执行,并且在运行过程中用户不干预自己的作业,从而大大提高了系统资源利用率和作业吞吐量。其不足之处是无交互性,一旦提交作业,用户就失去了对其运行的控制能力,使用不方便。

2.分时操作系统

(上图是搜索引擎搜索出来的,觉得做得真的很好,于是贴上来)

在批处理操作系统中,用户以脱机操作方式使用计算机,在提交作业后,用户就完全脱离了自己的作业,在作业运行过程中,不管出现什么情况都不能加以干预,只有等待该批处理作业处理结束,用户才能得到计算结果,根据计算结果再做下一步处理。若作业运行出错,还要重复上述过程。这种操作方式对用户而言是极不方便的,人们希望能以联机方式使用计算机(即交互性更好),这种需求导致了分时操作系统的产生。

所谓分时技术,就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给另一个作业使用,等下一轮时再继续运行。由于计算机速度很快,作业运行轮转也很快,给每个用户的感觉都好像是自己独占一台计算机。

在操作系统中采用分时技术就形成了分时操作系统。在分时操作系统中,一台计算机和许多终端设备连接,用户可以通过终端向系统发出命令,请求完成某项工作,而系统则分析从终端设备发来的命令,完成用户提出的要求,然后用户再根据系统提供的运行结果,向系统提出下一步请求,这样重复上述交互会话过程,直到用户完成预计的全部工作为止。实现分时操作系统有下述几种方法:

简单分时操作系统。在简单分时操作系统中,内存只驻留一道作业,其他作业都在外存上。每当内存中的作业运行一个时间片后,便被调至外存(称为调出),再从外存上选一个作业装入内存(称为调入)并运行一个时间片,按此方法使所有作业都能在规定的时间内轮流运行一个时间片,这样,所有用户都能与自己的作业交互。

具有“前台”和“后台”的分时操作系统。为了改善系统性能,引入了“前台”和“后台”的概念。这里,把作业划分为“前台”和“后台”两类。“前台”存放按时间片调入/调出的作业流,其工作方式与简单分时操作系统相同;“后台”存放批处理作业。仅当“前台”正在调入/调出或无调入/调出作业流时,才运行“后台”的批处理作业,并给它分配更长的时间片。

多道分时操作系统。在分时操作系统中引入多道程序设计技术后,内存中可以同时装入多道作业,系统把所有具备运行条件的作业排成一个队列,使它们依次轮流获得一个时间片运行。

分时操作系统具有以下特征:

多路性。指一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。

交互性。分时操作系统中用户的操作方式是联机方式,即用户通过终端采用人机会话的方式直接控制程序运行,同程序进行交互。

独占性。由于分时操作系统采用时间片轮转的方法使一台计算机同时为许多终端用户服务(通常能在2~3s内响应用户请求),因此客观效果是这些用户彼此之间都感觉不到别人也在使用这台计算机,好像自己独占计算机一样。

及时性。系统能够在较短时间内响应用户请求。

3.实时操作系统

(上图是搜索引擎搜索出来的,觉得做得真的很好,于是贴上来)

实时操作系统是操作系统的又一种类型。对外部输入的信息,实时操作系统能够在规定的时间内处理完毕并做出反应。“实时”的含义是指计算机对于外来信息能够以足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速反应。实时操作系统对响应时间的要求比分时操作系统更高,一般要求秒级、毫秒级甚至微秒级的响应时间。

实时操作系统可以分成如下两类:

实时控制系统。通常是指以计算机为中心的生产过程控制系统,又称为计算机控制系统。例如,钢铁冶炼和钢板轧制的自动控制,化工、炼油生产过程的自动控制等。在这类系统中,要求实时采集现场数据,并对它们进行及时处理,进而自动控制相应的执行机构,使某参数(如温度、压力、流量等)能按预定规律变化或保持不变,以达到保证产品质量、提高产量的目的。

实时信息处理系统。在这类系统中,计算机及时接收从远程终端发来的服务请求,根据用户提出的问题对信息进行检索和处理,并在很短时间内对用户做出正确响应,如机票订购系统、情报检索系统等,都属于实时信息处理系统。

实时操作系统的主要特点是提供及时响应和高可靠性。系统必须保证对实时信息的分析和处理的速度要快,而且系统本身要安全可靠,因为诸如生产过程的实时控制、航空订票等实时事务系统,信息处理的延误或丢失往往会带来不堪设想的后果。

批处理操作系统、分时操作系统和实时操作系统是3种基本的操作系统。若一个操作系统兼有批处理、分时和实时系统或其中两者的功能,则称该操作系统为通用操作系统。

  1. 其他操作系统

(1)嵌入式操作系统

嵌入式操作系统是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的软件系统。嵌入式操作系统支持嵌入式软件的运行,它的应用平台之一是各种电器,该系统面向普通家庭和个人用户。

(2)集群系统

集群系统将两个或多个独立的系统耦合起来,共同完成一项任务。通常定义是集群计算机共享存储并通过LAN网络紧密连接。集群通常有若干个节点计算机和一个或多个监视计算机,其中监视计算机对节点进行管理控制、发布工作指令等。集群通常用来提供高可用性,比如集群中某个节点失效,其他节点可以迅速接替其工作,使用户感觉不到服务中断。

(3)分布式操作系统

分布式系统是指多个分散的处理单元经互联网络连接而成的系统,其中每个处理单元既具有高度自治性又相互协同,能在系统范围内实现资源管理、动态分配任务,还能并行地运行分布式程序。

配置在分布式系统上的操作系统称为分布式操作系统。分布式操作系统具有以下特征:

统一性。即它是一个统一的操作系统。共享性。即分布式操作系统中的所有资源是共享的。透明性。是指用户并不知道分布式操作系统是运行在多台计算机上,在用户眼里整个分布式系统像是一台计算机,用户并不知道自己请求系统完成的操作是哪一台计算机完成的,也就是说,系统对用户来讲是透明的。自治性。即分布式操作系统中的多个主机都处于平等地位。分布式操作系统可以用较低的成本获得较高的运算性能。可靠性高,由于有多个CPU系统,因此当一个CPU系统发生故障时,整个系统仍旧能够工作。

好了,回到我们的主要话题,那我们平时用的Windows操作系统是批处理系统?还是分时系统?还是实时系统?还是别的?

我想应该这么回答:如果一定要算哪种系统,整体上那应该是接近分时操作系统,但又不完全是分时操作系统,windows系统现在已形成一个多系列,多用途,多任务的操作系统集合。严格上说它的本质应该是多种集合的操作系统,它在运行过程中,根据不同的进行会有实时响应和分时响应,部分功能中也可以实现分布式操作。同时,根据它的版本和用途不同,它也有网络操作系统版本,也有嵌入式系统版本。总之,是一个综合的操作系统的,集成了各种系统的特点和优点。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值