《计算机硬件和软件》一节中提到,操作系统是软件,更准确地说是系统软件。一个没有安装操作系统的计算机,普通用户是无法使用的。
计算机运行过程中,操作系统往往扮演着中间人(或者中介)的角色。比如单纯的计算机硬件和应用程序之间,本身是无法实现通信的,操作系统为它们建立起了沟通的通道,使它们能够一起工作,完成用户指定的任务。
除此之外,操作系统还充当着用户和计算机硬件之间的中间人。我们知道,绝大多数操作系统都为用户提供了友好的图形操作界面,即打开计算机后在屏幕上看到的计算机桌面。一方面,用户可以在桌面上打开多个文件或应用程序;另一方面,操作系统会一直在计算机后台控制、协调各个硬件的工作,完成用户指定的操作。
根据运行状态的不同,可以将在操作系统中运行的应用程序分为 2 类,分别为前台执行程序和后台执行程序。所谓前台执行程序,指的是用户直接可以在计算机桌面或者任务栏中找到的应用程序;而后台执行程序,指的是没有显示在计算机桌面上、但实际却在运行的应用程序。以 Windows 为例,用户可以借助任务管理器查看并管理所有的后台执行程序。
操作系统的发展,大致经历了以下几个重要的阶段。
这个时期处于第二次世界大战,数字计算机还尚未诞生,初期仍采用机械式继电器作为计算机的主要运算部件。由于机械式继电器的运算效率太差,后续又改用真空管作为主要部件。
但即便如此,计算机的性能问题也没有得到解决,由此还产生了新的问题,即整套机器由成千上万个真空管构成,体积过于庞大。不仅如此,每台机器都需要一群人来设计、编写程序并提供维护,限于当时还没有诞生任何的编程语言以及操作系统,开发人员只能使用机器语言编写程序。
处于这一时期的程序员,开发的系统主要用于数值计算,他们需要提前预约并争取到计算机的使用资格后,才能利用计算机执行他的程序。20 世纪 50 年代,穿孔卡片被引入到计算机中,程序员可以将程序编写到穿孔卡片上,然后交由计算机执行,在一定程序上提高了计算机的性能。
这一阶段的重要标志是晶体管的问世,通过用晶体管代替真空管,计算机的运行结果更加可靠,此类计算机通常称为“大型计算机”(简称大型机)。但受到价格的影响,大型机并不普及,仅有政府和一些大型的机构、公司负担得起这笔费用。
大型机的使用,要求程序员先将程序写到纸上,然后存储到打孔卡片中,随后卡片会被带到输入室并由指定操作员将其插入到输入设备中,计算机会将处理结果经位于输出室的打印机打印出来,交给程序员。显然,整个过程是非常繁琐的,当时的解决方案就是使用批处理系统。
批处理系统,其本质就是运行在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的任务。
具体来讲,在批处理系统的协助下,多个用户的任务将被收集起来并一起送到输入室。操作员会将这些任务统一读取到一块磁带(当时的存储工具)中,然后经过磁带机传输给计算机。操作员会手动操作计算机读取第一个任务并运行它,同时将处理结果生成到另一个磁带上,然后批处理系统会自动读取下一个任务,下下个任务…,直到处理完所有的任务。批处理过程完成后,操作员会将 2 块磁带取出,并开启下一次批处理过程。所有的处理结果会从存储处理结果的磁带中获取。
批处理系统主要用于工程设计制造和科学计算。这一代计算机使用了首个操作系统,通常称其为 FMS 操作系统。
1964 年,IBM 360系统计算机诞生。这一代计算机用硅芯片取代晶体管,并且此阶段开发出的操作系统,可以同时执行多个应用程序(称为多道程序系统),其中一些多道程序系统还兼具批处理、实时处理等功能。
这一时期,计算机内部的芯片往往由上千个晶体管构成,个人计算机(即微型计算机)和工作站出现并得到了快速的发展,从而也促进了网络操作系统和分布式操作系统的发展。
所谓网络操作系统,除具备先前操作系统所具有的诸如内存管理、文件管理、CPU 管理等功能外,还可以为计算机提供高效、可靠的网络通信能力,包括远程管理、文件传输、远程打印、电子邮件等。
而分布式操作系统,即具备分布式处理能力的操作系统,即该操作系统可以将位于不同地点、具备不同功能、拥有不同数据的多台计算机,通过网络连接起来,系统会统一管理、控制这些资源,从而可以完成大规模地数据处理。
Dos、Linux 以及 Windows 操作系统,就是这一时期网络操作系统和分布式操作系统的典型代表。
通过了解操作系统的发展史就不难理解,伴随着计算机硬件和软件的发展,先后诞生了多种操作系统。
根据不同操作系统各自的特点,大致可以将它们分为 5 类,分别为批处理操作系统、分时操作系统、分布式操作系统、网络操作系统以及实时操作系统。前面的讲解过程中,我们已经对批处理操作系统、分布式操作系统以及网络操作系统做了简单的介绍,接下来给大家介绍一下另外 2 种操作系统的特性。
分时操作系统最大的特点是,它支持位于不同终端的多个用户同时使用一台计算机,这些用户共享计算机的资源。举一个典型的例子,在该类型操作系统中所有用户共享 CPU,每个用户都可以向计算机发布任务,而 CPU 会以一定的顺序逐个执行这些任务。
实时操作系统是专为实时应用程序开发的,所谓实时应用程序,即这些应用程序必须在指定时间内对数据进行处理。实时操作系统最大的特性可总结为快速输入和及时响应。例如在炼油厂中,如果油的温度过高并超过阈值,就应立即响应,对此情况做及时处理。实时操作系统常用于控制科学仪器,并作为导弹发射系统、交通灯控制系统、空中交通管制系统等。
对于操作系统的 5 大分类,简单了解即可。