文章目录
- 第一章 计算机系统概述
- 操作系统的发展与分类
- (一)手工操作阶段
- (二)批处理阶段——单道批处理系统
- (三)批处理阶段——多道批处理系统
- (四)分时操作系统
- (五)实时操作系统
- (六)其他几种操作系统
- 小结
第一章 计算机系统概述
操作系统的发展与分类
OS的发展与分类
- 手工操作阶段
- 批处理阶段
- 单道批处理系统
- 多道批处理系统(操作系统开始出现)
- 分时操作系统
- 实时操作系统
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
【注】要重点关注和理解各类操作系统主要想解决的是什么问题,各自的优缺点。
(一)手工操作阶段
在这个阶段,操作系统还并没有诞生。程序员写程序,还是要写到纸带上的。可以看到,纸带上有小孔,有孔的地方代表1,没孔的地方代表0。程序员通过在纸带上打孔的方式写好自己的程序,然后把这个程序放到纸带机上。然后计算机从纸带机当中读取我们要运行的程序,等运行结束以后,又把程序运行的结果输出到纸带机上,之后再由程序员取走程序运行的结果。
但是,用手工操作的方式,存在一个很明显的问题。
程序员用手工的方式把纸带装到纸带机,或者从纸带机上取下带有程序运行结果的纸带的过程,是非常慢的。
此外,计算机对纸带机上的纸带进行读取的过程,也需要花费不少的时间。
但是,计算机对已经读好的程序进行处理的过程,是非常快的。
手工操作阶段存在的主要缺点就是:
用户独占全机。第一个程序员在没有使用计算机处理程序并取走结果之前,第二个程序员是无法使用计算机的,所以当一个用户使用计算机的时候,他就是独占地使用。
由于手工操作是一个很慢的过程,但是计算机的计算又是个很快的过程,这样的人机速度矛盾会导致资源的利用率极低,特别是计算机CPU的利用率极低(由上图即可观之)。在那个年代计算机的造价还是很昂贵的,使得计算机这样昂贵的资源大量的时间处于空闲状态,显然是一种很不经济、很低效的方式。
为了解决手工操作存在的问题,人们引入了单道批处理系统。
(二)批处理阶段——单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。
各个程序员都可以把自己的程序依次放到纸带机上,会有一个叫“外围机”这样专门的机器,控制着把这些纸带机里的程序先放到磁带上。之后,计算机可以直接从磁带里读写这些数据。而计算机对磁带的读写速度,比纸带机快很多。
此时计算机当中会有一个监督程序的程序,自动地控制着对磁带的输入、输出。
引入这种脱机输入输出技术后,我们读取一个作业所花费时间的比例就小了许多,就可以让CPU有更高比例的时间处于计算、处于忙碌的状态。在一定程度上缓解了人机速度矛盾。
但是资源利用率虽然相比于手工操作有所提高,但依然是很低的。内存中同一时刻还是只能有一道程序运行,只有当这个程序运行结束并且输出完成之后,才可以继续读入第二个程序,各个程序之间是串行地执行的。这种方式依然会使CPU有大量的时间是在空闲等待的状态,资源利用率依然的很低的。
为了解决这一问题,人们就发明了多道批处理系统。在这一阶段,操作系统就真正诞生了。
(三)批处理阶段——多道批处理系统
- 每次往内存中读入多道程序。
- 操作系统正式诞生,用于支持多道程序并发运行。
首先,第一个作业的数据会从磁带输入到计算机当中,输入结束之后,就可以开始对这个程序的计算工作;
但是,当CPU在计算第一个作业的时候,其实输入设备是处于空闲状态的,因此,CPU计算第一个作业的时候,其实可以让输入设备同时把第二个作业也读入内存;
紧接着,第一个作业计算完成,第一个作业就可以通过输出设备,把计算结果输出到磁带上;
而第一个作业在输出的时候,其实只是输出设备在忙碌,在这时,CPU已经空闲了,所以在这个时间段可以让CPU为第二个作业服务,开始计算第二个作业;
同时,在这个时候,输入设备其实又开始空闲了,因此又可以同时开始读入第三个作业……
总之,在引入多道程序技术之后,多道程序可以并发地执行,共享计算机当中的资源(输入设备、输出设备、CPU等)。CPU和其他资源更能保持“忙碌”状态,资源利用率大幅度提升,系统吞吐量增大。
不过,多道批处理系统并没有提供人机交互的功能,当一个用户把自己的作业提交了之后,接下来用户就只能干等着计算机把自己的作业处理完成。也就是说,在多道批处理系统中,用户是无法调试自己的程序的,也不可能在程序运行的过程中输入一些参数。
为了实现人机交互的功能,人们又发明了分时操作系统。
(四)分时操作系统
分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
(比如在上图中,计算机按照顺时针的顺序,依次为每个用户服务50ms,不断轮转)
因此,在分时操作系统中,用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
分时操作系统也存在一些缺点,它不能优先处理一些紧急的任务。操作系统对每个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
所以,为了让计算机能够优先地处理一些紧急任务,人们又提出了实时操作系统。
(五)实时操作系统
实时操作系统,能够根据任务的优先级,来优先地响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机接收到一些紧急的信号之后,需要进行及时处理,并且要在严格的时限内处理完成,还要保证处理的结果是正确的。因此,这种操作系统的主要特点是及时性和可靠性。
实时操作系统又分为硬实时和软实时:
- 硬实时系统
- 必须在绝对严格的规定时间内完成处理
- 如:导弹控制系统、自动驾驶系统
- 必须在绝对严格的规定时间内完成处理
- 软实时系统
- 能接受偶尔违反时间规定
- 如:12306火车订票系统
- 能接受偶尔违反时间规定
(六)其他几种操作系统
除了刚才我们说的几种操作系统之外,还有网络操作系统、分布式操作系统、个人计算机操作系统。这些操作系统简单了解一下就可以,此处不再展开。