⑴ 现在大火的嵌入式实时操作系统,你都了解多少
嵌入式实时操作系统强调了什么?
系统最大的特点当然是嵌入。嵌入就意味着它和硬件的联系很强,对硬件的适配和依赖度都是很高的,对于系统移植的难易度也就成了评价嵌入实时系统的重要方面。嵌入式操作系统移植的目的是使嵌入式操作系统能在某个微处理器或微控制器上运行。比如VxWorks是商用操作系统的有很多API函数及相关技术支持,所以移植和二次开发比较容易,但是移植成本较高。嵌入还意味着对于小型的硬件要求,主要是面对实时产生的数据,在数据产生终端进行快速的运算。所以系统极其强调灵敏性和实时性。
另一个特点就是实时。对于实时性的要求,有很多种实现措施。我们一一道来。首先就是分区处理的思想。对于核心的功能划分,使用户信息和系统程序和运行分列在不同的区划里,保证任务的有效有序运转。其次, 任务管理是嵌入式实时操作系统的核心和灵魂,决定了操作系统的实时性能。它通常包含优先级设置、多任务调度机制和时间确定性等部分。 嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的优先级应越高。优先级的设置分为静态优先级和动态优先级两种。静态优先级指的是每个任务在运行前都被赋予一个优先级,而且这个优先级在系统运行期间是不能改变的;动态优先级则是指每个任务的优先级(特别是应用程序的优先级)在系统运行时可以动态地改变。 嵌入式操作系统支持多任务,每个任务都具有优先级。任务调度主要是协调任务对计算机系统资源的争夺使用。对系统资源非常匮乏的嵌入式系统来说,任务调度尤为重要,它直接影响到系统的实时性能。通常,多任务调度机制分为基于优先级抢占式调度和时间片轮转调度。
基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将CPU分配给处于就绪态的优先级最高的任务运行。如果系统发现就绪队列中有比当前运行任务更高的优先级任务,就把当前运行任务置于就绪队列中,调入高优先级任务运行。系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。
时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。
在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。
第三,在运行的执行方式上,VXworks等系统采用进程和线程的执行方式,而市面上其他的系统多采用任务执行方式。
嵌入式实时操作系统函数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。基于此特征,系统完成某个确定任务的时间是可预测的。表1具体列出了4种操作系统的调度机制。
VxWorks具有高效的任务管理功能,它支持多任务,可分配256个优先级,支持优先级抢占式调试和时间片轮转调度,实时性最好。μC/OS-II内核是针对实时系统的要求设计实现的,只支持基于固定优先级抢占式调度;调度方法简单,可以满足较高的实时性要求。μClinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度;仅针对中低档嵌入式CPU特点进行改良,且不支持内核抢占。eCos调度方法丰富,提供了两种基于优先级的调度器(即位图调度器和多级队列调度器),允许用户在进行配置时选择其中一个凋度器,适应性好。
此外,还涉及到任务的中断管理。
中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交互。主要考虑是否支持中断嵌套、中断处理机制、中断延时等。
以VXwoks为例,xWorks操作系统中断管理采用中断处理与普通任务分别在不同栈中处理的中断处理机制,使得中断只会引发一些关键寄存器的存储,而不会导致任务的上下文切换,从而极大地缩短了中断延时。同时,VxWorks的中断处理程序只能在最短时间内通告中断的发生,而将其他的非实时处理尽量放入被引发的中断服务程序中来完成,这也缩短了中断延时。但是凼为中断服务程序不在一个固定的仟务上下文中执行,而目没有任务控制块,所以所有中断服务程序使用相同的中断堆栈。为了能处理最坏情况下的中断嵌套,必须分配足够大的中断堆栈空间。
因商业原因,不对其他新型嵌入式实时操作系统做分析。
·有哪些厉害的MPU实时操作系统?
1、VXworks
VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks上。
VxWorks操作系统有以下部件组成:
多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度)
任务间的同步
进程间通信机制
中断处理
定时器和内存管理机制
总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
2、QNX
QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,目标市场主要是面向嵌入式系统。它可能是最成功的微内核操作系统之一。
QNX成立于1980年,是加拿大一家知名的嵌入式系统开发商。
QNX的应用范围极广,包含了:控制保时捷跑车的音乐和媒体功能、核电站和美国陆军无人驾驶Crusher坦克的控制系统[2],还有RIM公司的BlackBerry PlayBook平板电脑。
3、Rtems
RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操作系统RTOS。
它最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。
⑵ qnx操作系统怎么样,与windows有哪些主要区别
QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1
和POSIX.2
、部分遵循POSIX.1b。最早开发于1980年,到现在已相当成熟。
QNX与windows最大不同:QNX是免费的操作系统,可以在网上下载安装使用。
⑶ QT Creator 创建QNX7.0工程
QNX开发办需要开启SSH功能
包括QNX端 sshd的启动
<1>挂载可读写文件系统到/,并且在该文件系统中同样需要创建/etc/ssh等目录,镜像文件系统时只读的。
<2>配置启动镜像中的ssh_config文件,以及必须路径等。
<3>利用ssh_keygen在QNX中生成所需的key。主要如果/etc不可写,会出现错误。
由于仅仅使用qt creator作为调试环境,因此只编译qtbase模块即可。可
获得qtbase源码,并利用以下,编译得到qnx arm版本的qmake。
编译前需要source sdp7.0下的qnxsdp-env.sh,并将QCC 添加到系统path。编译器配置文件在qtbase/mkspecs/common/qcc-base-qnx-armle-v7.conf文件中
需要配置QNX kid,包括编译器qcc 调试器ntoarmv7_gdb,qnx arm版本的qmake等路径的配置
配置QNX device,主要是ssh端口,用户名,密码等设置,并且test连接通过
如果test失败,是由于检测的对应的程序如kill uname等不在target的默认路径中,而是放在了/proc/boot中,此处需要修改镜像build文件中路径设定。
由于不使用qt库,因此去掉对gui 以及core的调用。
并且添加部署命令:
⑷ qnx操作系统的介绍
QNX是由加拿大QSSL公司(QNX Software System Ltd.)开发的分布式实时操作系统。该操作系统既能运行于以Intel X86、Pentium等CPU为核心硬件环境下,也能运行于以PowerPC、MIPS等CPU为核心的硬件环境。QNX操作系统符合POSIX基本标准和实时标准,使其应用可以方便的进行移植。