




已阅读5页,还剩57页未读, 继续免费阅读
(检测技术与自动化装置专业论文)windows+cenet实时性应用研究及控制组态软件开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
捅要 鼍曼i ! i i ! 曼皇曼蔓曼曼鼍曼皇曼! 曼曼曼曼曼曼曼皇曼! 曼曼曼曼 摘要 简单介绍了中小型集散控制系统( d c s ) 的发展前景,指出采用嵌入式系统是工业 控制系统发展的方向。本课题组开发的中小型集散控制系统采用了嵌入式系统,硬件部 分的现场控制站主机采用研华公司( a d v a n t e c h ) 的m i c 2 0 0 0 系列产品,软件部分采用 微软公司( m i c r o s o f t ) 的嵌入式操作系统w i n d o w sc e n e t 。对w i n d o w sc e 。n e t 的系统结 构和实时性进行了深入剖析,并从内存管理和多线程角度阐述了开发基于w i n d o w s c e n e t 的应用程序的关键问题。本工作主要完成了工程师沾( 上位机) 的控制算法组态 模块和现场控制站( 下位机) 应用程序的开发,开发工具分别为v i s u a lc + + 6 0 和 e m b e d d e dv i s u a lc + + 4 0 。控制算法组态模块是组态软件中的一个独立模块,根据监控 系统的需要进行选择,因此具有独立的组态界面和信息存储的数据结构。现场控制站的 应用程序没有界面,是一个开机运行的用户进程,程序采用多线程机制并行处理数据采 集、实时控制以及网络通信等任务。软件在实验室的系统环境中调试运行,能够实现组 态文件下装,现场数据采集及自动控制,实时数据的广播发送等功能。 关键词:w i n d o w sc e n e t ;实时性;控制算法;数据采集;网络通信 a b s t r a c t a b s t r a c t t h i sp a p e rb r i e f l yi n t r o d u c e st h ep r o s p e c t so fs m a l la n dm e d i u m s i z e d - d i s t r i b u t e d c o n t r o ls y s t e m ,a n dp o i n t so u tt h a tt h es y s t e mi se m b e d d e dw h i c hw i l ll e a dt h et e n d e n c yo f i n d u s t r i a lc o n t r o ls y s t e m s o u rt e a mu s e de m b e d d e ds y s t e mi nt h ed e v e l o p m e n to ft h es m a l l a n dm e d i u m s i z e dd i s t r i b u t e dc o n t r o ls y s t e ma n dh a r d w a r eo ft h ef i e l dc o n t r o ls t m i o nu s i n g m i c 一2 0 0 0s e r i e so fa d v a n t e c hc o r p o r a t i o na n ds o f t w a r ei sb a s e do ne m b e d d e do p e r a t i n g s y s t e mw i n d o w sc e n e t o fm i c r o s o f tc o r p t h et h e s i s a n a l y z e dt h es t r u c t u r ea n dt h e r e a l t i m e p e r f o r m a n c eo fw i n d o w sc e n e ta n de l a b o r a t e d t h e c r i t i c a li s s u eo nt h e d e v e l o p m e n to fa p p l i c a t i o n si nt h ep e r s p e c t i v eo fm e m o r ym a n a g e m e n ta n dm u l t i t h r e a d i n g b a s e do nw i n d o w sc e n e t t h em a i nt a s ko ft h es o f t w a r ei nt h ep r o j e c ti st h ec o n f i g u r a t i o n m o d u l eo fc o n t r o la l g o r i t h mi np c ( e n g i n e e rs t a t i o n ) a n dt h ea p p l i c a t i o n si nf i e l dc o n t r o l s t a t i o n s r e s p e c t i v e l yc o m p i l e di nv i s u a lc + + 6 0a n de m b e d d e dv i s u a lc + + 4 0e n v i r o n m e n t c o n t r o la l g o r i t h mi nt h ec o n f i g u r a t i o ns o f t w a r ei sa l li n d e p e n d e n tm o d u l e i na c c o r d a n c ew i t h t h em o n i t o r i n gs y s t e mn e e dt oc h o o s e a n di th a sa ni n d e p e n d e n tc o n f i g u r a t i o ni n t e r f a c ew i 血 i t s e l fd a t as t r u c t u r et os t o r ei t si n f o r m a t i o n t h ea p p l i c a t i o ni n f i e l dc o n t r o ls t a t i o nh a sn o t i n t e r f a c e ,w h i c hp e r f o r m sw h e np o w e r e do na n dp a r a l l e lp r o c e s s i n gd a t aa c q u i s i t i o n ,r e a l t i m e c o n t r o la n dn e t w o r kc o m m u n i c a t i o n si nm u l t i t h r e a d i n gm e c h a n i s m a c c o r d i n gt ot h er e s u l to f d e b u g g i n g i nt h e l a b o r a t o r ye n v i r o n m e n t ,t h ea p p l i c a t i o n c a nr e a l i z e d o w n l o a d i n g c o n f i g u r a t i o nf i l e s ,f i e l dd a t aa c q u i s i t i o n ,r e a l t i m ec o n t r o la n dd a t ab r o a d c a s t i n g k e yw o r d s :w i n d o w sc e n e t , r e a l t i m ep e r f o r m a n c e ,c o n t r o la l g o r i t h m ,d a t aa c q u i s i t i o n ,n e t w o r k c o m m u n i c a t i o n 河北大学 学位论文独创性声明 本人郑重声明: 所呈交的学位论文,是本人在导师指导下进行的研究t 作 及取得的研究成果j 尽我所知, 除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写的研究成果,也不包含为获得河北大学或其他教 育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了致谢。 作者签名:剖吁r 旃 学位论文使用授权声明 本人完全了解河北大学有关保留、使用学位论文的规定,即:学校有权保留 并向国家有关部i - j 或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存 论文。 本学位论文属于 1 、保密口,在年月r 解密后适用本授权声明。 2 、不保密口。 ( 请在以上相应方格内打“” ) 作者签名: 导师签名: 日期:竺壁年兰r - 月j 一闩 日轫:2 尘年月同 保护知识产权声明 本人为申请河北大学学位所提交的题目为 的学位论文,是我个人在导师韶毫嘞 w 讥扫略屯北实霸才惕压撇j 砌冽钺孜件矸菽 指导并与导师合作下取得的研究成果,研 究工作及取得的研究成果是在河北大学所提供的研究经费及导师的研究经费资 助下完成的。本人完全了解并严格遵守中华人民共和国为保护知识产权所制定的 各项法律、行政法规以及河北大学的相关规定。 本人声明如下:本论文的成果归河北大学所有,未经征得指导教师和河北大 学的书面同意和授权,本人保证不以任何形式公开和传播科研成果和科研工作内 容。如果违反本声明,本人愿意承担相应法律责任。 声明人:童! ! 璺煎 日期:丛年生月一日 作者签名: 导师签名: 日期:丛年三月生同 日期:丛年上月同 第1 章引言 皇皇皇! 曼曼曼曼皇曼皇兰曼曼曼曼! ! ! 曼曼曼曼曼曼曼鼍曼! 曼曼曼罾鼍曼鼍皇皇皇鼍曼皇曼蔓m :mm =:mm | 皇曼曼曼皇曼舅! 曼曼皇皇曼曼曼皇曼蔓璺皇曼 第1 章引言 1 1 研究背景 集散控制系统( d c s ) 是以微处理器为基础进行集中管理分散控制的计算机控制系 统,它已经在工业控制领域得到了广泛的应用【l 】。 对d c s 进行组态f 2 1 是通过工控组态软件来实现的,组态软件是一种平台监控软件【3 】, 利用系统软件提供的工具,通过简单形象的组态工作,构成系统所需的软件f 4 】。目前国 外的监控组态软件发展的比较成熟,比较著名的有i n t e l l u t i o n 公司的i f i x ( 3 0 ) 、g e 公 司的c i m p l i c i t y ( 6 0 ) 、w o n d e r w a r e 公司的i n t o u c h ( 7 1 ) 以及s i e m e n s 公司的w i n c c ( 5 0 ) 等。其中i n t e l l u t i o n 公司和w o n d e r w a r e 公司专门从事监控软件工作,在市场占有绝大一 部分份额,g e 公司的c i m p l i c i t y 和s i e m e n s 公司的w i n c c 正在努力推向市场。同国外 相比,国内组态软件的发展起步较晚。国内组态软件在我国研究始于8 0 年代末,到1 9 9 5 年以后,我国组态软件的应用逐渐得到了普及【5 l ,特别是近年来得到了一定程度的发展, 许多公司都推出了自己的产品,如亚控科技发展有限公司的组态王k i n g v i e w 、北京三 维力控科技有限公司的力控f o r c e c o n t r o l 、北京昆仑通态自动化软件科技有限公司的 m c g s 等。 长期以来,中国的组态软件市场都是由国外的产品占主角,国内的组态软件还处于 发展阶段,特别是针对中小型集散控制系统,仍然存在一定的空白,因此,丌发适合于 中小型集散控制系统的组态软件有着良好的前景。 当前在工业控制中,嵌入式系统的应用迅猛发展。随着应用对象的扩大和技术的进 步,嵌入式操作系统传统应用领域一工业控制领域对工业控制系统的功能和性能提出了 许多新的要求。例如,适应恶劣的工作环境,熟悉和友好的用户界面,统的编程界面, 强大的通信功能和多媒体功能等1 6 】。因此,研究嵌入式系统在工业控制领域的应用具有 广泛的市场前景。嵌入式系统是以嵌入式c p u 为基础,嵌入式操作系统为核心的控制 系统f 7 1 ,是嵌入式硬件和软件的集合体,嵌入式操作系统则是整个系统的核心,这是因 为硬件的发展已经同益成熟,而嵌入式操作系统则需要丌发人员进行定制,定制的操作 系统性能好坏将直接影响整个系统的性能。提高硬件能力可以在一定程度上提高计算机 系统的实时性,但是当硬件条件确定之后,一个实时系统的性能主要是由操作系统来决 l 河北人学 :学硕十学1 市论文 定【8 】o 当前市场上流行许多嵌入式操作系统,例如v x w o r k s 、p s o s 、l i n u x 、w i n d o w s c e 等。在众多嵌入式操作系统中,m i c r o s o f t 推出的w i n d o w sc e n e t 是目前最具应用前景 的嵌入式系统之一【们。w i n d o w sc e n e t 是专为嵌入式领域推出的操作系统,已开始广泛 应用于数码相机、智能手机、p d a 、工业控制等嵌入式领域【1 0 l 。嵌入式操作系统w i n d o w s c e 。n e t 应用于工业测控领域具有一定的新颖性和很高的实用价值【】,正在逐步占领广阔 的市场份额。 本课题讨论中小型集散控制系统的开发。基于以上介绍,现场控制站的软件平台采 用嵌入式操作系统w i n d o w sc e n e t ,由于现场控制站对系统的实时性要求较高,因此本 文对w i n d o w sc e n e t 的实时性能从应用程序开发的角度进行一些研究与讨论。 1 2 研究的内容 计算机控制系统包括上位机( 工程师站) 的监控组态软件和下位机( 现场控制站) 的监控软件:监控信息由用户在工程师站用监控组态软件进行配置,通过网络下装到现 场控制站和操作员站。现场控制站的监控软件包括硬件( 数据采集卡) 驱动程序、数据 采集模块、控制算法模块和网络通信模块。下位机软件( 应用程序) 通过网络得到监控 信息并调用相应的功能模块,对硬件进行数据采集和自动控制等操作。事实上下位机软 件直接和数据采集板卡发生联系,由硬件驱动程序对工业现场进行控制。 本课题的研究基于河北省科技厅的实际项目一中小型集散控制系统研制与开发 ( n o 3 2 1 3 5 1 0 5 ) 。 课题研究内容包括:系统硬件平台搭建、控制组态软件开发、w i n d o w sc e 系统实 时性能研究、嵌入式操作系统内核的定制、数据采集和控制算法应用程序的设计、操作 员站监控界面丌发以及设备间网络通信程序的丌发等。 1 3 课题进展及本人的主要工作 目前课题已经完成的工作包括:工程师站组态软件的站组态、板组态以及点组态, 现场控制站数据采集卡的驱动程序丌发。本人的主要工作有如下几点: 2 第1 章引言 i 嵌入式操作系统w i n d o w sc e n e t 的实时性能研究 通过对w i n d o w sc e :n e t 内核结构的分析与研究,深入理解了w i n d o w sc e n e t 的实 时能力以及影响系统实时性的因素,为_ 丌发基于w i n d o w sc e n e t 的应用程序打下了基 础。 2 组态软件控制算法模块的设计 控制算法组态程序在v i s u a lc + + 6 0 环境下开发,控制算法组态模块是集散控制系 统组态的一个独立模块,专门为模拟输入信号的自动控制而设计。 3 现场控制站应用程序的开发 现场控制站基于w i n d o w sc e n e t 平台,应用程序要求很高的稳定性和实时性,程 序设计采用w i n 3 2a p i 编写,代码量小,执行速度快。 河北人学。7 :学硕十学位论文 曼皇曼曼曼鼍蔓i , 。 i,i i ! 第2 章本系统平台介绍 中小型集散控制系统包括硬件系统和软件系统,硬件和软件采用开放式、标准化和 模块化设计,具有灵活的配置【1 2 1 。硬件系统主要由嵌入式工业控制计算机和p c 机组成。 软件系统包括由w i n d o w sc e n e t 定制的操作系统和应用程序。 2 1 本系统的硬件架构 硬件平台由工程师站、操作员站和现场控制站组成。设备之间通过以太网连接构成 一个完整的工作系统。系统结构如图2 1 所示。 工程师站操作员站 操作员站 图2 1 中小型d c s 系统结构图 工控机作为现场控制站,是整个控制系统的核心。机笼基于i s a 总线,内置 m i c 2 3 5 2c p u 卡,1 6 通道模拟量输入模块m i c 2 7 18 ,4 通道模拟量输出模块m i c 2 7 2 8 , 3 2 通道数字量输入模块m i c 2 7 3 0 ,数字量输出模块m i c 2 7 5 0 。 工程师站是普通p c 机,它的主要功能是实现系统控制策略的组态并将组态数据下 装到现场控制站。同时工程师站还可以实时监控系统状态,根据现场要求,改变组态策 略,实施优化控制。 操作员站采用“组态王软件形成实时监控界面。可以通过画面显示工作现场的实 时趋势曲线、历史趋势曲线等。操作员站对现场的工作情况进行监控和分析,并可通过 “软手操”对现场设备进行控制和调节,保证生产过程的安全、可靠、高效。 4 第2 章本系统平台介绍 2 2w i n d o w sc e n e t 系统介绍 2 2 1w i n d o w sc e n e t 简介 w i n d o w sc e 是m i c r o s o f t 公司推出的面向嵌入式应用领域的操作系统,即嵌入式操 作系统。w i n d o w sc e 是一个具有抢先式多任务功能,并具有强大通信能力的嵌入式操 作系统。w i n d o w sc e 的应用范围非常广泛,例如信息设备,移动应用,消费类电子产 品以及工业控制等领域。 w i n d o w sc e 的第一版于1 9 9 6 年发布,最初并不是很成功,直到w i n d o w sc e3 0 它才真正被人们所接受。2 0 0 2 年1 月,微软发布了w i n d o w sc e n e t4 1 版,2 0 0 4 年, 微软公司对w i n d o w sc e n e t 作了进一步改进,推出了w i n d o w sc e n e t4 2 版本,取得 了很大的成功。 w i n d o w sc e n e t 的特点是模块化及可伸缩性,实时性能好,通信能力强大,支持多 种c p u 。w i n d o w sc e 使用了对象存储技术( o b j e c ts t o r e ) ,包括文件系统,注册表及数 据库。它还具有很多高性能、高效率的操作系统特性,包括按需换页、共享存储、交叉 处理同步、支持大容量堆( h e a p ) 等【1 3 】。 w i n d o w sc e 具有良好的通信能力,它广泛支持各种通信硬件,例如瑞昱( r e a l t e k ) 网卡,支持直接的局域网连接以及拨号连接。 w i n d o w sc e 具有出色的图形用户界面,开发人员可以利用丰富灵活的控件库为嵌 入式应用建立各种图形用户界面,方便用户进行人机界面交互。 w i n d o w sc e 是一个多任务的操作系统,可以并发执行多个任务,并在它们之间来 回切换。w i n d o w sc e n e t 专门为嵌入式市场设计,为快速建立下一代智能设备和小内存 占用设备提供了一个健壮的实时操作系统。 2 2 2w i n d o w sc e n e t 系统结构 现代操作系统( 例如u n i x ) 般具有分层结构,包括应用环境、操作环境等。 w i n d o w sc e n e t 采用一种比较复杂的分层结构,这是由它面向嵌入式应用的特点所决定 的。 5 河北人学。r :学硕十学俜论文 w i n d o w sc e n e t 操作系统的设计借鉴了w i n d o w s2 0 0 0 x p 操作系统的设计,它既具 有分层结构的特点,又具有微内核结构的特点。 1 w i n d o w sc e n e t 的分层模型 w i n d o w sc e n e t 操作系统由若干个模块构成,各个模块执行不同的功能,分层模型 的实质是将操作系统的功能模块按照调用的次序分成若干层,各层之间单向调用。从接 口的角度讲,w i n d o w sc e n e t 面向应用开发和面向系统两个界面。 如图2 2 所示,w i n d o w sc e n e t 操作系统在应用支持库和操作系统层实现,上面接 应用开发层为开发人员设计自己的应用程序提供接1 2 ,下面接o a l ( o e ma d a p t e r l a y e r ) 层和硬件层。o a l 层集中所有硬件特性,是操作系统和系统硬件的接1 2 ,由硬 件厂商提供。 应用集成层 应用开发层 应用支持库 操作系统层 o a l 硬件 图2 2w i n d o w sc e n e t 的分层模型 嵌入式操作系统一般由_ 丌发人员根据需要选择相应的模块进行定制,有时也需要对 o a l 层进行修改,从而定制出适合需要的最小系统。分层模型j 下好为开发人员提供了 定制系统的条件,避免了操作系统附带不必要的功能,减小了系统的体积,从而更能发 挥操作系统的性能。 2 w i n d o w sc e n e t 的组件模型 在w i n d o w sc e n e t 的分层结构中,操作系统层和o e m 层构成了实际的操作系统, 这两层包含了操作系统实现的重要组件。 第2 章本系统平台介绍 鼍舅i! i , ! , ii a ! zz _ 一- - - - - - - - - - 蔓皇寰皇曼! 鼍鼍皇曼曼曼皇曼曼 o e m 层包含以下组件1 1 4 】: 1 ) o a l 模块。这个模块主要包括和硬件相关的功能。 2 ) 引导程序。它实现将操作系统核心调入内存。 3 ) 配置文件。根据不同的硬件进行相关的文件配置。 4 ) 驱动程序。驱动程序是许多实体程序的集合,它使操作系统能够驱动不同的硬 件。 操作系统层包含以下组件: 1 ) c o r e d l l 。它处在操作系统和应用程序层之间,隔离了应用层和操作系统的其 它模块。在系统中,c o r e d l l 主要担任对外部调用系统功能进行代理的任务,使系统获 得了一个保护层。 2 ) 核心n k 。w i n d o w sc e n e t 系统在运行时体现为n k e x e ,它只占有2 0 0 k 左右的 空间,始终运行在较高优先级和处理器特权级别上,主要完成处理器调度、内存管理、 异常处理、系统内的通信机制等任务。 3 ) 设备管理模块。它是w i n d o w sc e n e t 操作系统管理设备的核心模块,运行时表 现为进程d e v i c e e x e 。 4 ) g w e s 模块。图形窗口和事件系统模块,运行时表现为g w e s e x e ,主要完成绘 图引擎、窗口管理及界面的事件机制等功能。 5 ) 通信和网络服务模块。它在操作系统中是相对独立的一个模块,完成系统与外 界通信的功能,并为操作系统上层提供网络服务。 6 ) 对象存储模块。该模块是w i n d o w sc e n e t 的存储内存空间,包括三种类型的数 据:w i n d o w sc e n e t 的文件系统,系统注册表,数据库。 7 ) 应用和服务开发模块。这个模块为开发应用程序提供接口,实现系统调用。 w i n d o w sc e n e t 的组件模型体现了系统的微内核结构,揭示了嵌入式操作系统的本 质,为开发人员定制操作系统和开发用户应用程序指明了方向。w i n d o w sc e n e t 的内核 体系结构如图2 3 所示。 河北大学丁学硕十学何论文 图2 3w i n d o w sc e n e t 内核体系结构 8 第3 章w i n d o w sc e n e t 实时性能分析 第3 章w i n d o w sc e n e t 实时性能分析 实时性是衡量嵌入式操作系统的一个重要指标。所谓实时性是指实时操作系统【l 5 j ( r e a l t i m eo p e r a t i o ns y s t e m ,r t o s ) 处理给定的任务时,在时间尺度上的表现能力。 二般情况下,实时系统对于给定任务必须在有界的时间范围内作出响应,并及时完成任 务的处理。 w i n d o w sc e 从3 0 版本开始在内核上进行了很多重要的更改,极大地增强了实时 性能。w i n d o w sc e n e t 是w i n d o w sc e 3 0 的后继产品,w i n d o w sc e n e t 内核包含了与 w i n d o w sc e3 0 相同的实时增强功能,并在此基础上增加了一些实时特性功能,例如 对x 8 6 平台添加了通过o e m 定义的变量指定页面池大小的功能【1 6 1 。w i n d o w s c e n e t 新的内核服务,例如嵌套式中断、更好的线程响应、新增的任务特性、信号量等, 使得它能对事件和中断立即响应,能够满足数据采集中苛刻的实时性要求【1 7 】。 w i n d o w sc e n e t 在实时能力上与v x w o r k s 等老牌嵌入式操作系统仍有一定的差 距,但是在实际应用中很多情况下对实时性的要求并不是太高,w i n d o w sc e n e t 完全 可以满足实时性要求,事实上,w i n d o w sc e n e t 可以满足9 5 的硬实时系统的要求。 在2 0 0 m h z 的x 8 6 系统平台下,w i n d o w sc e n e tl m s 定时周期误差接近5 0 u s 。 w i n d o w sc e 。n e t 的实时性因素包括内存管理、多线程机制、中断性能、信号量机 制等内容,本文所涉及的应用程序是在驱动程序的基础上的,并未涉及硬件,因此仅在 内存管理和多线程机制方面对w i n d o w sc e n e t 的实时性进行讨论。 3 1w i n d o w sc e n e t 内存管理 在嵌入式系统中,一般情况下物理内存资源比较少,因此内存管理非常重要。 w i n d o w sc e n e t 是一种嵌入式实时操作系统,在内存管理方面必须要节省物理内存,更 有效的使用物理内存。 9 河北人学j l :学硕十学位论文 3 1 1w i n d o w sc e n e t 虚拟内存结构 w i n d o w sc e n e t 最大支持5 1 2 m 物理内存和4 g b 大小的虚拟地址空间。对于不同 的c p u ,w i n d o w sc e 管理内存的方法也不相同。针对本系统所应用的x 8 6 系列c p u , 内核启动后使用虚拟内存,并在需要时提交物理内存。 w i n d o w sc e n e t 所管理的4 g b 虚拟地址空间主要分为两部分。2 g b 以上供内核使 用,2 g b 以下是应用程序地址空间,即系统和用户的应用程序只能在2 g b 以下分配地 址空间。w i n d o w sc e ,n e t 虚拟地址划分如图3 1 所示。开发人员在编写应用程序时,只 需要管理虚拟内存,而虚拟内存到物理内存的映射由内核来完成。 4 g b 2 g b 1 g b 邓? 哆务缁。声”5 ,碧 ;,:; t、: t j ,j ? 、; ,内核空间 i 0, : 移jo 。? - v r l ?秀 蠢j 。“。,o ,i , 一? ! j 静态映射的 虚拟地址 共享内存区 7 一# ,如 。4 。j :s 1 0 t 3 2 ( 3 2 m b ) ,; 6 “。 ? o “ s l o t o ( 3 2 m b ) 非缓冲的 缓冲的 应用程序空间 图3 1w i n d o w sc e n e t 虚拟地址结构 w i n d o w sc e n e t 内核支持几种类型的内核对象,例如,进程、线程、临界区、互斥 体、事件和信号量等。w i n d o w sc e n e t 使用虚拟内存,内核对象都会在虚拟内存中进 行分配,并且这些对象的内存是按需分配的。由于物理内存远远小于虚拟内存,按需分 配内存在一定程度上影响系统性能。而且,旦内核为内核对象分配了内存,它不会在 该对象被释放以后将内存释放回系统。内核保持该内存池可用,它在需要时重用池中的 l n 第3 章w i n d o w sc e n e t 实时性能分析 内存,并在内存池不足时分配更多内存。 在设计基于w i n d o w sc e 的应用程序的时候,应该注意到如何解决应用程序功能多 样性和内存容量限制之间的问题,从面使实时性得到满足【j 8 】。 3 1 2 影响实时性能的内存 影响实时性能的内存有三种类型【1 6 】:虚拟内存、堆和堆栈,下面分别进行讨论。 1 虚拟内存 对于实时性要求高的应用程序,合理的应用虚拟内存至关重要。应用程序在分配虚 拟内存的过程中,内核会搜索可用的物理内存,然后将该内存与进程的虚拟地址空间关 联在一起,搜索物理内存以及虚拟内存到物理内存的映射将耗费系统的时间资源。为了 减少分配虚拟内存的影响,进程应当在执行正常任务之前分配和提交所有虚拟内存。 2 堆内存 进程启动后,系统将为进程分配一个默认的堆内存供应用程序使用。堆是一段连续 的较大的虚拟地址空间,可以按字节为单位进行分配。但是w i n d o w sc e n e t 的默认内 存堆存在一个缺陷,在堆中分配的内存块不能移动,如果频繁的在堆中分配和释放内存 会产生内存碎片。堆分成很多碎片时,内核将花费更多时间来尝试为新的内存分配找到 空间,这就会影响性能。因此,用户应该在进程中创建自己的堆,在使用完毕后及时释 放,避免产生内存碎块,使应用程序保持足够的内存空间。w i n d o w sc e 提供以下函数 供用户使用自己创建的堆。 h a n d l e h e a p c r e a t e ( d w o r df l o p t i o n s ,d w o r dd w l n i t i a l s i z e ,d w o r d d w m a x s i z e ) ;创建堆 l p v o i dh e a p a l l o c ( h a n d l eh h e a p ,d w o r dd w f l a g s , d w o r d d w b y t e s , ) ;分配内存块 b o o l h e a p f r e e ( h a n d l eh h e a p ,d w o r dd w f l a g s ,l p v o i dl p m e m ) ; 释放分配的内存块 b o o l h e a p d e s t r o y ( h a n d l eh h e a p ) ; 释放堆 河北人学t 学硕十学位论文 曼皇皇皇曼量曼曼i i 一一;一i i 毫曼曼曼量曼曼曼曼曼曼皇寡曼皇曼曼皇曼鼍曼曼鼍曼曼鼍曼鼍 3 堆栈 堆栈是专为函数和线程提供的一段连续的虚拟地址空间,默认值为6 5 k b 。线程在 创建时内核为线程分配一个默认的堆栈,并立即提交少量的物理内存。堆栈内存一次提 交一页,并且只在需要时提交【1 6 】。提交物理内存需要实现虚拟地址到物理内存的映射, 内核根据虚拟地址指定的空间抓取物理内存页,这样会耗费内核的资源,影响系统的实 时性。为了防止线程启动时堆栈提交物理内存影响性能,应当确保在执行实时处理之前 线程至少被调度一次。因此,应当尽量避免在线程函数中分配虚拟内存,并且所有变量 的定义应该放在执行代码之前。 3 i 3 内存映射文件技术 在应用程序中读取大容量文件或者分配超过2 m b 的大块虚拟内存时,w i n d o w s c e n e t 提供一种内存映射文件技术可以高效率实时提交物理内存,最大限度的实现系统 的实时性。 在本系统中,需要建立实时数据库存放采集的现场数据,占据的虚拟内存空间较大, 因此必须在进程空间以外的共享内存区( 0 x 4 2 0 00 0 0 0 到0 x 7 f f ff f f f ) 进行分配。为 了更好的实现程序的实时性,本设计采用内存映射文件技术分配实时数据库的虚拟内 存,应用内存映射文件的主要函数如下。 h a n d l e c r e a t e f i l e m a p p i n g ( h a n d l eh f i l e , l p s e c u r i t y a t t r i b u t e si p f i l e m a p p i n g a t t r i b u t e s ,d w o r d f l p r o t e c t ,d w o r dd w m a x s i z e h i g h , d w o r dd w m a x s i z e l o w ,l p c t s t rl p n a m e ) ; 创建映射对象 l p v o i d m a p v i e w o f f i l e ( h a n d l eh m a p p i n g o b j e c t ,d w o r dd w a c c e s s ,d w o r d d w o f f s e t h i g h ,d w o r dd w o f f s e t l o w , d w o r d d w b y t e s t o m a p ) ; 保留地址空间 b o o lu n m a p v i e w o f f i l e ( l p c v o i d i p a d d r e s s ) ; 1 2 保留地址空间 释放映射对象 第3 章w i n d o w sc e n e t 实时性能分析 曼曼- - - - ; 一;i 1 1 1 i m i 寰曼鼍曼! 曼曼曼曼曼曼詈曼曼皇皇 3 2w i n d o w sc e n e t 多线程机制 3 2 1 多线程和实时性 对于执行多任务的应用程序来说,每个任务都应该得到及时处理,而事实上c p u 在单位时间内只能执行一线程,这样就会产生线程排序,降低了单个任务处理的实时性。 因此单个任务的实时处理和多任务并发执行是一个不可调和的矛盾。多线程技术的实质 是在保证多任务并发处理的基础上,尽量减小单个任务的处理时间。 3 2 2 线程的优先级机制 多线程技术是嵌入式操作系统的一大特色,w i n d o w sc e n e t 操作系统支持多线程, 并且线程之间具有优先级。在系统中多个任务并发执行时,往往会有某个或某几个任务 实时性要求较高,需要优先执行,这样会给系统调度增加难度,而线程优先级机制正是 解决这问题的途径。w i n d o w sc e n e t 内核在应用程序中,对最高优先级的线程提供上 限担保i l6 】,从而保证了高优先级任务的实时性。 线程是进程的执行单元,是c p u 执行的真正代码片断。一个进程至少包含一个线 程,即主线程。在主线程中,可以创建多个子线程,子线程可以再创建子线程。线程一 旦创建,就会立即加入当前进程中的线程优先级列表【1 4 】,由内核统一调度。对于具有相 同优先级的线程而言,c p u 会按照系统分配的“时间片”轮流执行。时间片是指内核限制 线程占有c p u 的时间。w i n d o w sc e n e t 时间片的单位很小,默认为l o o m s ,开发人员 根据实际需要可以进行更改。线程按照时间片运行的机制可以保证具有相同优先级的多 任务并行处理,几乎可以看作同时运行。 在有多个线程的应用程序中,对于实时性要求相对较高的线程,应该考虑为其设定 较高的优先级。w i n d o w sc e n e t 在调度线程时首先依据优先级排列执行顺序。优先级高 的线程优先运行,除非该线程运行结束或被挂起,否则优先级低的线程得不到时间片, 没有机会运行,即发生线程饥饿。所以,在应用程序中设定线程优先级非常关键,应当 避免线程饥饿。 w i n d o w sc e n e t 将线程分成分为2 5 6 个优先级,0 级最高,2 5 5 级最低,其中0 到 i3 河北人学一i :学硕+ 学位论文 曼皇曼曼皇曼曼曼曼篡舅皇曼皇皇曼曼皇曼曼曼曼曼曼皇! 曼皇皇ii , 曼! 量曼 2 4 8 级为实时性优先级。2 4 9 到2 5 5 级是普通优先级。一般应用程序的线程优先级为2 5 1 级,即系统默认的j 下常优先级。 w i n d o w sc e n e t 线程优先级的排列层次如表3 1 所示【1 4 】【1 9 】。 表3 i 线程优先级层次排列 范隔分配对象 o - 9 6 高于驱动程序的实时程序 9 7 1 5 2 基tw i n d o w sc e n e t 的驱动程序 1 5 3 2 4 7 低于驱动程序的实时应用程序 2 4 8 2 5 5 普通应刚栏序 线程优先级调度顺序如图3 2 所示。线程a 优先级最高,线程b 和c 优先级相同 但低于a 。线程a 一直运行直到发生阻塞或进入休眠,线程b 和c 在a 运行时阻塞。 如果a 被阻塞,b 和c 以自己的时间片切换运行。在线程b 或c 运行过程中如果a 被 唤醒,则a 抢断当前线程立即运行,被抢断的线程被阻塞。当a 完成时,被抢断的线 程被恢复并继续进行。 优先级0 优先级l 优先级2 优先级2 5 3 优先级2 5 4 优先级2 5 5 图3 2 线程优先级调度 1 4 第3 章w i n d o w sc e n e t 实时性能分析 - - - _ - - _ _i l l , _ i i l li m i 曼兰皇曼鼍 3 2 3 单进程多线程模式 用户在开发应用程序时,一般都会遇到多任务实时性问题。系统既要保证单个任务 的响应上限( 在时间尺度上) ,又要保证具有相同优先级的所有任务并行处理。w i n d o w s c e n e t 是一个抢占多任务操作系统,系统可以同时执行多个任务,可以是多进程,也可 以是多线程。w i n d o w sc e 的进程没有优先级,即各个进程轮流执行。在多个进程并发 执行时,进程之间的切换对于时间的开销比重非常大,严重影响了程序的执行效率,降 低了系统的实时性。这对于开发具有较高实时性要求的应用程序来说是非常不利的,因 为对于某些实时性要求高的任务,不能保证及时响应。因此,为了提高任务处理的效率, 应该采用单进程来开发应用程序。对于多个任务并行处理的问题,可以采用多线程技术 来处理。线程作为进程内的执行单元,自身不拥有资源,但它可以访问所属进程的全部 资源,线程之间切换时,系统不必载入和释放资源,因此执行的速度快。一个进程中的 多个线程可以并发执行,从而实现系统的多任务实时处理。 3 2 4 线程的同步调度机制 在嵌入式操作系统中实时性能的一个重要特性是线程间的同步。同一时刻,在不同的 进程中运行着众多的线程,其中相当数量的线程需要保持同步【2 0 1 。在进程中的多个线程 并发执行时,会存在多个线程试图访问同一资源的情况,程序必须保证在一个线程j 下在读 取资源数据时,其它线程不能修改它,这样才能保证数据的唯一性,从而获得稳定的结 果。因此,各个线程在运行时需要相互通信,相互协调。在w i n d o w sc e 中,使用同步 对象进行线程之间的协调,同步对象包括:临界区( c r i t i c a l s e c t i o n ) 、互斥体( m u t e x ) 、 信号量( s e m a p h o r e ) 、事件对象等。 w i n d o w sc e n e t 的线程的运行具有用户模式和内模式,并且允许应用程序在两种模 式之间进行切换。但是从用户模式切换到内核模式大约需要1 0 0 0 个c p u 周期【2 l j ,因此 对于应用程序来说应该优先采用用户模式的同步解决办法。运行在用户模式的同步对象 有临界区和互锁函数,这两种同步对象都是保护资源只被一个线程访问,而临界区的功 能更为强大。在线程之问进行通信时一般采用事件对象,事件对象是实现线程同步的最 基本方法之一【2 2 1 ,线程的运行状态通过等待函数( w a i t f o r s i n g l e o b j e c t 或 1 5 河j 匕大学工学硕士学位论文 w a i t f o r m u l l i p l e o b j e c t s ) 判断事件对象的状态来决定。事件对象使程序结构清晰降低 程序编制的复杂程度,在丌发人员编写应用程序时,几乎都要用到事件对象。 在同步对象协调具有不同优先级线程运行时,w i n d o w sc en e t 提供优先级倒置的办 法来增强任务处理的实时性能,如图3 3 所示3 个线程试图访问同一资源。线程1 优 先缴最高,线程2 优先级居中,线程3 优先级最低。线程3 最先创建,线程2 随后,线 程1 最后创建。线程1 创建后抢断其它线程立即执行。但在运行时要访问线程3 所占用 的资源,这时系统会将线程3 的优先级提高到线程1 的优先级,并先运行线程3 。等线 程3 释放了线程l 要访问的资源时,线程l 立即运行,线程3 恢复到原来的优先级并阻 塞。 优先级倒置解决了具有不同优先级的线程调度问题,为多线程应用程序的开发减小 了复杂性,减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年春季初级经济师考试 经济基础知识高效备考模拟试题试卷
- 2025年经济师考试 经济师考试冲刺押题卷
- 2025年计算机二级Office高级应用考试模拟试卷
- 2026届浙江名校新化学高二第一学期期末复习检测试题含答案
- 2025年秋季初级经济师职业资格考试 经济基础知识高频考点冲刺试卷
- 2025年考研英语(一)阅读理解冲刺试卷 逻辑思维训练
- 2025年注册会计师(CPA)考试 会计科目考前冲刺试题及答案
- 2026届山东省临沂市罗庄区化学高三第一学期期中复习检测试题含解析
- 广东省深圳市龙华区2024-2025学年七年级下学期期末语文试题(含答案)
- 玩具销售知识培训课件
- 2026届广东省六校高三语文上学期第一次联考试卷附答案解析
- 2025年医院胸痛中心应知应会试题(附答案)
- 医院投诉处理标准化培训
- 2025年广东法官入额考试题库
- 肺康复专题讲座
- 卵巢保养课件教学
- 2025年医师定期考核业务水平测评理论考试(公共卫生)历年参考题库含答案详解(5套)
- GB/T 9775-2025纸面石膏板
- 葫芦烙画教学校本课程
- 球队赞助策划书(共5页)
- 气动机械手系统设计(含全套CAD图纸)
评论
0/150
提交评论