天脉2(ACoreOS653)操作系统学习01
天脉2(ACoreOS653)操作系统学习01
由于我的毕业设计涉及相关嵌入式操作系统,故最近学了学天脉2操作系统。
一、ARINC653标准
1.ARINC653标准是什么?
ARINC 653 : ARINC公司的600系列标准的一部分,全名“ Avionics Application Software Standard Interface”。是为满足综合模块化航电系统(IMA)要求,基于计算机资源时空分区的编程接口标准。
发展:在传统的嵌入式实时操作系统中,内核和应用都运行在同一特权级,应用程序可以无限制的访问整个系统地址空间。因此在某些情况下,应用的潜在危险动作会影响其他应用和内核的正常运行,甚至导致系统崩溃或者误操作。为了满足航空电子对高可靠性、高可用性以及高服务性的要求, 1997年1月ARINC发布了ARINC653(航空电子应用软件标准接口),并于2003年7月发布ARINC653 Supplement 1,对区间管理、区间通信及健康监测部分进行了补充说明,用以规范航空电子设备和系统的开发。 分区(Partitioning)是ARINC653中一个核心概念。
目的:解决由于综合化、模块化带来的故障隔离问题。
定义:航电计算机操作系统与应用的通用接口;
作用:标准服务接口,包括:控制调度、通信和获得内部处理单元的信息等;
目标:应用软件可独立开发,运行在同一硬件平台上。
特征:采用ARINC653标准的操作系统设计原理将传统操作系统分为两级,一个是CoreOS,任务是区间化以及区间的管理和调度,CoreOS的上层就是POS,即分区操作系统,在POS的上层才是应用程序的执行。
2.ARINC653体系结构


从用户角度观察的协议层次划分:
核心模块(core module):一个至少包含了处理器资源和存储器资源的模块。该模块支持对其内存空间、处理时间和I/O等资源进行限制和隔离,以分成多个时间和空间上相互隔离的子系统。
核心操作系统(core O/S):管理核心模块、分区、APEX接口的操作系统。
分区(partition):包括代码和数据的程序,它可以被装载到核心模块中的一个独立的地址空间(核心模块的子系统)。运行在核心模块上一个分区由一个或多个并发执行的进程组成,分区内所有进程共享分区所占有的子系统资源。
端口(port):分区定义的资源,用于在指定的通道上发送或接收消息。端口的属性规定了它对消息传输的控制以及所传输消息的特性。
通道(channel):分区通信的一个途径,它由一组逻辑上相互连接的端口组成。
APEX服务(service):APEX<APplication EXecutive>定义的每个系统调用功能称为一个“服务”,标准的服务描述中只确定数据类型名称、服务名称、参数名称和参数的顺序,而忽略过程的实现。
3.ARINC653标准
分为4个部分:
PART 1-Required Services:基本服务(重点)
PART 2-Extended Services:扩展服务
PART 3-Confirmity Test Specification:符合性测试规范
PART 4-Subset Services:受限制的服务子集。
PART 1提供的标准服务接口:
分区管理:对运行在核心模块上的多个应用软件按功能可划分为多个分区,一个分区由一个或多个并发执行的进程组成,分区内所有进程共享分区所占有的系统资源。操作系统对分区所占用的处理时间、内存和其它资源拥有控制权,从而使得核心模块中各分区相互独立。
分区管理保证了同时运行的多个不同类型的应用软件集合在时间上和空间上互不影响。
进程管理:每个分区由一个或多个进程组成,进程管理主要负责分区内进程的创建、调度和删除等工作。进程分为按固定频率执行的周期进程和由事件触发的非周期进程两类。
时间管理:核心模块内分区的时间管理中的时间是唯一的,所有进程、分区、通信的时间值或者时间性能都与这个唯一的时间有关,与分区的执行与否无关。进程启动时,它的截止时间被置为当前时间加上时间量。操作系统时间管理为分区调度提供时间片、持续时间、周期;为进程调度提供时间量;为分区间和分区内通信提供超时、刷新率。
在分区窗口之外发生的超时(延时或截止时间),在下一个分区窗口开始时继续起作用。
存储管理:核心模块内,分区及与它相关的存储空间分配在系统配置(ARINC 653 Configuration files)时定义。
分区内通信:分区内通信指同一分区内进程之间的通信。
ARINC 653定义的分区内进程通信机制,包括:缓存队列(Buffers-Queue)、黑板(Blackboards)、信号量(Semaphores)和事件(Events)。其中缓存队列和黑板用于进程间通信,信号量和事件用于进程间同步与互斥。
缓存队列允许其中的消息以队列形式存储,消息不允许覆盖;
黑板在任何时刻最多只保留一个消息,消息允许覆盖。
信号量提供对资源的受控访问;
事件通过通知等待进程某种条件的发生来支持进程间同步控制。
分区间通信:分区间通信是指在同一核心模块或不同核心模块上运行分区之间的通信。
分区间通信可分为四类:
a) 同一核心模块内分区间的通信;
b) 同一机箱内不同核心模块上的分区间的通信;
c) 不同机箱的分区间的通信;
d) 航空电子系统与其它设备之间的通信。
健康监控:用于监视核心处理模块硬件、应用软件和操作系统的状态,当发现故障时,记录故障并进行故障隔离,防止故障蔓延,同时按故障级别(模块级、分区级和进程级)进行必要的恢复。
二、ARINC653与天脉2(ACoreOS653)
1.天脉2(ACoreOS653)基本描述

