




已阅读5页,还剩65页未读, 继续免费阅读
(控制科学与工程专业论文)嵌入式实时操作系统支撑平台的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文 y6 2 4 1 0 4 嵌入式实时操作系统支撑下台的实现 摘要 在分布式系统的应用中,虽然实时操作系统能够提供丰富的a p i 函数与服务,但 却无法提供一个跨处理器问的应用软件运行环境。我们通过分析一个实时操作系统的 基本功能,在一个由分布式系统组成的网络设备上,应用操作系统的基本功能,建立 一个跨处理器的应用软件运行环境,称为0 s s 。 通过建立这样个系统环境,以满足设各应用软件运行在一个与底层硬件结构无 关,与具体操作系统无关的虚拟操作系统之中。 我们从网络设备的应用软件编程模型( 有限状态机) 入手,首先分析了系统软件 所应具有的功能,给出了支撑系统的软件模型。随后详细的说明了支撑子系统中,进 程通信服务、系统时间服务、系统的内存管理、系统异常保护等功能的实现。由面到 点,由抽象到具体,一步一步深入浅出的阐明了支撑运行子系统对整个系统的稳定运 行所起到的保障作用。 关键词 实时操作系统v x w o r k s 调度算法消息通信机制共享内存通信 网络处理器异常处理机制系统监控机制 第1 页 硕士论文嵌入e 实时操作系统支撑平台的实现 a b s t r a c t i nt h ea p p li c a t i o nt od i s t t i b u t e ds y s t e m ,t h ee n v i r o n m e n to nw h i c h a p p l i c a t i o ns o f t w a r ei sr u n n i n gb e t w e e nc p u sc a n n o tb es u p p o r t e db yr t o s , a l t h o u g hi ts u p p l y sl o t s o fa p if u n c t i o t i sa n ds e r v i c e a f t e rr e s e a r c h i n gt h ef u n d a m e n t a lf u n c t i o no fr t o s ,w eh a v ed e v e l o p e d ae n v i r o n m e n tc a l l e do s si nt h en e t w o r k i n gd e v i c ew h i c hi sc o n s i s to ft h e d i s t r i b u t e ds y s t e m s ,w h i c hs u p p o r t sl h ea p p l i c a t i o ds o f t w a r ew e l l t h et a r g e to fd e v e l o p i n gt h i se n v i r o n m e n ti st ob u i l do n ev i r t u a l o p e r a t i n gs y s t e mi nw h i c ha p p l i c a t i o nc anf u r li nd e s p i t eo fs p e c i a lh a r d w a r e a n dr t o s i nt h i st h e s i s a tf i r s tw ed i s c u s st h ef u n c t i o no ft h es u b s y s t e ma n d b r i n gu pas o f t w a r em o d e l t h e nw eg i v ead e t a i ld i s c u s so ft h er e a l i t yo ft h e c o m p o n e n t so ft h es u b s y s t e m ,s u c ha sp r o c e s sc o m m u n i c a t i o n ,t i m e rc o n t r o l , m e m o r ym a n a g e m e n ta n d t h ep r o t e c t i o nf r o me x c e p t i o n s t e pb ys t e p ,w e i1 l u s t r a t ew h a tt h eo s sp l a yi nt h er o l eo fk e e p i n ga p p l i c a t i o ns y s t e mr u n n i n g i ns t a b l y k e yw o r d s : r e a l t i m eo p e r a t i n gs y s t e m ( r t o s ) ,v x w o r k s ,s c h e d u l i n g a i g o r i t h i n ,m e s s a g ec o m m u n i c a t i o nm e c h a n i s m ,c o m m u n i c a t i o n i ns h a r e dm e m o r y ,n e t w o r k sp r o c e s s o r ,e x c e p t i o nh a n d l i n g m e c h a n i s m ,s y s t e mi n s p e c t i o nm e c h a n i s m 第1 i 页 硕士论文 嵌入式实时操作系统支撑平台的实现 1 1 嵌入式实时系统的概念 1 系统概论 通过对大量文献的阅读,我们可以总结出嵌入式实时系统的特点。 一个实时系统就是在一个有限和规定的时削内对外部事件做出响应的信息处理系 统。系统运行的_ :i f 确性由响应结果和响应时问共同决定。当计算机成为一个大规模工 程系统中的一个部件时,该计算机系统就成为了一个嵌入式系统。 在软件结构上,嵌入式系统软件与通用的系统软件的结构有些不同,通用系统软 件的用户程序构建在操作系统之上,通过调用操作系统的功能实现程序的运行,操作 系统完全的控制硬件。而嵌入式软件中,用户程序与操作系统功能结合在一起,形成 一个整体,共同建立在具体的硬件层上。如下图1 1 所示。 a 通用操作系统中的系统软件结构b 嵌入式系统中的系统软件结构 图ll 嵌入式系统软件结构与通朋系统软件结构的比较 1 2p d s n 系统的简介 p d s n ( p a c k e td a t as e r v i n gn o d e ) 是分组数据服务节点,作为接入网关,提供 简单i p 功能( s i m p l ei p ) 和移动i p 功能( m o b i l ei p ) 接八方式,为c d m a 2 0 0 0 移动 台提供访问i n t e r n e t 或i n t r a n e t 的服务。分组数据服务节点( p a c k e td a t as e r v i n g n o d e ) 是连接无线网( r n ,r a d i 0n e t w o r k ) 和分组数据网( p d n ,p a c k e td a t an e t w o r k ) 的接口j 负责收集计费信息,并传到a a a ,a a a 是鉴权、计费、授权服务器 ( a u t h e n t i c a t i o n ,a c c o u n t i n g ,a u t h o r i z a t i o ns e r v e r ) 的缩写,它对用户脚本文 件信息进行鉴权认证,完成数据服务授权,实现计费功能。简单i p 时类似于网络接入 服务器( n a s ,n e t w o r ka c c e s ss e r v e r ) ,移动i p 时作为移动台( m s ) 的外地代理( f a , 第1 页 硕士论文 嵌入式实时操作系统支撑平台的实现 f o r e i g na g e n t ) 。 p d s n 的系统网络结构如下: 一杰譬壁一j 拜访接入提供网 图i 2p d s n 在网络系统中的位置 为了能够使p d s n 上的业务进程良好稳定的运行,需要一个硬件和软件的承载平 台。 1 3 系统硬件的结构 p d s n 系统的硬件结构由网络处理器加高性能通用处理器的分布式结构构成。通过 网络处理器,对来自网络的i p 报文进行接收与简单的处理,并将业务的i p 报文通过 网络处理器发送出去。高性能处理器,用于实现信令报文的复杂处理,如报文压缩与 解压缩,以及相关的业务控制信息的处理等。这两个处理器采用并行的分布式结构, 通过f c i 总线连接在一起,目前采用了i n t e l 公司的i x p l 2 0 0 网络处理器和摩托罗拉 公司的p o w e r p c 通用处理器组成系统的基本架构。具体的结构如下图所示。 第2 页 硕士论文嵌a a 实时操作系统支撑、l 台的实现 8 2 5 5 9 通用处理器l 南f 】 以太网 控制器 丁 tp c i 总线 洲wh 一帛口 l 咖删h h h 2 0 0 麟处理器 i x 总线 : l i x 4 0 多端u 以太嘲l 控制器 幽1 3p d s n 的馁忭系统结构 由图可以看出,单板主要由i x p l 2 0 0 网络处理器、物理接i :1 模块、c o m p a c tp c i 模块、和p o w e r p c 子卡构成。系统中使用了8 个i o i o o m 以太网物理接口,其中四个 用于业务报文的收发,两个口用于无线侧的报文和信令的交互,另外两个口用于网络 侧的报文交互。再使用两个物理接口用于对两个处理器进行调试和下载版本的通信接 口,还有一个网口与后台相连,用于网络管理信息的交互。同时硬件还提供两个串口, 用于打印运行信息以及运行维护命令的输入控制口。 i x p l 2 0 0 处理器由6 个微引擎和一个强a r m 核组成,6 个微引擎用于网络数据包的 收发,封装处理、路由选择和发送等功能。强a r m 核用于业务逻辑的处理。它带有一 个3 2 m 的f l a s i i ,2 5 6 m 的s d r a m 和3 2 m 的s r a m 。 p o w e r p c 处理器用于完成较复杂的业务逻辑处理、网管及系统控制等功能。它带 有3 2 m 的f l a s h ,以及1 2 8 m 的s d r a m 。 两个c p u 上独立的运行各自的业务,通过消息的方式进行c p u 间的信息通信。通 过对p c i 总线的配置,p p c 处理器可以访问a r m 处理器上的s d r a m 第3 页 硕士论文嵌入式实时操作系统支撑平台的实现 1 4 支撑系统的结构 1 4 1 系统的软件总体结构 整个支撑系统由o s s ( 操作系统予系统) 统) ,n m s ( 操作维护子系统) 等子系统组成 a p i 函数接口。 d b s ( 数据库予系统) ,p s s ( 协议栈予系 向卜层的业务进程提供运行所需的各种 系统的各个子系统独自完成一定的功能,并相互协作,共同实现系统报文转发与 业务处理的总体功能。各个系统的主要功能简述如下: 微码子系统:提供通过网口发送和接收网络数据报文的功能,另外还为移动终端 用户提供分组数据的转发服务;此外通过与硬件f p g a 配合,完成 p p p 报文的解帧和组帧。 操作系统予系统:它位于应用系统的底层,封装r t o s 和不同的c p u ,为上层应用 提供一个与硬件和操作系统无关的运行平台,包括:进程管理、内 存管理、定时器管理、文件管理、驱动任务和通信任务。在硬件上, o s s 分布在两个处理器之上,屏蔽进程间的位置差异,负责向上层 应用提供一个统一的,分布式的虚拟支撑平台。 协议栈子系统:为高层的业务系统提供运行协议服务,主要是t c p i p 协议服务以 及部分应用层协议,如t e l n e t 等。在该子系统中还将完成路由协议 o s p f 、r i p ,从而实现低端路由器的功能。 数据库子系统:负责协议栈子系统、业务处理子系统、操作维护子系统等上层应 用的配置数据在内存和片上硬鼎中的存储和管理,为上层应用提供 存取数据的统一接口。 操作维护子系统:提供系统必须的t e l n e t 控制服务、完成系统的配置管理、简单 的权限管理等功能; 在支撑系统之上,是p d s n 的业务程序,它包括业务子系统和网络管理子系统。 业务子系统的作用主要是提供分组数据业务需要的上层信令控制信道,并负责维 护和管理业务数据信道等。负责实现p p p 协议、r - p 接口、r a d i u s 协议的客户端、m p p c 压缩协议,v j 压缩等功能。 网络管理予系统是分组数据业务前台与后台网管系统的接口。该子系统实现s n m p 协议v i ,v 2 两个版本定义的相关操作。通过访问、存取系统各个模块的m i b 库对象完 成系统的网管功能。 整个支撑系统的软件结构如下图所示。 第4 页 硕士论文 嵌入式实时操作系统支撑甲台的实现 n m s 操作维 护子系 统 s p s 业务子 系统 p s s 协议拢 子系统 统r 系统 图1 41 支撑系统的软什结构 1 4 2 操作系统予系统o s s 的结构 支撑平台结构可以看成由三部分组成:b s p ( 板级支持包) ,v x w o r k s 裁减操作系统 o s s ( 操作系统子系统) 。系统层次结构如下图所示: o s s v x w o r k s 裁减操作系统 b s p 硬件 图1 4 2 支撑平台系统的结构 b s p 是板级支持包,它是类似于设备驱动程序的软件包。它来源于嵌入式操作系 统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的 硬件平台,与硬件相关的代码都被封装在b s p 中,由b s p 向上提供虚拟的硬件平台, b s p 与操作系统通过定义好的接1 :3 进行交互。b s p 是所有与硬件相关代码的集合。 v x l o r k s 的裁减系统,是根据需要进行了功能筛选的操作系统。它提供了系统运 行的平台,并给出了任务调度的机制,与消息通信的机制以及其它系统服务。 第5 页 硕士论文嵌入式实时操作系统支撑r 台的实现 可以看到,o s s 的结构位于系统软件的底层,从系统的角度看属于承上启下的连 接层,对下调用v x w o r k s 操作系统的a p i 函数,负责驱动硬件,管理硬件,向上一级 的软件提供封装好的函数接口。对上通过各子任务,为上层业务的一整套运行机制提 供服务,建立上层各级软件的运行环境,监视和控制各进程的运行,屏蔽掉所有底层 的信息,以简洁的形式将系统的a p i 函数提供给上层。 v x w o r k s 操作系统属丁强实时操作系统,应用领域广泛,该系统属于可裁减的多 任务微内核操作系统,最小内核只有8 k 字节。非常适合嵌入式领域的应用。但是,应 该看到,无论是v x w o r k s 还是其他的实时嵌入式操作系统,都有一个特点,即微功能 形式,许多操作系统的功能都是以软件包或以更高层的软件形式实现,在系统内部只 提供可以运行程序的最小功能集,这个功能集的目标是提供多任务运行的系统环境, 包括了内存区划分,时问管理机制,调度管理机制,任务通信管理机制等。其他的复 杂功能则通过这些简单但又十分精密的机制,以接口的方式提供给用户,由用户的程 序来完成具体的功能,即实现机制与策略的分离。因此,从通用操作系统的角度来看, 所谓的实时操作系统仅仅是一个操作系统内核,它所实现的仅是系统可以运行多任务 的最小功能原语集。由于简化了通用操作系统的作用,使实时系统本身变的灵巧,因 而可以灵活的运用于各种嵌入式设备的开发和强实时性的工程中。同时,也要看到, 它的灵巧性也使它所提供的功能变得单一,大部分的功能,如内存管理,时问管理, 异常处理,设备管理,文件管理等都需要在此基础上由用户进行设计,很明显,这增 加了软件开发的成本与风险。因此,大部分的实时系统丌发商都在此基础上开发了相 应的外层软件,并且还提供了很多功能强大的软件包,如一些网络协议栈,实时文件 系统等。 通过对系统功能进行裁减,可以得到用户需要的功能,将它重新进行编译生成用 户特制( c u s t o m ) 的内核,以满足用户的需要,但问题并没有完全解决。从工程的角 度看,操作系统只是用户功能实现的平台,它屏蔽了所有的底层软件细节,为用户程 序的运行提供一个方便快捷的环境,但用户的程序以什么样的方式运行,如何统计和 定位程序的错误,如何监控程序健康稳定的运行等等,需要用户设计自己的策略。 因此,在操作系统之上建立个支撑运行的子系统o s s 是系统能够可靠运行的关 键。通过它可以捕捉上层应用进程的出错信息,便于快速准确的定位系统的错误;可 以给上层提供更加安全的a p i 函数;可以提供适合上层应用的通信方式;更加灵活的 管理系统的时间信息与任务;可靠的控制系统的运行。 第5 页 硕士论文 嵌入式实时操作系统支撑。f 台的实现 2 支撑系统的模型分析 2 1 系统编程模型的分析 由前面的分析,o s s 的功能是提供给e 层进程运行的环境。因此,首先需要了解 上层进程的编程模型,根据其编程模型进行相应的设计。 上层的进程采用有限状态机的模型。即进程通常是处于被动态,当收到消息后, 根据当前的状态与消息号进行相应的处理,同时根据处理不同类型的消息,其状态会 发生跃迁,在新的状态上等待处理消息。如下图所示。 初始状态1 、一一 妊理消息 l 一。 、运行状态1 7 一一。 i | 蹙到控制 惴息 4 运行状态3 薅酥趸7 。 。,7 7 图2 1 进程的有限状态机模型 整个系统的运行单位由进程组成,进程的定义由o s s 规定,目前规定进程是完成 一定功能的程序运行的实体。只有进程可以访问系统中的各种资源,使用各种a p i 函 数。 从进程的编程模型可以看出,系统是以消息通信的方式运行,消息通信成为进程 间,进程与外界( 系统外) 进行交互的主要方式,o s s 必须提供给进程消息通信的机 制,这包括了消息的传输方式,例如重要的消息需要双方共同的确认,一般消息只需 通知给对方即可。同时,分布式的c p u 之间的进程也需要通信,也要实现c p u 之间的 快速通信。进程的运行需要空间,o s s 要负责为系统中的进程提供内存的分配与回收, 以使各进程既能够得到足够的空间运行,又能互相隔离不会越界访问,破坏内存的使 用。由于系统的功能是完成网络服务,系统的进程必然要处理相关的时间信息,因此, o s s 需要提供给进程时间信息,最主要的手段是通过提供定时器,来为系统进行时间 服务。除此之外,根据系统上层进程的消息驱动特性,需要设计专门的调度服务程序, 来调度各进程的运行。 由前面的分析,我们已经可以看出,进程分配了内存空间以后,有了进程调度服 第7 页 硕士论文嵌入式实时操作系统支撑平台的实现 务,时间信息服务,消息通信服务后,进程就已经可以运行起来了。但是,除了提供 运行环境之外,o s s 还要控制整个系统的版本下载与更新,进程初始化和系统运行的 监控。系统上电启动后,如何将整个系统软件下载到目标机运行? 操作系统是无法感 知目标机与主机之间的关系的,嵌入式开发软件最终编译生成的可执行二进制程序是 位于目标机上的,因此这需要由o s s 完成相关程序版本的下载控制。当目标机中操作 系统启动后,如何控制各进程的启动? 操作系统虽然知道进程的存在,但进程问的逻 辑关系是无法告知操作系统的,需要我们在o s s 中设计相应的启动控制程序,以使系 统按照我们要求的方式启动。系统启动后,如何保证各进程f 常的运行? 以及如何处 理异常的事件? v x w o r k s 操作系统有简单的异常处理机制,当系统中的任务出现异常 时,系统会将异常的任务挂起,同时给出此时的程序指针,以及程序在出错前一些寄 存器的内容信息,但凭这些信息无法准确、明显的定位出问题的所在。我们的编程模 型是以消息驱动的方式运行,消息的处理经常很复杂,涉及到多个函数,一方面由于 函数的代码很长,具体的找出出错代码,会花费很大时问与精力,另一方面,更为重 要的是逻辑中的错误,有可能使不相关的代码也出现异常,这样就无法通过异常时的 程序指针找出问题所在。因此,需要o s s 根据运行时的情况,设计专门的系统异常处 理功能,能够反映出在异常时的程序调用关系,具体定位出由哪个模块调用了哪个函 数而引起了异常。 可见,o s s 要提供系统的初始化服务、版本控制、系统运行控制,异常处理等功 能才能使系统可以正常的运行起来。同时,o s s 还要将一些v x w o r k s 的a p i 函数进 行封装提供给上层进程,进行封装的目的有两个:一是为了能够更严谨的保护进程使 用这些函数,二是便于对a p i 函数进行管理与调试。 通过上面的分析,可以看出整个o s s 要完成这些功能,不仅需要进程来完成,还 需要另外种运行实体,由它提供进程所需的功能,必竟时间服务,消息通信,初始 化服务等功能不可能由进程本身来提供自己所需的功能。因此,要由任务来完成上述 的功能,任务是完成某一特定服务功能的实体,它可以是为进程服务的实体,也可以 是为其它任务服务的实体,这些任务组成一个集合共同为进程服务。 任务只能被o s s 管理,与上层进程无关,上层进程应该无法感知到这些任务的存 在,它不直接和任务交互,通过调用接口函数来实现交互。因此,进程和任务是两个 不同的实体,任务由o s s 管理,对进程进行服务,进程是系统运行的主体,系统对外 的整体功能由进程实现,而任务是进程实现系统功能的服务者。通过任务的服务,进 程可以得到对各种资源的访问。这样,可以设计o s s 由下面的几个部分组成:系统控 制进程版本控制进程,异常监控进程,内存管理服务,时间管理服务,文件管理服 务,进程调度服务,通信服务等8 个部分组成。结构如下图所示。 第8 页 硕士论文嵌入式实时操作系统支撑卜台的实现 进内时异系版文消 程存间 常 统 本 件息 调分信监控下系通 度配息控制载统信 管 管管 进进进管管 理理理 程程程 理理 v x w o r k s 操作系统 b s p 硬件 图2 2o s s 的组成结构幽 下面将按照o s s 不同的组成部分,详细分析各部分的功能,确定它们的结构。 2 2 系统进程的消息通信 2 2 1 进程的概念 我们的进程不是一个v x w o r k s 的概念,在v x w o r k s 中系统可以运行的单位是任务, 系统提供汇编级的多任务的运行环境,每一个任务由堆栈,入口函数,函数参数,以 及任务的属性组成,任务的属性包含了任务的名字( 字符串) ,任务的优先权,任务的 模式( 堆栈的填充,私有环境的设置) 。任务是v x w o r k s 系统可以控制的运行实体,而 进程是应用软件可以控制的逻辑运行实体。显然,进程要运行也必须具备任务的这些 元素。同时进程必须有自己的消息队列。为了满足进程运行的可靠性,需要提供进程 自己的私有数据,这些数据只能由本进程访问,其他进程是无法访问的,这样可以避 免较多的使用全局共享变量。因此,进程的组成除了具备任务的元素集之外,还应有 消息队列,私有数据区,进程的控制信息上下文等。这样进程的组成就包括,进程名, 进程的模式,进程的优先权,进程的堆栈大小,进程的私有数据区大小,进程的入1 :3 函数,进程的入口参数,进程的消息队列大小。 第9 页 硕士论文 嵌入式实时操作系统支撑平台的实现 2 2 2 进程的消息通信 在v x w o r k s 中进程的消息通信,提供了消息队列的方式,消息发送后,如果对方 在等待该消息,则将它立即放入接收缓冲区中,否则,放在对方的消息队列中,然后, 发送方继续运行。这是使用的最为广泛的消息通信机制。但进程间的通信方式往往灵 活多样,有时,一条消息发送后,必须要对方立即处理,处理完后要给发送方应答, 发送方得到应答才能继续执行,这是一种交互的通信方式,广泛的应用在人机交互的 命令行控制中。因此,我们的o s s 应该供多种的消息通信方式。设计两种通用操作系 统常用的消息通信方式,同步消息通信和异步消息通信。 同步消息的紧迫性明显高于异步消息,如果用同一个队列进行f i f o 的方式存放消 息,那么同步消息很可能得不到及时的处理,而且很有可能发生阻塞。所以,有必要 设置两个消息队列,分别存放i 司步消息队列和异步消息队列。 现在,我们已经确立了进程间的消息通信模式,即提供两种消息通信方式,同步 消息和异步消息的通信方式。这些通信方式是借助于v x v o r k s 的消息机制实现,只能 用于单处理器内部的通信。我们的系统是分布式的系统,双c p u 之间的消息通信,显 然是系统无法提供的,如果通过套接字进行网络方式的通信,显然会降低效率,而且 在硬件上要设计内部的板问用网口,增加了硬件实现的复杂性。因此,较通用的办法 是通过共享内存,进行进程问的消息通信。同时这部分的通信,对于进程来说是透明 的,应该由o s s 将它归入到同步与异步消息的功能发送与接收方式中,向上屏蔽掉进 程间的位置差异。消息的通信结构如下图所示。 图22 1o s s 提供的消息通信结构 可以看到,进程的通信由两部分组成,一是处理器内的通信,一是处理器间的通 信。进程的通信方式有两种,同步与异步。如果仅用v x w o r k s 提供的消息发送函数, 还不足以构成我们的消息通信机制,这时仅仅是数据在进程间传递,没有任何附带的 信息,那么对于进程来说,由于消息本身的控制信息太少,进程在接收时的处理会变 得凌乱和复杂,无法形成共同的通信基础,且出现故障后无法调试跟踪。因此,还需 第1 0 页 守阔一商早= 俐一一酉 硕士论文 嵌入式实时操作系统立撑、r 台的实现 要构建消息通信的格式。在分布式系统中,消息的通信要满足进程对于位置的无关性 要求,因此,必须在消息格式中定义区分c p u 位置的信息,同时要指明消息的发送与 接收者,长度,消息内容的地址等控制信息。因此消息的构成包括了:c p u 位置信息, 消息的属性。消息的属性又包括了:消息的发送者,消息的接收者,消息的类型,消 息的事件信息,消息内容的地址,消息内容的长度。我们采取对进程信息进行拷贝的 消息通信方式,这样可以更安全更灵活的传递数据,如进程的临时变量中的值,可以 通过消息发送后,进行相应的改变。那么在o s s 中必须提供相应的消息缓冲区。 2 3 支撑系统的特制调度策略 2 3 1 实时系统调度策略的分析 对于实时操作系统,目前的商用软件中,大部分都是采用优先级抢占的调度机制。 即系统每次都运行就绪队列中,优先权最高的任务。而具体的调度策略,用户可以根 据应用需要进行安排。如用户可以将重要的进程安排较高的优先权,或者根据进程的 时间限安排优先权。我们如何去设计自己系统中的进程的优先权,很有必要了解一下, 实时系统中的可调度性问题,以此为参考,可以设计我们系统中的进程优先权分配与 调度问题。 下面将介绍一些实时操作系统理论巾的可调度性问题,即如何去安排系统中各任 务的优先权。这里所讲的任务是针对实时操作系统而言,指可独立运行并完成一定功 能的程序代码。我们前面提到的系统中的进程是对任务概念的扩展与实例化,因此在 下面的论述中,将以任务这个基本概念为主进行阐述。 显而易见的是,实时操作系统的理论设计者,毫无异议的都采用了优先级抢占的 调度机制。这是因为它相对于传统的时间片轮转的方式,在任务发起的响应时间上有 了改善,高优先权的任务可以立即得到c p u 运行。但如何保证每个任务都是可调度的, 尤其是周期性的任务中,每个任务都是在固定的时间间隔内发起,他们的完成时间有 严格的限制,一旦任务发起后,不能在规定的时间内完成,那么,势必它将影响接下 来将要运行的任务,这样延续下去,最终有一个任务将不能在它的周期内完成执行, 从而系统的实时性被破坏,根据第一部分的介绍,实时系统的正确性,是由结果的正 确性和时间的有效性共同决定,因而,此时的系统已经不能正常运行,这称为系统的 不可调度性,即通过该调度机制已无法完成系统任务的f 常运行。 因此,可调度性的分析,实质上是分析如何安排系统中各周期任务的优先权,以 使任务能够在抢占机制下,可以让系统正确的运行。在下面的论述中我们规定,对任 务完成时间的限制称为任务的时间限,即任务发起后,必须在时间限规定的时制内完 成,否则任务的实时性将得不到保证。我们规定任务的时间限等于任务的周期。 第1 1 页 硕士论文 嵌入,实时操作系绕支撑,j t 台的实现 2 3 1 1 单调请求速率调度算法 周期任务优先权分配方式的不同,为什么会引起系统的不可调度性呢? 下面我们通过具体分析一下两个任务的调度情况,来阐明其中的问题。假设有包 含两个任务的任务集 q ,r : ,它们的运行周期为正= 2 ,疋= 5 ,每个任务的执行时间为 c = 1 ,c :- - 2 。给任务l 较高的优先权,两个任务同时在时刻0 发起,从图1 可以看出, 该优先权分配方式的调度是可行的。图中横轴代表时间,填充斜线的方框代表任务的 执行时间。 骼1 囡 : 口口口 -+ o 1 23 45 67 89l o 啪园园固图 o123456789 l o , t = 5 圈231 两个任务的口】调度性分析 当两个任务同时发起的时候,任务t 的优先权较高,抢占到c p u 执行完一个时间 单位的计算,该周期内 o ,2 的任务成功完成执行。此时c p u 空闲,任务“可以得到 c p u 执行它的一个时间单位的计算,之后在时刻2 由于任务r 。再次发起,它抢占了任 务“,又执行完个时间单位的计算退出运行,从而使任务“又可以运行完一个时间 单位 3 ,4 的计算。此时,这两个任务都在规定的周期内完成了执行。这之后,由于 周期相位的差别,低优先权任务矗总是能够在高优先权任务以发起之前完成一个时间 单位的计算,在任务f i 完成执行之后,任务l 又可以完成剩下的一个时间单位的计算, 因而它们总是可以在各自的周期内完成计算,说明系统是可以调度的。 若反过来分配优先权,如果同时发起两个任务,那么任务l 将不能在规定的时间 内完成,系统不可调度。如下图3 所示。 厂1 任引o 1 f 业3 l 了5 啼t24 。 任务2 匿图,t o12345 图2 3 2 任务无法凋度的情况 从上面的分析可以看出,当任务同时发起的时候,给周期较大的任务更高的优先 权会阻塞住周期较小任务的运行,因而使系统无法完成调度。我们可以进一步的分析 一下前面的情况。假设一个任务集,h ,f 。) ,它们按优先权递减的次序排列。在 时刻t l ,任务发起,在t l + 0 时该任务会再次发起,这段时间之内,任务 f 2 ,f 3 ,f + ,会依次发起。如果,f 。在r :发起之前完成,则它的执行时间不变,如果 第1 2 页 硕士论文 嵌入式实时操作系统支撑平台的实现 毛发起时间前移,抢占了f 。任务,则f 。的完成时间变长。如果f :的周期很短( 小于f , 的执行时闯) ,将它的发起时间移动到t l ,与f 。在t 1 同时发起,那么在f 。执行完之 前,f ,可以执行多个定时发起的周期。这样f 。的响应时间变得更长了。以此类推,当 所有优先权高于f ,的任务都与它同时发起请求时,f ,任务的完成时间将最大。因此可 以看到,当任务同时发起的时候,是分析任务可调度性的关键时刻,此时任务能够调 度,那么在其他的周期相位情况下肯定也能调度。 现在,我们可以用数学表达式分析前面第一种情况下的任务之间的关系 i 下j i l c l + c 2s t( 2 3 1 ) 在第二种情况下,任务如果可以调度,必须有 0 主量巍一乘以l 孙一孙 他32 l j c i + 1 忙乱f 因而可以看出 ( 2 3 3 ) l j c i + c 2 l 将信号量的印i 有者修改为阻塞进程信号量的值加1 0 对任务抢占进行解锁对任务抢占进行解锁 上 恢复阻寨进程运行 图3 5 2 退出临界区的操作 通过提供封顶临界区的保护,可以避免进程对共享资源进行处理时,发生死锁和 形成阻塞链,延误高优先权进程运行的情况。 这样,在o s s 中加入了对共享资源的任务级,进程级的保护后,我们已为系统可靠 的运行提供了一个坚实而有效的保障。 第6 3 页 硕士论文嵌入式实时操作系统支撑、f 台的实现 4 结论 o s s ( o p e r a t i n gs y s t e ms u b s y s t e r n ) 操作运行子系统,以一个平台的形式,提供上 层进程运行的各种环境与接口函数,甚至包括了进程本身的p c b ;同时它负责管理整个 硬件设备,将所有的硬件差别都在上层屏蔽掉,使进程的运行与具体的硬件位置无关。 这样所有进程的运行信息,都处在o s s 的调试控制范围之内。 这个子系统的设计是按照提供基本的操作系统服务和数据处理通道架构的思路出 发,实现一个完全可控和适合、l k 务数据处理流程的子系统软件。我们将商用的操作系 统经过裁减,使其只完成任务调度,任务通信、基本内存管理的简单功能,其它的功 能都通过o s s 子系统根据嵌入式系统特有的需要,以高效简洁的方式实现,同时所有 进程和o s s 的任务的上下文结构都在o s s 管理的内存之内,在发生异常的时候便于跟 踪系统的运行状态。 与通常的系统最显著的区别是该系统采用了优先级抢占的调度方式。优先权的分 配是根据不同业务的不同数据处理流程进行划分,这种调度方式从根本上改变了系统 软件的设计方式,这使软件的每个模块的功能更加专一,软件的层次关系更加清晰。 由于模块划分更加细致,模块之间的通信变的频繁,因此我们采用了以消息驱动为主 的模块问通信方式。消息的传递采用了数据区一次拷贝的方式,一个进程的消息内容 从它的堆栈或全局数组中拷贝到一个专门的缓冲区中,然后将缓冲区地址通知给接收 进程,这降低了消息传送的效率同时花费了较大的内存空问,但可以保证系统的消息 传输在我们的软件控制之下。根据实时性的要求,整个系统的数据处理通道的设计也 成了0 s s 子系统的主要任务,它要根据不同业务的报文处理流程,向业务提供大吞吐 量的报文接收通道与快速的发送通道。同时,我们根据进程状念机的被动处理特点, 设计了专门用于对进程死锁与死循环进行检测的算法,增加了系统运行的可靠性。 我们按照模型的结构,用嵌入式的c 语言构建了运行在v x w o r k s 操作系统之上的 o s s 运行子系统,重新修改了o s s 的时间管理任务,使它能够更加精确的提供系统运 行的时间信息,改进了微码子系统与0 s s 子系统之间的消息通信方式,并进行了测试, 极大的提高了它们之间的报文收发效率,改进和增加了异常信息的记录内容,使它可 以更加详细的反映出系统的异常事件。增加了系统异常信息的f t p 传输功能。同时, 经过实际的测试,按照各进程的数据处理流程,重新调整了不同进程收发消息的消息 队列的大小,优先级大小。 在实际的运行当中,该系统按照消息驱动的方式,对上层的进程进行可靠的消息 调度与分派;并且能够可靠的控制系统的运行,及时的反映出系统在运行过程中的内 存、通道的状态。通过消息池的内存使用情况,可以看出系统在正常与超负荷下的进 程之间的消息通信量。为系统开发提供了准确的数据信息。o s s 中加入的内存管理与 保护设计,使应用软件可以更加可靠的运行,防止了应用程序在访问数据区时,对其 第6 4 页 硕士论文嵌入式实时操作系统支撑平台的实现 他数据区内存进行改写;而且还可以髓控各进程申请与释放内存的情况,防止意外的 内存泄漏。 实时系统的开发是建立在优先权抢占的运行机制的基础上,一是为了满足特定进 程响应时间的需要,二是为了符合业务进程报文数据处理的需要。所有的进程必须有 一个明确的优先权,但是,在实际的开发测试中,有些进程间的关系没有明确的先后 与重要性之分,这使我们在分配进程优先权时缺乏根据,只能一步一步进行摸索,在 调试中,往往因为优先权分配的不合理,而使系统出现许多异常运行的现象。此时通 过对进程的堆栈与控制信息的分析,可以更加快捷与方便的了解进程之间的优先权的 关系,与实际运行时所表现出的特性。从而使我们能够对系统中进程运行特性的了解 更加深化,不断增加对嵌入式系统的丌发经验。 o s s 所提供的消息通信与处理机制,是根据业务进程对报文数据的处理流程特点 设计的,这种消息机制是否能够最大的满足进程通信的需要? 同步消息的通信机制是 否是最佳的? 内存的保护是否全面? 整个系统在此机制上运行是否是最优的? 这些问 题一直都是我们在设计与维护中试图努力辨别、分析清楚的疑虑。 在目前系统的运行中,o s s 完全满足进程运行的需要,但是仍会有问题出现。正 是这些问题让我们不断在思考与改进o s s 所提供的各种功能与解决方案。也正是这些 问题,让我们必须回到问题的源头,从系统的运行机制开始,一步一步,深入细致的 了解系统软件的运行机理。 第6 5 页 硕士论文嵌入武实时操作系统支撑平台的实现 致谢 首先衷心感谢中兴通信公司的指导老师一刘少永。在中兴通信实习期间,他作为 我的指导老师,引领我熟悉项目的工作,并悉心的指导我的工作,热情的帮助我解决 工作中遇到的各种难题,耐心的回答我提出的各种问题。尤其是他严谨认真的工作作 风和深入钻研的精神,深深的影响了我。 特别感谢我的学校指导老师闫玉德副教授,他深厚的学术造诣、严谨的治学态度、 一丝不苟的工作作风、敏锐的学术洞察力,给予我的颇富远见的学术指导与启迪,都 让我由衷的感谢。在中兴通信公司实习期间,他一t 分关心我的实习情况,并且对我的 实习加以学术理论与方法论上的指导,在研究方向上给了很大的指导与启迪。 第6 6 页 硬士论文t 6 t a = l = l = 实时操作系统支撑f 台的实现 参考文献表 1 徐金梧等t u b oc 实用大全第一版北京:机械工业出版社,1 9 9 6 2 王鹏等译操作系统设计与实现第二版北京:电子工业出版社,1 9 9 8 3 陈向群等译现代操作系统第一版北京:机械工业出版社,1 9 9 9 4 殷人昆等数据结构第一版北京:清华大学出版社,1 9 9 9 5 邵贝贝等译源码公开的实时嵌入式操作系统第一版北京:中国电力出版社,2 0 0 1 6 孑l 祥营,柏桂枝嵌入式实时操作系统v x w o r k s 及其开发环境t o r n a d o 第一版北京: 中国电力出版社,2 0 0 1 7 郑宗汉实时系统软件基础第一版北京:清华大学出版社,2 0 0 3 8 周明德主编u n i x 环境与8 0 x 8 6 一保护方式下的8 0 3 8 6 及其编程北京:清华大学出 版社,1 9 9 3 9 周长春等译p o w e r p cp o w e r p c :概念、体系结构与设计第一版北京:电子工业出 版社,1 9 9 5 l o 巍迎梅,王勇等译操作系统内核与设计原理第四版北京:电子工业出版社, 2 0 0 1 1 lc m k r i s h n mr e a l t i m es y s t e m s ,第一版北京:清华大学出版社,2 0 0 1 1 2l i u ,c l ,j a m e s ,w l a y l a n d s c h e d u l i n ga l g o r i t h m sf o rm u l t i p r o g r a m m i n gi na h a r dr e a l t i m ee n v i r o n m e n t j o u r n a lo ft h ea c m 1 9 7 3 ( 2 0 ) :4 6 6 1 1 3m g h a r b o u r ,m h k l e i n ,j p l e h o c z k y t i m i n ga n a l y s i sf o rf i x e d p r i o r i t y 8 c h e d u l i n go fh a r dr e a l t i m es y s t e m s i e e et r a n s s o f t w a r e 1 9 9 4 ( 2 0 ) :1 3 2 8 1 4s h a ,r r a j k u m a r ,j p l e h o c z k y p r i o r it yi n h e r i t a n c ep r o t o c o l s :a na p p r o a c ht o r e a l t i m es y n c h r o n i s a t i o n i e e et r a n s c o m p u t e r s 1 9 9 0 ( 3 9 ) :1 1 7 5 一1 1 8 5 1 5a n a u d s l e y ,a b u r n s ,m r i c h a r d s o n ,k t i n d e l l a p p l y i n gnews c h e d u l i n gt h e o r y t os t a t i cp r i o r i t yp r ee m p t i r es e h e d u l i n g s o f t w a r ee n g i n e e r i n gj o u r n a l 1 9 9 3 ( 8 ) :2 8 4 2 9 2 1 6d 1 k a t c h e r ,h a r a k a w a ,j k s t r o s n i d e r e n g i n e e r i n ga n da n a l y s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能切割设备创新创业项目商业计划书
- 政务体育管理系统创新创业项目商业计划书
- 智慧检察解决方案创新创业项目商业计划书
- 桃花酿制酒创新创业项目商业计划书
- 家政人员薪酬与福利方案创新创业项目商业计划书
- 岗前安全培训心得
- 医院年终工作总结情况
- 偏(均)三甲苯装置操作工国庆节后复工安全考核试卷含答案
- 安利代理合同(标准版)
- 天猫店租赁合同(标准版)
- 2025年新版站务员测评考试题及答案
- 全产业链视角下我国低空经济保险发展研究
- (2025)辅警笔试题库及参考答案
- 退役军人服务授课课件
- 劳动保障监察投诉书格式及写作范文
- 储能电站项目进度控制与质量管理方案
- 2025年水发集团有限公司招聘(216人)考试模拟试题及答案解析
- 木粉尘防爆安全培训课件
- 地质雷达课件
- 2025年秋二年级上册数学人教版教学计划含教学进度表
- 餐饮四个人合伙合同协议
评论
0/150
提交评论