文档介绍:嵌入式操作系统
陈天洲、陈文智
实时性简介
对于什么是实时系统,POSIX :指系统能够在限定的响应时间内提供所需水平的服务
实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型
一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度
实时调度分类
各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度算法(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD)
从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片
实时性改造
对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展
向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多
向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理
Linux的实时性
一般的通用linux已经具备一定的实时性
但无法满足硬实时的要求
运行于linux内核空间的进程(核心态)不能被抢先
在linux中,中断有时候会出于保护临界区操作的目的而被屏蔽
通用linux的时间滴答长度为10ms(硬件时钟频率100HZ),但是这对于时间精度要求很高(微秒级)的实时进程来说是不够的
嵌入式Linux的实时性改造
可以引入一个双内核结构
对Linux内核代码作一些修改Linux本身的任务以及Linux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务以Linux的内核模块(Loadable Kernel Module,LKM)的形式存在的
资源核方法:这种方法是为解决传统实时操作系统中固定优先级抢占式调度策略的局限性而产生的
Linux
,它允许自身在执行任务时被打断
Ingo Molnar 开发的新的调度器算法,称为O(1)算法
RTLinux硬实时操作系统简介
RTLinux是一硬实时操作系统
实现了一个微内核的小的实时操作系统,而将普通Linux系统作为一个该操作系统中的一个低优先级的任务来运行
普通Linux系统中的任务可以通过FIFO和实时任务进行通信
通过软件来模拟硬件的中断控制器
RT-Linux通过将系统的实时时钟设置为单次触发状态,可以提供十几个微秒级的调度粒度
RTLinux内核结构
启动优化基本技术
一、固化各种不可扩展硬件的设置,尽量标准化可扩展设备的接口,节约设备检测时间。
二、Lazy Loading,也即不加载当前非必需的模块,这些模块可以在启动后待机时间内加载,或者在具体用到之后再加载,把启动时间打散,从而缩短对用户来说至关重要的反应时间(Responding Time)。
三、任务并行化,很多系统在启动任务时,是顺序执行,按部就班。为了减少启动时间,我们可以考虑任务的并行化,以减少启动时间的消耗。