当前位置:   article > 正文

QNX实时操作系统_qnx与autosar

qnx与autosar

一个实时操作系统(RTOS)必须是可靠的;它必须是快速和响应的,管理有限的资源和安排任务,使它们按时完成,并确保功能是隔离的,不受其他功能的干扰。

在本节中,你将了解更多关于什么是实时操作系统,以及两种类型的实时操作系统架构的利弊,即单片机和微内核

操作系统的主要职责是管理硬件资源和系统中的活动:调度应用程序,将文件写入磁盘,在网络上发送数据等等。

当操作系统必须同时处理多个事件,并确保系统在可预测的时间范围内对这些事件做出反应时,它被称为实时操作系统(RTOS)。

许多嵌入式系统需要实时行为,由于硬件资源的限制,性能和效率是首要任务。

实时操作系统提供了严格的资源管理和调度,以满足多任务、优先级驱动的抢占式调度和快速上下文切换等应用的需求,这些都是嵌入式实时系统的基本特征。

一个实时操作系统通常具有较小的占地面积,并对性能进行了优化。

然而,每个实时操作系统都必须根据它所支持的硬件和系统所需的功能进行定制。

从管理少量任务的光秃秃的内核配置到管理数百个任务和子系统(包括图形、网络、文件系统、音频等)的全功能RTOS,一个RTOS应该灵活地扩展以满足系统要求和资源。

RTOS架构会影响嵌入式系统的可靠性及其从故障中恢复的能力。有两种RTOS架构:单片式和微内核。

根据定义,单片机的内核在内核空间内运行所有的操作系统组件。例如,一个单片式RTOS包括设备驱动、文件管理、网络和图形堆栈,作为内核空间的一部分。然而,应用程序则在用户空间中运行。尽管将用户应用程序作为内存保护进程运行可以保护单片机内核不受错误用户代码的影响,但文件系统、协议栈或驱动程序中的一个编程错误就可以使系统崩溃。此外,对驱动程序或系统文件的任何改变都需要操作系统的修改和重新编译。

自 1980 年以来,制造商一直依靠 QNX 实时技术为其任务关键型应用提供动力--从医疗仪器和互联网路由器,到车载信息娱乐设备和 911 呼叫中心,再到核监控系统和军事通信,无所不包。无论是小型还是大型,无论是简单还是分布式,这些系统都有一个无与伦比的声誉,那就是一年365天、一天24小时不停地运行。

QNX Neutrino 实时操作系统经受了时间的考验和实践的检验,它是在真正的微内核架构上建立的。在这种系统下,每个驱动程序、应用程序、协议栈和文件系统都在内核之外、受内存保护的用户空间安全运行。几乎所有的组件都可以在不影响其他组件或内核的情况下发生故障并被自动重新启动。没有其他商业实时操作系统能提供如此高水平的故障控制和恢复。

QNX Neutrino 实时操作系统本身是模块化的,它能让你动态地升级模块、引入新功能或部署错误修复程序,而无需花费昂贵的停机时间或系统中断。

人机界面技术变化很快。如果您的平台跟不上,您可能会被过时的、不支持的软件所困。

QNX Neutrino 实时操作系统有一个独特的组合管理器,能从多种技术中创建一个统一的界面。它的通用应用平台能够在新的人机界面技术出现时添加这些技术。这使你可以使用最合适的图形技术,无论是视频、OpenGL ES、HTML5还是Qt5。

QNX Neutrino 实时操作系统按照 POSIX 标准(1003.1-2003 POSIX.1)设计,只需简单地重新编译,就能移植传统的和开源的 UNIX、Linux 和互联网代码。通过标准的应用程序接口,可以重复使用应用程序代码,避免代价高昂的延迟,并缩短其学习曲线--加快开发周期,缩短上市时间。

此外,QNX Neutrino 实时操作系统还预先集成了对各种连接技术、安全和防故障文件系统以及内置高可用性解决方案的开箱即用支持。

QNX Neutrino 实时操作系统具有创新的安全机制,旨在帮助你轻松构建不可攻破的设备。加密文件系统、内存保护页和有限的根权限是该操作系统的核心功能,可用于创建安全可靠的设备。它有自适应分区,在过载条件下保证你的应用程序的系统资源,帮助你建立安全可靠的嵌入式系统,而不影响实时性能或灵活性。

利用 QNX Neutrino 实时操作系统对各种 ARM Cortex A 系列和 x86 平台的支持,在选定的平台上快速启动开发。利用 QNX Neutrino 实时操作系统的资源管理器,简化了定制硬件的驱动程序开发。框架,与传统驱动程序不同,它能在受内存保护的用户空间中运行。

BlackBerry QNX是一家值得信赖的安全操作系统、管理程序、框架和开发工具供应商,并为构建全球最关键的嵌入式系统提供专业支持和服务。该公司的技术在超过1.95亿辆汽车中得到了信任,并被部署在世界各地的嵌入式系统中,涉及多个行业。黑莓QNX成立于1980年,总部设在加拿大渥太华,2010年被黑莓收购。

