operating system

操作系统一直在发展,主要有以下几个发展动力

1. 手工操作阶段(此阶段无操作系统)

一开始是人工操作方式。用户独占所有计算机资源,CPU 及内存等利用率低(用户进行装带、卸带的时候,CPU 和内存是空闲的),效率低,操作不方便,操作人员还需要很专业的计算机知识,不然玩不动。

由于装带和卸带费时间,后面发明了外围机,在 CPU 做一个任务的时候,把另一个任务先装到一个外围设备中,CPU 工作完直接到外围机取任务。这就是脱机输入输出方式。

2. 批处理阶段(操作系统开始出现)

2.1 单道批处理系统

这时候计算机中多了一个监督程序,当 CPU 做完当前作业,控制权就交给监督程序,监督程序会从作业序列中取下一个作业,这时候就不需要人工操作了。单道批处理是自动、单道、顺序的,也就是说一个时间点只有一个程序占用整个计算机资源,直到处理完一批作业为止。

例子:现有三道作业,第一道作业需要输入 10 S,运行 20 S,输出 20 S;第二道作业需要输入 20 S,运行 20 S,输出 30 S,然后再运行 30 S,输出 10 S;第三道作业需要输入 20 S,运行30S,输出 30 S。

共耗时 (10+20+20)+(20+20+30+30+10)+(20+30+30)= 240 S

CPU利用率: (20+20+30+30)/240=41.7%

输入设备利用率:(10+20+20)/240=20.8%

输出设备利用率:(20+30+10+30)/240=37.5%

2.2 多道批处理系统

单道批处理解决了人工操作的麻烦,但是利用率还是偏低,显然是因为当前作业在使用 CPU 的时候,并没有使用输出设备和输入设备,这样导致了资源利用不充分。

多道批处理中,计算机同时有几道作业(程序)在运行,在一个时间点上,可能一个作业在使用 CPU,另一个作业在使用输出设备,还有一个作业在使用输入设备,这样就提高了系统的吞吐量。

特征 :多道性、无序性、调度性(这个得看你的调度程序是如何管理处理机、内存、设备和文件的)。

例子 :现有三道作业,第一道作业需要输入10 S,运行 20 S,输出 20 S;第二道作业需要输入 20 S,运行 20 S,输出 30 S,然后再运行 30 S,输出 10 S;第三道作业需要输入 20 S,运行 30 S,输出 30 S 。

多道批处理

3. 分时操作系统

多道批处理系统有一个很大的缺点,就是周期为处理一批作业的时间,这么长的时间,万一哪个程序突然出错导致计算机奔溃,就要重新检测调试,折磨死人。

为了能够进行人机交互,以及多个用户共享一台计算机,后来发展出了分时系统。

顾名思义,将时间分片,每个程序连续使用计算机 CPU 的时间是固定的,到了必须换程序。也就是说,假设你的时间片定为 3 毫秒,当前程序运行完这 3 毫秒,就轮到正在等待的下一个程序跑,这样就保证了计算机不会被一个又臭又长的程序死占着。

多路性 :多个用户程序同时运行(轮流着用)

独立性 :每个程序独立操作,互不干扰

及时性 :每次轮转都挺快的,反正不超过 1 秒啦。

交互性 :有了时间片的轮转,我就可以操作计算机啦(至少不用像批处理一样,要等处理完才能操作计算机)

当然分时系统主要提高响应的及时性,及时了解并解决程序的 bug 是很重要的。

4. 实时操作系统

分时系统虽然可以实现了时间片的轮转使用,但是有时候反应不够迅速。实时系统就是为了可以即时响应外部事件的请求而发展出来的,实时系统需要在规定的时间内完成对该事件的处理,并且实时事件还不止一个,需要实时系统协调一致地完成。

例如汽车的车祸处理系统,如果突然受到猛烈碰撞,汽车系统就要启动实时救生措施,所有计算机资源都要让给救生程序,什么音乐软件呀、广播软件呀通通让开。这时候救生气囊程序和强制刹车程序会在很短很短的时间内启动,这就是即时性。

救生气囊程序和强制刹车程序都是实时任务,需要周期地检测是否出现碰撞(例如 0.1 秒检测一次是否出现碰撞),这叫重复性。救人争分夺秒,因此实时任务要有紧迫性,必须给我在规定时间内启动。

和分时系统相比,实时系统更及时、更可靠。

5. 网络操作系统和分布式计算机系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的相互传送。网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信。

分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每台计算机都具有同等的地位,即没有主机也没有从机;两台计算机上的资源为所有用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上。由它们并行工作、协调完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。

6. 个人计算机操作系统

微机就是我们使用的电脑,例如 Windows 系统,计算机制作成本低了,自然大家都可以使用计算机了,所以发展了微机操作系统给个人使用。一开始微机是单用户单任务的,现在都发展到了多用户多任务。

7. 习题

  1. 关于多任务操作系统的叙述中,以下正确的是
    1. 具有并发和并行的特点
    2. 需要实现对共享资源的保护
    3. 需要运行在多 CPU 的硬件平台上

8. 习题答案

  1. 选择 1,2。容易出错的是漏选 1,其实单 CPU 的多任务操作系统也有并行的特点,例如一个应用在用 CPU,另一个应用在用打印机,显然可以同时进行。