计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000　Vol.17　No.5　P.23-24，86



操作系统对QoS的技术支持
卢文成　章昊翰　姜晓红　石教英
摘  要  该文就操作系统对QoS(服务质量)的技术支持进行了深入探讨。在给出QoS及其处理模型的基础上，阐述了OS支持QoS的思想，并给出OS支持QoS的技术实现方法。
关键词  OS  QoS  分布式多媒体
1  引言
　　操作系统作为信息计算系统中最基础的系统软件，它处于硬件底层与上层其它系统软件及应用软件之间，其目标与功能在于有效地管理硬件资源，并提供上层应用便利的调用接口。其中系统效率、使用方便性、强壮性与安全性等是其设计与实现考虑的主要方面[1]。由于操作系统所处的地位，操作系统的发展最需要关注的是底层硬件体系变化以及上层应用的需求变化，而两者之中应用需求的驱动是最根本的，正是由它促进了硬件体系以及其它软件体系的变革，从而又引发了自身新的需求。这一点可以从计算机诞生以来，计算机硬件的发展变化、应用需求的发展变化以及软件体系包括操作系统的发展变化过程可以清晰地看到。另一方面，硬件与计算体系结构的发展速度是惊人的，相对而言，操作系统的设计与更新要滞后得多，这主要与操作系统的设计与实现难度有关。无疑地，这种情况影响了软件系统的效率与性能。目前大多数的操作系统设计思想，仍然沿用的是七、八十年代传统的UNIX系统的设计思想。然而近20年来硬件平台与应用却发生了重大的变化，尤其是近10年来网络通信技术的发展，Internet的成功，分布式多媒体应用的发展，对下一代信息计算模式产生深远的影响。可以预见下一代信息计算将是基于高性能多服务网络的分布式多媒体协同的智能信息计算[２，３]。
　　鉴于这种网络环境与应用环境的需求的变化，传统操作系统的设计背景已经发生了改变，许多方面的设计需要重新审视。本文主要针对这种变化，就其中操作系统对QoS的技术支持这一方面进行探讨。以下各节，我们分别从QoS及其处理模型和OS支持QoS的技术实现方法两个方面来展开论述，最后还讨论了我们在OS端支持QoS方面的将来工作。
2  QoS及其处理模型
2.1  QoS的概念
　　服务质量QoS最早出现于通信领域，用来描述数据传输链路的速率、可靠性等技术特性。开始时，它只应用于网络底层协议，对上层应用而言是透明的，这对于早期时间要求不强的应用而言是可以接受的。但是随着与时间关联紧密的多媒体应用的发展，这种限于底层的QoS显得很不完整，因而国际电信联盟(ITU)在其开放系统互连推荐模型(OSI-RM)中将QoS的定义扩展为整个多媒体分布系统，要求整个系统一起来提供服务水平保证，其定义如下：
　　A set of quality requirements on the collective behavior of one or more objects.
　　这里指出QoS是一个或多个对象的集体行为的质量需求集，它涉及的是一组对象的集体行为。一般而言，它们包括硬件终端系统、操作系统、通信系统、应用系统等。由于QoS是一种集体行为，因而对象之间需要协商。但最终每个对象都要保证其所承诺的QoS服务，由此来确保总体的QoS实现。也就是说在分布式多媒体系统的各个层次、各个对象中，都需要有相应的QoS处理机制。然后这些个体的QoS处理机制再通过QoS协商机制完成全局的QoS处理。以下我们简略地讨论通用的QoS处理模型。
2.2  通用QoS处理模型
　　一般地，通用QoS处理模型由以下几个部分构成：(1)构造通用的QoS框架；(2)反映QoS需求的QoS规范说明；(3)QoS规范说明到具体资源的映射；(4)实现所需QoS行为的具体机制。
　　其中，抽象出反映应用QoS需求的QoS规范说明是进行QoS处理的前提。由于计算机系统能够处理的只是有限的正则集，因而从众多的应用中抽象出有限的QoS规范参数的正则集十分重要。同时这种规范集，具体在系统的不同层次与对象上又各不相同。一般地，QoS规范说明应包含以下几个方面的需求：性能、同步、服务等级、服务开销、QoS自身的管理等等。
　　QoS规范说明给出的只是系统对象层对外的界面规范，对于这种界面规范，系统对象层内部总要落实到具体资源的分配与占用上，也就是说，需要一种资源的推导映射机制。当然这种资源包括对象层自身拥有的物理资源以及从其它对象层获得承诺的抽象资源。因此在确定映射机制时，需要了解该对象层拥有的资源。
　　对象层在接收到QoS规范参数后，通过层内映射机制，落实到资源的占用需求。这种占用需求需要相应实现QoS行为的具体机制来分配、管理与监控。
3  OS支持QoS的技术实现方法
　　这里我们主要讨论增强支持方式，其中主要围绕网络通信支持展开。我们的目标是支持各种各样的分布式多媒体应用，为了提供上层多媒体应用的支持，我们首先需要抽象出上层应用的QoS说明界面。
3.1  应用的QoS说明界面
　　由于上层应用的多样性，我们需要抽象出能够传达应用相应QoS需求的参数界面。这种参数界面需要满足以下两原则：1)是能够代表各种不同应用需求的正则集；2)参数不宜多且对于上层应用而言易于指定。一般地，我们可以把应用类型大致分为以下三类：
　　．等时类应用(连续媒体类)
　　这类应用是以固定速率产生或吸收连续媒体流数据的应用，为了避免抖动，它具有较高的等时性要求。这类应用的网络传输情况特点，可以由以下三个参数给出：帧速率、最大帧大小以及平均帧大小。这三个参数可以决定该应用网络连接需要的带宽需求。另外附加一个发送端到接收端的延迟参数，可以决定缓冲资源的需求情况。
　　．突发性应用
　　这类应用数据的发送与接收是随机的突发性的，以多媒体浏览应用为代表。其QoS参数主要为最大数据大小以及需要的带宽。
　　．低延迟类应用
　　这类应用主要是消息发送与接收类应用，带宽需求不高但要求较小的响应时间。需要提供一定速率的消息传送服务的数据流应用也属此类，如DIS(分布交互模拟)。这类应用其QoS参数主要为最大消息包大小、延迟、消息速率。
　　这些应用的QoS说明界面，可通过扩展的或增强的QoS系统调用来实现。
3.2  QoS到资源需求的映射
　　应用程序以上面定义的QoS参数向操作系统核心提出的请求后(系统调用方式)，操作系统需要将这些面向应用的QoS参数需求转换成系统硬件资源的需求关系，即需要进行资源需求的QoS映射。对于应用的通信会话，涉及的是网络链路资源、网络数据协议处理的计算资源(可调度的处理器资源)，因此需要在其中建立一种需求推导机制。这种推导基于如图1所示模型。

