操作系统发展的简单历程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/msdnwolaile/article/details/51106219

从无操作系统计算机到脱机输入,输出,在后来的单道批处理系统到多道批处理系统,在到分时系统,实时系统,我们在一点一点的进步!!!



无操作系统的计算机系统

世界上第一台计算机,1946年2月14日,ENIAC在美国宾夕法尼亚大学诞生,但是,计算机是利用成千上万个真空管做成的,每一秒可以执行5000次的加法运算,体积相当庞大,且功耗非常大(耗电相当可怕),而且真空管的损耗率相当高;(此时,还没有加入操作系统,计算机只识别0,1,所以,我们想让计算机完成的任务都必须通过0,1数据告知),计算机的操作是由程序员采用人工操作方式直接使用计算机硬件系统,即程序员事先将已穿孔(对应于程序和数据)的纸带(或者卡片)装入纸带输入机(或者卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行,当程序运行完毕并取走计算结果之后,才让下一个用户上机

1,用户独占全机(也就是说计算机及其全部资源只能由上机用户独占)

2,cpu等待人工操作,就是说:在用户(程序员)进行装卡,斜卡等操作的时候,cpu一定是空闲的

可以知道,人工操作严重降低了计算机资源的利用率,这也就是所谓:人机矛盾,  随着cpu速度的提高和系统规模的扩大,人机矛盾日益严重,此外随着cpu速度的迅速提高而I/o设备的速度却提高缓慢,又突出了cpu、i/o设备之间的矛盾


脱机输入、输出方式

为了解决人机矛盾以及cpu和i/o设备之间速度不匹配的矛盾,紧接着出现了脱机输入、输出(OFF-Line I/o)技术

该技术是事先将装有用户程序和数据的纸带(或者卡片)装入纸带输入机(或者卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当cpu需要这些程序和数据时,再从磁带上将其高速的调入内存;

同样的,当cpu需要这些程序和数据时,可由cpu直接高速的把数据从内存送到磁带上,然后再在另外一台外围机的控制下,将磁带上的结果通过相应的输出输入设备输出

                     输入输出------外围机------磁盘

由于程序和数据的输入输出都是在外围机的控制下完成的,或者说;它们是在脱离主机的情况下进行的,故称之为:脱机输入、输出方式;

反之:在主机的直接控制下直接进行输入,输出的方式称为:联机输入,输出(ON-Line I/o)方式

脱机I/o的优点:减少了cpu的空闲时间,装带(卡),卸带(卡)以及将数据从低速i/o设备送到高速磁带上,都是在脱机的情况下进行的,并不占用主机时间,从而有效的减少了cpu空闲时间

提高了I/o速度,当cpu需要数据时,直接从高速磁带或磁盘上将数据调入内存,缓和了cpu与i/o设备不匹配的矛盾


单道批处理系统

上世纪50年代,发明了晶体管,人们开始用晶体管来代替真空管来制作计算机,这也就是第二代计算机(体积大大减小,功耗显著降低,可靠性增加,但是计算机系统还是非常昂贵的),为了能充分的利用cpu资源,通常是把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下使这批作业能一个接一个的连续处理。其自动处理过程是:首先,由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完成时,又把控制权交还给监督程序,在由监督程序把磁带上的第二个作业调入内存。计算机系统就这样自动的一个作业一个作业的进行处理,直至磁带上的所有作业全部完成,这样也就形成了早期的批处理系统。由于系统对作业的处理都是成批进行的,且在内存中始终只保持一道作业(即当前正在运行的作业才能驻足内存,作业的执行顺序是先进先出),故:称之为:单道批处理系统



多道批处理系统

20世纪60年代中期,人们开始利用小规模集成电路来制作计算机,各方面又得到很大的提高;在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,引入了多道批处理系统。在这个系统中,用户所提交的作业都是先存放在外存上并排成一个队列,称为:“后备队列”,然后,由作业调度程序按照一定的算法从后备队列中选择若干个作业调入内存,使他们共享cpu和系统中的各种资源

1,提高了cpu的利用率,当内存中仅有一道程序时,每逢该程序在运行中发出i/o请求后,cpu空闲,必须在其i/o完成后cpu才能继续运行;尤其因为i/o设备的低速性,更使cpu的利用率明显降低,当有多个作业时,a作业执行的过程中发生i/o请求,这个时候cpu就可以调用b作业了

2,可以提高内存和i/o设备利用率,为了能运行较大的作业,通常内存都具有较大容量,但由于80%以上的作业都属于中小型作业,因此在弹道程序系统环境下,也势必造成内存的浪费。类似的,对于系统中所配置的多种类型的i/o设备,在单道程序环境下也不能充分利用

3,增加系统的吞吐量(单位时间内完成的总工作量,1,cpu和其它资源保持“忙碌”状态 2,仅当作业运行完成或运行不下去时才去切换,系统开销小)。

4,平均周转时间长。(作业的周转时间是从作业进入系统开始直至其完成并退出为止所经历的时间,批处理中,作业要排队,依次进行处理,因而作业的周转时间较长)

5,无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互


分时系统:

分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好的将一台计算机提供给多个用户同时使用,提高计算机的利用率。经常用于查询系统中,满足许多查询用户的需要。

1,人-机交互:(每当我们写好程序时,都需要上机调试。新编的程序都可能有出错或者不合理之处,我们希望能边运行边修改,对程序中的错误进行修改,即就是:人-机交互)

2,共享主机:(因为以前的计算机相当昂贵,不可能像现在这样每人独占一台计算机,而只能是多个用户共享一台计算机,但是,用户在使用机器时应能够像自己独占计算机一样,不仅可以随时的与计算机进行交互,而且应该感觉不到其他用户也在使用当前的计算机)

3,便于用户上机:(多道批处理系统中,用户上机前必须把自己的作业邮寄或亲自送到机房,明显很不方便,用户希望能通过自己的终端直接将作业传送到机器上进行处理,并且合理的对作业进行控制)

所以可以简单的理解:分时操作系统(CTSS, Compatable Time Sharing System),就是在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互的方式使用计算机,,共享主机中的资源(第一台真正的分时操作系统是由麻省理工学院开发的,之后:麻省理工又和贝尔实验室,通用电气公司联合发出多用户多任务操作系统-MULTICS,机器支持数百用户,(其中,参加该项目的贝尔实验室的Ken Thempson,在PDP-7小型及上开发的MULTICS版本,就是当今广为流行的UNIX系统的前身))


分时系统的关键问题:1,及时接受(要及时接受用户键入的命令或数据,可以在系统中配置一个多路卡,当要在主机上连接8个终端时,须配置一个8用户的多路卡,多路卡主要的作用是使主机能同时接受各用户从终端输入的数据,然后,我们还需要在每一个终端配置一个缓冲区,用来暂时存储用户键入的命令)

                                    2,及时处理(人机交互的关键,是使用户键入的命令能及时的控制自己作业的运行或者修改自己的作业。为此,各个用户的作业都必须在内存中,且能频繁的获得处理机而运行,不然,用户键入的命令将无法作用到自己的作业上,无法得到执行)


所以此刻的人机交互完全的改变了原来批处理系统的运行方式。首先,用户作业不能先进入磁盘,然后在调入内存。因为作业在磁盘上不能运行,因为作业在磁盘上不能运行,也就不能实现交互。其次:不允许一个一个作业长期占用处理机,直至它运行结束或出现I/O请求后,方才调度其它作业运行,所以应该规定每一个作业只运行很短的时间(例如:0.1秒钟,这也就是所谓的时间片),便暂停该作业的运行,并立即调度下一个程序运行,这样,也就可以在一定的时间内将所有的作业都执行完,实现及时的交互,然后得到及时的响应

多路型:(允许一台主机上同时连接多台联机终端,宏观上:多个用户同时工作;微观上:每个用户作业轮流运转一个时间片)

独立性:(每一个用户各占一个终端,彼此独立操作,,互不干扰,感觉就是我一个人在独占主机,哈哈)

及时性:(用户的请求能在很短的时间内获得响应)

交互性:可以通过终端和系统进行广泛的人机对话



实时系统:

所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时响应外部事件的请求,在规定的时间片内完成对该事件的处理,并控制所有实时任务协调一致的运行。


虽然多道批处理系统和分时系统已能获得比较满意的资源利用率和响应时间,但是,但是,但是,貌似仍然不能满足下面的这些领域的需要

1,实时控制(系统要求能实时的采集现场数据,并对所采集的数据进行及时处理,最后能按照一定的预订进行变化,如:飞机的自动驾驶系统,导弹的制导系统,火炮的自动控制)

2,实时信息处理(根据用户提出的请求对信息进行检索和处理,并在很短的时间内为用户作出正确的响应,如:飞机或者火车的订票系统)


分时系统和实时系统

1,多路性:实时信息处理系统也按分时原则为多个终端用户服务。实时控制系统的多路性则主要表现在对多路现场信息进行采集,       以及对多个对象及多个执行机构进行控制。而分时系统中的多路性与用户情况有光,时多时少。
2,独立性:分时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立的操作,互不干扰;而实时控制系统           中,对信息的采集和对对象的控制也都是彼此互不干扰。
3,及时性:实时信息处理系统对实时性的要求与分时系统类似,是以人所能承受的等待时间来确定的;而实时控制系统的及时性,       则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100毫秒。
4,交互性:实施信息处理系统虽然也有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系       统那样能像终端用户提供数据处理和资源共享等服务。
5,可靠性:分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的        经济损失,甚至是无法预料的灾难性后果,所以在世时系统中,往往采取了多级容错措施来保障系统的安全性及数据的安全性。


本文严重参考:百度百科

                            计算机操作系统(第三版)

没有更多推荐了,返回首页