作者:博菡 | 来源:互联网 | 2023-08-31 17:07
一、嵌入式操作系统1、嵌入式操作系统的基本概念嵌入式操作系统是支持嵌入式应用的操作系统,它是一种用途广泛的系统软件。负责嵌入式系统的全部软、硬件资源的分配、任务调
一、嵌入式操作系统
1、嵌入式操作系统的基本概念
嵌入式操作系统是支持嵌入式应用的操作系统,它是一种用途广泛的系统软件。
负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
嵌入式系统引入操作系统的原因:
1)从技术上解决了嵌入式系统标准化、层次化的问题;
2)基于嵌入式操作系统,更容易形成有效的技术和资源积累;
3)嵌入式操作系统是嵌入式系统重要的运行环境和开发平台,它的集成度和可用性直接关系到嵌入式系统的效率。
2、嵌入式操作系统发展历程
(1)无操作系统的嵌入式算法阶段
(2)简单监控式的实时操作系统阶段
(3)通用的嵌入式实时操作系统阶段
(4)以网络为标志的嵌入式系统阶段
3、嵌入式操作系统内核分类及基本结构
内核分类:
(1)宏内核(典型的有Linux、Unix)
(2)微内核(典型的有Nucleus、Uitron、uCOS)
基本结构按照层次划分:
(1)应用服务层
(2)系统层
(3)核心层
(4)硬件接口层
4、嵌入式操作系统内核的基本功能模块
进程管理
操作系统需要为进程分配资源,实现进程间共享和交换信息,保护进程资源,以及实现进程间同步。在一个多线程系统中,进程成了资源管理器,线程成为程序的基本执行单元。
作用是决定在特定的时刻要运行和等待哪个任务、如何调度、保护执行环境等。操作系统为每一个任务维护了一个称为任务控制块的数据结构,记录进程的有关信息,包括任务的环境、状态等。
任务也称线程,是一简单的程序,可认为CPU完全属于该程序自己;
被赋予一定的优先级,有自己的一套CPU寄存器和堆栈空间;
任务状态:休眠,就绪,运行,等待;
多任务
单CPU,轮番服务于一系列任务中的某一个;
使CPU的利用率达到最高;
带来诸如死锁,重入等诸多问题。
任务调度方法
1)优先级调度(优先级抢占和优先级不抢占)
优先级抢占是指当高优先级任务被激活后,立即中止当前任务的执行,抢占CPU运行;优先级不抢占是指当有高的优先级任务被激活后,不中止当前任务的执行,不抢占CPU运行,而是放在任务就绪队列中,在当前执行的任务结束后,从任务就绪队列中选择优先级最高的任务运行
5、任务调度方法
2)轮转调度
任务管理者让就绪任务按照一个固定的时间顺序轮流运行。
3)时间片调度
任务管理者根据各任务不同的情况在不同数量的单位时间的时间片内运行。
在嵌入式操作系统中很难明确哪一种调度方法是最好的,要根据被嵌入的系统的实际情况来优化选择。实际的嵌入式操作系统中一般都配有这三种调度函数的库函数,以满足不同用户的不同需求。
内存管理
虚拟存储管理器管理就是通过操作系统对内存和外存的管理,可以使应用程序获得比计算机实有的内存更大的编址空间,使每个程序都可以享有一个独立的虚拟存储空间。
静态内存分配
动态内存分配
在内存分配的策略上,一个通用的嵌入式操作系统往往可以提供几种分配策略,而用户在开发自己的嵌入式系统时可以进行合理选择,体现了嵌入式操作系统的可裁减性。
存储管理另外一个重要问题——内存保护
中断管理
在嵌入式系统中,中断可以使CPU从查询方式解放出来。
计算机系统处理外部事件有两种方式:中断和查询。在多任务操作系统中,由于使用查询方式处理事件和I/O请求会大量占用CPU的时间,严重消耗系统的有限资源。因此无论是一般的操作系统还是嵌入式操作系统,都使用中断方式来处理事件或I/O请求。
中断管理
中断处理上,一般操作系统与嵌入式操作系统的不同之处在于现场保护。
一般操作系统的现场保护是由操作系统来完成的,在中断处理完成之后,也由操作系统恢复现场。
在嵌入式操作系统中,由于受到代码量的限制,中断现场的保护由中断处理程序来完成。在中断处理程序的入口要保护在中断处理程序中要用到的寄存器,在中断处理完成后恢复。通过这种方法,减少了代码量,提高了中断响应时间。但损失了系统的安全性,增加了调试的难度。
操作系统与应用程序的接口—API从操作系统的角度来看,提供给用户的有两类接口,分别为:
(1)人机界面;
(2)操作系统提供给用户的开发用户应用程序的API函数,即系统调用。
嵌入式操作系统只能面向被嵌入系统的实际要求,确定系统调用,以便达到在提供最有效的系统调用的同时具有最小的代码量。
本书所称的任务将用来描述一个处理器或一个处理器网络调度或执行的一个工作单元,也称为潜在的或实际的并行处理过程。并不考虑各种任务是由一个处理器网络并行执行还是由一个单一处理器以并行方式执行。
6、任务的调度是由嵌入式操作系统的内核完成的,调度的方式主要有以下三种:
(1)不可抢占(不可剥夺)式调度
(2)可抢占(可剥夺)式调度
(3)时间片轮转调度
(1)不可抢占(不可剥夺)式调度
也称为合作型多任务,是基于任务优先级的。一个任务一旦获得处理器就独占处理器运行,直至该任务结束进入等待状态,才将处理器的使用权让位给优先级最高的处于就绪状态的任务。
(2)可抢占(可剥夺)式调度
可抢占式调度也是基于任务优先级的,当前正在运行的任务必须随时让位给优先级更高的处于就绪态的其他任务。
(3)时间片轮转调度
当两个或两个以上任务有同样的优先级时,某个任务运行事先规定的时间额定(一段时间),然后切换至另外的任务,这就是时间片轮转调度。
在满足以下条件时,将CPU的使用权交给下一个就绪任务:
当前任务进入等待状态;
当前任务在事先规定的时间定额内转为等待状态;
当前任务事先规定的时间定额已用完。
大多数嵌入式操作系统对不同优先级的任务采用基于优先级的抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。
7、嵌入式操作系统下的任务间通信
任务通信是指不同任务之间或任务与中断服务之间的信息传递。
通信方式有两种:
(1)通过全局变量进行通信
(2)通过消息邮箱或消息队列,由一个或若干个指针型变量进行通信。
(1)通过全局变量进行通信
每个任务在处理共享数据时必须是排他的,可采用以下方法。
控制中断,当任务与中断或任务共享数据时,任务在处理共享数据前需关闭中断,处理完共享数据后再打开中断;
控制任务切换,当任务间共享数据时,任务在处理共享数据前需禁止任务切换,处理完共享数据后再允许任务切换;
采用TAS(Test And Set)操作,即处理允许标志控制法;
利用信号量,信号量实际上是一种约定机制,其作用是控制共享资源的使用权、标志某事件的发生和使两个任务同步。
(2)通过消息邮箱或消息队列进行通信
(2)通过消息邮箱或消息队列进行通信
8、嵌入式操作系统实时性要求
嵌入式系统由于是嵌入到被控对象体系中的一个电子系统,与对象系统密切相关。而不同的对象系统会有不同的响应时间要求,体现了嵌入对象对时间响应要求的多样性。
根据嵌入式应用系统的激励-运行-响应特性,形成了以软件运行时间T为主要指标来表征系统的响应能力。而软件运行时间T与指令速度、编程技巧、程序优化等有关,是一个在应用系统设计中
可以改变的参数,它表现了嵌入式应用系统实时能力的可变更性。
响应时间的多样性要求与响应时间可调整性,是嵌入式系统实时性分析的基本出发点。