黑莓QNX软件和开发工具以标准为基础,使企业能够在各产品线和业务部门采用可扩展的软件平台战略。黑莓QNX软件组合,包括我们的安全预认证产品版本,是专门为嵌入式系统设计的,并可扩展到支持从单一用途的设备到高度复杂的混合关键性平台。客户依靠黑莓QNX的支持和专业服务团队,在整个产品开发周期内提供他们所需的专业知识。

数以千计的公司已经部署了QNX的实时操作系统,以确保任务关键型系统的性能、安全和可靠性的理想组合。QNX 技术的核心是 QNX Neutrino® 实时操作系统(RTOS),它是一种功能全面、符合 POSIX 标准的实时操作系统,能在每个注重可靠性的行业(包括汽车、医疗设备、机器人、运输、重型机械和工业嵌入式系统)中实现新一代产品。

主要特点包括:

微内核可靠性--QNX Neutrino 实时操作系统的微内核架构将每个应用程序、驱动程序、协议栈和文件系统都隔离在内核以外的独立地址空间内。这意味着,故障组件不会导致其他组件或内核瘫痪;它能立即重新启动,对系统性能的影响最小。

实时可用性--QNX Neutrino 实时操作系统提供了只有实时操作系统才能提供的确定性。自适应分区等技术能保证关键进程获得按时完成任务所需的周期,同时保持复杂嵌入式系统所需的性能。

全面的分层安全--利用 QNX Neutrino 实时操作系统的分层安全功能和 QNX 安全专家的帮助,可以采取全面的安全方法,准确实施的嵌入式系统所需的安全配置文件。

可扩展性--QNX Neutrino 实时操作系统可在最新一代多核系统芯片(包括 ARMv8 和 x86-64)上扩展,它支持非对称多处理(AMP)和对称多处理(SMP),以及绑定多处理(BMP),这是 QNX 对标准 SMP 处理器亲和力的改进。

板卡支持包(BSP)--由一个广泛的BSP库支持,适用于各种ARMv8、x86-64和旧板卡。

QNX 操作系统得到了经过实践检验的开发工具(QNX 软件开发平台)的支持,并通过功能丰富的中间件(用于 ADAS 的 QNX 平台等)和工程服务得到了扩展。黑莓QNX还提供了符合IEC 61508 SIL 3、ISO 26262 ASIL D和其他功能安全标准(QNX OS for Safety、QNX Hypervisor for Safety)的嵌入式操作系统预认证版本。

QNX Neutrino 实时操作系统是一种高性能、多线程、适用于 SMP 的微内核实时操作系统,具有开放系统的 POSIX 应用程序接口。

QNX Neutrino 实时操作系统是一种高性能、多线程、适用于 SMP 的微内核实时操作系统,具有开放系统的 POSIX 应用程序接口。QNX Neutrino 实时操作系统坚固耐用且可大规模扩展,适用于从小型、资源有限的系统到高端分布式计算环境。全面的 MMU 保护使它能有效地用于关键任务的应用。

可靠的架构-QNX Neutrino 实时操作系统的卓越可靠性是其微内核架构的直接结果。内核只包括一小部分核心服务,包括线程服务、消息传递、互斥、条件变量、信号和调度。内核可以通过动态地插入提供服务的进程来扩展,如文件系统、网络、POSIX消息队列和设备驱动程序。

每个进程都在它自己的内存保护的地址空间中运行。由于内核中导致问题的代码太少,内核错误几乎被消除了。当软件出现故障时,即使是驱动程序和其他关键程序出现故障,基于 QNX Neutrino 的系统也能智能地恢复--无需重启。

嵌入式系统开发人员还能依靠微内核架构的其他增强可靠性的功能,包括支持软件和硬件热交换,以及在网络环境中分布组件的能力。

与拥有专有应用程序接口的实时执行程序和操作系统不同,QNX Neutrino 实时操作系统是根据最新的 POSIX 1003.1 标准和草案(包括实时和线程选项)从头设计的。熟悉 UNIX 或 Linux 的程序员不需要任何培训就能在这种 POSIX 环境中找到家的感觉。

更重要的是,这种内置的 POSIX 兼容性不需要额外的代码就能实现。基于 QNX Neutrino 的系统非常小巧、高效,这对可移植系统至关重要。因此,在不牺牲功能或性能的前提下,可以通过减少系统核心的代码来提高整体性能和降低内存需求。

QNX实时操作系统一个实时操作系统(RTOS)必须是可靠的;它必须是快速和响应的,管理有限的资源和安排任务,使它们按时完成,并https://mp.weixin.qq.com/s/N1E9UBrhmYz7mKa2u4n_Rw

