13操作系统的发展与分类
# 1.1_3_操作系统的发展与分类
各位同学大家好,在这个小节当中,我们会学习操作系统的发展和分类,那么这个小节会按照操作系统发展的过程来依次讲解它在各个阶段的一些特性。
那么我们考研当中常考的是绿框部分,下面这三种操作系统的类型,大家只需要做简单的了解就可以了。在学习小节的知识点的时候,大家要注意重点要理解这些各个发展阶段的主要的优点和缺点。那么有个规律是其实这些各个发展阶段,他们的主要优点都是解决了上一个阶段留下来的主要缺点。那么我们按照这样的从上至下的这种顺序来依次了解一下各个阶段。
# 手工操作阶段
首先看第一个手工操作阶段,这个其实就是计算机刚被发明的那个时候使用的一种方式,这个阶段是没有操作系统的,那么一个程序员写程序是需要在这样一个纸带上,它用打孔机来写的。我们知道计算机可以识别的是二进制的机器码,也就是只能识别 0 和 1 这两种二进制数。那么程序员在纸袋上打了一个孔,就代表一个二进制的一,没打孔的地方可代表的就是 2 进制的 0。那么当他把自己的程序写在纸带上之后,需要把纸带装到纸袋机上,纸带机又会读取纸带中的数据,然后把这些数据输入到计算机当中,之后计算机处理完了这些数据,又会把这些数据从内存输出到从内存通过 CPU,然后输出到纸带机上,之后用户再从纸带机上取走,这输出的纸带上就是用户的程序执行的结果。
那么在这个过程中我们会发现计算机的处理速度其实是非常快的,而纸带机的输入输出速度是很慢的,所以这就会导致在计算机这种快速处理的设备,它需要等待慢速输入输出的过程,CPU 会有大量的空闲的时间来等待输入输出操作的完成。
那么除此之外,人工用手工的方式把计算把自己的程序的数据放到纸带,从纸带机取走,这是一个更慢的过程。所以手工操作阶段就暴露出了一个主要的缺点,就是用户独占全机和人机速度矛盾导致的资源利用率低。
人机速度矛盾是指,手工操作的速度和这个机器读取和输出的速度相比,人工速度会很慢。
另外用户独占全机的意思是说,一个用户他把自己的程序放入到纸带机,然后要等待他执行完了之后,用户取走自己的数据,这个时候下一个用户才可以继续接着使用计算机系统所以。在一个时间段内,整个系统只能为一个用户服务,所以说用户独占全机,这是手工操作阶段暴露出的一个主要缺点。
# 单道批处理系统
那么为了解决这个问题,就人们发明了单道批处理系统,单道批处理系统引入了脱机输入输出技术和监督程序,那么监督程序其实是操作系统的一个雏形。在单道批处理阶段,程序员们会提前把自己的程序把它放到纸带机上,然后会有一个专门的外围控制机来控制,把纸带机上的这些纸带数据把它读到一个速度更快的磁带里。
之后,计算机是直接从磁带这个更高速的输入输出设备上,把这些用户的各个程序依次读入计算机的内存当中进行处理,处理完了之后再依次输入到这些磁带当中,然后输出的过程其实就是和这个是相反的,先输出到磁带,然后又通过外控制机的控制,又输出到纸带,纸带机的纸带上后又被用户取走。
可以看到磁带它是一种比起纸代机读取纸袋来讲,要速度要快很多的一个输入输出设备,所以比起手工输入阶段,这个计算机在等待这些程序的输入输出的过程,这个时间花费就少了很多。所以说 CPU 就会有更多的时间是用来忙碌用来计算的。而磁带上的各个程序的输入和输出是由所谓的监督程序来负责控制的,监督程序就是后来操作系统的一个雏形。
那么单到批处理阶段,很显然它解决了手工输入阶段的一个人机速度矛盾,程序员们会提前把它输入到一个快速的磁带上,然后人机速度的差异就会被减小了,所以资源的利用率是有所提升的。
但是单到批处理阶段,它又暴露出了另外一个主要的缺点,在计算机的内存当中,同一时刻只能有一道程序进行运行,然后只有这个程序运行完了,并且输出结束之后,它才会继续读入下一道程序进行处理。所以说各个程序之间的执行只能串行的执行。比起第一个阶段来说, CPU 已经有更多的时间是在忙碌的阶段了,但事实上仍然还是有多的时间,也是需要在等待程序的输入输出这个过程,所以 CPU 会有大量的空闲时间。那么这种情况下资源的利用率很显然也是很低的
# 多道批处理系统
所以为了解决主要矛盾,那么人们又发明了多道批处理系统,在多道批处理系统当中,同样的用户首先会把自己的磁带呃会把自己的程序输入到磁带中,然后计算机一次从磁带当中会读出多道程序,把这些多道程序都放到计算机的内存当中,然后这些程序会并发的执行,而这些程序并发执行的过程需要所谓的中断技术的支持,中断技术知识点后面会单独讲到,这个地方有个印象就可以了。
那么这些程序他们要并发的依次交替的执行,这个过程就是需要由操作系统来负责管理,来完成管理协调的工作。所以其实在多道批处理系统阶多到批处理阶段,操作系统才正式诞生了。所以说操作系统和多道程序技术其实是同时诞生的。很显然多道批处理系统它有一个很大的优点,就是这些程序多道程序可以并发的执行,并且他们共享的使用计算机的资源,共享使用计算机资源,比如说 CPU 还有内存,这些都是计算机资源。
还记得我们之前提到的操作系统的两大基本特性吗?就是并发性和共享性,其实并发性和共享性就是在操作系统诞生之初就拥有的两个特性,所以才说他们是操作系统最基本的两个特性。
那么在增加了这个程序并发执行的功能之后,整个系统的资源利用率就大幅度提升了,CPU 和其他的资源都长期保持的一个忙碌的状态。但是这个阶段又有一个很明显的缺点,就是用没有提供人机交互的能力。什么意思?当用户把自己的程序输入到磁带之后,一需要一直等待到整个程序运行结束,或者说程序运行有异常,然后把结果输出到输出在这个磁带上,用户才可以知道自己的作业的运行结果,而在整个作业运行的过程当中,它并不能和自己的作业进行交互,所以这种所以多道批处理系统是没有人机交互功能的。另外整个过程可以看到用户从开始等待自己的作业,一直到做自己的作业输出,完成整个过程可能需要等待很长的时间,所以这是响应是用户时间响应时间长的意思。
那么之后的分时操作系统就是要解决这个问题,但是在讲分时操作系统之前,我们先来深入看一下,就是多道批处理系统,为什么说它的资源利用率大幅度提升了呢?来看这样一个例子,假设计算机需要处理这样三个作业,然后三个作业分别都需要输入 1 秒计算 1 秒输出 1 秒,假设采用的是单道批处理技术的话,那么刚开始会输入第一个作业需要一秒的时间,当第一个作业是全部输入到内存之后,那么就可以开始对这个作业进行处理计算,那么 CPU 在一秒的时间内就开始忙碌,当计算完了之后又需要进交给输出设备,把这个作业的结果进行输出,作业输出完了之后才可以继续输入第二个作业,然后计算输出同样的第三个作业也一样
所以如果采用单道批处理技术的话,可以看到整个过程整个三道作业全部处理结束,需要 9 秒的时间,并且可以发现输入设备 CPU,输出设备,这三种系统资源他们都是串行的工作的,不能并行的工作。所以这种情况下,这些系统资源的利用率就特别的低,这些系统资源会有很大一部分时间是处于空闲的状态。
而我们如果采用了多道批处理技术的话,由于内存当中可以存放多个程序,并且这些程序可以并发的执行,所以会是这样的情况。刚开始读入一这一读入完成之后,它就可以紧接着开始计算,就是被 CPU 服务,但是 CPU 这为第一个做业务的时候,其实输入设备就开始空闲了,那么输入设备刚开始空闲下来,他又发现还有作业二需要读入,那么输入设备就会转向读入。作业二再之后作业一经过了一秒的计算处理之后,他就会开始用输出设备把这个结果输出,在这个时候 Cpu 又开始空闲,然后然后作业 2 刚好又完全输入到了计算机系统当中,所以 CPU 又会转向和作业 2 服务,为作业 2 服务。同时这个时时刻输入设备又开始空闲,那么它又会紧接着读入第三个作业,所以就以此类推,那么可以发现在多道批处理技术采用了多道批处理技术之后,我们要处理这三个作业,总共只需要 5 秒的时间,比单道批处理技术明显要缩短了很多,并且可以发现在采用了这种技术之后,输出设备、CPU、输入设备,这三种系统资源他们可以开始并行的工作了,而不需要像之前那样只能串行的工作。所以这些系统资源都会有更多的时间,更多比例的时间处于忙碌的状态,所以这就是为什么说它使系统资源的利用率大幅度提升的一个原因。好的,那么这就是刚才留下的一个小问题。
# 分时操作
我们继续往下介绍分时操作系统,还记得之前我们留下的一个问题吗?多道批处理系统它有一个主要的缺点,就是不提供人机交互的能力,所以分时操作系统就是为了尝试解决这个问题,计算机会以时间片的以时间片为单位,轮流为各个用户作业服务,并且在各自的时间片内,这些用户是可以通过终端和计算机进行交互的,比如说一个时间片的长度是 50 毫秒,那么它会先为第一个用户服务 50 毫秒,之后下一个 50 毫秒又会为第二个用户服务,以此类推。
然后所有的用户服务完了之后,又会开始第二轮的服务,而在每一个用户被分配到的这 50 毫秒当中,它都可以通过终端和计算机进行交互来控制自己的作业执行。所以分时操作系统它解决了人机交互问题,并且用户的请求可以在自己的时间片内被自己被分到的时间片内被及时的响应,所以这是分时操作系统级的一个主要优点,但是它同时又有另外一个缺点,分时操作系统它对所有的这些用户和作业它都是公平的,完全公平的,它会循环的为各个用户来服务,每个用户一个时间片,但是是随着计算机系统的一个应用的越来越广泛广泛,那么计算机系统会被用到了各种各样的一些场景下,比如说一些武器控制系统,像这些系统当中就会有一些很紧急的任务需要优先被处理,但是分时操作系统不具有这种优先处理一些紧急任务的这种特性
# 实时操作系统
因此人们又发明了实时操作系统,实时操作系统的主要优点就是解决了刚才所说的那个问题,他可以优先响应一些紧急的任务,然后对于一些紧急的任务来说,他不需要和其他的那些任务进行排队,等待时间片的分配。在实时操作系统下面之下,一个紧急的任务请求,会需要在一个严格的时间之内处理完成。
那么实时操作系统的主要特点就是及时性和可靠性,实时操作系统又可以细分为两种,一个是硬实时,一个是软实时操作系统。硬实时操作系统,就比如导弹控制系统,自动驾驶系统,这两种系统很显然,如果说它响应处理的不够及时的话,那么可能导弹会射到一个很危险的地方爆炸,然后自动驾驶系统有可能会由于处理不及时,然后导致车祸的发生,所以这种结果是很严重的,因此我们并不能与不可能允许这种结果这种严重的结果发生。所以硬实时系统,就需要在严格的规定时间之内完成我们所需要处理的那些事情。
与此相对的是软实时系统,比如说我们回家常用的 12306 的火车订票系统,这个系统需要要求有一定的实时性,比如说它需要实时的告诉我们硬座还有多少张票,软座还有多少张票,但是偶尔这些信息更新的不太及时,其实也是不会有太严重的后果,这是软实时操作系软。那么以上就是我们考研中最常考的几种操作系统
# 其他操作系统
那么还有另外几种,我们刚开始提到的网络操作系统,分布式操作系统和个人计算机操作系统,这三种大家简单的了解一下就可以了。
# 小结
那么我们来回顾一下这个小节,我们根据计算机操作系统的发展历程,分析了各个阶段暴露出来的主要缺点,并且说明了在他后面一个阶段是如何克服,用什么样的方式来克服前一阶段暴露出来的这些缺点。
那么我们在考研当中常考的就是绿色框里边这些部分,特别是多道批处理系统,分时操作系统,还有实时操作系统,这三种是最常考的,当然其他的这些也需要了解。不过最后的三种就是网络分布式和个人计算机操作系统,这些大家配合着我们的教材简单的了解,有个印象就可以了。好的,那么这就是本节的所有内容。