嵌入式实时操作系统(embedded real-time operation system,rtos)。
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
1)多任务;
2)有线程优先级
3)多种中断级别。
在工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。
采用嵌入式实时操作系统(简称rtos)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。
首先,嵌入式实时操作系统提高了系统的可靠性。
其次,提高了开发效率,缩短了开发周期。
实时操作系统的优缺点 :
在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
但是,使用嵌入式实时操作系统还需要额外的 rom/ram 开销, 2~5% 的 cpu 额外负荷,以及内核的费用。
实时系统与非实时系统的根本区别在于:实时系统具有与外部环境及时交互作用的能力。也就是说实时系统从外部获取信息以及系统得出结论要在很短的限制时间内完成。
它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等。
实时操作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可**性(predictability)。可**性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括cpu、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。
与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现。
分时操作系统的基本设计原则是:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。
uc/os-ii是一个简洁、易用的基于优先级的嵌入式抢占式多任务实时内核。
uc/os ii(micro control operation system two)是一个可以基于rom运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(rtos)。
uc/os ii最大程度上使用ansi c语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种cpu(包括dsp)。
主要特点有公开源**,**结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。
采用基于arm9的s3c2410嵌入式微处理,可以使系统具备高性能的运算能力的同时便于与各种外设连接扩展,简化了硬件设计,维持小型化的同时降低了系统成本。uc/os ii作为一个源**公开的操作系统,在具体应用中稳定可靠,并且支持uiptcp/ip协议栈、ucgui等,可扩展性强,功能强大。本系统采arm9+uc/os ii开发设计,具有精度高、运行稳定、实时性好、抗干扰能力强、性价比高的特点,可以在各种工业场合中广泛应用,达到了设计的初衷 μc/os-ii作为一个嵌入式实时操作系统,自2024年以来,因其源**的完全公开和优越性能,已为众多的爱好者和开发人员所了解并得到了广泛应用。
具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
公开源**:
实时性强。uc/os-ii主要用于小cpu,vxworks用于高性能cpu,低端的cpu虽然可以裁减使用,但已经没有意义了,就等于拿大炮打蚊子。
1、在统计趋势上,uc/os是否会越来越广泛?
2、据说开发uc/os的公司micrium是个小公司,该公司的商业模式是否能确保其一直活下去并发展起来?
3、在工业控制方面,uc/os对比vxworks有什么优缺点?
4、uc/os是否有类似linux的开源社区?
5、总体开发维护支持成本,uc是否相对vxworks有优势?
的kernel和其它功能模块(fs,tcpip)的集成,是否简单方便,对性能是否有影响?
的获取是否容易?
1.在小芯片使用uc/os-ii肯定是一个趋势;
是个小公司,肯定能够活下去,因为购买版权的公司会越来越多,关键是便宜;
当然优势更多,请咨询原厂更准确,应用的领域更广泛,很多高可信项目都使用了,但需要付更多银子;
北航出版社有图书带光盘源**,用于商业需要付费购买;
5.差不多!其前提是全购买正版,当然vxworks还是要强一些,而对于我们公司来说差不多;
6.简约不简洁;
7.自己搞定。
uc/ os-ii的源**可以免费获得, 只对商业应用收取少量许可证费, 可以大大降低开发成本。同时, 由于源码公开, 开发者遇到问题时可方便的通过工 n t e r n e t进行交流, 获得广泛的技术支持。但与商业实时操作系统相比, 在开发套件和技术支持方面还比较欠缺, 软件包的功能还不是特别强大, 有些驱动程序需要用户自己编写。
优先级设置。
嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的优先级应越高。
多任务调度机制。
基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将cpu分配给处于就绪态的优先级最高的任务运行。
时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用cpu,以防止同优先级的某一任务长时间独占cpu。
在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。
时间的可确定性。
c/os-ii内核是针对实时系统的要求设计实现的,只支持基于固定优先级抢占式调度;调度方法简单,可以满足较高的实时性要求。
任务及中断间的同步与通信机制。
具有灵话的任务间同步与通信机制,都可以通过信号量、消息队列来实现同步与通信。
内存管理。c/os-ii把连续的大块内存按分区来管理,每个分区中都包含整数个大小相同的内存块,但不同分区之间内存的太小可以不同。用户动态分配内存时,只须选择一个适当的分区,按块来分配内存,释放时将该块放回到以前所属的分区,这样就消除了因多次动态分配和释放内存所引起的碎片问题。
clinux的中断管理。
μclinux操作系统将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。
因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。
文件系统。c/os-ii是面向中小型嵌入式系统的,即使包含全部功能,编译后内核也不到10 kb,所以系统本身并没有提供对文件系统的支持。但是μc/os-ii具有良好的扩展性能,如果需要也可自行加入文件系统的内容。
μclinux继承了linux完善的文件系统性能,它支持romfs、nfs、ext2、ms-dos、jffs等文件系统。
对硬件的支持。
c/os-ii支持从8位到32位的cpu,由于本身内核就很小,经过裁剪后的**最小可以分别为2 kb和10 kb,所需的最小数据ram空间分别为4 kb和10 kb。总的来说系统对硬件的要求比较低,比较经济。
系统移植。c/os-ii的移植相对比较简单,只需要修改与处理器相关的**就可以了。
结论。c/os-ii是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,适合于广大的嵌入式系统开发人员和爱好者入门学习,以及高校教学和科研。μc/osii很适合开发那些对系统要求不是很苛刻,且ram和rom有限的各种小型嵌入式系统设备。
(1)基本概念。
**临界段:指处理时不可分割的**。一旦这部分**开始执行则不允许中断打入;
资源:任何为任务所占用的实体;
共享资源:可以被一个以上任务使用的资源;
任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套cpu寄存器和自己的栈空间。
典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
任务切换:将正在运行任务的当前状态(cpu寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入cpu的寄存器,并开始下一个任务的运行;
内核:负责管理各个任务,为每个任务分配cpu时间,并负责任务之间通讯。分为不可剥夺型内核于可剥夺型内核;
调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;
(2)关于优先级的问题。
任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;
优先级反**优先级反转问题是实时系统**现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。
解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。
(3)互斥。
虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(tas),禁止做任务切换,利用信号量。
因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。中断响应时间通常被定义为:
中断响应时间=中断延迟时间+保存cpu状态的时间+该内核的isr进入函数的执行时间。
中断延迟时间=max(关中断的最长时间,最长指令时间) +开始执行isr的第一条指令的时间。
Nucleus嵌入式实时操作系统
一 mentor graphics esd公司简介。二 nucleus操作系统的特点。三 源 操作系统的优势。四 nucleus操作系统开发环境的配置。五 nucleus的网络浏览器 webbrowse 介绍。六 nucleus操作系统的应用领域及在国内外的用户。七 nucleus操作系统的成功案例...
嵌入式实时操作系统复习
任务就绪组是 为了查找高级优先级的任务与正在运行任务的优先级进行比较,以确定是否进行切换。typedef struct os event int8u oseventtype事件控制块的类型 void oseventptr指向下一个ecb或消息队列的指针 int16u oseventcnt 信号量计数...
嵌入式实时操作系统复习
a.计算机操作系统的作用和功能是什么?计算机操作系统为应用程序提供了一个界面友好,性能稳定 安全,效率高,操作方便的虚拟计算机。它的主要功能有 1 处理器的管理。2 存储的管理。3 设备的管理。4 文件的管理。5 网络和通信管理。6 提供用户接口。b什么是实时操作系统?它应满足那三个条件?试列举几个...