21 世纪被誉为“信息爆炸”的世纪,人类近 100 年取得的成就比过去几千年文明加在一起还要多。“信息爆炸”离不开计算机这个信息载体,而如果没有操作系统帮忙,使用计算机将是一项非常专业的工作,“信息爆炸”也就无从谈起。操作系统处理诸如管理文件、进程以及存储的基本任务,可以说,操作系统其实就是一个资源管家,它听命于人类,将接收到的任务分发下达给机器,处理完毕后,再将结果反馈给人类。
和人类文明一样,操作系统也是逐步发展的,本文将盘点几个比较有代表性的操作系统类型,试图谈谈它们各自的优缺点。
批处理操作系统
批处理操作系统(batch OS)是早期的一种操作系统,上世纪 50 年代中期,人类发明了晶体管,并开始逐步用其代替真空管来制作计算机,虽说这样大大减小了计算机体积,降低了功耗,但是当时计算机仍然是非常昂贵的。
为了能够充分的利用计算资源,最直接的做法就是减少计算机的空闲时间。当时人们的做法是把一批任务输送到磁带上,并且配备监督程序。监督程序将磁带中的第一个任务装入内存,并把计算机的运行控制权交给该任务;第一个任务处理完毕后,再把控制权交还给监督程序,监督程序再将第二个任务装入内存,依此类推,知道所有的任务完成,这便是早期的批处理操作系统。
所以,批处理其实就是用户将一批任务交给操作系统后,由操作系统控制它们自动运行,用户无需再干预,也无法干预,因为批处理操作系统不具备交互性,它是为了提高计算机利用效率而设计的一种操作系统。
批处理操作系统的优点:
- 多个用户可以共享批处理操作系统
- 批处理操作系统的空闲时间非常少
- 处理重复任务很方便
批处理操作系统的缺点:
- 计算机用户必须非常了解批处理系统
- 批处理系统很难调试
- 如果系统中有一个任务失败了,其他任务将不得不等待不可预期的时间
批处理操作系统常用于工资管理系统以及银行账单处理等工作中。
分时操作系统
分时操作系统(time-sharing OS)采用时间片轮转调度的方式,将一份计算机资源“同时”的分配给几个、几十个甚至几百个任务服务。请注意,“同时”一词加上了引号,因为“同时”只是逻辑上的概念,物理上可能并非如此。
分时操作系统将系统的处理器时间与内存空间等资源按照一定的时间间隔,轮流的交给任务使用,所谓的“时间间隔”通常很短,因此每个任务在主观感受上就像自己在独享计算机一样,看起来就像是把一份计算机“同时”分给多个任务使用。
分时操作系统的优点:
- 每个任务都有同等的机会使用计算机
- CPU 可以得到更加充分的利用
分时操作系统的缺点:
- 可靠性可能有所欠缺
- 确保用户程序和数据的安全性和完整性更加紧迫
- 不同任务之间数据通信略显复杂
相当多的操作系统在其内部的进程调度都是与“分时操作”类似的,例如 Multics,以及 Unix 系的操作系统等。
分布式操作系统
分布式操作系统(distributed OS)是近些年来计算机技术的一大进步,如今,它已经快速的在世界内被认可和大量使用。所谓分布式操作系统,直白的说,其实就是有“一群”彼此在硬件上独立的计算机,通过网络连接实现彼此通信,再经过统一的“中间件”协调,共享资源,协同分工完成指定的任务。
从宏观来看,就像是分布式操作系统通过“组合”一系列计算力相对弱小的独立计算机,得到“一台”计算力超强的超级计算机一样。而对于每个独立计算机的用户来说,他自己的系统中可能不存在某个文件或软件,但是只要这台超级计算机又这些资源,他就能访问和使用。
分布式操作系统的优点:
- 因为每个子计算机彼此独立,所以分布式系统中的一台计算机出错不会影响其他网络通信
- 由于分布式操作系统,各个子计算机可以共享资源,运算速度可以很快很持久
- 分布式操作系统很容易扩展
- 数据处理延迟减少
分布式操作系统的缺点:
- 通信网络崩溃会导致整个系统的崩溃
- 建立完美的分布式操作系统,需要重新定义一种适合的语言
- 建立完美的分布式操作系统难度很大
目前也已经有比较典型的分布式操作系统了,例如 LOCUS。
网络操作系统
网络操作系统(network OS)可以理解为网络用户与计算机网络之间的接口,它是专门为网络用户提供操作接口的系统软件,除了管理计算机的硬件和软件资源,一般还用于用于管理数据、用户、安全以及应用等其他网络资源,它允许通过小型专用网络共享文件、打印机、安全、应用程序和其他网络功能。
网络操作系统的优点:
- 高度稳定的集中式服务器
- 新技术和硬件升级很容易集成到系统中
- 可以从不同的位置和系统远程访问服务器
网络操作系统的缺点:
- 服务器成本高昂
- 用户高度依赖于中心服务器
- 需要定期维护和更新
目前已经被广泛使用的网络操作系统包括:微软的 Windows Server 2003、 Windows Server 2008,以及 UNIX、Linux、 Mac OS X、Novell NetWare 和 BSD 等。
实时操作系统
实时操作系统(real-time OS)可以从其名字得到含义,是指当外界事件或者数据产生时,“立刻”予以处理,并且能够在规定时间内得到处理结果。总而言之,就是“响应快”,为了达到这个目的,实时操作系可以调度一切可利用的资源。
实时操作系统一般用于对时间要求非常严格的场合,如导弹系统、空中交通控制系统、机器人等。通常,实时操作系统分为 hard 和 soft 两类:
- hard 实时操作系统适用于时间限制非常严格,甚至最短延迟都不可接受的应用。这些系统是为拯救生命而建造的,就像自动降落伞或安全气囊一样,一旦发生事故,必须立刻可用,因此在这些系统中,几乎从来不用虚拟内存。
- soft 实时系统对“实时”的要求稍稍低一些。
实时操作系统的优点:
- 可以集中力量办主要的事情,在同等条件下,以最快的速度得到结果
- 任务切换时间很短
- 专注于运行中的任务,而不是等待队列中的任务
- 程序规模可以很小,适用于嵌入式系统
- 内存使用得到很好的管理
实时操作系统的缺点:
- 很少有多个任务能够同时运行
- 运行时,常常会占据大量的系统资源
- 设计实时任务的算法也很复杂
- 不太容易切换任务
正如前文所述,实时操作系统通常用于对时间要求比较苛刻的行业,例如:科学实验、医学成像系统、工业控制系统、武器系统、机器人、空中交通控制系统等。