4种实时操作系统实时性的分析对比
- 格式:pdf
- 大小:247.54 KB
- 文档页数:3
S y l i x O S大型实时操作系统实时性分析李孝成(南京翼辉信息技术有限公司,南京210000)摘要:S y l i x O S是一款支持多架构的64位国产原创操作系统,支持S M P与AM P多核架构,系统内核功能丰富,系统提供丰富的文件系统支持㊁完善的网络协议栈支持与多种图形显示引擎支持㊂S y l i x O S作为一款大型R T O S,在实时性方面做了很多有益的设计,但是,系统的实时性与使用过程中的众多因素相关,本文对影响实时性的因素进行分析,并给出优化方法,最后给出S y l i x O S和V x W o r k s的测试对比㊂关键词:S y l i x O S;S M P;大型系统;实时性;性能优化策略中图分类号:T P316文献标识码:AR e a l-t i m e P e r f o r m a n c e A n a l y s i s o f S y l i x O S L a r g e R e a l-t i m e O p e r a t i n g S y s t e mL i X i a o c h e n g(N a n j i n g A C O I N F O T e c h n o l o g y C o.,L t d.,N a n j i n g210000,C h i n a)A b s t r a c t:S y l i x O S i s a64b i t d o m e s t i c o r i g i n a l o p e r a t i n g s y s t e m s u p p o r t i n g m u l t i a r c h i t e c t u r e,s u p p o r t i n g S M P a n d AM P m u l t i-c o r e a r-c h i t e c t u r e,w i t h r i c h k e r n e l f u n c t i o n s.T h e s y s t e m p r o v i d e s r i c h f i l e s y s t e m s u p p o r t,p e r f e c t n e t w o r k p r o t o c o l s t a c k s u p p o r t a n d a v a r i e t y o f g r a p h i c d i s p l a y e n g i n e s u p p o r t.S y l i x O S i s a l a r g e-s c a l e R T O S,w h i c h h a s d o n e a l o t o f u s e f u l d e s i g n i n r e a l-t i m e,b u t t h e r e a l-t i m e p e r-f o r m a n c e o f t h e s y s t e m a n d t h e d i f f i c u l t i e s i n t h e p r o c e s s o f u s e a r e l i m i t e d.T h i s p a p e r a n a l y z e s t h e f a c t o r s t h a t a f f e c t t h e r e a l-t i m e p e r-f o r m a n c e,a n d g i v e s t h e o p t i m i z a t i o n m e t h o d,a n d t h e n g i v e s t h e t e s t c o m p a r i s o n b e t w e e n S y l i x O S a n d V x W o r k s.K e y w o r d s:S y l i x O S;S M P;l a r g e s y s t e m;r e a l-t i m e p e r f o r m a n c e;p e r f o r m a n c e o p t i m i z a t i o n s t r a t e g y0引言S y l i x O S是嵌入式通用型操作系统,该系统开发自2006年,具备大型操作系统的特点:内核代码百万行以上,支持多种硬件架构,动态装载应用程序,支持虚拟进程,兼容P O S I X标准规范,支持标准设备管理模型,支持丰富的文件系统,支持完善的网络协议栈,支持多种图形引擎,可以快捷帮助用户实现图形开发需求㊂目前已经应用于防务㊁航空㊁航天㊁轨道交通㊁电力㊁工控㊁汽车电子等多种领域的产品上,可替换国外V x W o r k s和Q N X方案㊂S y l i x O S适用于高性能㊁高可靠㊁高安全㊁业务场景复杂的设备,通常运行在高性能处理器平台,典型应用包括弹载操作系统平台㊁星载操作系统给平台㊁列车安全计算机㊁电力继保设备㊁机器人控制器㊁数控机床等㊂使用S y l i x O S系统的产品很多时候都需要优秀的实时性支持,影响实时性的因素很多,除了内核设计本身支持优秀的实时性外,系统也提供很多方法可用来优化实时性,本文就影响实时性的因素与优化方式进行一些分析,并给出S y l i x O S的优化方法㊂1实时性影响因素作为R T O S考量的一个重要指标,实时性一般体现在任务切换实时性㊁周期任务抖动实时性㊁中断响应实时性方面,这些实时性的影响因素与调度算法㊁调度时机㊁中断屏蔽㊁多核通知㊁c a c h e保持都有一定关系,下面就这几个方面进行分析㊂当一个事件产生时,无论何种情况下都能在确定的时间得到响应,这是实时性的定义㊂通过这个定义能够得到三个信息:第一个是事件产生进入调度的时机是否及时,第二个是调度任务选取时间是否确定,第三个是任务切换时间是否确定㊂这三个因素是影响实时性是否确定的核心因素㊂1.1调度时机分析系统产生事件一般分为软件事件和中断事件㊂软件事件为应用程序在执行过程中调用相关系统接口给另一个任务发送消息或同步,此时影响软件事件响应的因素包括内核是否可被抢占㊂中断事件是指硬件载体产生了一个异常,该异常被中断服务函数捕获,然后投递消息给响应的处理任务,此时的影响因素包括系统最大关中断时长以及中断是否可以被抢占㊂1.2 调度任务选取当事件产生并进入到内核进行调度时,需要确定任务选取的时间㊂在多核环境下,还需要确定当前是否有任务在其他核上处于更高优先级,因此调度任务的选取与通知和多核有关㊂1.3 任务切换当某个核确定需要进行任务上下文切换后,会通过任务I D 获取到任务控制块,然后通过恢复上下文来执行新的任务,该环节影响的因素为新任务执行的c a c h e 抖动㊂2 S yl i x O S 实时性设计2.1 内核设计S yl i x O S 具有良好的架构分层,从下至上分为A R C H 层㊁内核层㊁设备驱动框架层㊁I /O 子系统㊁动态加载模块与接口层,系统整体架构图如图1所示㊂图1 S yl i x O S 架构图 从图1中可以看出,S yl i x O S 架构庞大,组件众多,功能丰富㊂内核采用抢占式设计,因此在执行内核态任务的时候可以及时响应用户的高优先级任务㊂同时在进入内核等相关原子区域操作的时候,采用最小粒度的关中断处理,最大程度上减少软件层面对中断响应的影响㊂S y l i x O S 采用了b i t m a p 算法进行高任务优先级的选择,该算法满足O (1),每次进入调度的时候,无论任务多寡,均可在指定的时间内完成高优先级任务的选择㊂2.2 多核相关设计S y l i x O S 支持多核S M P 运行,在多核模式下,S yl i x O S 为了提高任务实时性,在多核架构中为每个核增加了候选表的概念,若候选表不为空,有一个优先级高于 候选表中线程 的线程就绪时,会产生优先级卷绕,并将C P U 的优先级卷绕标志位设置为1,S yl i x O S 线程调度流程如图2所示㊂采用候选表与优先级卷绕模式,可以在一个调度产生时,及时获取到当前要调度到的任务在其他核内是否处于高优先级,如果发现要调度的任务优先级不高于本核㊁但高于其他核,就会向目标核发起一个核间中断,然后触发另外一个核进行一次调度㊂3 S yl i x O S 优化方法产品的实时性一般由O S 实时性+B S P 实时性+应用程序相关优化手段来实现,S y l i x O S 本身在设计的时候已经进行了众多优化设计,下面将给出一些工程实践中常用的实时性优化方法㊂3.1 打开中断嵌套现代处理器中,不同的中断源会产生不同等级的中断,而在实时产品的设计过程中,我们需要保障高优先级中断能够在中断产生后及时得到响应㊂一般情况下,中断进入中断服务程序后系统中断是关闭的,为了解决这个问题,S yl i x O S 支持中断嵌套功能,通过调用a r c h I n t H a n d l e图2 S yl i x O S 任务调度流程图来打开中断嵌套,a r c h I n t H a n d l e 的函数描述如表1所列㊂打开中断嵌套系统支持后,用户在B S P 编写对应的中断服务程序即可㊂表1 中断嵌套打开函数函数名参数说明a r c h I n t H a n d l e(u l V e c t o r ,b P r e e m pt i v e )V e c t o r:中断号b P r e e m pt i v e :是否支持嵌套3.2 缩短中断服务程序时间众所周知,中断服务程序在执行的时候,系统中断是关闭的,长时间的中断关闭会导致系统响应延迟,实时性下降㊂因此,在设计驱动服务程序时,需要使用上下半段的方法来拆分中断服务程序,从而缩短中断关闭时间㊁提高系统实时性㊂中断服务程序的拆分原则如下:一般把和业务逻辑相关的数据处理放到任务中,中断服务程序负责处理数据获取㊁清理现场,然后通过消息机制通知任务处理业务逻辑,从而实现缩短中断服务程序的目的㊂具体示意图如图3图3 中断上下半段处理示意图所示㊂3.3 对相关的一组任务进行亲核性绑定在S yl i x O S 多核S M P 模式下,如果一个任务激活了另一个任务,且另一个任务运行在另外一个核上,那么会多触发一次核间中断,这种情况下可以通过分析业务逻辑关系把一组有直接唤醒关系的任务或者中断绑定在同一个核上,这样就能解决多触发一次核间调度的问题㊂在S yl i x O S 上,提供两种方式来进行任务与核的绑定㊂S y l i x O S 支持通过S h e l l 命令的方式进行任务与核的绑定,S h e l l 命令为a f f i n i t y,该种方式一般为调试时使用㊂还可以通过调用A P I _T h r e a d S e t A f f i n i t y 函数进行绑定设置,该种方式主要用在任务启动自动绑定的场景,A P I 描述如表2所列㊂表2 线程绑核函数说明函数名参数说明A P I _T h r e a d S e t A f f i n i t y (u l I d ,s t S i z e ,p c p u s e t )u l I d :线程I Ds t S i z e :C P U 掩码集内存大小p c pu s e t :C P U 掩码此外,S yl i x O S 还支持通过设置C P U 亲核性排他绑定,实现一个核只运行一个指定的任务㊂该种情况可以实现任务的及时响应以及c a c h e 热度的保持,可通过S h e l l 命令c p u a f f i n i t y 对系统某个核进行排他性绑定设置㊂4 性能对比测试在x 86多核环境下S yl i x O S 和V x W o r k s 做过一系列测试对比,测试条目包括m a l l o c 接口耗时㊁自旋锁接口耗时㊁二进制信号量投递耗时㊁计数信号量投递耗时㊁互斥信号量投递耗时㊁就绪态到运行态耗时㊁延迟态到运行态㊁悬置态到运行态以及通过Q P e r f 进行的Q T 图形相关测试㊂测试结果整体来看,S y l i x O S 性能与V x W o r k s 基本相当,测试环境如表3所列㊂测试对比数据比较多,因篇幅有限,挑选2组操作系统关键数据进行展示,如表4和表5所列㊂表3 测试环境测试环境C P U :I n t e l C o r e I 72655L E C P U @2.20G H z内存:4G D D R 3D D R 3系统版本S yl i x O S (版本1.7.8)V x W o r k s (版本6.8)表4 S yl i x O S 和V x W o r k s 多核测试结果(1)二进制信号量耗时/μs V x W o r k s S yl i x O S 原生接口均值最大最小均值最大最小绑核S e m G i v e 1.471.691.270.331.370.30S e m T a k e 0.881.710.840.410.800.39不绑核S e m G i v e1.411.601.360.502.120.44S e m T a k e0.881.090.850.513.490.44表5 S yl i x O S 和V x W o r k s 多核测试结果(2)悬置ң运行耗时/μs V x W o r k s S y l i x O S 原生接口均值最大最小均值最大最小绑核t a s kS u s p e n d ңt a s k R u n 1.752.371.640.871.580.80不绑核t a s k S u s p e n d ңt a s k R u n1.692.131.553.987.821.62通过上述对比可以看出,在R T O S 核心参数对比中,在信号量投递上多核性能基本和V x W o r k s 相当,在任务切换上多核性能要略差于V x W o r k s ,但通过绑核操作,性能要优于V x W o r k s㊂5 结 语S yl i x O S 以其开放的姿态㊁丰富的功能㊁优秀的性能,已得到广大客户的认可,广泛应用在军工防务㊁电力工控㊁轨道交通等领域,实时性㊁稳定性和通用性均得到进一步验证㊂参考文献[1]塔嫩鲍姆.操作系统设计与实现[M ].陈渝,等译.北京:电子工业出版社,2007.[2]牛建伟,刘禹.嵌入式S yl i x O S 实践开发教程[M ].北京:北京航空航天大学出版社,2017.[3]田泽.嵌入式系统开发与应用[M ].北京:北京航空航天大学出版社,2005.[4]腾艳平.计算机操作系统[M ].哈尔滨:哈尔滨工业大学出版社,2008.李孝成(研发副总),主要研究方向为实时操作系统及边缘计算㊂通信作者:李孝成,l i x i a o c h e n g@a c o i n f o .c o m ㊂(责任编辑:芦潇静 收稿日期:2021-02-08)I m a gi n a t i o n G P U 助赛昉科技打造高性能星光R I S C V A I 单板计算机I m a g i n a t i o n T e c h n o l o gi e s 宣布:业界领先的R I S C V 处理器㊁平台及解决方案提供商赛昉科技有限公司(S t a r F i v e ,简称 赛昉科技 )授权采用了I m a gi n a t i o n 的B 系列图形处理器(G P U )知识产权(I P ),以支持其最新R I S C V 单板计算机(S B C )的开发㊂I -m a g i n a t i o n 的G P U 在设计之初就考虑到能够与所有处理器架构协同工作,本次两家企业的合作充分展现了I m a gi n a t i o n 对开放且发展迅猛的R I S C V 生态的良好支持㊂赛昉科技将在星光人工智能(A I )单板计算机的后续量产版本上加入I m a gi n a t i o n G P U ,以添加强大㊁灵活的图形处理性能,使该单板计算机的功能更加完善㊂星光单板计算机可为业界所追求的高性价比㊁多用途的R I S C V 开发硬件提供十分理想的解决方案㊂星光 是全球首款用于边缘计算的㊁为L i n u x 操作系统量身定制的R I S C V A I 单板计算机,它采用了赛昉科技自主研发的人工智能视觉处理芯片惊鸿7100,其多核R I S C V 处理器运算主频高达1.5G H z ㊂星光不仅配有自研的N N E 和I S P ,还搭载了V D S P 及视频编解码,具备当今台式机的所有可扩展性功能,具有体积小巧㊁价格低廉㊁噪音低等特点㊂凭借L i n u x 与R I S C V 的融合,星光A I 单板计算机可为工业机械㊁数据中心㊁A I ㊁边缘计算等领域的产品和项目开发提供强有力的软硬件支持,缩短项目开发周期,加速产品上市㊂赛昉科技本次选用的I m a g i n a t i o n B X E 432G P U I P ,是I m a g i n a t i o n 最新一代I MG B 系列G P U 中的一款内核,可以在性能㊁尺寸㊁成本等方面为赛昉科技的单板计算机提供充足优势㊂B 系列是I m a gi n a t i o n G P U 产品的又一次重要演进,凭借先进的多核架构,其可提供高达6T F L O P S (每秒万亿次浮点运算)的计算能力,同时相比前几代产品,功耗降低多达30%,面积缩减了25%,带宽需求降低35%,且填充率比竞品I P 内核高2.5倍㊂B 系列G P U 共拥有多达33种不同的配置,为移动设备㊁消费类设备㊁桌面端㊁服务器㊁物联网㊁数字电视(D T V )㊁汽车等多个市场提供了极为广泛的选择㊂赛昉科技C E O 徐滔表示: 我们很高兴与I m a gi n a t i o n 进行合作,双方对R I S C V 生态的坚定支持是合作成功的重要保障㊂I -m a gi n a t i o n 的G P U 拥有出色的P P A (性能㊁功耗㊁面积)特性,可以帮助我们在优化成本的同时提供强大的功能㊂我们期待未来可以和I m a gi n a t i o n 展开更多的战略性合作,利用双方各自的技术和产品优势形成合力,共同打造更加完备的处理器生态,并助推R I S C V 技术持续向前发展㊂。
Windows的系统性能测试工具Windows操作系统自带了一些实用的系统性能测试工具,这些工具可以帮助我们评估和监测系统的性能表现。
本文将介绍几个常用的Windows系统性能测试工具,并说明它们的使用方法和功能特点。
1. 任务管理器(Task Manager)任务管理器是Windows系统的一个基本工具,它可以用于监测和管理系统的各项任务和进程。
在性能选项卡中,任务管理器显示了当前系统的CPU使用率、内存占用、磁盘活动等信息,可以帮助我们实时监测系统的性能表现。
此外,任务管理器还支持对进程的终止和优先级调整,方便我们管理系统资源。
2. 资源监视器(Resource Monitor)资源监视器是一个强大的系统性能监测工具,它提供了更详细和全面的性能数据和图表。
打开资源监视器后,我们可以看到CPU、内存、磁盘和网络等方面的详细数据,并可按进程进行分类查看。
资源监视器还能帮助我们查找系统性能瓶颈和资源占用过高的进程,以便进行相应的优化和调整。
3. 性能监视器(Performance Monitor)性能监视器是Windows系统的高级性能评估工具,它能够记录和分析系统的性能数据,并生成相应的报告。
在性能监视器中,我们可以选择不同的性能计数器来监测各个方面的性能指标,如CPU利用率、内存使用情况、磁盘读写速度等。
通过性能监视器,我们可以深入了解系统的性能状况,并进行性能对比和优化。
4. DirectX诊断工具(DirectX Diagnostic Tool)DirectX诊断工具是一个用于检测和诊断系统DirectX功能的实用工具。
它可以检测显卡的驱动情况、音频设备的功能、DirectX版本等,并提供了详细的硬件信息和性能测试报告。
通过DirectX诊断工具,我们可以判断系统的图形和音频性能是否正常,并进行相应的配置和调整。
5. Windows内存诊断工具(Windows Memory Diagnostic)Windows内存诊断工具是一个专门用于检测和修复系统内存问题的工具。
一.什么是真正的实时操作系统做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN 上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。
所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统?1. 首先说一下实时的定义及要求:参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。
如果未满足系统的时间约束,则认为系统失效。
一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。
请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。
这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。
根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。
本文对四种实时操作系统(RTOS)特性进行分析和比较。
它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。
近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。
1、基本特征概述QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。
它遵循POSIX.1、(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。
它最早开发于1980年,到现在已相当成熟。
LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。
它最早开发于1988年。
RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。
KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出"严格(firm)"实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的"严格的"实时系统。
2、体系结构异同实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。
微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。
但它也有弱点,进程间通信和上下文切换的开销大大增加。
相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。
QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。
所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
一.信创操作系统介绍国内本土操作系统主要以Linux为基础进行二次开发为主,目前国内信创类服务器操作系统主要分为开源社区版和商业版两大类。
开源社区版主要以欧拉OpenEuler、龙蜥OpenAnolins、OpenCloud等,商业版主要以麒麟KylinOS、统信UOS、其他(中科方德Delix、红旗)等为代表,以下表格为其主要发行版本对比:二.信创主流操作系统对比1. 当前国产操作系统发行周期对比2. 各信创操作系统功能对比3. 各信创操作系统性能对比基于Intel x86测试测试主机为浪潮NF5270M4 ,CPU 为Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz 24 核,内存为DDR4-2400 MT/s Samsung 256G ,系统盘为rpm源替换->包替换->内核重引导->重启->验证5)迁移后观测通过监控工具观测主机负载、运行状态等,以对比迁移前后异常。
5. 麒麟、统信OS生态对比6. 影响操作系统的因素分享一下当前主流信创操作系统的特性情况:▪业务连续性统信、麒麟、龙晰、欧拉都具备较为活跃的社区、技术实力,均具备支撑业务系统使用及演进的能力。
▪场景适配度当前麒麟、欧拉在鲲鹏ARM生态支持较优,在多核生态软件方面性能表现好,选型时可以在不同的场景下开展更多针对自身业务场景的测试对比。
▪信创要求现阶段欧拉、麒麟自主可控性更高,但生态尚未成熟,迁移难度较大;统信、龙晰的自主可控稍弱,但迁移更方便,从长远考量,逐渐应过渡至原生国产信创的开源/商业OS。
▪稳定性、安全性、成熟度商业OS公司在安全修复能力、响应支撑成熟度方面要强于开源社区,但整体均具备24小时感知上游CVE,高危漏洞7日修复能力。
商业OS经大规模验证,开源版本验证较少。
▪成本因素开源OS 能够显著降低IT系统成本,推荐非核心业务系统优先选用成熟版本开源系统,如欧拉和龙晰。
分析Technology AnalysisI G I T C W 技术128DIGITCW2020.080 引言在计算机发展史上,出现过许多不同的操作系统。
操作系统种类比较多,很难用单一标准进行统一分类。
按照用户界面的使用环境和功能特征可分为批处理操作系统、分时操作系统,实时操作系统;按照用户应用领域来可划分为桌面操作系统、服务器操作系统、嵌入式操作系统;按照所支持的用户数目可分为单用户操作系统和多用户操作系统;单用户操作系统包括MS DOS ,Windows 95、Windows 98、Windows ME 。
从自Windows 2000之后的Windows 操作系统都是多用户操作系统。
多用户多任务操作系统有UNIX 、Linux 、Mac OS 等操作系统。
根据硬件结构,可分为网络操作系统,如 Netware 、Windows N 、UNIX 、Linux 、Mac OS 网络操作系统;现最为流行的操作系统有Windows 、 Linux 、Mac OS 等。
1 几种操作系统的特点1.1 W indows 操作系统Windows 操作系统于1983年开始由微软公司开发,开发的最初是为用户提供基于MS-DOS 的多任务图形界面,于1985年具有图形用户界面的第一个版本Windows 1.0 问世;于1987年Windows 2.0版发布,这一版本最显著的变化是多窗口接口的形式相互重叠,但是没有引起人们的注意。
直到1990年,Windows 3.0的推出才成为一个重要的里程碑,它决定了Windows 系统在PC 领域的垄断地位,取得了压倒性的商业成功,现今流行的Windows 窗口界面的基本形式也是从Windows3.0开始基本确定的。
Windows 8于2012年10月正式发行,被应用于个人电脑和平板电脑上,广泛适用于移动触控电子设备,如平板电脑、触屏手机等。
如今Windows 10可谓是现在最流行的版本了。
实时操作系统BSP的分析与实现引言近年来,实时操作系统在网络通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,并越来越引起人们的重视. 目前,国内使用的RTOS主要有VxWorks和PSOS,还有Nuclear、QNX、WinCE、嵌入式Linux等.为了方便用户在自己定义的用户板上进行开发,RTOS提供了板级支持包(BSP) ,提供了支持标准硬件板和用户硬件板的机制. 每个BSP提供了一种软件模板,其中既包括设备驱动程序的抽象结构代码(Abstracter Architecture code) 也包括为具体硬件设备所需的底层系统功能代码,不同外设的设备驱动程序代码只与该设备有关,而与该设备所在的硬件板无关.RTOS以源代码形式提供了许多板级支持包以及通用模板、板级支持包是进行开发设计的关键环节,开发人员应当对它有一个清晰的认识和理解.1、实时多任务操作系统(RTOS)实时系统的实现多为微内核体系结构,如图1 所示 .这使得核心小巧而可靠,易于使用ROM固化,并方便的进行模块化扩展.微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来 . 但它也有弱点,进程间通信和上下文切换的开销大大增加.图1 微内核结构通过硬件抽象层,操作系统可以很容易地移植到其它硬件结构体系.当然用户需要根据自己的硬件结构写自己的硬件抽象层代码,这也就是指一般意义上BSP,这也是开发用户个人系统的关键环节.实时多任务操作系统RTOS具有下面特点:RTOS 支持多任务,并能够根据各个任务的轻重缓急设置优先级,合理地在它们之间分配CPU和各种资源的占用时间. 实时性,系统的监测、控制、通信等工作都要求实时性,一旦出现有关情况,CPU能够及时响应,因此,一个实用的RTOS 都应具有完善的中断响应机制,保证中断响应潜伏时间足够短,在规定的时间内完成需要进行的工作.2、WindRiver VxWorks操作系统RTOS VxWorks是美国的Wind river 公司开发的一种高性能的嵌入式实时操作系统. 它是目前在世界上用户数量最大的实时操作系统,具有优越的技术性能、广泛的应用软件支持和可靠的系统稳定性.VxWorks的主要性能特点有:高度可裁剪的微内核结构(microkernel),VxWorks 所需要的存储器空间大约为8KB-488KB(ROM) ,(RAM),具有极好的伸缩性.高效的多任务调度.VxWorks 支持中断驱动的优先级抢占式(preemptive scheduling)调度和时间片轮转调度(roud-robin scheduling) ,具有确定的、快速的上下文切换的能力,具有256个优先级. 快速灵活的任务间通信(intertask communication) 手段. 支持信号灯(semaphores)、消息队列(messagequeues) 、管道(pipe) 、信号(signal)和套接字(socket)等进程间通信和互斥手段. 支持诸如环形缓冲(ring buffer)和链表(link list) 等共享内存技术. VxWorks是第一个集成标准TCP/IP网络功能的实时操作系统.到目前为止,VxWorks 的TCP/IP 协议支持最新的Berkeley网络协议,IP,IGMP,GIDR,TCP,UDP,ARP;BOOTP,DNS,DHCP,TFTP;FTP,Rlogin,Telnet,Rsh. 兼容VxWorks,支持规范以及规范的基本系统调用.包括:进程原语,文件目录,I/O原语,语言服务以及目录管理.另外VxWorks 还遵循实时扩展标准,包括:异步I/O,计数信号量,消息队列,信号,内存管理(页面锁定) ,以及调度控制. 极其丰富的板级支持包,支持多种处理器板(PowerPC,MIPS,ARM,StrongARM,i960,80x86,CodeFile等). 支持MS-DOS,RT-11和RAW等文件系统和网络文件系统NFS. 灵活的启动方法,支持从ROM、本地磁盘以及网络启动.3、RTOS 板级支持包BSP 和PC 的BIOSBSP 通常用于嵌入式领域,主要指在开发嵌入式应用时系统开发商提供的各种驱动支持库. 在嵌入式领域人们对BSP 有各种不同的理解:1) 操作系统的驱动程序. 嵌入式系统提供商的权威,Wind River 公司对BSP 的理解偏向于是OS 的驱动程序(从其BSP的文档中可以看出) ,因为嵌入式系统中的各种设备的确名目繁多,因此将BSP 定位于OS 的驱动的确有一定的道理.2) 驱动程序 . 对于认为BSP 就是驱动程序的人来讲,通常接触的是嵌入式系统提供商提供的某种应用解决方案的应用系统(Total Solutio).在这种开发系统中BSP 完全有理由被认为是所有驱动程序,因为开发人员没有必要自己去开发驱动程序,而只是验证驱动程序在自己的系统中是否正确了事.3) HAL(Hardware Abstract Layer) 对于开发嵌入式OS 的人来讲,倾向于将BSP 看成是对硬件平台的抽象层(HAL)和处理器的驱动程序更恰当.实际上各种理解都只是侧重于某个方面,由于每个嵌入式系统提供商都根据自己的操作系统而提出对BSP 的不同理解,因此在涉及到BSP 的具体涵义时人们往往有一种似是而非的感觉.实际是各种理解都有其道理,但由于出发点不同,对BSP的理解都有失全面甚至有错误的地方,这也是初学者容易混淆的原因.对于进行硬件和软件开发的人员,第三种理解比较合适,后面的分析也是建立在这个基础之上的.这里通过BSP(board support package)和BIOS(basic imput and output system)的对比来说明板级支持包的功能. BSP 说的简单一点,就是一段启动代码,和计算机主板的BIOS 差不多,提供的功能却有较大差别,在通用51 等系列单片机开发的过程中,要有小段程序设置栈指针,软复位,中断屏蔽等等,可以把这段程序称为它的BSP.实时操作系统的BSP 相对复杂一点,但通常也是设置堆栈指针、建立中断向量表、初始化寄存器(控制外围器件如DRAM,EDORAM 条,控制I/O口的寄存器,片选信号等) ,配置地址空间以及系统启动方式.从图2可以看出实时操作系统的BSP 就相当于PC的BIOS. 一般来说,对不同的微处理器板以及不同的RTOS时就应该配置相应的BSP,BSP 可以是已经做好了的,不需要开发人员去关心寄存器设置的细节. 当然根据实际的要求也可以改写BSP 来加入自己的特定功能. BSP 可针对不同的硬件做不同的调整,相应于PC的BIOS,它完成对硬件的初始化工作,执行完后再将执行权交给RTOS.在BSP 中,只需要对与硬件相关的寄存器( 主要是DRAM,SDRAM,片选)及与中断相关的寄存器进行正确配置即可.BSP 程序越简单越好,能放在主程序中初始化的功能尽量不要放在其中,BSP 配置程序只要能够保证系统正常启动即可.大部分RTOS带有针对不同微处理器的BSP 程序,用户只要稍做修改即可移植到自己的开发应用中.4、板级支持包(BSP)和驱动程序(Drivers)设备驱动程序指用于处理、管理硬件控制器(Controller)的代码.设备驱动程序是建立在具体的操作系统之上,如图2,而不是某种类型的处理器(CPU)类型,这点很重要.实际运用中,人们可能选择不同的目标硬件(CPU),如PowerPC,ARM、x86,并且配置不同的操作系统.即使对于同一种类型的目标硬件,不同的操作系统也要编写不同的BSP,对于驱动程序实际上是在操作系统的层次上对不同的设备控制器所写的代码.实时操作系统的驱动程序和PC的相类似,RTOS通常在BSP 定义了一套自己的驱动程序接口,根据这些接口写相应的驱动程序.当然RTOS和硬件较紧密,灵活性较大,开发人员完全可以抛开它提供的接口自己写,这同直接在C代码中调用BIOS提供的底层功能(如BIOS中断)写程序类似.BSP 通常可以认为是基于硬件平台的 .当开发某个平台的、与硬件相关的程序时,往往不得不从设置某个寄存器的某个位开始编程.在嵌入式领域,这种情况更为明显,几乎所有的设备控制和各种协议控制都在同一个嵌入式CPU Core, 中,非常有利于对CPU Core 和设备进行抽象.如果能对CPU Core和设备的各种控制进行抽象,人们在移植OS或者开发驱动程序时就没有必要对CPU进行非常深入的了解,不必要了解某个寄存器的某个位是控制什么的,也没有必要了解怎样初始化某个控制寄存器等等.因此,BSP 是一种能为程序开发人员提供对硬件进行描述性操作的开发支撑库.描述性操作是指在控制硬件时只需知道要完成什么,而不需要知道如何去完成,每个操作都是一些单一的动作.例如:对于设置一个串口的波特率,只需要知道是哪个串口,波特率是多少,而不需要知道要写哪一个寄存器以及如何写等.在利用BSP 编写Driver时,编程人员只需要了解该Driver的初始化顺序以及初始化的内容而不需要了解初始化的具体细节就能完成驱动程序. 可以大大的提高工作效率,并且对于硬件的具体细节设置是在驱动程序中最容易出错的地方,而采用BSP 支撑库则可以大大的减少出错的可能性. 在BSP 支撑库中除了对硬件的描述性操作部分的代码外,还包含了对目标板的初始化部分、中断管理部分以及一些简单的驱动程序程序单元 .这样的BSP可以不用依赖于任何的操作系统和驱动程序,但是可以作为操作系统和驱动程序的开发支撑库,可以非常方便的移植或者开发操作系统与驱动程序.在最好的情况下,操作系统与驱动程序的移植只需要更换相应平台下的BSP 支撑库就完成了移植.5、A RM’s BSP(Vxwork for Arm)Vxwork 的BSP主要功能:系统上电硬件初始化,提供VxWorks访问硬件驱动程序的支持,综合硬件无关和硬件相关的VxWorks软件.BSP不是硬件驱动,对目标环境(target enviroment) 是特定的 .组成部分:源文件(Source file);头文件(include file) 和编译生成文件(make file) ;继承文件(derived file)和二进制驱动模块(binary).开发步骤:1)确定要使用的模板,(Template)bsp 类型,针对目标硬件板进行选择,如Pid7,Pid_t,snds100.2)选择合适的开发仿真工具,目前使用较广泛的有EST的VisionICE和VisionProbe,都支持Jtag标准,可以在线flash Programming.3)确定要开发的生成镜像(image)的类型,rom image还是loadable image,rom image根据功能分为boot image 和VxWorks;根据加载过程为rom image:把代码(code)和数据(data) 拷贝到ram区,然后执行:rom-resdent image; 仅把数据拷贝到ram区,代码在rom执行;根据是否压缩分为压缩型和非压缩型.4)根据目标硬件配置确定系统的配置参数宏(macro), 在,makefile,文件中,这些文件在自己的bsp目录下,通常的情况下开发人员只需要对其中的宏参数进行配置并保持一致性,其他的通用参数由系统缺省完成.5)内核初始化之前的启动过程, 如图3图3 内核初始化之前的启动过程Boot,rom image从rominit romstar() 开始执行,是系统的入口,进行系统最小初始化工作,中断屏蔽,存储器初始化和设置系统堆栈指标.保存启动类型跳到romstar(), 把vxworks image 从rom 拷贝到ram,跳到usrinit()完成操作系统初始化.Loadable image则是有系统的引导程序加载VxWorks image到ram跳到sysinit()执行rominit()的工作,但是不进行出去器初始化工作.romInit()为适合不同的image类型,应当使用PIC(position independent code) 即PC(program counter)相关代码.如#define ROM-OFFSET(x)((x)-_rlmInit ROM_TEXT_ADRS) 地址计算.系统的需要开发人员自定义的宏:LOCAL_MEM_LOCAL_ADRS_RAM 开始地址;LOCAL_MEM_SIZE_RAM 大小;USER_RESERVED_MEM -在ram顶部保留的字节数,冷启动不清零;RAM_HIGH_ADRS - 非驻留rom(non -ROM resident)VxWorks boot images 加载地址;RAM_LOW_ADRS - 非驻留ram VxWorks aplication image 加载地址;ROM_TEXT_ADRS - Boot ROM 入口地址;ROM_BASE_ADRS - ROM 基地址;Usrinit() 完成激活内核所需的最小初始化工作.SysHwinit()把系统硬件一个静态的环境,由kernelinit()来激活VxWorks.6) 配置存储器(memory),中断(interrupt) ,时钟(timer) 对自己的bsp 进行调试、修改、发布.值得注意的是,在一般的情况下,开发人员不需要修改$(windriver)/target/confige/all和comps目录下的文件,只需要修改自己的bspname/目录下的文件,有改变连接规则,可以修改makefile 文件,控制系统的启动过程.结语本文讨论实时操作系统中板级支持包BSP的概念,强调指出BSP是基于不同的处理器类型,各种实时操作系统对不同的处理器提供了不同的板级支持包. 通过BSP,BIOS和Driver对比,分析说明了板级支持包具体的功能作用,即要提供给操作系统一个无关的设备接口,让程序开发人员可以在不熟悉具体硬件的条件下,对硬件的寄存器进行正确的操作和配置.最后结合Arm处理器,给出了编写Vxworks的BSP的要点以及开发流程.。
⼏种嵌⼊式实时操作系统的分析与⽐较VxWorks、µClinux、µC/OS-II和eCos是4种性能优良并被⼴泛应⽤的实时操作系统。
本⽂通过对这4种操作系统的主要性能进⾏分析与⽐较,归纳出它们的选型依据和适⽤领域。
1 4种操作系统的介绍(1)VxWorksVxWorks是美国WindRiver公司的产品,是⽬前嵌⼊式系统领域中应⽤很⼴泛,市场占有率⽐较⾼的嵌⼊式操作系统。
VxWorks实时操作系统由400多个相对独⽴、短⼩精悍的⽬标模块组成,⽤户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接⼝)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的⽤户接⼝,在核⼼⽅⾯甚⾄町以微缩到8 KB。
(2) µC/OS-IIµC/OS-II是在µC-OS的基础上发展起来的,是美国嵌⼊式系统专家Jean J.Labrosse⽤C语⾔编写的⼀个结构⼩巧、抢占式的多任务实时内核。
µC/OS-II 能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执⾏效率⾼、占⽤空间⼩、实时性能优良和可扩展性强等特点。
(3)µClinuxµClinux是⼀种优秀的嵌⼊式Linux版本,其全称为micro-control Linux,从字⾯意思看是指微控制Linux。
同标准的Linux相⽐,µClinux的内核⾮常⼩,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强⼤的⽹络功能、出⾊的⽂件系统⽀持、标准丰富的API,以及TCP/IP⽹络协议等。
因为没有MMU内存管理单元,所以其多任务的实现需要⼀定技巧。
(4)eCoseCos(embedded Configurable operating system),即嵌⼊式可配置操作系统。
几种主流DCS系统对比分析DCS系统是工业自动化中的重要组成部分,不同的系统具有各自的性能特点。
以下是四种不同DCS系统的比较:Yokogawa DCS(CS3000):该系统具有可靠性、实时性和开放性,能够兼容非CENTUM系统部件。
此外,它还具有虚拟测试功能(FCS仿真器)。
需要注意的是,如果需要G3防腐认证,用户需要特别指出。
CENTUMCS3000R3.01:该系统具有系统配置齐全、冗余容错、点对点对等通讯方式等特点。
此外,它还具有双冗余令牌控制总线等功能,最大位号量为十万,最快扫描周期为1秒,趋势图最多可定义2560个参数。
系统保存数据最长维持72小时,操作站为通用PC,并具有安全措施。
Emerson DCS(Delta V):该系统具有系统配置灵活、可靠性高、操作和维护工作量小等特点。
此外,它还具有一体化的模块软件、虚拟测试功能和控制器及卡件全部带有G3防腐认证等特点。
INVENSYS DCS(I/A Series):该系统具有开放性、可靠性和技术先进性等特点。
它的Mesh网络具备高速、多冗余、点对点的网络通讯性能,而且有自己的DCS系统和ESD系统,系统间通讯能力强且可靠顺畅。
需要注意的是,如果需要G3防腐认证,用户需要特别指出。
Honeywell DCS(PKS C300):该系统具有可靠性、实时性和开放性等特点,全双冗余结构,容错以太网技术,强大的可组态功能,控制器及卡件可选G3防腐等级保护模件。
需要注意的是,查阅资料显示该系统带有OPC但不对外开放,如果需要使用OPC协议,用户需要额外提出要求。
综上所述,不同的DCS系统具有各自的性能特点,用户应该根据自己的需求选择最适合自己的系统。
四家系统的共同点包括:广泛应用于传统领域,具备大型系统的应用经验;系统配置齐全且具备冗余容错;具有安全措施以保证系统数据的安全可靠;可通过OPC协议和其它系统及上层管理网无缝集成;都提供24小时内紧急维护;都支持其它通讯协议。
一.什么是真正的实时操作系统做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。
所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统1. 首先说一下实时的定义及要求:参见Donal Gillies 在Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。
如果未满足系统的时间约束,则认为系统失效。
一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。
请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows 在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。
这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。
根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver 开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。
面介绍国外和国内常用的实时操作系统1. 国外著名的实时操作系统国外实时操作系统已经从简单走向成熟,有代表性的产品主要有VxWorks, QNX Palm OS Windows CE等,占据了机顶盒、PDA等的绝大部分市场。
其实,实时操作系统并不是一个新生的事物,从20世纪80 年代起,国际上就有一些IT组织、公司开始进行商用嵌入式系统和专用操作系统的研发。
(1) VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。
VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域内占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导、飞机导航等。
在美国的F-16、"FA-18战斗机,B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用了VxWorks。
它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。
它支持多种处理器,如x86,i960,Sun Sparc,Moto--rola MC68xxx,MIPS RX000,Power PC,ARM,StrongARM等。
大多数的VxW---orksAPI是专有的。
(2) QNXQNX是一个实时的、可扩充的操作系统;它部分遵循POSIX相关标准,如POSIX.1b实时扩展;它提供了一个很小的微内核以及一些可选的配合进程。
其内核仅提供4 种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。
所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧(QNX4. "X大约为12KB),而且运行速度极快。
这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统。
几种嵌入式实时操作系统的分析与比较2008-07-04 20:54VxWorks、μClinux、μC/OS-II和eCos是4种性能优良并被广泛应用的实时操作系统。
本文通过对这4种操作系统的主要性能进行分析与比较,归纳出它们的选型依据和适用领域。
1. 4种操作系统的介绍(1>VxWorksVxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛,市场占有率比较高的嵌入式操作系统。
VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口>规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至町以微缩到8 KB。
(2> μC/OS-IIμC/OS-II是在μC-OS的基础上发展起来的,是美国嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。
μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
(3>μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。
同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP /IP网络协议等。
因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
(4>eCoseCos(embedded Configurable operating system>,即嵌入式可配置操作系统。
把脉四海九天——天脉嵌入式实时操作系统作者:暂无来源:《上海信息化》 2017年第12期文/吕大鹏雷清与Windows、Linux、Android、iOS相同,嵌入式实时操作系统时刻影响着人们生活,它们确保飞机安全地将人们送往世界各地、精准控制工厂中机械臂的生产、全年无休地控制发电厂为整个城市提供电力……与其他操作系统类似,嵌入式实时操作系统管理着运行设备上的处理器、内存、硬盘、网络等硬件资源,并为软件提供服务;与其他操作系统不同,嵌入式实时操作系统要求反应更快、故障率更低、安全性更高。
近年来,国家航空装备中大量使用国外嵌入式实时操作系统产品,然而购买代价不菲、应用受制于人、服务无法保障、安全存在隐患等问题,带给中国航空强烈的痛苦感受。
2002年,由中国航空工业集团公司西安航空计算技术研究所(以下简称“计算所”)发起,由空军总体论证单位需求牵引,计算所自筹资金、组织团队,开展了具有自主知识产权的国产操作系统研制。
从起步时的一无所有到2006年技术突破形成原型产品,从2008年国家独立型号立项到2014年顺利通过国家设计定型审查,计算所操作系统研制团队克服了重重困难,先后突破了强实时调度、时间/空间的分区隔离和健康监控等技术,自主完成了针对嵌入式实时操作系统的需求分析、设计、开发、验证等一系列工作,成功研制出天脉系列嵌入式实时操作系统。
规范严谨的研制过程操作系统作为基础平台软件,起着承上启下的关键作用:对上要完成应用任务的管理、通信和紧急事件处理,对下要能够适配复杂的硬件,还要最大程度地发挥硬件能力,保证整个系统正常运行。
现代软件工程研究表明,软件的质量与软件研制过程的规范化程度直接相关。
为了保证产品质量,在遵循军品关键软件研制要求的基础上,天脉嵌入式实时操作系统研制团队在研制过程中创新性地引入了国际民用航空机载软件适航规范DO-178B,并按照最高级别软件要求,规范管理软件研发的全生命周期。
在实际执行中,对照DO-178B对A级软件所定义的66个目标,研制团队在天脉嵌入式实时操作系统的策划、开发、验证过程中严格遵守,使整个研制过程成为高安全嵌入式软件研制规范的优秀实践案例。
实时操作系统包括硬实时和软实时的区别⼀.什么是真正的实时操作系统做嵌⼊式系统开发有⼀段时间了,做过⽤于⼿机平台的嵌⼊式Linux,也接触过⽤于交换机、媒体⽹关平台的VxWorks,实际应⽤后回过头来看理论,才发现⾃⼰理解的肤浅,也发现CSDN上好多同学们都对实时、嵌⼊式这些概念似懂⾮懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌⼊式产品开发,基本也是只管调⽤Platformteam封装好的API。
所以在此总结⼀下这些概念,加深⾃⼰的理解,同时也给新⼿⼊门,欢迎⼤家拍砖,争取写个连载,本⽂先总结⼀下实时的概念,什么是真正的实时操作系统1. ⾸先说⼀下实时的定义及要求:参见Donal Gillies 在Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产⽣结果的时间。
如果未满⾜系统的时间约束,则认为系统失效。
⼀个实时操作系统⾯对变化的负载(从最⼩到最坏的情况)时必须确定性地保证满⾜时间要求。
请注意,必须要满⾜确定性,⽽不是要求速度⾜够快!例如,如果使⽤⾜够强⼤的CPU,Windows 在CPU空闲时可以提供⾮常短的典型中断响应,但是,当某些后台任务正在运⾏时,有时候响应会变得⾮常漫长,以⾄于某⼀个简单的读取⽂件的任务会长时间⽆响应,甚⾄直接挂死。
这是⼀个基本的问题:并不是Windows不够快或效率不够⾼,⽽是因为它不能提供确定性,所以,Windows不是⼀个实时操作系统。
根据实际应⽤,可以选择采⽤硬实时操作系统或软实时操作系统,硬实时当然⽐软实时好,但是,如果你的公司正在准备开发⼀款商⽤软件,那请你注意了,业界公认⽐较好的VxWorks(WindRiver 开发),会花光你本来就很少的银⼦,⽽软实时的操作系统,如某些实时Linux,⼀般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌⼊式实时Linux。
ERP系统之比较——SAP、Oracle、BAAN、JDE、SSAERP/MRPII系统剖析SAPSAP公司简介R/2和R/3系统是德国SAP公司所提供的MRPII产品。
R/2是用于集中式大型机环境的系统,R/3是用于分布式的客户机/服务器环境的系统。
SAP是国际上著名的标准应用软件公司。
SAP总部设在德国南部的沃尔道夫市,公司成立于1972年,1988年成为德国股票上市公司。
到1995年底,SAP在世界40多个国家和地区设有代表处和独立子公司,具有近5000家用户,成为世界第五大软件供应商。
1995年SAP集团在中国设立了子公司。
R/2和R/3系统特点SAP的一整套程序是针对所有企业的一种数据和应用集成方法,它将业务和技术进步融入了一个综合性的高品位的标准系统,即商品化软件系统。
R/3系统又是一个建立在三维客户机/服务器上的开放的新标准软件。
R/2和R/3系统的共同特点如下:(l)综合完善功能:系统提供的应用功能有:会计、后勤、人力资源管理、办公室和通信等。
它涉及各种管理业务,覆盖了管理信息系统中各种功能。
(2)高度集成模块:系统具有一个高度集成化的结构,表现在它所提供的各种管理业务功能之间都是相互关联的,各模块输入输出相互衔接,数据高度共享,任何数据的修改都将会引起相关数据自动修改。
(3)适应多种行业:系统是一个能够适用于多种行业应用的软件,它是通过标准核心软件与不同行业特点相结合而产生的。
应用领域主要是各种制造业,此外,在零售公司、公共设施、银行、医院、金融和保险也有应用。
(4)开放应用环境系统是一个开放式软件系统,它可以运行在所有主要硬件平台和操作系统之上和不同数据库,有HP-Unix操作系统,IBM的AS/400操作系统,WindowsNT,Oracle数据库,Informix数据库等,以及在Sequent和Compaq计算机上同时运行Unix和WindowsNT的Server的平台。