图1通信构成模型
　　映射过程如下：1)根据采用的协议，调节数据包大小，同时根据总延迟确定终端部分的延迟估算。2)根据调节后的数据包大小与延迟估计确定网络连接的带宽与延迟参数。3)根据网络带宽与延迟估算导出协议处理能力需求(处理器资源)及缓冲资源。
　　下面我们详细给出协议处理的CPU资源需求映射过程。以等时类的应用为例，由该类应用的帧速率、平均帧大小及最大帧大小可确定其连接的带宽需求，记为v。其延迟参数定出终端部分的延迟为D。下面我们根据v、D与PDUsize来导出其处理器需求。由v及PDUsize可以确定该网络连接需要网络适配器发送一个PDU的时间间隔t。为了满足链路充分工作的条件，我们需要在间隔t，至少准备好一个PDU。考虑到协议处理的开销，一般一次处理n个协议包，n的取值要满足n(t<d，同时n还与网络缓冲资源相关。这样在t=n(t的周期性时间间隔内，该网络连接需要cpu来形成n个pdus。该处理时间记为c，与cpu及协议处理代码有关。通过c/t，我们就可为这次网络连接预留处理器资源。
3.3 QoS的强化
　　应用的QoS需求经映射推导处理后，最终落实到具体的资源需求：处理器资源、缓冲资源以及链路资源等。这些资源的可分配性，分配后如何强化保证其落实，是实现QoS支持的重要方面。其中对于操作系统而言，增加QoS的支持，最关键的就是引入QoS强化落实机制，其主要内容是处理器资源的调度保证措施。针对协议处理的需求，OS需要：
　　(1)构造在一个进程内周期性的处理行为机制；
　　(2)在多个进程间调度这些行为的调度机制。
　　这在传统的Unix系统中，并未得到很好的解决，其进程的调度往往采用基于优先级的RR算法。一般的处理是在OS的核心调度中添加实时扩充，以增加对周期性实时处理的支持。如图2所示。这种实时扩充支持可分为三类：1)添加一些新的可执行对象，包括增加实时线程或进程对象，实时signal对象等等各种方法[4]。2)通过对现有的一些可执行对象进行实时调度增强处理，而不增加新的可执行对象[5]。3)采用一些周期性的实时调度算法，如RM(Rate-Monotonic)算法、EDF(Earliest Deadline First)算法等。

