赞
踩
本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。
此专栏是关于《自动驾驶汽车平台技术基础》书籍的笔记.
在软件平台中,操作系统主要管理系统中的各种软、硬件资源,控制用户和应用程序的工作流程;
操作系统是架构在硬件之上的第一层软件,是系统软件和应用程序运行的基础,软件平台和操作系统的关系如下图所示:
自动驾驶汽车的操作系统负责管理车辆对四周物体的识别、车辆定位及路径规划等功能,是实现无人驾驶的关键;
车载操作系统分为实时操作系统和非实时操作系统;
实时操作系统定义
实时操作系统的特征
高精度计时系统
在实时应用中,经常需要精确实时地操作某个设备或执行某次任务,或精确地计算一个时间函数;这些不仅依赖一些硬件提供的时钟精度,也依赖实时操作系统实现的高精度计时功能;
多级中断机制
一个实时操作系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分;有的必须立即做出反应,有的可以延后处理;因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件及时进行响应和处理;
实时调度机制
实时操作系统不仅要及时响应事件中断,同时也要及时调度运行实时任务;实时调度机制包括两个方面:一是在调度策略和算法上保证优先调度实时任务;二是建立更多"安全切换"时间点,保证及时调度实时任务;
实时操作系统的相关概念
基本概念
关于优先级的问题
互斥
任务切换时间
任务切换时间是衡量一个实时操作系统实时性能的重要指标之一,取决于CPU需要等待入栈的寄存器个数;CPU寄存器个数越多,则切换时间越长;
任务切换时的状态,如下图所示:
中断响应时间(可屏蔽中断)
中断响应时间是另一个衡量实时操作系统实时性能的重要指标,主要由关中断的最长时间、保护CPU内部寄存器的时间、进入中断服务函数的执行时间、开始执行中断服务程序(ISR)的第一条指令时间构成;
μ C / \mu{C}/ μC/OS-Ⅱ概述
准实时操作系统定义
准实时操作系统的特征
Linux系统结构
Linux系统结构图如下所示:
Linux系统是一个分层的体系结构,位于硬件层之上,由用户空间和内核空间组成,其中高位的物理内存由内核空间占用,这部分内存只限运行在内核态的进程访问,主要划分为ZONE_DMA、ZONE_NORMAL和ZONE_HIGHMEM3部分;
低位的物理内存由用户空间使用,进程对用户空间的访问是互相隔离的,某一时刻占据CPU的进程,拥有整个虚拟内存空间;
目前的Linux系统由于几个自带特性,无法满足硬实时操作系统要求:
Linux进程的运行状态一般分为阻塞态、就绪态和运行态3种;
当一个进程所有资源都具备,只差CPU控制权时,根据优先级被插入就绪队列合适位置,进入就绪态;当就绪队列进程获得CPU后,进入运行态,直到时间片用完,进入新的就绪队列;或者I/O设备等硬件资源被剥夺,则进入阻塞态,直到重新获取硬件资源,再由系统移至就绪队列末尾继续等待;
在Linux系统中,一旦进程进入运行状态,即便就绪队列中有更高优先级任务到达,也无法立即对运行中的低优先级进程进行抢占;除非当前运行的低优先级进程自动放弃CPU,或等待硬件资源被剥夺而造成阻塞,否则将一直处于运行态;
当Linux系统在对临界区资源进行操作时,中断标志位是处于屏蔽状态,即无法通过中断请求,而立即插入执行高实时性任务;等待的时间长度完全取决于系统调用所耗费的时间,这段时间内系统无法处理外部的中断请求;
实时性操作系统要求,对于低优先级的当前运行任务,只要就绪队列中存在优先级比它高的任务,就可以立即剥夺它的运行权力;
Linux采用时间片轮转调度策略,每个进程都被分配相同长度的时间片,从获取CPU运行权开始计时,当期时间片用完之时,不管进程是否运行完毕,都必须交出CPU控制权;
Linux调度策略的优点是每一个等待队列中的进程在一定时间内都有机会获得执行权力,防止出现某一进程因等待时间过长而挂死的情况;缺点是对于优先级高的长进程,可能需要多次调度执行,才能完成任务,降低了系统的平均执行效率;
当出现随机存储器(RAM)不够用时,Linux采用虚拟内存技术,通过将内存映射到扩展的虚拟存储盘,达到加大内存容量的效果;首先,这需要建立一个额外的数据结构来管理这部分虚拟内存;其次,缺页所造成的页面换进换出和磁盘I/O操作需要一笔不小的时间开支,且这段时间支出是无法预知的;如果这段时间里,有高优先级任务到来,系统无法提供及时响应;
为了利用Linux的资源优势,对Linux无法作为实时操作系统这一问题提出了两种处理方案:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。