@[TOC]
本节学习重点:关注和理解各类操作系统主要想解决的是什么问题,各自的优缺点。
1.手工操作阶段
缺点:手工装/取纸带非常慢,纸带机读/写纸带也非常慢,但处理程序的速度非常快。导致效率非常低。而且一段时间内只能处理一个程序。
2.批处理阶段
解决了手工装/取纸带慢的问题,可以将纸带都通过外围机装入道磁带中。
而计算机读/写磁带的速度比纸带机快很多,所以也提升了读/写数据的速度。
引入脱机输入/输出技术,并由监督程序负责控制作业的输入、输出。自动的控制磁带读写的操作。一个程序读/写完,这个监督程序会自动让计算机读/写下一个程序。
这里也就是为什么是脱机技术了,让好几个程序连着执行,而不是每次都只执行一个。加快了速度。
优点:一个作业的输入输出过程快了很多。计算机效率提高了。
缺点:内存中仅能有一道程序执行,只有该程序结束之后才能调入下一个程序,CPU仍然有大量时间处于空闲状态,等待输入输出过程,资源利用率依然很低。
3.多道批处理系统
操作系统正式诞生,用于支持多道程序并发执行。多道批处理系统就不像单道批处理系统那样需要一个作业执行完之后才能执行下一个程序,而是可以在其他作业在读/写的同时处理其他程序。
我的理解:这里很重要的一个点就是每个设备都是接替执行的,读完就可以在读下一个,CPU执行完就可以执行下一个,输出完就输出下一个,每个设备都是分开的,耦合度降低了。处理完之后就不需要在继续等了,直接去处理剩下的。之前的单道每次就只能有一个程序执行,这里可以有多个程序被执行,也就有了并发。
优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中途不能控制自己的作业执行,无法调试程序/无法在程序允许过程中输入一些参数)。
举个例子:我们写算法题的时候,有时候是读文件的形式,有时是用黑窗口读入程序的形式。用黑窗口可以输入边输入边看程序执行过程,可以根据程序的变化读入不同的数据。而读文件只能一次读完,也没办法调试。
4.分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。
优点:用户请求可以被即时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
我的理解:这也就是上面说的,每个作业不是一次性执行完,而是每次都只执行一小段时间,在步执行的过程中我可以看到程序的变化,还可以输入一些参数修改程序的变化。就像在命令行端口一样,输入一次输出一次。比如我们还可以作业执行过程中让程序停止。这也体现了交互过程。
缺点:不能处理一些紧急任务,操作系统对每个用户/作业都是公平的,循环的为各个用户服务一个时间片。不区分任务的紧急性。
5.实时操作系统
优点:能过优先响应一些紧急任务,某些紧急任务不需要时间片排队。
在实时操作系统的控制下,计算机系统接收到的外部信号后及时进行处理,并且要在严格的时限内处理完事件。
实时操作系统的主要特定是及时性和可靠性。
实时操作系统:
- 硬实时系统:必须在绝对严格的规定时间内完成处理。
- 软实时系统,能接收偶尔违反时间规定。
6.其他操作系统
7.总结
操作系统的发展迭代都是为了解决某个问题而诞生的。
手算太慢==》开发了手工操作系统 ==》速度还是慢,开发了单道批处理系统,解决IO慢的问题 ==》 CPU还是很多时间闲着,效率还是低,所以开发出了批处理系统,让几个程序并发执行 ==》 人机不能交互,那我要在程序运行过程中修改怎么办,开发了分时操作系统 ==》 但是如果有了特别重要的任务来了,我必须要让CPU处理它又怎么办?开发了实时操作系统。
所以一些为了效率。时间就是金钱。