操作系统结构与功能分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统结构与功能分析
摘要:对操作系统的结构进行分析比较,提出了操作系统在功能上的改进,并以L4微内核操作系统为例,说明如何提高操作系统的运行效率。
关键词:操作系统;结构;L4
软件是典型的知识产品,是有结构的,操作系统也不例外。软件结构是由软件组成成分构造软件的过程、方法和表示。由于软件反映的是客观事物,而客观世界总是处在不断的发展与变化中,软件系统不可能一成不变。新需求、新技术、新方法的出现都是促进软件发展的重要因素。对软件结构的研究在整个软件技术发展历程中贯穿始终,人们一直在寻找构造软件的更好办法。
结构设计是一个具有普遍性的问题,任何大型的工程任务都要认真地考虑结构问题,具有并发特征的操作系统同样如此。操作系统的结构分为整体式(monolithic)结构、模块组合结构(如UNIX)、层次结构(如Multics)以及微内核结构(如Mach、Chorus 、L4)。后面发展的结构通常都吸收了以前的结构的优点。新的结构设计方法的出现也往往伴随着新的结构概念和新的结构工具。
早期的模块组合结构(也称无序模块结构)体现了“分而治之”的系统开发思路。结构化程序设计方法为这种结构的系统开发提供了有效支持。为支持多道程序运行,操作系统的研究人
员提出了进程的概念,设计了分时系统;提出了虚拟存储的概念,在紧张的内存中可运行较大的程序、可运行多个程序。为更好地处理系统中的并发问题,人们设计了PV原语、信号量、管程与条件变量等机制;针对整体式结构中核内实体间无保护的问题,人们提出了基于权能(capability)的系统,如Hydra、EROS等。这一时期的研究偏重于多道程序环境下的并发问题。随着系统规模的增长,模块组合结构的系统中,各模块之间的交互趋于复杂,于是人们开始寻找更为有效的系统结构设计方法。首先提出的层次结构设计,主要包括进程分层结构和层次管程结构。
层次结构针对系统中多道程序并发运行且共享资源的矛盾,尝试为大系统、复杂系统的构造制定规则。进程分层结构中,系统服务模块按其语义和依赖关系分层实现,下层模块为上层模块实现功能调用接口,并利用更下层模块所提供的接口服务来构造本层服务。规定严格的调用层次关系,只能由上层模块调用下层模块,这样约束了系统中模块间交互方式,使得系统结构更为清晰。不过,层次结构也带来一些问题:②任务控制块存储开销大;②同步比较分散;③层次过多时降低了性能;④无限制的分层造成系统膨胀;⑤不适合本可顺序执行的程序。层次管程结构中,系统分别用管程和类程来实现对并发资源访问和专用资源访问的控制,在此基础上改进了并发支持,但在全局互斥问题上仍有不足,层次结构中其他问题仍然存在。20世纪80年代后期,出于分布式操作系统、网络操作系统的研究需要,人们提出了微
内核结构,试图解决层次结构中存在的问题,同时,在分布式系统中各节点上提供最小化的虚拟机器,屏蔽物理机器的硬件特性差异。
微内核结构也称客户/服务器结构。微内核结构中,大部分传统的系统服务被放到用户空间执行,以服务器进程的形态与用户应用并存于同一特权级(用户模式),而将系统中最基本的功能放在内核模式下执行。内核中最基本的功能包括中断与异常处理、线程管理、地址空间映射及基于消息机制的任务间通信。内核所提供的消息机制支持多个用户进程间及其与服务器进程间的通信。微内核结构的优点是:①内核精简,可移植性好;②稳定性、安全性好;③易于维护;④API简单;⑤可扩缩性好,直接支持分布式应用。但早期的实现中,进程间通信均需经过微内核,每次通信至少需要四次运行态的切换,开销很大。从实用的角度看,20世纪90年代初期实现的第1代微内核系统是失败的。20世纪90年代中后期,人们提出了第2代微内核的设想,并实现了一些原型系统。第2代微内核针对IPC机制作了细致的优化,特别是Cache和TLB的管理上,大大提升了系统性能。不过,在微内核系统中,应用程序与系统服务的开发面对的是很小的内核,往往需要自行实现较多功能,困难较大。
到目前为止,整体式结构、模块组合结构、层次结构(包括层次管程结构)和微内核结构如图1所示。仍各自被不同的操作系统采用。原因是这几种结构各有特点,各有自己的适用范围,
且在一定程度上互为补充。
图1操作系统结构比较
考察图1中的层次结构和微内核结构,不难发现:层次结构可以看作是对操作系统服务的一种“纵向”分解、“垂直”分解,高层的服务建立在低层及更低层服务基础之上;微内核结构则可以看作是对操作系统服务的一种“横向”、“水平”划分,传统的内核功能以用户级服务器的形式并置于用户空间。这两种结构都可以用来构造虚拟机操作系统。也有文献将这两种结构分别称作面向过程的系统(procedure-oriented system)和面向消息的系统(message-oriented system)。
2功能、性能改进
随着计算技术的发展,操作系统在计算机系统中发挥的作用也不断发生变化。从最初的引导程序,到负责计算机系统中硬件资源管理、控制程序运行、改善人机界面和为应用软件提供支持的系统软件,操作系统的功能、性能不断发生变化。随着高性能处理器、硬件平台的不断涌现及计算机网络技术的发展,人们针对高端应用的需求研究了并行操作系统、分布式操作系统、网络操作系统;随着计算技术应用领域的不断扩大,实时操作系统、嵌入式操作系统、面向特定应用的操作系统也成为重要研究课题。特别需要注意的是,软、硬件协同发展的规律在操作系统领域表现得相当突出。
从功能上,看待操作系统功能的角度主要有两种:一种角
度是自顶向下,将操作系统视为一台扩展机器(extended machine),或称虚拟机器(virtual machine)。虚拟机的构造方法始于IBM的CMS系统,后来被广泛用于操作系统的结构设计与语言运行支持系统中。提供虚拟计算机可以看作是操作系统的功能之一。
另一种角度是自底向上,将操作系统视为系统的资源管理器(Resource Manager),负责管理计算机系统的各种硬、软件资源。硬件资源管理负责处理器、存储器与I/O设备的分配、回收、调度、控制和故障处理,如图2所示。软件资源管理则包括对持久性资源(如文件)和非持久性资源(如各种管理表格)的管理。
图2操作系统的硬件资源管理功能
摩尔定律表明,微处理器的性能每18个月翻一番,同样计算机的存储容量也每隔18到24个月翻一番。计算的成本、尺寸及功耗则按几乎相同的速率下降。但操作系统的性能却无法做到这点。数值计算和图像处理等应用的性能虽然得到迅速提升,执行上下文切换所需要的时间基本上没有太大变化。在提高操作系统运行效率方面,人们一直在寻找有效的方法,例如L4致力于构造能充分利用现代处理器能力的操作系统。
L4微内核的核心功能是支持一个基于消息传送的IPC原语,以便在此基础上实现高性能的RPC机制。在486-DX50上,L4实现了一个RPC调用开销仅用10μs的性能。相比之下,在Mach操作系统上一个RPC的调用开销为230μs,而在Unix上