已阅读5页,还剩73页未读, 继续免费阅读
(计算机软件与理论专业论文)bss软件系统支撑子系统中运行支撑的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 b s s 软件系统是一个运行在c d m a 基站控制器b s c 和基站收发信机b t s 之上, 并以商用实时操作系统p s o s 为平台的大型的软件系统,它由多个子系统组成:从 底层看,每个子系统都构成一个独立的系统:各子系统完成特定的功能,具有高 度的自治性;子系统间直接通过特定的协议进行通信。从高层看,各子系统之间 在功能上缺一不可,构成一个完整的整体。 操作系统子系统( o p e r a t i n gs y s t e ms u b s y s t e m ,简称o s s ,又称支撑子系统) 是b s s 软件系统的子系统之一,运行支撑部分( r u n n i n gs u p p o r tp a r t ,简称r s p ) 结构上是o s s 最重要的一个组成部分。 本文首先陈述了r s p 的概念及模块划分,在实时操作系统的任务的基础上, 根据上层业务的运行特点,提出了进程模型的概念,实现了基于进程的二级调度, 构造了进程间的零拷贝的消息通信机制,设计实现了一个高效的对系统定时器资 源进行管理的算法,并提供了一个实时监控系统软硬件运行状态的系统监测模块 等等,所有这些为上层应用提供了一个通用的运行平台。 r s p 也可以称为操作系统的适配层,逻辑上,它的位置介于底层商用操作系统 和上层应用之间;功能上,r s p 实现了对商用的实时操作系统提供的系统调用及 a p i 接口的封装。这些封装及功能扩展,构成了一个虚拟机环境,程序如同运行在 p c 机上一样。这就屏蔽了底层商用操作系统a p i 之间的差异,就满足了r s p 之上 的应用层对操作系统透明性的需求,很大程度上增强了应用层( 也称业务层) 软 件的可移植性。 本文重点介绍了运行支撑部分的4 个主要的子模块一一进程调度、进程通信、 时限管理和系统监测的设计与实现。 关键词:操作系统子系统,运行支撑部分,进程调度,定时器 a b s t r a c t a b s t r a c t b s ss o f i w a ms y s t e mi sal a r g e - s c a l es y s t e mw h i c hr u n so nb s ca n db t so f c d m aa n du s e sp s o s ,ac o m m e r c i a lr e a l t i m eo p e r a t i n gs y s t e m ,a si t ss o f t w a r e p l a t f o r m i tc o n s i s t so fm a n ys u b s y s t e m s ,e a c ho fw h i c hi sa ni n d e p e n d e n ti n d i v i d u a l f r o mt h ea n g l eo f u n d e rs t r a t u m :i th a si t so w nf u n c t i o n ,ac h a r a c t e ro f h i g ha u t o n o m y a n di t sc o m m u n i c a t i o n sw i t ho t h e rs u b s y s t e m sa r ee n s u r e db ys o i n es p e c i a lp r o t o c o l s , w h i l ea ne s s e n t i a lp a r to f a ni n t e g r a t e dw h o l ef r o mt h ea n g l eo f s u p e rs t r a t u m :a l lo f t h e s u b s y s t e m sd ot h e i rd u t yt of o r mt h ef u n c t i o n - i n t e g r a t e ds y s t e ma sa w h o l e r s p ( r t u m i n gs u p p o r tp a r t ) i st h em o s ti m p o r t a n tp a r to fo s s ( o p e r a t i n gs y s t e m s u b s y s t e m ) ,w h i c hi so n eo f t h es u b s y s t e m so fb s s s o f t w a r es y s t e m t h i sp a p e rg i v e st h ec o n c e p t i o na n dt h ec o m p o s i n go fr s pf i r s t ,a n dt h e np r e s e n t s ac o n c e p t i o no fp r o c e s sm o d u l ea n dt h es c h e d u l i n gt oi t ,b a s e do nt h et a s ks c h e d u l e m e c h a n i s mp r o v i d e d b y t h e r e a l t i m e o p e r a t i n gs y s t e m ,a c c o r d i n g t ot h e c h a r a c t e r i s t i co ft h ea p p l i e dp r o g r a m m e si nt h eu p p e rl a y e r , d e s i g n i n ga n dr e a l i z i n ga h i g h l ye f f e c t i v ea l g o r i t h mf o rt h em a n a g e m e n to ft h es y s t e m st i m e rr e s o u r c e s ,a sw e l l a sp r o v i d i n ga s p e c i a lm o d u l eu s e dt om o n i t o rt h er u n n i n gs t a t u so f a l lt h es o f t w a r ea n d h a r d w a r eo ft h es y s t e m a l lo fw h i c hp r o v i d eau n i v e r s a lr u n n i n gp l a t f o r mf o rt h e a p p l i e dp r o g r a m m e s r s pc a na l s ob ec a l l e da st h ea d a p tl a y e ro fo p e r a t i n gs y s t e m i ti sl o g i c a l l y b e t w e e nt h ec o m m e r c i a l o p e r a t i n gs y s t e m i nt h el o w e rl a y e ra n dt h ea p p l i e d p r o g r a m m ei nt h eu p p e rl a y e r , w h i l ef u n c t i o n a l l ya c t u a l i z e sac a p s u l a t i o no ft h es y s t e m c a l l sa n da p ii n t e r f a c e sp r o v i d e db yt h ec o m m e r c i a lr e a l t i m eo p e r a t i n gs y s t e m t h e c a p s u l a t i o na n de x t e n s i o no ft h ef u n c t i o n sf o r mav i r t u a l m a c h i n ee n v i r o n m e n t , p r o g r a m m e sr u n n i n go nw h i c ha p p e a rt ob et h es a m ea st h e yd oo nas i n g l ep c ,a l s o ,t h e d i f f e r e n c eb e t w e e na p ii n t e r f a c e si nd i f f e r e n tc o m m e r c i a lo p e r a t i n gs y s t e m si sm a s k e d , a sw e l la sm e e t i n gt h et r a n s p a r e n c ed e m a n d so fo p e r a t i n gs y s t e m ,a n de n h a n c i n gt h e t r a n s p l a n t a b l ea b i l i t yo f t h ea p p l i e dp r o g r a n m a e si nt h eu p p e rl a y e rt oag r e a te x t e n t t h i sp a p e rm a i n l yg i v e sa ni n t r o d u c t i o no ft h ed e s i g na n di m p l e m e n t a t i o no ft h e f o u rc e n t r a lm o d u l e s ( i n c l u d i n gp r o c e s ss c h e d u l i n g ,p r o c e s sc o m m u n i c a t i o n s ,t i m e r i t a b s t r a c t m a n a g e m e n ta n ds y s t e mm o n i t o m g ) o fr s r k e y w o r d s :o p e r a t i n gs y s t e ms u b s y s t e m ,r u n n i n gs u p p o r tp a r t ,p r o c e s s s c h e d u l e t i m e r l i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 圣查遗窒 日期:砷,彳年,月f 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:硷盐生导师签 日期: , 铜 形 6 年月石曰 第一章绪论 1 1引言 第一章绪论 本文所介绍的支撑子系统中的运行支撑部分是运行在c d m a 基站系统之上的 大型软件系统一- - b s s 软件系统的一部分。 b s s ( b a s es t a t i o ns y s t e m ,基站系统) 由两部分组成:基站控制器b s c 和基 站收发信机b t s ,它们在c d m a 移动通信系统中所处的位置如图l - 1 所示: 1 。2 研究背景 图1 - 1 b s s 在c d m a 中的位置 当前操作系统的种类繁多( 用于研发的商用操作系统有w i n d o w s 、u n i x 、0 s 2 、 w i n d o w sc e 、p s o s 、q n x 、v x w o r k s 、p a l mo s 等) ,相互间的差异很大,且系统提 供的应用函数接口也不尽相同。这样,同一个应用,在不同的操作系统上就必须 有不同的实现方式,每个应用都要依赖于特定的操作系统,不能实现跨平台运行。 电子科技大学硕士学位论文 由于各商用操作系统厂商都在努力地为自己争取市场份额,他们自己的源代 码一般都不公开。这样,使得在每个操作系统之上开发运行的应用软件与其他操 作系统都无法兼容,这种封闭性也导致了商用操作系统在对各种设备的支持方面 存在很大的问题,也使得对基于某个操作系统的软件的移植变得很困难。 鉴于商用操作系统中的这种封闭的现状,i e e e 开发推出了p o s i x ( t h e p o r t a b l e o p e r a t i n gs y s t e mi n t e r f a c e ) ,其标准大部分已被1 s o 组织和i e c 采纳。该标准为不 同平台下的应用程序提供了相同的a p i ,并制定了软件环境标准,其目的就是使应 用代码能够实现垮平台运行。如p o s i x 标准的1 0 0 3 1 b ( 前称1 0 0 3 4 ) 为实时操作 系统业务定义了一组标准接口。通过这些接口标准,应用程序从一个操作系统移 植到另一个操作系统将变得更加容易。 国内的通信企业一般是在确定自己使用哪个商用操作系统之后,再自主研发, 开发出基于商用操作系统的支撑子系统,依靠对底层操作系统的封装来屏蔽各商 用操作系统的差异性,更大可能的增强上层应用软件的可移植性和兼容性。 1 3 本文研究内容 0 s s 操作系统子系统主要完成对系统运行环境的封装、对所驻留的硬件模块的 控制和为运行在各硬件模块上的各软件子系统提供通信能力等功能;0 s s 负责管理 处理机这一最重要的硬件资源,对应用程序的执行提供运行支撑,将应用程序与 实际硬件环境隔离开来,提供与实际硬件环境无关的应用程序执行环境。除完成 通信和系统控制功能以外,0 s s 本质的作用就是向下进行p s o s 系统的任务( t a s k ) 调度,向上对应用进程( p r o c e s s ) 封装p s o s 操作系统所提供的系统功能调用, 提供对底层硬件进行访问的透明接口,并依据当前发生的事件以及进程之间传递 的消息对进程进行调度。 0 s s 所提供的封装能力保证了程序间良好的层次结构,使应用软件在系统的软 硬件平台发生变化时,依然能够保持较好的可维护性和可移植性。 支撑子系统是b s s 软件系统中不可或缺的一层,而运行支撑部分又是支撑子系 统的核心部分,它的稳定与否直接关系到整个软件系统能否正常运行。运行支撑 部分包含了对整个b s s 软件系统中的最基本的运行实体一一进程的调度支持,对 系统内存资源的管理( 分配、回收以及必要的内存保护) ,系统中所有定时器资源 的管理,系统运行情况的监控以及当系统运行出现异常情况时的处理策略等。 本文的内容主要包括:第一,简要介绍了b s s 软件系统的逻辑结构,支撑子系 2 第一章绪论 统的层次结构、模块划分以及运行支撑部分在支撑子系统中的位置;第二,p s o s 操作系统的研究,这部分主要是研究p s o s 操作系统任务的运行机制和调度原理, p s o s 操作系统的组件配置,以及系统如何为用户提供接口;第三,初步研究了在 p s o s 操作系统提供的接口的基础上,用户如何进行二次开发。提供了支持子系统 中所应用的进程的概念及进程的模型,扩展了基于进程的二级调度的实现原理, 并对系统在运行过程中一些需求所涉及的部分代码进行了增添和修改。 说明:运行于p s 0 s 操作系统任务调度之上的基于进程的二级调度,结构上既 是支撑子系统运行支撑部分的一个子模块,在逻辑上又可以看作b s s 软件系统运 行的基础,整个软件系统都是以进程为运行实体的。 1 4 论文结构 论文内容总共包括6 章。第一章为绪论。第二章中简要介绍了b s s 基站系统的 软件层次,并 出了支撑子系统和r s p 的概念及其模块划分。第三六章为本文 的主要部分,较为详细的介绍了运行支撑部分中几个子模块的实现原理及设计方 法。其中,第三章引入了支撑子系统中应用的进程的概念,并给出- t - - 级调度的 流程;第四章介绍了以任务消息队列和进程消息队列为基础的进程间的基于消息 的通信机制;第五章阐述了对整个软件系统中广泛使用的定时器资源的管理;第 六章中简单地介绍了系统监控模块的概念、功能及判断、预防进程死锁、c p u 利用 率统计的设计原理;第七章对全文作了总结。 率统计的设计原理;第七章对全文作了总结。 电子科技大学硕士学位论文 第二章支撑子系统和r s p 2 1b s s 软件系统的划分 依据c d m a 基站软件系统功能需求,b s c 和b t s 侧的软件系统均可分为四 个子系统,分别为【l 】: 操作系统子系统o s s :进程管理,定时器管理,进程通信等。 信令处理子系统s p s :u m 、a b i s 、a 接口信令业务处理等。 操作维护子系统o m s :操作维护管理、前后台通信等。 数据库子系统d b s ;系统数据的提取和管理。 各子系统间逻辑关系如下图所示: 吟bsk = = 刮o m s l , 倒 s p s l o 专 百n可 | oss j r 实时多任务操作系统 图2 - 1c d m a 基站软件系统逻辑框图 c d m a 基站软件系统的运行平台选用i n t e g r a t e ds y s t e m si n c 公司的嵌入 式实时多任务操作系统p s o s ,通过自主开发的操作系统子系统o s s 封装p s o s 的实 现及编程细节,向上提供一致性程序接口,支持事件驱动的s d l 编程格式 3 1 ;业务 功能及接口协议由信令处理子系统s p s 完成;数据库子系统d b s 统一管理信令处 理和操作维护所需的所有资源数据;作为一个商用系统,c d m a 基站系统的操作 维护由操作维护子系统o m s 完成。 c d m a 基站软件系统是在商用实时多任务操作系统之上开发支持s d l 编程规 范的操作系统,以进程及实例做为功能单元,由操作系统统一管理。同时,为保 4 第二章支撑子系统和r s p 证数据的可靠性和一致性,设立专用的数据库系统,管理所有系统资源。从软件 的角度来看,系统的运行就是系统内各个进程互发消息、状态迁移的过程。 2 2 支撑子系统o s s 2 2 1o s s 功能描述 考虑交换机或其他通讯设备上的软件,对于业务、数据库、操作维护等主要 部分,实际上的一次操作过程都可以抽象成为一个有限状态自动机的状态转移过 程。我们采取事件驱动的办法来驱动这些抽象出来的状态机的转移,这可以使业 务处理的程序语言模型与s d l 抽象模型很好地对应在一起。 在c d m ab s s 软件系统中,我们采用i n t e g r a t e ds y s t e m si n e 的p s o s 作为底 层嵌入式操作系统。p s o s 虽然是一个实时多任务的操作系统,但它并不提供时间 驱动的应用开发方式 4 j 。为了获得时间驱动开发方式的优点,就需要我们在p s o s 操作系统上再构造一层软件模型来提供这种方式,这就是我们的操作系统子系 统一- - o s s ( o p e r a t i n gs y s t e ms u b s y s t e m ) 。 o s s 本质的作用就是向下进行p s o s 系统的任务( t a s k ) 调度,向上对上层 进程( p r o c e s s ) 提供对底层硬件进行访问的透明接口,并依据当前发生的事件 及进程之间传递的消息对进程进行调度。 2 2 2 设计原理 我们采用i n t e g r a t e ds y s t e m si n c 的嵌入式实时多任务操作系统p s o s 作 为底层操作平台,p s o s 可以支持各种不同种类的c p u ,它提供p s o s 实时内核 ( p s o s + r e a l t i m ek e r n e l ) 、网络系统管理( p n a 十) ,文件系统管理( p h i l e + f i l e s y s t e mm a n a g e r ) ,可重入的c 语言调用库( p r e p c + a n s icl i b r a r y ) ,输入输 出管理( i os y s t e m ) 、执行映像集成调试器( p r o b e + ) 等模块1 5 j 。p s o s 以任务 ( t a s k ) 作为运行实体,并提供内存区域( m e m o r yr e g i o n s ) ,内存分区( m e m o r y p a r t i t i o n s ) ,消息队列( m e s s a g eq u e u e s ) 、信号量( s e m a p h o r e s ) 等运行组件, 以实现任务内的存储分配和任务之间的通信、同步与互斥【6 j 。 整个o s s 的核心部分全部建立在p s o s 操作系统之上,就是要利用p s o s 所提 供的功能来实现对上层业务、数据库、操作维护等进程( p r o c e s s ) 的事件调度, 完成定时器、内存、文件以及异常处理等操作系统所必需的运行支撑功能。 电子科技大学硕士学位论文 2 2 3 功能结构设计 2 2 3 i 结构组成 o s s 利用p s o s 所提供的操作系统运行组件,在p s o s 的任务调度、内存管理、 时钟管理、消息传递、事件通知等功能的基础之上实施o s s 各予模块所要完成的 功能【2 】。整个o s s 运行支撑部分从功能上可以划分为三个部分:核心模块、外围 模块、驱动模块。核心模块为与所有上层进程相关的或进行o s s 控制的软件模块, 是挨个o s s 的核心,为其它各子系统的所有上层进程提供运行支撑;外围模块为 与某一类上层进程或功能相关的软件模块,为某一类功能请求在o s s 层提供软件 驱动;驱动模块直接和硬件打交道,保证了p s o s 的正常运行并对上层软件提供对 硬件的透明访问。 o s s 子系统的功能结构如图2 - 2 所示: 图2 2o s s 子系统的功能结构框图 此外,0 s s 子系统的结构还可以按如下方式划分: 1 运行支撑部分( o s sr s p ) :支持由状态、信号所描述的s d l 进程的用c 程序语言实现的编程结构;主要完成对进程调度、通信的支持以及内存管理、时 限管理、异常处理、软件运行状态监测等系统运行所需的基本操作系统支持功能。 2 系统控制部分( o s ss c p ) :主要完成对所驻留的硬件模块及相应硬件子 系统从启动到进入工作状态的一系列控制功能,包括系统上电时完成自检、软件 下载、网络配置初始化等功能;在某些需要主备共存的单板上完成启动时的主备 状态竞争、主备之间各种情况下的倒换、主各状态监测和主备间通信等功能;对 各硬件子系统内部和硬件子系统之间的通信链路状态的定时检测,对各硬件模块 第二章支撑子系统和r s p 的状态监视及对数据库的闭塞解闭塞。 3 通信连接部分( o s sc l p ) :完成硬件子系统内和硬件子系统间的硬件模 块间通信功能;通信的物理链路可能是硬件单板之间的4 2 2 链路、b t s 或b s c 机 框的背板总线、连接b t s 和b s c 的e 1 链路等。互相通信的硬件模块间在传递数 据时可能要经过上述的一种或几种物理链路,o s s 对应用进程封装底层通信_scp 的实现细节,提供不同方式的( 可靠的或实时的) 数据传输能力。 4 文件系统部分( o s s _ f s p ) :在某些主控单板上,提供以文件方式管理f l a s h m e m o r y 上所存储的数据和软件版本的能力,在后台操作维护终端上提供对前台文 件的透明访问能力,包括对前后台文件的列目录、拷贝、删除、更名等操作。 各部分之间的关系如下图所示; 。 t - - l - 1 0 8 s 一黔9 l | 0 8 5 o s s s b :一 o s s s c p l p 口 卜1 b s pl 4 一 表示调用,由箭头的起始端提供 表示消息,由箭头的起始端发出 图2 - 30 s s 各部分间的关系 o s s 的核心模块( 基本等同于第二种划分中的o s s j t s p ) 包含了本文要介绍 的主要内容一一支撑子系统中的运行支撑部分。 2 2 3 2 核心模块功能描述 核心模块为与所有上层进程相关的或进行0 s s 控制的软件模块,它主要对系统 电子科技大学硕士学位论文 中的一系列进程在运行态、就绪态、阻塞态等各个状态之间的转换进行控制;为 进程运行过程中的一系列内存操作、定时操作等请求提供运行支撑;提供进程间 通信机制和外部事件和消息之间的转换机制;对进程运行的地址空间进行隔离, 对进程运行过程中所发生的异常事件进行处理。 因为要处理许多上层进程的并发请求和进程间的上下文切换,所以必须要求 o s s 具有很高的运行效率、极强的容错能力和故障恢复能力。要求代码简练、部分 代码要具备重入能力,核心数据结构的设计体现算法的简单高效而不是对存储空 间的尽量节省。 2 2 3 3 核心模块结构组成 核心模块主要包括以下子模块:进程调度子模块、进程通信子模块、内存管 理子模块、时钟管理子模块、系统监测子模块、异常处理子模块、i ,o 接口子模块、 用户接口子模块。 核心模块的功能结构如图2 - 4 所示: 图2 4o s s 核心模块的功能结构框图 2 2 3 4 子模块简介 2 2 3 4 1 进程调度子模块 以p s o s 的任务为运行载体,将每个自动机的程序语言实现作为进程挂在任 务下面,由o s s 负责进程的调度。进程有自己的代码及数据地址空间,以实现进 程之间的隔离。进程间通过消息进行通信,o s s 依据进程当前获得的消息、进程 对c p u 的占有时间及进程的优先级来实施对进程的调度,进程在一次消息响应完 第二章支撑子系统和r s p 毕后可以自动放弃运行权,也可以在调用某些o s s 的阻塞调用时被o s s 换出,以 使其他进程获得执行机会。o s s 通过给每个进程分配的核心数据结构来标识进程。 2 2 3 4 2 进程通信子模块 这里主要指的进程间通信指模块内通信。进程间通信主要采取消息传递的方 式。按消息发送的目的可分为任务内消息传递和任务间消息传递,任务内消息指 在同一任务下的两个进程间的消息传递,任务间消息指在不同任务下的两个进程 间的消息传递;按发送方式分可分为同步消息发送和异步消息发送,同步消息需 要确定消息已经到达目的进程,并等待获得目的进程的应答,是阻塞的;异步消 息指不等待消息的发送结果的消息;按消息类型可分为普通消息和紧急消息,普 通消息指无须紧急处理的消息,紧急消息是指一些需及时处理的消息。 2 2 3 4 3 内存管理子模块 上层进程的动态内存请求或静态内存分配都由内存管理子模块进行管理。不 同的c p u 有不同的虚实地址映射方式,并且内存分配方式直接关系到进程地址空 间的保护问题,所以内存管理子模块不仅要完成内存的分配,而且与整个异常处 理机制直接相关。为此,我们将内存管理子模块分成两个部分: c p u 依赖部分,负责操作c p u 的内存映射机构,实现虚实地址映射。 内存管理部分,向上层进程提供内存分配和释放功能。 2 ,2 3 4 4 时限管理子模块 时限管理,也称时钟管理,是o s s 的一个重要组成部分,由它来统一管理时 间这一资源,处理所有与时间有关的功能,主要有:在一定的时限基础上调度进 程或过程的执行;作为进程正常执行的定时处理和延时处理;为上层进程提供各 种系统功能调用以测量经历时长;各处理机之间的时间同步 2 2 3 4 5 异常处理子模块 异常处理子模块是系统中非常重要的一个部分,保证了整个系统的完整性和 健壮性,保证了整个软件系统在异常情况下不会崩溃。异常处理子模块完成的功 能主要是捕获上层进程所发生的各种异常错误,并进行相应的错误处理,避免由 于存在于某些进程中的b u g 而造成整个系统的瘫痪。异常处理子模块也分为两个 部分 异常触发部分:初始化c p u 的异常中断向量,安装异常处理程序入口地 9 电子科技大学硕士学位论文 址。 异常处理部分:对已经触发的异常进行分类处理,排除错误,将控制转移 到正确的位置,可以有系统缺省处理和上层进程提供的处理两种方式。 2 2 3 4 6 系统监测子模块 系统监测子模块主要完成监测系统运行状态、维护o s s 系统数据结构的完整 性、避免进程的恶意运行和死锁、控制c p u 运行负荷等功能。主要监测和处理的 异常情况有:进程或任务的频繁运行、进程或任务的死锁,进程或任务的死循环, 数据结构的讹错。对异常情况的处理方法主要有:死锁任务或进程的唤醒、频繁 或死循环任务和进程的强行换出、被破坏数据结构的分级重组。主要控制系统负 荷的方法有:c p u 占用率统计、各种资源的利用率统计、c p u 负荷的阈值调整。 2 2 3 4 7i 0 接口子模块 y o 接口子模块提供y o 事件和消息之间的转换、登记和派发机制。它对上完 成两种功能:一是对上层进程提供消息登记机制,即由上层进程登记将接受哪些 y o 事件消息,二是接收上层进程的i o 请求。i o 接口子模块向下通过p s o s 提供 的一致的i o 接口函数,向由设备驱动子模块提供的设备驱动程序转发上层进程的 i o 请求,并封装i o 事件,将发生的i o 事件( 比如,发送缓冲区空,接受缓冲 区满等事件) 转换为事先定义好的消息后,将消息发送给登记该消息的上层进程。 i o 接口子模块与设备驱动子模块有较强的联系。 2 2 3 4 8 用户接口子模块 用户接口子模块完成封装o s s 内各模块的内部实现细节,向上层进程提供透 明的访问接口。 2 3r s p 概述 2 3 1 基本概念 2 3 1 1r s p 所支撑运行的进程 在s d l 的描述中,进程基本上处于等待信号的状态,当收到一个信号时,进 程根据当前所处的状态和所收到的信号做出相应的响应,进程应该根据其可能收 到信号来规定相应的动作。进程可能处于许多不同的状态中的一种,每次收到一 第二章支撑子系统和r s p 个信号时要迁移到一个新的状态,新迁移的状态可以和上一个状态相同也可以不 同,进程当前所处的状态和收到的信号决定了进程所要采取的动作和下一个状态, 进程进入下一个状态后,又开始等待下一个信号的到来。 r s p 所支撑运行的进程本质上用状态、信号所描述的s d l 进程的c 程序语言 实现。r s p 实际上是在商用实时对任务操作系统的基础上构造的一层软件模块, 用来支撑符合s d l 规范的进程的运行。 2 3 扎2 消息 s d l 所描述的信号与r s p 支撑运行的进程所等待的消息相对应,消息本质上 是一块由特定进程解释和处理的数据,r s p 支撑运行的进程是消息驱动的,一个 进程通过r s p 所提供的功能可以将消息传递给另一个进程,进程只有获得消息才 有机会被r s p 调度运行,进程一次运行的过程即是对所接收到的消息的一次处理 过程,进程无需显式的等待消息,r s p 根据进程的优先级和进程当前是否有消息 要处理来决定是否调度进程运行。 2 3 2r s p 的设计原理 2 3 2 1 p s o s 操作系统的特点 c d m a 基站系统b s c 侧的信道处理模块、选择器声码器模块及b t s 侧的通 信控制模块、信道板都采用i n t e g r a t e ds y s t e m si n e 的嵌入式实时多任务操作系 统一- - p s o s 管理其硬件平台,p s o s 操作系统提供p s o s 实时内核( p s o s + r e a l t i m ek e r n e l ) 、网络系统管理( p n a + ) ,文件系统管理( p h i l e + f i l es y s t e m m a n a g e r ) ,可重入的c 语言调用库( p r e p c + a n s icl i b r a r y ) ,输入输出管理( i o s y s t e m ) 、执行映像集成调试器( p r o b e + ) 等模块。p s o s 以任务( t a s k ) 作为运行 实体,并提供内存区域( m e m o r yr e g i o n s ) ,内存分区( m e m o r yp a r t i t i o n s ) ,消息队 列( m e s s a g eq u e u e s ) 、信号量( s e m a p h o r e s ) 等运行组件,以实现任务内的存储分 配和任务间的通信、同步与互斥。 p s o s 以任务作为最小运行单位,任务有自己的堆栈、数据区和由若干函数所 组成的代码,任务以某一个特定的函数作为运行入口,任务启动时从该函数的第 一条指令开始执行。p s o s 任务有如下的三种运行状态: 运行态:指当前任务已经获得处理机资源,并正在执行; 就绪态:指任务已经满足了运行所需的全部条件,但当前正在等待操作系统 分配处理机资源; 电子科技大学硕士学位论文 阻塞态:指进程尚缺乏运行所需的某种条件,而正在等待这种条件得至0 满足。 任务不断在这三种运行状态中进行转换,当前运行任务运行状态的转换是由 于该任务或其他任务进行了一次p s o s 系统调用、设备驱动程序完成了一次i 0 操 作或者是由于发生了一次中断。一个任务当前可能所处的状态和可能发生的状态 转换如图2 5 所示。 图2 - 5p s o s 操作系统任务状态图 p s o s 提供了非常灵活的任务调度机制,可以基于优先级调度,同优先级的若 干任务间又可以基于时间片进行调度。每个任务都被分配一定的以数字方式表示 的优先级,从0 到2 5 5 ,其中2 4 0 到2 5 5 保留给p s o s 操作系统使用,p s o s 操作 系统总是每次调度优先级最高的就绪任务执行,低优先级的就绪任务只有在高优 先级的任务都处于阻塞态时才有机会被调度运行。任务可以是可被抢先的,也可 以是不可被抢先的,一个可被抢先的低优先级任务在运行时将被一个刚刚从阻塞 态醒来的高优先级任务所抢先。如果任务工作在时间片方式,某一个就绪任务也 可以抢先另外一个优先级相同但时间片已经用尽的运行任务。 在基于多任务操作系统的应用开发中,最复杂的问题就是任务间的通信、同步 和互斥,p s o s 提供了如下的对象( 0 b j e c t ) 来解决任务间的通信、同步和互斥。 1 定长消息队列:用于任务间通信,每次只能发送固定长度( 1 6 b y t e ) 的消 息; 2 变长消息队列:用于任务间通信,每次可以发送的消息的最大长度在创建 队列时已经规定好; 3 事件:一种特殊的任务间通信机制,用3 2 b i t s 中的某一位来说明某个已经 发生的动作; 4 信号量:p s o s 信号量与一般操作系统原理教程中所讲述的一致,用p 、v 操作来控制对代码临界区的访问; 第二章支撑子系统和r s p p s o s 消息队列并不局限于只被某个特定任务所操作,若干个任务都可以在某 一个特定的消息队列上收发消息,一个任务也可以在多个不同的消息队列上收发 消息;从同一消息队列上取消息的任务获取消息的顺序取决于任务的优先级和任 务在消息队列上等待消息的先后顺序:任务可以选择在获取消息时是一直阻塞直 到消息的到来,或者是没有消息就返回。 事件与消息有所不同,是特定于具体任务的,我们可以称将消息发到某个消 息队列上,对于事件,则必须称给哪一个任务发送一个事件。任务同样可以选择 等待事件发生的方式,任务可以一直阻塞直到事件到来,也可以在没有收到要等 的事件时错误返回:可以用一个p s o s 调用等待一个事件、也可以用一个p s o s 调 用等待多个事件;可以一次等待多个事件都到达后方返回,也可以要等的若干个 事件中有一个发生就返回。对消息队列、事件、信号量的操作都可能会引起任务 运行状态的变化,从而有效的实现任务间的同步和互斥。 2 3 2 2 设计原理 o s sr s p 的代码全部建立在p s o s 操作系统之上,就是要利用p s 0 s 的任务调度 机制和消息队列构造自己的以进程为单位的二级调度策略,支持用状态、信号来 描述的s d l 进程的c 程序语言编程结构。利用p s o s 的事件、信号量等机制实现进 程间的同步与互斥。利用p s o s 的定时器管理、内存管理等功能为进程提供运行时 所需的软件资源。实现对s p s 、o m s 、d b s 等软件子系统和o s s _ f m p 、o s s s c p 、o s s _ c l p 中的依据s d l 规范所设计的进程( p r o c e s s ) 的运行时支撑功能。 o s s 的基本实现策略如下:_rsp i 利用p s o s 的抢先多任务调度机制实现对进程的二级调度,一个任务可以 调度若干个进程执行,被不同优先级任务调度的进程体现出不同的运行机会,被 同一任务调度的若干进程有平等的运行机会,进程每次被调度运行并完成对一个 消息的处理后,o s s r s p 将调度另一个进程去处理消息,而不是让一个进程连续对 若干个消息进行处理; 2 利用p s o s 的定长消息队列机制实现被不同任务调度运行的进程间的消息 通信;每个进程又有自己的消息队列用来对消息进行缓存; 3 利用p s o s 的内存管理机制及m p c 8 6 0 c p u 的内存管理单元( m m u ) 为进程的 内存需求提供支持,对属于不同进程的私有地址空间进行隔离; 4 利用p s o s 提供的有关时间的调用,满足所有进程的时限请求; 5 利用m p c 8 6 0 c p u 的异常处理机制,对进程和任务在运行过程中所出现的错 电子科技大学硕士学位论文 误进行捕捉和处理。 6 利用p s o s 操作系统提供的对t c p i p 协议的支持,对前台进程与后台操作 维护台上的应用程序问的通信提供支撑; 7 对o s s _ c l p 所完成的功能进行封装,向o s s c l p 相应进程转发本硬件模块 上的进程与其他硬件模块上的进程进行通信的请求,派发由o s s 相应进程从_clp 其他硬件模块接收到的消息给本硬件平台上的目的进程。 2 3 2 3 模块划分 o s s r s p 按其所要实现的功能可划分为如下模块: 1 进程调度模块:支持用状态、信号来描述的s d l 进程的c 程序语言实现; 在p s o s 的任务调度基础之上构造针对进程的二级调度策略;对系统中的一系列进 程在运行态、就绪态、阻塞态等各个状态之间的转换进行控制;根据进程的优先 级和所获得的消息为进程分配处理机资源; 2 进程通信模块:为处在相同不同处理机上的不同进程提供通信通道,支 持以消息业务数据为主体的进程间通信方式: 3 时限管理模块:对进程运行过程中的一系列与时间相关的请求提供支持; 4 内存管理模块:对o s s 及上层应用进程运行时所需的内存资源进行管理, 对进程间的地址空间进行隔离; 5 异常处理模块:对软件系统运行过程中所产生的触发c p u 异常中断的错误 进行处理,以使c p u 和整个软件系统能够及时摆脱所处的错误状态,继续稳定运 行; 6 系统监测模块:对软件系统运行过程中所出现的一些不合逻辑的错误状态 进行捕捉和修正,使软件系统能够及时摆脱不正确的状态;对c p u 的占有率进行 统计,在系统负荷过高的情况下通知相应进程进行及时的调整。 7 启动配置模块:完成o s s r s p 所维护的全局数据初始化,p s o s 任务和应用 进程的创建,使o s s r s p 进入正常工作状态。 2 3 2 4 模块间接口 o s sr s p 各模块问的接口关系如图2 6 所示: 1 4 第二章支撑子系统和r s p 斗表示调用,调用函数由箭头起始模块实现 = = = j 表示p s o s 消息和事件,由箭头起始模块发出 图2 6r s p 各模块间的接口关系 模块间的关系描述如下: 1 进程调度模块为启动配置模块提供的调用接口,完成o s s r s p 初始化时对 进程和p s o s 任务的创建; 2 异常处理模块为启动配置模块提供的调用接口,完成o s s _ r s p 初始化时对 异常中断向量的设置; 3 内存管理模块为启动配置模块提供的调用接口,完成o s s r s p 初始化时对 m m u 的配置和对消息缓冲池的分配; 4 系统监测模块为启动配置模块提供的调用接口,完成o s s r s p 初始化时系 统监测任务的创建、c p u 占有率统计时间段和告警门限的获取,统计函数运行时间 的估算: 5 时限管理模块为启动配置模块提供的调用接口,完成定时器扫描任务 ( t i m e r s c a n t a s k ) 的创建、定时器控制块和各种定时器队列的初始化; 6 进程调度模块为异常处理模块提供的调用接口,当发生异常时,利用该调 用将出错的进程换出处理机; 电子科技大学硕士学位论文 7 进程调度模块为系统监测模块提供的调用接口,当进程发生死锁、死循环 时,利用该调用将出错的进程换出处理机; 8 。内存管理模块为进程调度模块提供的调用接口,当从进程代码切换到 o s sr s p 代码或从o s sr s p 代码切换到进程代码时,利用该接口对删进行配置f 9 内存管理模块对进程调度模块提供的调用接口,当创建进程时,为进程分 配堆栈和静态数据区空间; 1 0 内存管理模块对进程通信模块提供的调用接口,当发送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租汽车驾驶员考试试题预测
- 会计英语词汇
- 2026 学龄前自闭症融合干预认知课件
- 会计个人离职信(32篇)
- 2026届北京市东城区名校中考适应性考试英语试题含答案
- 山东省济南市商河县市级名校2026届初中语文毕业考试模拟冲刺卷含解析
- 2026春初中心理健康北师大版(2025)七年级下册第四单元 快乐每一天《第十一课 风雨之后见彩虹》教学课件
- 2026年薪酬管理制度与员工心理健康关系研究实践
- 建设工程项目管理二局培训精简版
- 2026 学龄前自闭症家庭行为课件
- 2025年妇科腹腔镜考试题及答案
- 发票增量购销合同范本
- 《现场总线机工业控制网络》课件-第5章 FF总线技术
- 公共安全管理课课件
- 2025年湖北省中考语文试卷真题(含标准答案)
- 2025年新高考1卷(新课标Ⅰ卷)英语试卷(含答案解析)+听力音频+听力原文
- 2025小红书618【宠物行业】营销洞察-策略建议
- GB/T 22107-2025气动方向控制阀切换时间的测量
- 《基于ESP8266和芯片和光学指纹模块的智能门禁系统设计6100字(论文)》
- 2025年浙江省杭州市萧山区高桥初中教育集团中考英语调研试卷(3月份)
- 射线检测专业知识考试题库(含答案)
评论
0/150
提交评论