讲讲以下几个问题:

  1. 什么是QNX

  2. QNX与目前的AUTOSAR RTAOS

  3. 进程与线程(重点)

    1.什么是QNX

   笔者从百度百科上copy了一份简短的介绍:QNX操作系统是由加拿大QSSL公司(QNX Software System Ltd.)开发的分布式实时操作系统。该操作系统既能运行于以Intel X86、Pentium等CPU为核心硬件环境下,也能运行于以PowerPC、MIPS等CPU为核心的硬件环境。QNX操作系统符合POSIX基本标准和实时标准,使其应用可以方便的进行移植。

   对于笔者来说之前看到这些关键字就头大,于是为了不让大家头大,我把加粗的关键字一一解释一遍:

分布式:简单理解就是假设在一个局域网中的计算机,大家都装了QNX,那么运行在某台机子上的软件(进程)可以跟其他机子上的软件进行通信(QNX的通信机制使得这种通信跟本机进程通信一样简单),并且使用其他计算机上的硬件资源。这样对于一些大型的项目,如果本地的计算资源不够,那么就可以将一些运算放到其他机子上去跑,廉价的机子一起组成一个超级计算机。

实时:实时性有两个方面,第一在规定时间完成指定功能,第二处理外部异步事件的能力(处理中断的能力)。

POSIX:写内核的一个标准,比如说我要建立一个线程,我写内核的时候用了函数sky_create_thread(),我老大写的话可能是Lei_create_thread(),我老大的老大可能写成Jian_create_thread().没有规矩写出来的东西就乱七八糟的,POSIX就是定义这些标准的。QNX在满足这些标准的同时还加了一些自己的东西。所以综合起来是它还是满足POSIX标准的。码字太难,图片来凑:

2.QNX与目前的AUTOSAR RTAOS

QNX和RTAOS的差别,对于笔者来说最直接的区别就是,一个是加拿大的黑莓公司的,一个是ETAS的(查了下ETAS,貌似是博世的一个子公司)。其他区别的话,还记得笔者在第一文中的写的一段关于MMU的黑体吗?相比于RTAOS,由于MMU的使用,QNX更凸显进程和线程的概念,而RTAOS,软件直接运行在内存上(也可以说LMA和VMA是相同的,虚拟内存地址和加载内存地址),没有MMU,所以还是主要凸显Task的概念。大家现在简单理解就将RTAOS的task理解为QNX中的线程吧。比如rtaos下cpu0 5ms的task,就简单的理解为QNX下一个5ms运行一次的线程。(目前笔者觉得严格意义上这样理解不合理,但是又觉得他们有很多共同之处

3.进程与线程

对于进程核线程,老鸟不以为然,“草鸟”一脸懵逼。笔者懵逼状态百度了以下得到了以下两个答案:

进程:操作系统进行资源分配的基本单位。

线程:操作系统进行调度的基本单位。

网上找不到的答案,那就在看本教材来理解下:

我们先摒弃目前我们用hex刷到ECU,然后在上电运行的概念。想象下我们在windows下,在D盘存了个exe程序,双击以下它就运行起来了。但是这个exe文件存在了D盘,CPU不可能直接到D盘这个exe文件去一个个取指令执行吧?CPU肯定是直接跟内存打交道的,跟硬盘打交道是外设驱动的事情。所以整个执行过程简单理解下就是:

exe加载到内存,CPU从内存取exe里面的指令,然后执行。那么执行这个exe就需要分配内存等资源的对吧(分配的是虚拟内存,不是物理内存,虚拟内存到物理内存的映射由MMU实现)那么第一句话就解释了,分配这些运行所需要的资源是以进程为单位分配的目前笔者对于进程的理解就是一个存在硬盘上的可执行程序(当然这个可执行程序内还可能建立子进程,这些子进程也需要分配运行资源,大家对这个理解先持保留态度,笔者目前还没有找到更好的理解进程形象生动的例子)

从上面可以看出来进程用来分配资源,那么当一个进程切换到另一个进程运行的时候,操作系统内部关于这些进程管理(资源)有关的变量是不是都得切换?这种进程的上下文切换太庞大,耗时也太多,于是线程就来了。线程就是为了解决这个庞大的上下文切换,在进程中建立很多线程来执行。进程分配的资源线程可以共享,线程切换的时候,切换的只是线程相关的变量,这样速度和切换的时候操作系统占用的CPU资源就减少了。所以第二个问题也就解释清楚了。线程是操作系统调度的基本单位

单进程单线程的写法:

  1. Int main(intargc, char* argv[])
  2. {
  3. for( i=0, i<400, i++)
  4. {
  5. calculate();
  6. }
  7. }

假设硬件上是4核系统,那么上面这个代码就只用了一个核,计算出来的结果耗时太多,可能系统最终计算出来我最帅,但是计算了这么长时间怎么能保证在这个时间段我老大和老大的老大没超过我?

来个实时性强的,单进程多线程写法:

这样写建立四个线程,建立之后由操作系统去分配硬件资源,这样计算出来耗时肯定比第一种少,那么在这么短的时间内我老大和老大的老大想超过我的帅还是有点点难的。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号