第1章 嵌入式实时操作系统
1、基本知识
操作系统:指管理和控制计算机硬件和软件资源的计算机程序,是运行在计算机上的最基本的系统软件,其它软件必须在操作系统的支持下才可以运行。
分类:按应用领域划分以下几类操作系统:
a.桌面操作系统
指运行在个人PC上的操作系统,市面上常见的有windows(主流)、Linux、Mac OS。
b.服务器操作系统
指运行大型服务器上操作系统,如:云服务器、数据库服务器、网络服务器等,市面上常见的此类操作系统有Linux(主流)、Windows。
c.移动操作系统
指运行在手机、平板、智能电视上的操作系统,市面上常见的有谷歌的Android、苹果的iOS。传统的移动设备(手机、平板等)也属于嵌入式设备,因其作用的芯片的功能越来越强大,故另外分类。
d.嵌入式操作系统
指用在嵌入式系统的操作系统,嵌入式系统使用非常广泛,可以理解为除了服务器、个人电脑、移动设备外的计算机都是嵌入式设备,嵌入式系统在我们的生活中无处不在:
1、军用:各种武器控制、军用电子装备、军事通信装备、作战的各种专用设备。
2、消费电子:各种信息家电产品。
3、工业控制:各种智能测量仪表、数控装置、可编程控制器、控制机、分布式控制系统、现场总线仪表及控制系统、工业机器人、机电一体化机械设备、汽车电子设备等。
4、网络应用:网络基础设施、接入设备、移动终端设备、共享单车、水电气表、物联网终端设备等。
5、其他:各类收款机、POS系统、电子秤、条形码阅读机、商用终端、银行点钞机、IC卡输入设备、取款机、自动柜员机、自动服务终端、防盗系统、及各种银行专业外围设备与各种医疗电子仪器等。
2、概念细述:
a、嵌入式系统:
是一种完全嵌入在装置或设备内部为满足特定需求而设计的计算机系统,具有某种特定的功能,只需具备相匹配的少量硬件资源就可完成,能使成本得到有效的控制。
嵌入式系统的硬件设备由:主控芯片、电源管理、JTAG调试接口;也可能包含数据采集模块、通信模块及音视频模块等,如下图:
b、实时系统:
系统的实时性:指的是在固定的时间内正确地对外部事件做出响应;实时系统是一种需求倾向性的系统,需对实时任务第一时间内做出响应,而对非实时任务则可以为实时任务让路,所以实时系统也是一个等级系统,不同重要性的任务具有不同的优先等级;可按任务的轻重缓急做出相应的响应。
实时计算:系统的正确性不仅取决于计算的逻辑结果,还依赖于产生结果的时间。有两个关键点:正确的完成和在给定的时间内完成,且两者的重要性是相等的。对于输入的信号、事件,实时系统必须能够在规定的时间内得到正确的响应,不管这些事件是单一事件、多重事件,还是同步信号或异步信号。如下图:
实时系统中也存在一定的计算单元,可对系统的环境及其内部的应用做出预计,即可确定性,就是系统可以在给定的时间内对一个给定事件做出响应。实时系统并不代表着对所有输入事件具备实时响应,而是在指定的时间内完成对事件的响应。在实际的应用中,并不是要求所有的专用功能都具备实时性,只有当系统对任务有严格时间限定时,才关注它的实时性。
c、软实时和硬实时
实时系统关注的有两点:时间的正确性和功能的正确性。就是要求系统能在给定的时间正确的完成相应的任务。
从系统对规定时间的敏感性的要求来看,实时系统可以分为硬实时系统和软实时系统。
在多数情况下,系统能够严格地在规定的时间内完成任务,但偶尔也会稍微超出这个给定的时间范围才能正确地完成任务,通常把这种系统称为软实时系统;
软实时系统允许偶尔出现一定的时间偏差,但是随着时间的偏移,整个系统的正确性也会随之下降。
系统能严格限制在规定的时间内完成任务,通常把这种系统称为硬实时系统;
下图绘制了三种系统(非实时系统、软实时系统、硬实时系统)的时效关系:
当事件触发,在时间t内完成,三种系统的效用是相同的。但是超出规定的时间t后,则效用发生了变化:
非实时系统:效用缓慢下降
软实时系统:效用迅速下降
硬实时系统:效用立即归零
d、嵌入式实时操作系统
在嵌入式设备中,除嵌入式操作系统外,还有裸机程序,在主函数中编写一个大循环,循环中是各个任务的功能实现,而所能的任务都是平级顺序执行,任务依次执行,这个运行着的大循环称为:后台程序
可以打断系统当前的后台任务优先执行的程序称为中断处理程序,当中断处理完毕后,再回到原先后台被中断处继续执行后台程序,故中断处理程序称为前台程序。如下图:
这样的前后台系统在实时性处理方面存在缺陷。嵌入式实时操作系统被设计成为一个抢占式系统,能够解决前后台系统的实时性问题。它把任务分为不同的优先级,当运行条件满足时,高优先级任务可以打断低优先级任务优先运行,极大的提高了系统实时性。如下图:
e、主流嵌入式实时操作系统
1、uC/OS 发布于1992年;
2、FreeRTOS 发布于2003年;
3、RT-Thread 发布于2006年;
通过此章的学习,掌握了关于操作系统的几个重要性术语的定义,明白了所谓实时操作系统的概念,软和硬实时的区别,市面上常见的几个实时操作系统的发展,相信后面会越来越精彩的。
|