本系列文章将从以下六个方面来介绍AP平台核心技术:
已分享文章:
AP AUTOSAR硬核技术(1):执行管理的秘密揭晓
AP AUTOSAR硬核技术(2):详解状态管理
AP AUTOSAR硬核技术(3):执行管理与状态管理的交互
操作系统接口(OSI)
AP autosar 使用基于POSIX标准的操作系统,例如Linux,作为应用程序的运行环境,可以利用操作系统的文件系统、网络协议栈、设备驱动程序等功能,实现应用程序的下载、安装、启动和停止。
5.1 Operating System Interface:POSIX
POSIX是一种操作系统接口标准,全称为“可移植操作系统接口”(Portable Operating System Interface)。它最初由IEEE组织制定,目的是为了使不同的操作系统之间可以互相兼容。POSIX标准定义了一系列API(应用程序接口)和命令行工具,这些API和工具规定了操作系统应该提供哪些功能,并规定了这些功能的调用方式和行为。
POSIX标准包含多个部分,主要涵盖了文件管理、进程控制、用户权限、系统调用等方面。
图中的:
PSE51:是针对嵌入式领域制定的最小实时系统配置文件,它是POSIX标准的最小子集。
PSE52:在PSE51的基础上增加了多线程和信号量等功能,适用于需要实时控制和调度的场景。
PSE53:在PSE52的基础上增加了共享内存、消息队列、定时器等功能,适用于需要高效通信和同步的场景。
PSE54:在PSE53的基础上增加了文件系统、套接字、信号等功能,适用于需要更多服务和功能的场景。
POSIX .1是POSIX标准中最基本和最核心的部分,它定义了操作系统内核接口(System Kernel Interface),包括进程管理、内存管理、信号处理、错误处理等功能。它是其他POSIX标准的基础,也是最广泛支持和使用的部分。
POSIX标准的优点不仅在于它能够让程序跨平台运行,而且它还可以提高程序的可移植性和可重用性。采用POSIX标准编写的程序可以在不同的系统上复用,从而避免了重复开发的浪费。此外,POSIX标准的使用也可以提高程序的安全性和可靠性,因为它规定了操作系统的行为和调用方式,从而避免了不必要的错误和漏洞。它不仅为操作系统提供了统一的接口,也为程序员提供了一个通用的开发环境。
POSIX标准是一套定义了Unix和类Unix操作系统的通用接口的规范。它包括了系统调用、库函数、命令行工具等方面的内容。不同的操作系统可以实现不同的POSIX子集,以提供不同的功能和兼容性。
应用程序可以通过应用编程接口(API)来访问操作系统的功能。API是一组预定义的函数和数据结构,可以简化编程和提高可移植性。API可以基于POSIX标准,也可以有自己的扩展或限制。
为了保证应用程序的安全性和稳定性,不同类型的应用程序应该使用不同级别的API。一般来说,用户应用程序应该使用PSE51,这是POSIX标准中最小的实时系统配置。而平台应用程序,如操作系统的组件或服务,可以使用完整的POSIX系统接口,以获得更多的功能和灵活性。
如果应用程序需要一些POSIX标准没有覆盖的特性,它们可以从POSIX标准中选择适合的部分,并尽量避免引入新的非标准的接口。这样可以保持应用程序的一致性和可维护性。
自适应平台基础和自适应平台服务是一些针对特定领域的应用程序框架,它们可以利用POSIX标准中的一些高级的系统调用,如线程、信号、共享内存等。这些调用的具体使用方式取决于应用程序的功能需求和设计,而不是由POSIX标准规定的。
操作系统支持多进程和多线程,以满足不同的应用场景。
操作系统遵循POSIX标准的SCHED_FIFO和SCHED_RR调度策略,以保证实时性和可靠性。
操作系统也可以使用SCHED_DEADLINE或其他自定义的调度策略,但这可能影响应用的跨平台性。
操作系统支持多进程,以实现功能集群和AA之间的隔离和保护。
操作系统为每个进程分配一个独立的地址空间,防止进程之间的干扰和冲突。
操作系统允许同一个可执行文件的多个实例在不同的地址空间中运行,这样它们可以共享代码和初始数据,但是数据会在内存的不同位置存储。
设备管理是操作系统的特有功能,自适应平台提供了服务接口来访问系统的主要功能。
设备驱动程序没有统一的应用编程接口,但是它们可以通过自适应平台服务提供更高层次的功能。
以太网是连接多台机器和其他传感器的主要方式,因此操作系统需要提供TCP/IP和UDP协议的支持。
操作系统提供了网络协议栈,应用程序可以通过通信管理服务来使用网络功能。
自适应平台还提供了VLAN、IPSEC等安全功能,来保证系统内部和系统之间的通信安全。
AUTOSAR Adaptive platform(AP)运行在高性能处理器上,直接基于通用的操作系统
执行管理与操作系统的交互非常密切。
在经典平台中,操作系统是由AUTOSAR定义的,它采用了OSEK操作系统,并对其进行了扩展,支持调度表、多核等;
而在自适应平台中,操作系统不是由AUTOSAR定义的,而是定义了操作系统提供的接口(如POSIX PSE51)
自适应操作系统接口定义了作为ARA的一部分并且因此可由便携式自适应应用程序使用的应用程序接口,
PSE-51被IEEE定义为一个最小的实时系统配置文件…它对用户应用程序的选择意味着在不同的POSIX实现之间具有最高级别的可移植性,同时为应用程序提供足够的表达能力。
OS支持为进程或进程组配置内存和CPU资源预算。
OS提供进程绑定到CPU Core的机制。
OS支持软件实体对系统对象访问的权限管理机制,应用进程只能通过授权的系统调用来支持多进程的原因之一是要实现不同功能集群和AA之间的“无干扰”。
OS的多进程支持迫使每个进程位于一个独立的地址空间中,并与其他进程分开并加以保护。
同一可执行文件的两个Instance在不同的地址空间中运行,因此它们可以在启动时共享相同的入口点地址和代码以及数据值,但是,数据将位于内存中的不同物理页中。
操作系统和执行管理之间有明确的职责划分:
执行管理负责平台的初始化,操作系统与执行管理协同工作,执行应用程序的启动和关闭。
操作系统负责Adaptive Platform上所有应用程序的运行时调度,资源管理(包括策略内存和时间限制)以及进程间通信。
本文作者:刘向,汽车嵌入式工程师
-end-
本专栏是由汽车电子与软件打造的中立性技术科普专栏,将系统地阐述软件定义汽车下的关键挑战和工程实践。欢迎订阅本专栏!