1.3 操作系统的分类
操作系统的类型非常多样,不同机器安装的OS可从简单到复杂,可从手机的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对OS的定义也不大一致,例如,有些OS集成了图形化使用者界面,而有些OS仅使用文本接口,而将图形界面视为一种非必要的应用程序。操作系统根据不同的分类角度有不同的分类:
按字长(内存寻址的宽度)角度可以分为8位(CP/M),16位(DOS、Windows 3.0),32位(Windows XP),64位(Windows Vista);
按计算机的机型分为大型机、小型机和微型机操作系统;
按计算机的用户数目分为单用户单任务操作系统和多任务多用户操作系统。
按操作系统的功能特征分类,主要有:批处理操作系统、实时操作系统、分时操作系统、网络操作系统、分布式操作系统(网格)五大类型。下面对这五种操作系统类型做详细介绍。
1.批处理操作系统
从手工操作到早期批处理系统,再到执行系统有一个共同之处,就是每次只调一个用户程序进入主存让其运行,称为单道运行,即CPU按照指令计数器的内容顺序地执行每一条指令,一个时刻只能由一道程序在上面运行(例如,早期的冯·诺依曼计算机)。随着计算机技术的发展,引入了多道程序设计的概念,即在系统内(主存)同时存放并运行几道相互独立的程序。例如,进入CPU的A、B、C三道程序,正在处理机CPU上运行的程序A因为要做输入工作而让出CPU给程序B运行,当程序B运行一段时间后又要求做输出操作,这时CPU让程序C运行。若程序A的输入操作、程序B的输出操作没有结束,从整个计算机系统来看,程序A正在做输入工作,程序B正在做输出工作,程序C正在做计算工作。从宏观上说,这几道程序都处于执行状态,称这几道程序在并发执行,实际是逻辑上的并行。从微观上看,一个时刻只有一个程序在CPU上运行(多道程序同时在多个CPU上执行是物理上的并行,二者是有区别的)。多道程序设计是当前设计操作系统的重要核心技术之一。
2.分时操作系统
批处理系统没有交互能力,用户不能直接控制程序的运行,这让用户感到非常不方便。针对批处理系统的问题,人们设计出了分时系统,它可以让用户通过终端设备联机使用计算机。所谓分时指的是把计算机的资源(主要指CPU)在时间上进行分割,每个时间段称为时间片,每个用户分时间片轮流地使用计算机。
3.实时操作系统
实时过程控制系统或者实时信息处理系统配置的操作系统称为实时系统。“实时”的含义是指计算机对于外来信息能够及时进行处理,并在被控制对象允许的时间范围内做出快速反应。实时操作系统对相应时间的要求比分时操作系统高,一般要求为秒级、毫秒级甚至微秒级。例如,在钢铁公司的炼钢、轧机上配套的计算机和电力公司的高压输电线配套的计算机上所配的操作系统,都是实时操作系统。这种系统除了具备一般操作系统的功能和特点外,最突出的特点有两个。
(1)响应及时。通常被控过程的响应周期,无论是数据采集还是计算、发出控制指令,都在毫秒级。相应时间短但要足以能够及时处理外部实时信号。
(2)高可靠性和高安全性。无论是航天航空装置的控制,还是军事武器控制或生产过程控制,都要求十分可靠,不允许受到攻击,效率在第二位。
分时操作系统和实时操作系统最大的差别是:分时系统控制的主动权在计算机,计算机以固定时间片或不固定时间片去轮流完成多个提交的任务。分时操作系统的分时工作原理像杂技演员的“转盘子表演”,一个演员轮流拨动旋转盘子只要保证盘子不停下来就可以。而实时系统控制的主动权在用户,用户规定什么时间要计算机干什么,机器不能“走开”。例如,宇宙飞船、航天器飞行时要求计算机不断“实时”监控,即使在一些较慢变化信号的工业控制领域中,也必须保证用户给定的采样时间间隔,以免丢失采样数据而影响控制精度。
4.网络操作系统
在计算机网络中,每个主机都有操作系统,当某一主机联网时,该系统就要与其他用户交互,操作系统的功能必须扩充以适应网络环境的需要。网络操作系统就是运行在服务器之上的,所以有时也把它称为服务器操作系统。在计算机上配置操作系统是为了管理计算机资源和向用户提供接口。同样,在计算机网络中,网络操作系统是为了管理网络中的共享资源,方便用户通信和方便用户使用网络,同时,网络操作系统也是网络用户和网络系统之间的接口。
网络操作系统与单用户操作系统或多用户操作系统由于提供的服务类型不同而有差别。一般情况下,网络操作系统是以使网络相关特性最佳为目的的,如共享数据文件、软件应用以及共享硬盘、打印机、调制解调器、扫描仪和传真机等。一般来说,网络操作系统的基本功能有以下几种。
1)文件服务
文件服务是最重要也是最基本的网络服务功能。文件服务器以几种方式管理共享文件,网络工作站可以根据所规定的权限对文件进行读/写以及其他各种操作,文件服务器为网络用户的文件安全与保密提供必需的控制方法。
2)打印服务
打印服务也是最基本的网络服务功能之一。它可以通过设置专门的打印服务器完成,也可以由工作站或文件服务器担任。通过网络打印服务功能,局域网中可以安装一台或几台网络打印机,网络用户就可以远程共享网络打印机。网络打印服务在接收用户打印请求后,本着先到先服务的原则,将多用户需要打印的文件排队,用排队顺序管理用户的打印任务。
3)Intenet/Intranet服务
随着计算机网络的发展,人们对网络操作系统提供的Internet服务的要求也越来越高。网络操作系统一般都支持TCP/IP协议,提供各种Intenet服务,支持Java应用开发工具,使局域网服务器很容易成为Web服务器,全面支持Intenet与Intranet访问。在Intenet下,常用的服务还包括E-mail服务、FTP服务、WWW服务等。
4)数据库服务
现在流行B/S、C/S数据库应用程序,其选择适当的网络数据库软件,使客户端可以用结构化查询语言向数据库服务器发送查询请求,服务器进行查询后将查询结果传送到客户端。它优化了局域网系统的协同操作模式,从而有效地改善了局域网应用系统性能。
5)网络管理功能
网络管理主要是网络的安全管理,一般的网络操作系统通过访问控制来保证数据的安全性,以及通过容错技术来保证系统出现故障时的数据安全性。
另外,网络操作系统还有分布式服务功能,对分布在不同地理位置的网络资源进行组织管理,还应该具有通信功能,使得工作站与工作站之间的对等通信和工作站与网络服务器之间的通信能够有效进行。从某种观点来看,网络操作系统是一种过渡性软件产品,并没有很大的技术“跳变”。SUN公司有一句名言是“网络就是计算机”。因为,在计算机网络系统中,每台机器都有高度的自治权,对整个系统范围没有很多要求,就像“地球村”中的一个“自由市场”。这样的系统显然是属于松耦合型的。通过网络通信与通过软盘或闪存(U盘)来交换信息,就计算机而言没有其他本质上的差别,网络仅仅在时延和数据传输率上可能有差别。
代表性网络操作系统产品有:NetWare 5.0,Windows Server 2003,IBM的LAN Server 4.0,SCO的Unixware 7.1和Linux等。随着P2P软件的兴起,对等模式很可能成为网络的发展方向之一。采用这种模式的操作系统的网络中,各个站点是对等的,没有主从之分。每个站点既可以作为客户去访问其他站点,又可以作为服务器向其他站点提供服务。在这种网络中,把服务和控制功能分布到各个工作站上。因此,可把工作站看成是由一个客户和一个服务器组成,也称为组合站。
5.分布式操作系统
分布式操作系统,是运行在的多台独立的计算机上,但对用户来说却像是一台计算机。其运行的基础是一群联网的计算机,其行为却像是一台虚拟的单处理计算机,用户不必关心计算机的资源在什么地方、什么时间工作,以及资源如何调配工作的。
分布式操作系统发展中的一个里程碑是“网格”的研究成果。网格(Grid)一词来源于人们熟悉的电力网(Power Grid),是利用高速国际互联网把地理上分散的各种资源(包括计算、存储、带宽、软件、数据、信息和知识等资源)连成一个逻辑整体,就像一台超级计算机一样为用户提供一体化信息和应用服务(计算、存储、访问等),虚拟组织最终实现在这个虚拟环境上进行资源共享和协同工作,彻底消除资源孤岛,让人们使用网格上的资源像用电一样简单。
分布式系统需要一个全局的文件系统,所有CPU上运行同样的内核,统一的管理和控制机构,进行优化的协调工作:有一个单一的、全局的进程通信机制,提供选择优化本地和远地的资源利用,有全局的保护机制等。
网络操作系统与分布式操作系统虽然两者都属于管理分布在不同地理位置的计算机,但不相同,网络操作系统和分布式操作系统都属于现代操作系统。网络操作系统是为了方便用户管理和控制分散在不同地理位置上的各种计算机,实现信息交流和资源共享。但面对用户使用时需要用户提供网络地址(IP地址、域名或实名等)。而分布式操作系统是高度智能化的系统,用户使用网络上的分散计算机,就像使用一台“全球”超大型计算机。网络操作系统主要涉及OSI的7层网络模型的网络层和运输层。
网络操作系统和分布式操作系统最大的差别是:网络操作系统的工作,用户必须知道网址,而分布式系统用户使用时可以不必知道计算机的确切地址,尤其是全分布式操作系统应由系统自动寻找地址,并合理分配各种资源。查找定位工作完全由操作系统自动完成。用户似乎拥有所有网上共事资源,好像工作在一台巨大的“计算机”上。除了“网格”研究外,在文件系统方面已有商品化的成果,例如,Windows 2000 Server。两者的内部管理都需要网址。当然,其实现难度是相当大的,其中半分布式作为过渡产品,还须用户进行适当干预。分布式系统具有强大的生命力和发展前途,也是操作系统的必然发展趋势。