2.体系结构对比
天脉2(ACoreOS653)体系结构:

ARINC653体系结构:


可以看出天脉2(ACoreOS653)是遵循ARINC653标准而构建的嵌入式实时操作系统。
如有侵权,告知必删。
天脉2(ACoreOS653)操作系统学习01的更多相关文章
- 天脉2(ACoreOS653)操作系统学习02
天脉2(ACoreOS653)操作系统学习02 一.分区内通信方法 分区内通信指同一分区内进程之间的通信.ARINC 653定义的分区内进程通信机制,包括:缓存队列(Buffers-Queue).黑板 ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- 操作系统学习笔记(五)--CPU调度
由于第四章线程的介绍没有上传视频,故之后看书来补. 最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助.同时盼望大家能对文章评论,大家一起多多交 ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- Java学习01
Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...
- ThinkPhp学习01
原文:ThinkPhp学习01 一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板 ...
- Linux操作系统学习_操作系统是如何工作的
实验五:Linux操作系统是如何工作的? 学号:SA1****369 操作系统工作的基础:存储程序计算机.堆栈(函数调用堆栈)机制和中断机制 首先要整明白的一个问题是什么是存储程序计算机?其实存储程序 ...
- 【iScroll源码学习01】准备阶段 - 叶小钗
[iScroll源码学习01]准备阶段 - 叶小钗 时间 2013-12-29 18:41:00 博客园-原创精华区 原文 http://www.cnblogs.com/yexiaochai/p/3 ...
随机推荐
- 【HMS Core 6.0全球上线】Network Kit全链路网络加速技术,应用无惧网络拥塞
HMS Core 6.0已于7月15日全球上线,本次版本向广大开发者开放了众多全新能力与技术.其中HMS Core Network Kit开放了全链路网络加速技术,助力开发者为用户提供低时延的畅快网络 ...
- 你的 JVM 基础“大厦”稳健吗?
[从 1 开始学 JVM 系列] JVM 对于每位 Java 语言编程者来说无疑是"重中之重",尽管我们每天都在与它打交道,却很少来审视它.了解它,慢慢地,它成为了我们" ...
- fetch ios低版本兼容cannot clone a disturbed response
报错信息 ios 11以下 cannot clone a disturbed response github.com/github/fetc- 问题发生场景 使用了一个或者多个三方库 三方库或者自己的 ...
- redis 主从复制详解
引言 我们之前操作 Redis 都是单机版,但是实际应用中没人使用单机版,都是搭建集群的方式.这篇文章要介绍的主从复制,是指将一台 Redis 服务器的数据,复制到其他 Redis 服务器,我们将前者 ...
- Identity角色管理三(编辑角色)
因只有角色名能修改故继续使用创建角色的视图模型 using System.ComponentModel; using System.ComponentModel.DataAnnotations; na ...
- c# 递归树形菜单
首先创建模型类Menus public class Menus { //菜单Id public int Id { get; set; } //菜单名 public string MenuName { ...
- JS019. 原生JS使用new Blob()实现带格式导出Word、Excel(提供无编程基础将页面上表格导出到本地的方法)
导出效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Oracle体系结构一
总体结构分为三个部分:SGA,PGA,FILE文件 按功能分: 存储结构 存储结构对应关系 主要文件: 数据文件: 每个数据文件只与一个数据库相关联 一个表空间可以包含一个或者多个数据文件 一个数 ...
- ssh跳转设置
SSH工具的非常规使用 原创 景朝阳 FreeSWITCH中文社区 今天 说明:本文所有的命令是基于OpenSSH客户端7.4p1版本.如果出现命令不正确,请检测是否为此OpenSSH版本. 设置 ...
- 基于swoole框架hyperf开发的纯API接口化的后台RBAC管理工具hyperfly@v1.0.0发布
hyperfly@v1.0.0发布 本文地址http://yangjianyong.cn/?p=323转载无需经过作者本人授权 github地址:https://github.com/vankour/ ...