图2核心调度的实时扩充实现方法
　　这些方法实现各有各自的优缺点，一般而言，实现的难度、性能效率以及通用性是其考虑的指标。
3.4 网络协议系统的开发与优化
　　网络通信作为OS支持QoS的重要内容，其协议模块的开发以及降低系统开销的性能优化工作具有重要意义。一般地，网络协议系统的开发根据协议处理代码的实现位置可分为：核心级实现与用户级实现两种。其中网络模块在用户级的实现由于具有更高的可配置性、灵活性，同时效率上与核心驻留协议处理相差不大，故近来研究工作更多的考虑用户级的网络实现方法。
　　无论是用户级的网络实现还是核心级的网络实现，其数据都涉及从用户空间到核心空间的过程，以及协议处理中的上下文切换开销。因而降低数据拷贝开销以及上下文切换开销是协议系统优化的关键。
　　其中在降低数据拷贝开销方面，主要的方法有硬件上采用专用的网络适配卡，上层应用的缓冲区直接定位在网络适配卡上，从而降低数据移动开销。软件上，采用一些共享内存技术来降低数据从用户空间到核心空间之间的拷贝，所传递的只是几个字节大小的内存句柄。
　　在降低系统调用切换开销方面，常采用一些在应用进程与核心之间共享的一些数据结构，如环状buffs，通过应用进程以及核心对这些共享数据结构的操作与轮询来协调工作，降低一些管理方面的切换开销。
4  结论
　　本文中，我们对操作系统对QoS的终端技术支持作了较为完整的探讨，其中从分布式多媒体的QoS处理出发，详细讨论了在OS中支持QoS的思想以及实现技术。目前，我们正在ATM网上构造一个多媒体分布处理框架系统，该系统的目标是提供应用到应用的QoS保证机制。作为该框架系统构成的一部分，我们正对操作系统Linux进行改造，使之在终端系统上满足应用QoS的需求。
卢文成(浙江大学CAD&CG国家重点实验室   浙江大学计算机系  杭州 310027)
章昊翰(浙江大学CAD&CG国家重点实验室  浙江大学计算机系   杭州 310027)
姜晓红(浙江大学CAD&CG国家重点实验室  浙江大学计算机系   杭州 310027)
石教英(浙江大学CAD&CG国家重点实验室  浙江大学计算机系   杭州 310027)
参考文献
1，Abraham S. &amp; Peter B. Galvin. Operating System Concepts (Fourth Edition), Addison-Wesley Publishing Company. 1994
2，Jean Walrand &amp; Pravin Varaiya. High-Performance Communication Networks, University of California Berkeley, Morgan Kaufman Publisher, Inc. 1996
3，Paul P. White &amp; Jon Crowcroft. The Integrated Services in the Internet: State of the Art, Proceedings of the IEEE, Vol. 85, No. 12, December. 1997 pp 1934～1946
4，R. Gopalakrishnan &amp; Guru M. Parulkar.  A Framework for QoS Guarantees for Multimedia Applications within an Endsystem, Swiss German Computer Society Conference, September, 1995
5，David K. Y. Yau &amp; Simon S. Lam, Operating System Techniques for Distributed Multimedia, Proceedings SPIE Multimedia Computing and Networking(MMCN '96), January 1996
收稿日期：1999-12-22
