天脉2嵌入式实时操作系统入门培训教程目录2航空软件开发中心核心操作系统和分区调度3分区操作系统和进程调度4分区间通信5健康监控6ARINC653标准1天脉2操作系统概述2IO分区7应用移植8ARINC653标准(一)ARINC653标准是什么?ARINCSpecification653,AvionicsApplicationSoftwareStandardInterface,Supplement2.ARINC653是一个用于现代飞机综合化航电系统(IMA)的应用执行标准。3联合方式航电综合化航电系统(IMA)航空数据计算机飞行管理系统航空数据计算机飞行管理系统具有分区功能的操作系统ARINC429ARINC653标准(二)4联合方式航电飞行控制系统飞行管理系统惯性导航系统显示系统导航计算机任务计算机发动机控制系统发动机监控系统火控系统武器控制系统存储管理系统目标计算机雷达系统传感器系统前视红外雷达ARINC653标准(三)5综合化航电系统雷达系统传感器系统前视红外雷达武器控制系统存储管理系统显示系统发动机控制系统发动机监控系统火控系统飞行控制系统飞行管理系统惯性导航系统ARINC653标准(四)6目的:解决由于综合化、模块化带来的故障隔离问题。定义:航电计算机操作系统与应用的通用接口;作用:标准服务接口,包括:控制调度、通信和获得内部处理单元的信息等;目标:应用软件可独立开发,运行在同一硬件平台上。ARINC653标准(五)分为4个部分:PART1-RequiredServices:基本服务PART2-ExtendedServices:扩展服务PART3-ConfirmityTestSpecification:符合性测试规范PART4-SubsetServices:受限制的服务子集。ARINC653标准(六)PART1提供的标准服务接口:分区管理(2个)进程管理(14个)时间管理(5个)存储管理分区内通信(23个)分区间通信(10个)健康监控(4个)目录9航空软件开发中心核心操作系统和分区调度3分区操作系统和进程调度4分区间通信5健康监控6ARINC653标准1天脉2操作系统概述2IO分区7应用移植8ACoreOS653基本描述信息描述名称天脉2机载嵌入式实时操作系统代号ACoreOS653主要功能支持分区管理和调度、分区间通信、健康监控管理、进程管理、时间管理等功能.开发语言C语言/汇编开发平台LambdaAE运行平台支持机载常用的Intel80486及以上系列单核处理器和PowerPC6xx、7xx、74xx、85xx单核处理器为目标机代码规模20余万行软件版本V1.0.0重要度等级关键10ACoreOS653操作系统特点11技术特征强实时性中断可嵌套,响应快速APPS实现分区可抢占分区内进程优先级抢占分区按时间表调度Work任务预防阻塞可靠性基于MMU的空间隔离可预防故障蔓延提供健康监控机制提供错误处理动作强化鲁棒性设计安全性按DO-178BA级要求开发编码符合GJB5369-2005开展FTA和FMEA分析确定性静态空间配置分配分区调度时间可配置分区间通信可配置故障处理可配置系统运行资源可配置充分验证基于需求的测试失效场景测试开展MC/DC测试典型机载设备地面试验验证和试飞确认适应性支持机载常用处理器三层栈支持可升级支持机载常用功能组件支持系统、分区级和进程级三级调试可裁剪、可定制ACoreOS653体系结构12模块支持层核心操作系统(CoreOS)可配置组件文件系统运行时库BIT管理IMA硬件平台分区操作系统(PartitionOS)分区操作系统(PartitionOS)分区操作系统(PartitionOS)分区操作系统(VthreadOS)分区操作系统(PosixOS)分区应用1分区应用2分区应用3分区应用4分区应用5分区1分区2分区3分区4分区5调度表管理健康监控分区时/空管理配置数据虚中断管理分区间通信进程管理通信管理时间管理虚中断管理基本概念(一)分区软件运行的逻辑单元,包括:软件运行所需的空间资源、时间资源以及分区本身所需具备的资源;分区包括空间分区时间分区13航空软件开发中心基本概念(二)进程分区中程序单元周期、非周期分区资源应用分区中运行的软件分区-房间、应用-人虚中断紧急事件通知机制14基本概念(三)配置数据配置整个系统的属性调度表多个分区运行时序、运行时间、频率系统调用应用分区请求核心操作系统提供服务的机制共享数据区分区之间确定性存储器共享的机制15航空软件开发中心功能组成16航空软件开发中心应用层(AL)应用分区BIT管理文件系统模块支持层(MSL)IM管理ASPBIT测试模块支持层与核心操作系统接口C运行时库系统级调试代理分区操作系统应用分区操作系统与应用软件接口可配置组件操作系统层(OSL)应用分区应用进程级健康监控任务管理任务间通信管理时间管理设备管理定时器管理分区时空管理分区间通信管理存储管理核心操作系统分区级调试代理扩展管理中断/异常管理分区内日志信息输出分区内错误号管理分区管理分区间通信服务共享数据区调度表管理服务C++运行时库支持系统调用虚中断处理分区内异常管理分区内体系结构管理分区操作系统初始化看门狗管理MSL故障处理任务级通信代理系统级通信代理核心操作系统初始化分区时空管理服务进程管理分区存储管理分区时间管理虚中断管理分区管理分区内通信管理健康监控配置数据管理调度表管理错误号管理系统信息获取系统调用扩展日志信息输出信息结构管理模块支持层CPU体系结构支持包BIT测试映像管理系统级通信代理系统级调试代理模块支持层故障处理17航空软件开发中心核心操作系统运行在系统态主要实现分区的管理和调度分区间通信系统的故障监控系统内资源管理设备管理中断/异常管理18航空软件开发中心分区操作系统运行在用户态驻留于每个分区主要实现分区内进程管理和调度分区内资源管理19航空软件开发中心可配置组件C运行时库C++运行时库BIT管理文件系统分区级调试代理任务级通信代理20航空软件开发中心目录21航空软件开发中心核心操作系统和分区调度3分区操作系统和进程调度4分区间通信5健康监控6ARINC653标准1天脉2操作系统概述2IO分区7应用移植8核心操作系统功能(一)提供单个CPU目标平台的资源管理和分区时空管理将应用隔离到不同的分区系统所有地址空间全部在配置时确定分区管理和创建分区创建为内部接口(基于确定性和安全性)根据配置表为每一个分区分配执行时间实现分区的轮转调度22航空软件开发中心管理分区间通信为分区操作系统提供系统调用服务模块级/分区级健康监控配置记录的加载和存储共享数据区管理所有共享的资源中断/异常系统时间内存I/O服务23航空软件开发中心核心操作系统功能(二)核心操作系统-存储器保护(一)使用存储器MMU单元逻辑地址和物理地址的转换空间访问权限的定义创建多个MMU存储器上下文(核心操作系统上下文空间、每个分区独立的上下文空间)分区之间的隔离保护每个分区的逻辑地址空间相同(可配置)通过分区独立的上下文空间映射到不同的物理地址分区和核心操作系统的隔离保护核心操作系统上下文空间系统态可访问24航空软件开发中心核心操作系统-存储器保护(二)使用存储器MMU单元完成其他功能向量表的保护核心操作系统的任务栈保护核心操作系统的中断栈保护分区操作系统的进程栈保护分区之间共享数据区的访问权限设置25航空软件开发中心核心操作系统-任务调度任务功能分区/模块级健康监控驻留于核心操作系统的代理功能分区操作系统其他核心操作系统功能和用户自定义功能任务和分区的关系任务跟随分区调度任务跟随核心操作系统调度指定任务执行所占用的时间窗口26航空软件开发中心核心操作系统-分区状态定义冷启动态热启动态空闲态正常态27航空软件开发中心分区状态转换图核心操作系统-分区重启动分区重启动的分类冷启动以COLD_START为参数调用SET_PARTITION_MODE热启动以WARM_START为参数调用SET_PARTITION_MODE冷/热启动的区别冷启动将重新复制分区的代码段,重新复制分区及共享库的数据段、只读数据段、永久数据段,重新初始化分区及共享库的BSS段、永久BSS段热启动只复制分区及共享库的数据段,重新初始化分区及共享库的BSS段28航空软件开发中心核心操作系统-分区调度(一)29调度策略时间调度表(XML文件配置)可定义256个调度表通过程序完成调度表的切换最小时间窗口是100微秒时间窗口和系统时钟TICK的关系(向上取整)分区没有优先级核心OS中与分区关联的任务在本分区的时间窗口内执行核心操作系统-分区调度(二)在一个主时间框架内,可以对分区进行多次调度30航空软件开发中心Partition1Partition2Partition3Partition1Partition2Partition1Partition2Duration1Duration2Activation1Activation2MajorTimeFrameSPARE核心操作系统-分区调度(三)多调度表缺省调度表多调度表切换下一主时间框下一时间窗口下一时钟tick调度表切换动作冷启动热启动挂起忽略31核心操作系统-虚中断(一)分区响应核心操作系统紧急事件由核心操作系统向指定分区发送8种虚中断类型VT_EVENT_RELEASE_POINT(周期进程释放点)VT_EVENT_WARM_RESTART(热启动)VT_EVENT_USER(用户扩展)VT_EVENT_CLOCK_TICK(时钟)VT_EVENT_SC_COMPLETE(阻塞性系统调用)VT_EVENT_UC_RAPHSODY(RHAPSODY代理)VT_EVENT_DEBUG(其他事件,用于操作系统扩展)VT_EVENT_EXTEND32航空软件开发中心核心操作系统-虚中断(二)响应虚中断时机响应方式API接口虚中断注册STATUSvIntEventHandlerRegister(VT_EVENT_HANDLERhandler)33航空软件开发中心核心操作系统-系统调用(一)分区操作系统和应用软件(用户态)可通过系统调用对核心操作系统(系统态)进行访问;为分区操作系统提供统一的系统调用入口访问核心操作系统为应用软件提供专用的系统调用服务访问核心操作系统系统调用由核心操作系统进行分类、分派。34航空软件开发中心核心操作系统-系统调用(二)系统调用的划分阻塞性系统调用非阻塞性系统调用提供系统调用扩展能力35航空软件开发中心核心操作系统-共享数据区共享数据区共享内存区需要核心操作系统为其分配物理地址空间共享IO需要分区及核心操作系统共同访问的IO空间36航空软件开发中心目录37航空软件开发中心核心操作系统和分区调度3分区操作系统和进程调度4分区间通信5健康监控6ARINC653标准1天脉2操作系统概述2IO分区7应用移植8分区操作系统(一)分区操作系统以共享库方式存在代码段为所有分区共有每个分区有自己的数据拷贝运行在用户态每个分区都存在一个分区操作系统应用程序可以通过系统调用,请求核心操作系统服务38航空软件开发中心分区操作系统(二)功能进程管理和调度(优先级抢占调度)系统对象管理(信号量,缓冲,事件等)分区内堆管理(malloc)(可以通过配置禁止或者使能)运行时库(C库,数学库,标准输入输出库,APEX,VThreads)软看门狗定时器进程级健康监控39航空软件开发中心分区操作系统(三)提供支持APEX接口的分区操作系统分区操作系统使用的所有空间分配均在应用分区的空间内分配所有对