智能汽车车用基础软件的内核和中间件 时空隔离技术
2. 时空隔离技术
众所周知,在汽车智能驾驶、智能座舱或者是安全车控应用当中,都存在不同功能安全等级、不同重要程度的任务同时在一个计算单元中运行的情况。如果不采用一定的隔离措施,就会出现低功能安全等级或者非关键任务进程有意无意地干扰高功能安全要求或者重要任务进程的运行的情况(因自身缺陷或者信息安全等原因)。
当前有多种不同层次的时空隔离技术手段来实现任务的隔离。
第一个层次是处理器级别的物理空间隔离 ( 图 2.3-4),例如可以将 A 和 B 两个应用分别独立运行在同一计算单元的不同处理器中,每个处理器都是一个独立的运行系统。即使 A 应用所在处理器发生系统崩溃(无论是否由 A 应用触发),也不会影响 B 应用的运行,反之亦然。
图2.3-4 处理器级的物理空间隔离示意图
第二个层次是虚拟机 / 容器级别的时空隔离 ( 图 2.3-5),例如可以在同一个计算单元(可能有 1 到多个处理器)上虚拟出多个资源独立的虚拟机空间,每个虚拟机 / 容器分配有独立的物理地址空间和处理器资源。将 A 和 B 两个应用分别运行在不同的虚拟机 / 容器空间中,即使 A 所在虚拟机空间发生了系统崩溃(无论是否由 A 应用触发),也不会影响到 B 应用所在的虚拟机空间的运行,反之亦然。
图 2.3-5 虚拟机级的时空隔离示意图
第三个层次是内核和应用间的隔离 ( 图 2.3-6)。因为所有应用都不可避免地要调用内核服务,一旦内核出现问题,很容易导致系统故障,从而影响到所有运行在该内核之上的应用,所以需要将内核空间与用户空间隔离开来。用户应用程序只能运行在被内核映射分配好的地址空间,并限制用户态进程访问内核地址空间,系统同时会禁止用户进程执行某些可能破坏内核服务的机器指令,运行这些指令只能通过调用系统内核服务、中断等方式来完成。这一层次的隔离通常也需要硬件内存管理单元(如 MMU)提供的存储保护机制和相应的特权指令支持。
图2.3-6 内核和应用的空间隔离
第四个层次是应用间的分区时空隔离机制 ( 图 2.3-7)。分区是对一个相对独立的空间、时间、设备资源的抽象,形成一个尽可能与真实独立计算机资源相接近的实体。分区被抽象为一个运行单位,具有状态、优先级、调度策略、运行上下文、运行时间等属性。分区时空隔离机制需要操作系统内核的配合,由操作系统内核对分区资源(CPU 时间、内存、IO 端口)实现配额管理,分区对核心资源的访问需通过内核的授权与验证。分区通信必须通过操作系统内核验证进行才能数据交换。
图 2.3-7用户分区隔离
分区间的空间隔离技术通常采用硬件 MMU 提供的存储保护机制,除了将操作系统内核和应用分区进行隔离外,还需在负责时空隔离的操作系统内核和分区内进行实时调度(见 2.3.3.3 章节)。在分区隔离机制中,操作系统内核实施管理和安全验证所有核心资源的配额和访问,以保证系统的可靠性。操作系 统内核为每个分区配置独立的 CPU 时间和内存空间,并在分区内提供分区操作系统服务,实现分区内资源管理、任务通信、任务调度及分区间通信。操作系统内核管理外部中断,并通过信号的机制向相应的分区发送虚拟中断,相应的分区操作系统在分配到的时间片中截获信号,完成中断处理,保证分区时间窗 口的确定性,防止中断处理过长导致分区调度时钟窗口的不确定性。操作系统内核的空间域可以定义出 一个空间保护模型,每个空间域(分区)有自己的内存地址空间,每个空间域类似于传统的操作系统的 进程,空间域内的任务类似于传统的操作系统的线程。分区内调度的是任务,应用层和分区操作系统服 务层也是隔离的,任务失败不会导致系统故障。对不同分区空间可提供不同的保护权限,保护权限有:读、写、执行、共享等。一个分区内的任务失败不会影响操作系统内核或其他分区正常运行。
第五个层次是应用任务进程或线程之间的时空隔离 ( 图 2.3-8)。即操作系统内核 / 或者分区操作系统负责为每个任务进程分配独立的地址空间和处理器服务时隙,并禁止进程之间的直接访问。进程之间的信息交换必须通过调用内核提供的 IPC(见 2.3.3.1 章节)进程通信服务来完成。这一层次的隔离可以借助硬件的特权指令和基于硬件的 MMU 机制来实现,不得已的情况下也可以通过软件来完成。
图 2.3-8 应用进程/线程间的隔离
对一些功能简单的低端 MCU,由于没有内存管理单元 MMU(Memory Management Unit)支撑, 硬件上无法直接提供地址空间的隔离机制,需要通过软件技术来实现隔离保护。基于软件的隔离保护技 术包括段保护、段匹配和地址沙箱技术。其具体的实现原理和特点见下表 2.3-2。但无论是哪种基于软件的隔离技术,对系统的实时性都会有影响。
表 2.3-2 基于软件的隔离技术
对于支持 MMU 页表技术的处理器,其硬件能够很好地支持虚拟地址到物理地址的映射翻译,并提供基于硬件的存储器访问授权,从而实现不同进程任务的空间隔离。MMU 的映射翻译机制主要有两种,一种是分段机制,一种是分页机制。分段机制只是在早期的 X86 架构处理器上引入(在 X86-64 架构之后转向了分页机制),现代操作系统目前广泛使用的(无论是 X86 还是 ARM 架构)都是分页机制,后来还引入了多级页表机制。虚拟地址的哪个页面映射到物理内存的哪个页帧是通过页表(Page Table)来描述的,页表保存在物理内存中,MMU 会通过查找页表来确定一个虚拟地址应该映射到什么物理地址。MMU 配合操作系统内核完成了诸多空间隔离功能,比如通过特权模式划分了内核空间和用户空间,
用户空间无法直接访问内核空间,必须通过某些手段(系统调用,异常,中断等)切换到特权模式才能间接访问内核。此外,每个进程都拥有自己独立的地址空间,进程切换时地址空间也会切换。不同进程都拥有自己的一套页表,因而即使两个进程虚拟地址相同,映射的物理地址也是不同的。切换地址空间相当于控制 MMU 访问不同进程拥有的页表,MMU 找到了页表就找到了物理地址。
此外,操作系统内核还可以对每个页表的访问权限进行设置,当进程要访问不可访问权限的内存地址时,会产生一个异常通知处理器,操作系统内核可以通过捕获这种异常和对这种异常的合理处理来实现对空间域的保护隔离。
随着计算单元硬件和虚拟化技术不断地进步,配合操作系统内核所能提供的软件隔离保护手段,基本上能够满足未来整车 E/E 架构智能集中化趋势下的时空隔离要求。具体使用哪种隔离机制或者几种隔离机制的组合,需要根据整车应用功能安全要求,硬件成本约束来灵活决定。
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
编辑推荐
最新资讯
-
Plus为自动驾驶卡车功能添加了H.E.L.P.警报
2024-12-23 17:18
-
美国能源部发布最新版氢计划
2024-12-23 17:16
-
系统级封装(SiP)在新能源汽车领域的应用
2024-12-23 08:51
-
车载通信框架 --- 智能汽车车载通信架构浅
2024-12-23 08:40
-
全国首例!武汉车网智联公司完成智能网联测
2024-12-23 08:39