CPU资源管理在视频监控系统中的应用研究
2015-04-24王迤冉申秋慧
王迤冉,申秋慧
视频和音频是常用监控系统的主要信息资源.相比音频而言,在视频监控系统中,服务的对象主要还是视频,但是它在信息处理过程中,常常需要更大的网络带宽和处理时间.在网络传输和处理过程中,视频由于编解码的处理方式和数据源的不同,它在编解码的时间占用、错误的忍耐度和带宽的频率上会出现很大的变化.在视频监控系统中,对视频服务质量要求比较高.服务质量除了包含视频流的质量外,还需要网络提供的资源预留和实时处理机制.目前通用操作系统虽然具有实时调度能力,但并不提供高质量的视频服务质量保证.因此,需要设计一个能满足视频流应用服务质量的扩展系统.
1 相关研究
随着全球恐怖分子的猖獗,各国都在加强安全防范措施.视频监控在机场、车站等公共场所使用更加普遍.面对各种复杂的场合和条件,客户对视频网络服务质量的要求变得越来越高.网络服务质量(Quality of Service,QoS)是指计算机网络和客户之间以及互联网络上相互通信的客户之间对信息网络传输与共享的一些规定.通常QoS提供“尽力而为服务模型”、“综合服务模型”、“区分服务模型”三种服务模型.QoS的关键指标主要包括可用性、吞吐量、时延、时延变化和丢失.QoS通过给定的虚拟连接描述网络传输质量性能参数[1].这些参数包括:CTD、CDV、CER、CLR、CMR和SECBR、ALLservice Classes、Qos Classes等.视频监控系统中网络部分大都采用基于QoS的分布式服务质量,并进行智能模块化.由于监控系统的体系结构、服务质量和网络连接与传统的操作系统完全不同,所以大多数的分布式视频监控采用的是比较全面的服务质量结构和全新的操作系统以及网络协议.这些监控设计较为复杂,费用高.
本文对传统操作系统的内核进行扩展,使得在现有系统的基础上能够直接运行监控系统.同时,对传统的CPU实时调度算法EDF和RM[2,3]进行改进.资源管理系统能够根据各个任务的类型和QoS参数,按照一定的归类算法选择使用.在Windows XP上具体实现了该系统.笔者开发的系统,使用更加方便,费用比较低廉.在设计时考虑的主要因素包括访问速度、CPU资源利用率、系统的可扩展性、自适应性和实用性等因素.
2 视频监控系统结构设计
视频监控系统物理结构设计如图1所示,系统由多媒体工作站、多媒体个人计算机、ATM网络或以太网以及网关等组成.工作站中系统架构分为应用层、系统层和网络层.网络层负责从底层接收发来的视频信号,并上传到系统层.系统层一方面对底层传入的视频数据进行处理,按照要求传给应用层;另一方面还要对本机的资源进行管理和控制,保证系统正常运行.系统层包括各种操作系统和网络协议.应用层主要负责与上层用户之间进行交互,对用户发来的指令进行解释并执行.多媒体工作站之间通过端到端QoS保证,来提高视频传输质量.由于系统架构分层,QoS相应地也可以分为应用QoS、系统QoS和网络QoS.每种服务质量可以采用不同的动态或静态机制.每一层都需要引入相应的QoS参数来描述该层的服务.应用QoS是与特定的应用相关的,这些应用大致可分为实时周期性任务、实时非周期性任务和非实时任务等.对于视频监控而言,它主要是一种实时周期性应用,它的QoS参数包括记录速率、压缩模式、最大端到端延迟等.系统QoS参数包括显示系统参数、数据流性能参数、CPU控制参数和代价描述参数,可以定量或定性的方式描述.网络QoS参数通常用负载和性能的形式来描述,包括最大传输单元、令牌桶速率、最大网络端到端延迟、延迟抖动、丢失敏感度等.
图1 视频监控系统物理结构图
3 CPU资源管理器的设计与实现
视频监控系统资源结构设计如图2所示.资源结构包括各种控制器、监测器、资源管理器等内容.中央处理器是视频监控系统中最重要的资源,它不但要处理本机系统的各种实时任务,还要进行监控系统中视频数据的编码、解码、发送和接收.
视频监控系统中,CPU处理器主要负责的是实时周期性任务[4].它要根据任务的优先级选择合适的调度算法,在操作系统分配的时间片内执行任务.该系统既具有实时性,也具有分时性.因为有实时性,所以每个任务的执行不能超过系统分配给它的时间片,在最终截止时间内完成任务或者任务的一部分.实时调度算法非常重要,它的好坏直接影响着监控系统的服务质量.当一个新的实时监控任务过来时,系统立即根据实际情况选择一个合适的调度算法,按照要求把CPU分配给该任务.为了研究方便,对视频监控系统的终端做两点假设,一是内存资源完全满足系统要求,二是系统是单处理器.
图2 监控系统资源结构图
3.1 CPU调度算法设计
目前,视频监控系统中传统的实时调度算法是最早截止时间优先算法(Earliest Deadline First,简称EDF)和单调速率算法(Rate-Monotonic Algorithm,简称 RM).这两种算法在具体应用过程中,效率不高,运行效果不好,需要进行改进.
3.1.1 分时EDF算法
EDF算法是根据实时任务的开始截止时间来确定任务的优先级.截止时间愈早,其优先级愈高.针对EDF算法进一步研究,笔者提出一种TSEDF算法(Timesharing EDF),即分时EDF算法.TSEDF算法中,规定实时系统进行任务调度的时刻为调度点,CPU在分时系统的时间片为d,则任意两个相邻调度点的最大间隔不会超过d,从而易于在分时系统中实现.设ci表示实时任务在其周期内最长执行时间,pi表示任务的周期,任务的截止时间为下一周期起始时刻,则采用TSEDF算法实时任务类可调度的充分必要条件为:
3.1.2 综合RM算法
RM算法是一种静态优先级调度算法,主要适用于可抢占的周期性实时任务.在实时系统中,每当任务到来时,系统根据其周期长短进行排序并分配固定优先级.采用RM算法,系统有时执行的任务不是最为紧迫的,而且在强负载的情况下,往往不具有最好的性能.结合实时任务的周期和运行时间,本文对RM算法的优先级重新进行定义,提出了SRM算法(Synthesis RM),即综合RM算法[5].该改进算法把实时任务的紧迫程度和运行时间也考虑在内,结合运行周期,综合考虑其优先级.设任务τi的运行周期为Ti,运行时间为Ei,紧迫程度为Ui,定义任务τi的优先级Pi为:Pi=Pi(τi,Ti,Ei,Ui)=Wt/Ti+WeEi+WuUi,其中Wt、We和Wu分别代表任务的周期、运行时间和紧迫程度的权值.Wt>Wu>We,且Wt+Wu+We=1.如果Pi越大,任务τi的优先级越高.对于SRM算法,其可调度性判定如下所示:
设S={t1,t2,…,tn}为一个含有n个周期性任务的集合,集合中的任务用ti=(Ti,Ci)(i=1,…,n)来表示,其中,Ti表示ti的周期,Ci表示ti的最坏执行时间,定义Wi(t)为该任务的前i个任务在[0,t]之间对CPU的累计需求量,其中0时刻是临界时刻.
则SRM算法可调度的充要条件是:
(1)实时任务ti在SRM算法下能够调度,当且仅当Li≤1.
(2)任务集S在SRM算法下能够调度,当且仅当L≤1.
在传统的RM算法中,CPU利用率的上限为ln(2),大概为69.3%,SRM算法中可以达到90%以上,这说明SRM算法要比传统RM算法要好得多.
3.2 CPU资源管理器的设计与实现
3.2.1 基于QoS的CPU资源管理
在视频监控系统中,无论是前端采集、后端主控,还是视频分析、网络传输,都需要CPU进行处理.由于视频数据的采集、传导具有偶发性,所以监控系统中无法确定实时任务所需的CPU处理时间.实时系统采用的调度算法不同,数据的处理过程也会大不一样,处理时间则更不好预测.系统对不同的视频数据,需要采用不同的处理方法.对于相对稳定的实时任务,其周期性较好,变化小,只要预留峰值处理时间即可.而对于不规律的实时任务,时常有突发性处理要求,而且截止时间要求比较急,这不仅要为峰值处理预留时间,而且也要预留部分时间为突发性任务的运行提供保障.视频监控系统中,CPU时间按照任务处理的不同,可以分为实时部分、分时和过载部分.它们分别有相应的调度程序进行调度.实时部分是为周期性的实时任务而分配的时间,过载部分则是留给超时的实时任务或者突发性的实时任务,分时部分则是把时间留给非实时任务或者本机系统的一些任务.
由于EDF和RM算法各有优缺点,在视频监控系统中如果混合使用,则会达到较好的调度效果.当新的任务集到来时,资源管理系统根据各个任务的类型和相应的QoS参数,按照一定的归类算法选择TSEDF算法或者SRM算法进行调度.笔者提出一种归类HS调度算法(Hybrid scheduling),即混合调度,完成实时任务的调度.
3.2.2 HS调度
新任务到来时,视频资源管理系统先获取该任务的最迟截止时间和运行时间,与当前正在运行的任务相比较.如果最迟截止时间大于当前任务,则把该任务放入就绪队列中,等待下一步调度,否则采用抢占式EDF算法调度,保证按时完成任务.处于就绪队列中的任务,资源管理器按照其周期性进行分类.如果是实时性周期性任务,则采用SRM算法进行调度;如果是实时性非周期性任务,则采用EDF算法;如果是非实时任务,可以采用TSEDF算法进行.算法流程如下:
图3 HS算法流程图
3.3 CPU资源管理器实现
在传统操作系统上实现视频监控系统是本文的目标.依据常见的操作系统Windows XP,实现监控系统的一个CPU资源管理类.对于视频监控系统,实时任务要符合:1)高优先级任务可以抢占低优先级的任务;2)所有的任务都具有无关性,不存在先后次序的制约;3)任务集合的大部分都是周期性任务.Windows XP是一个抢占式的多任务系统,执行的实时任务符合条件.另外,Windows XP功能强大,性能稳定.同时,Windows XP也提供了强大的用户程序接口,通过Windows编程实现各种功能.这对视频监控系统的实现提供了有利的条件.监控系统中内核的扩充部分是在目态下进行的,不改变操作系统的原有结构,对Windows XP系统的稳定性不造成任何影响.
视频监控系统中CPU资源管理类CPU Management的功能结构[6]设计如图4所示:
图4 资源管理类功能结构图
在视频监控系统中,由视频数据形成的视频流在CPU Management中,要经过检测、预留和执行三个阶段来完成.视频流任务首先进入的是检测阶段.该阶段根据视频监控系统的三个层次,进行各自的QoS测试,计算请求任务的各种参数,然后根据参数比对,进行条件判断是否接受该任务.如果参数符合任务执行的条件,则接受该视频流任务,则进入第二阶段,否则该任务进入本机任务运行处理状态或者被拒绝执行.这里任务的调度,无论使用何种算法,都要进行任务执行条件的判定,符合判定条件,才能接收.第二阶段是预留阶段.根据第一阶段获得的规格参数,进行设置CPU时间分配.当然,这里时间的分配只是根据任务申请的时间和第一阶段的预测分析进行估计给出的,与实际运行时间有偏差.第三阶段是执行阶段,视频监控系统根据QoS控制和CPU管理机制来运行所接受的任务,根据其实时性和周期性,分别采用TSEDF算法、SRM算法或者常规的EDF算法进行调度.在采用调度算法执行的同时,对每一个任务会继续进行性能监控.如果有新的实时任务过来,则采用HS调度算法,进行重新分配CPU.如果一段时间的CPU使用情况与系统QoS当前的参数不相符合,则调整该任务的参数.如果偏差严重,则重新进行评估调度,甚至停止执行,放入就绪队列中等待下一次调度[7].
4 性能测试
笔者用4段视频流数据进行实验,对监控系统中CPU资源管理的应用性能进行评价.性能评价的标准是对用户请求的满足程度,包括响应时间,视频的分辨率、帧率,图形的抖动和延迟,CPU利用率等.试验分别在INTEL Pentium 4和Celeron II的单CPU机器上进行.
(1)没有启动CPU资源管理器
在Pentium 4上,仅运行2段视频时,解码正常.加入第3段后,所有视频播放速度缓慢.加最后一段视频时,CPU占用率保持在100%,丢帧现象严重,视频看不清楚.关闭第4段视频后,打开WPS办公软件,能正常运行.关闭第3段视频,能正常播放酷我音频软件.
在Celeron II上时得到的情形和上面类似.
(2)启动CPU资源管理器
在Pentium 4上启动CPU资源管理器,加入前3段视频,播放流畅,CPU的占用率为60%.加入第4段视频时,CPU占用率为80%,播放正常.打开 WPS办公软件,能正常运行.再打开酷我音频软件,CPU占用率为100%,视频有少量丢帧现象,音频软件播放有卡壳现象.
有Celeron II上启动CPU资源管理器,加入前2段视频,播放流畅,CPU的占用率为65%.加入第3段视频时,CPU占用率为85%,播放正常.加入第4段视频,播放较为慢速,有少量失真现象.打开 WPS办公软件,运行速度慢,响应时间长.无法打开酷我音频软件.关闭WPS办公软件,可以打开酷我软件,这时CPU占用率为100%,但音频软件能够正常运行.
5 结束语
笔者在分析通用操作系统对视频流应用支持和功能局限性的基础上,设计了有QoS保证的CPU资源管理,提出了TSEDF和SRM、以及HS等调度算法,从而在不改变操作系统内核的前提下实现了操作系统对实时视频流应用的功能扩展.通过测试,该设计方案提高了操作系统对视频监控系统中CPU资源管理功能.在处理视频流任务时,CPU利用率超过90%.该方案仍有改进之处,下一步准备结合视频编码来进一步增强视频流应用系统的功能.
参考文献:
[1]P.Pradhan,R.Tewari,S.Sahu,et al.An Observation-based Approach Towards self-managing Web Servers.In Proceedings of ACM/IEEE Intel Workshop on Quality of Service(IWQoS),Miami Beach,FL,May 2002.
[2]石为人,欧国建.基于单调速率调度算法的uC/OS-II多任务周期的设计[J].计算机应用,2007,27(3):706-708.
[3]田聪,段振华.基于命题投影时序逻辑的单调速率调度算法模型检测[J].软件学报,2011,22(2):212-219.
[4]胥辉旗,王义冬,陈望达.基于改进型RM算法的弹上综合信息系统任务调度[J].兵工自动化,2011,30(12):57-59.
[5]李雅红,王建国,魏必凡.主动网络节点的CPU资源管理策略[J].计算机工程,2009,35(1):120-122.
[6]耿旻明,蒋成龙,张冰尘.基于CUDA的阈值迭代算法并行实现[J].中国科学院大学学报,2013,30(5):676-681.
[7]佟玲玲,李扬曦,黄文廷.视频隐私保护技术综述[J].通信学报,2013,34(8):154-160.