|
|
|
操作系统的分类有多种方法,常见的有按照所提供的功能分类、按照系统的类型分类、按照响应时间分类、按照软件结构分类等。
|
|
|
|
|
|
按照操作系统所提供的功能进行分类是最常见的方式,可以分为以下几类。
|
|
|
|
(1)单用户操作系统。其主要特征是,在一个计算机系统内,一次只能支持运行一个用户程序。此用户独占计算机系统的全部硬件、软件资源。早期的微机操作系统例如DOS是这样的操作系统。
|
|
|
|
(2)批处理操作系统。用户把要计算的问题、数据、作业说明书等一起交给系统操作员,系统操作员将一批算题输入计算机,然后由操作系统控制执行。采用这种批处理作业技术的操作系统称为批处理操作系统。这类操作系统又分为批处理单道系统和批处理多道系统。
|
|
|
|
(3)实时操作系统。“实时”是“立即”的意思。典型的实时操作系统包括过程控制系统、信息查询系统和事务处理系统。实时系统是较少有人为干预的监督和控制系统。其软件依赖于应用的性质和实际使用的计算机的类型。实时系统的基本特征是事件驱动设计,即当接到某种类型的外部信息时,由系统选择相应的程序去处理。
|
|
|
|
(4)分时操作系统。这是一种使用计算机为一组用户服务,使每个用户仿佛自己有一台支持自己请求服务的计算机的操作系统。分时操作系统的主要目的是对联机用户的服务和相应,具有同时性、独立性、及时性、交互性。分时操作系统中,分时是指若干道程序对CPU的分时,通过设立一个时间分享单位即时间片来实现。分时操作系统与实时操作系统的主要差别在交互能力和响应时间上。分时系统交互行强,而实时系统响应时间要求高。
|
|
|
|
(5)网络操作系统。提供网络通信和网络资源共享功能的操作系统称为网络操作系统。它是负责管理整个网络资源和方便网络用户的软件的集合。网络操作系统除了一般操作系统的五大功能之外,还应具有网络管理模块。后者的主要功能是,提供高效而可靠的网络通信能力;提供多种网络服务,如远程作业录入服务、分时服务、文件传输服务等。
|
|
|
|
(6)分布式操作系统。分布式系统是由多台微机组成且满足如下条件的系统:系统中任意两台计算机可以通过通信交换信息;系统中的计算机无主次之分;系统中的资源供所有用户共享;一个程序可以分布在几台计算机上并行地运行,互相协作完成一个共同的任务。用于管理分布式系统资源的操作系统称为分布式操作系统。
|
|
|
|
嵌入式操作系统也可以按照不同的标准来进行分类,例如,可以按照系统的类型、响应时间和软件结构来分类。
|
|
|
|
|
|
按照系统的类型,可以把嵌入式操作系统分为三大类:商用系统、专用系统和开源系统。
|
|
|
|
(1)商用系统。商业化嵌入式操作系统特点是功能强大、性能稳定、应用范围相对较广,而且辅助软件工具齐全,可以胜任许多不同的应用领域。但商用系统的价格通常比较昂贵,如果用于一般的产品会提高产品的成本从而失去竞争力。其典型代表是风河公司(Wind River)的VxWorks、微软公司的Windows CE、Palm公司的PalmOS等。
|
|
|
|
(2)专用系统。一些专业厂家为本公司产品特制的嵌入式操作系统,这种系统一般不提供给应用开发者使用。
|
|
|
|
(3)开源系统。开放源代码的嵌入式操作系统是近年来发展迅速的一类操作系统,其典型代表是μC/OS和各类嵌入式Linux系统。开源系统具有免费、开源、性能优良、资源丰富、技术支持强等优点,在信息家电、移动通信、网络设备和工业控制等领域得到越来越广泛的应用。
|
|
|
|
|
|
按照系统对响应时间的敏感程度,可以把嵌入式操作系统分为两大类:实时操作系统和非实时操作系统。
|
|
|
|
顾名思义,实时操作系统就是对响应时间要求非常严格的系统。当某一个外部事件或请求发生时,相应的任务必须在规定的时间内完成相应的处理。实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果所需要的时间。
|
|
|
|
|
|
(1)硬实时系统。系统对响应时间有严格的要求,绝不允许响应时间不能满足,否则可能会引起系统的崩溃或致命的错误。
|
|
|
|
(2)软实时系统。系统对响应时间有要求,如果响应时间不能满足,将带来额外的代价,不过这种代价通常能够接受。
|
|
|
|
非实时系统在响应时间上没有严格的要求,如分时操作系统,它是基于公平性原则,各个进程分享处理器,获得大致相同的运行时间。当一个进程在进行I/O操作时,会交出处理器,让其他的进程运行。
|
|
|
|
|
|
按照软件的体系结构,可以把嵌入式操作系统分为三大类:单体结构、分层结构和微内核结构。它们之间的差别主要表现在两个方面:一是内核的设计,即在内核中包含了哪些功能组件;二是在系统中集成了哪些其他的系统软件(如设备驱动程序和中间件)。
|
|
|
|
|
|
在单体结构的操作系统中,中间件和设备驱动程序通常就集成在系统内核当中。整个系统通常只有一个可执行文件,里面包含了所有的功能组件(如下图所示)。系统的结构就是无结构,整个操作系统由一组功能模块组成,这些功能模块之间可以相互调用。例如,嵌入式Linux操作系统、Jbed RTOS、μC/OS-II和PDOS都属于单体内核系统。
|
|
|
|
|
|
|
|
单体结构的优点是性能较好,系统的各个模块之间可以相互调用,通信开销比较小。它的缺点是操作系统具有体积庞大、高度集成和相互关联等特点,因而在系统剪裁、修改和调试等方面都较为困难。
|
|
|
|
|
|
在分层结构中,一个操作系统被划分为若干个层次,各个层次之间的调用关系是单向的,即某一层上的代码只能调用比它低层的代码。与单体结构相似,分层结构的操作系统也是只有一个大的可执行文件,其中包含有设备驱动程序和中间件。由于采用了层次结构,所以系统的开发和维护都较为简单。但是,这种结构要求在每个层次上都要提供一组API接口函数,这就会带来额外的开销,从而影响到系统的规模和性能。下图所示为MS-DOS的结构,这是一个有代表性的、良好组织的分层结构。
|
|
|
|
|
|
|
|
|
|
微内核结构或者客户-服务器结构的操作系统是指在内核中将操作系统的大部分功能都剥离出去,只保留最核心的功能单元(如进程管理和存储管理),微内核结构的特点就是内核非常小,大部分的系统功能都位于内核之外,例如设备驱动程序,所有的设备驱动程序都被置于内核之外,如下图所示。
|
|
|
|
|
|
|
|
在微内核操作系统中,新的功能组件可以被动态地添加进来,所以它具有易于扩展、调试方便等特点。另外,由于大部分的系统功能被放置在内核之外,而且客户单元和服务器单元的内存地址空间是相互独立的,因此系统的安全性更高。它还有一个优点就是移植方便。但是,与其他类型的操作系统相比(如单体内核),微内核操作系统的运行速度可能会慢一些,这是因为核内组件与核外组件之间的通信方式是消息传递,而不是直接的函数调用。另外,由于它们的内存地址空间是相互独立的,所以在切换的时候,也会增加额外的开销。许多嵌入式操作系统采用的都是微内核的方式,如OS-9、C Executive、VxWorks、CMX-RTX、Nucleus Plus和QNX等。
|
|
|