1. 首页 科技 互联网 正文

                5G、IoT 爆发前夕,我们必须了解的操作系统! | 码书

                2019年03月24日 23:34:46  来源:CSDN  编辑:醉城狂人能爱谁

                原标题:5G、IoT 爆发前夕,我们必须了解的操作系统! | 码书

                继互联网、移动互联网之后,万物互联的物联网时代正袭面而来。而作为开发者,想要入门物联网,首先需要对该领域的计算机及相关设备中唯一管理计算机硬件与软件资源的计算机程序之操作系统有一个全面的了解。

                在本文中,我们将以 IoT OS 的基石嵌入式实时操作系统为核心,解读物联网时代那些不容错过的操作系统发展与应用。

                何为嵌入式系统操作系统?

                嵌入式系统是一种完全嵌入在装置或设备内部为满足特定需求而设计的计算机系统,生活中常见的嵌入式系统就有:电视机顶盒、路由器、电冰箱、微波炉与移动电话等。它们都具有某种特定的功能:对于电视机顶盒而言,它?#32654;?#25773;放网络中的电视节目;同样,路由器用于选择最优路径并正确转发网络报文。这类系统专用性强、功能相对单一,通常只针对特定的外部输入进行处理,然后给出相应的结果,这样的特点使?#20204;?#20837;式系统只需具备相匹配的少量硬件资源,就可完成所需的特定功能,因而能使成本得到有效的控制。

                通用计算机系统则恰恰相反,它们并不针对特定的需求,而是尽可能地去满足各种需求,甚至在构造硬件系统时还会考虑未来几年的需求变化。例如,在人们购买电脑时,在自身有限的?#24335;?#24773;况下,都希望尽可能获得更高端的性能,用于多媒体、游戏及工作等。

                嵌入式系统硬件框图

                嵌入式系统的硬件设备由一些芯片及电路组成,包括主控芯片、电源管理、开发调试时用到的JTAG接口,?#37096;?#33021;包含一些数据采集模块、通信模块及音频/视?#30340;?#22359;等。

                实时系统

                系统的实时性指的是在固定的时间内正确地对外部事件做出响应。在这段“时间内?#20445;?#31995;统内部会做一些处理,例如输入数据的?#27835;?#35745;算、加工处理等。而在这段时间之外,系统可能会空闲下来,做一些空余的事。以一个手机终端为例:当一个电话拨入的时候,系统应当及时发出振铃、声音提示以通知主人有来电,询问是否进行接听;而在非电话拨入的时候,人们可以用它进行一些其他操作,例如听音乐、玩游戏等。

                ?#30001;?#38754;的例子我们可以看出,实时系统是一种需求倾向性的系统,对于实时的任务需要在第一时间内做出回应,而对非实时任务则可以在实时事件到达时为之让路——被抢占。所以?#37096;?#20197;将实时系统看成是一个等级系统,不同重要性的任务具有不同的优先等级:重要的任务能够优先被响应执行,非重要的任务可以?#23454;?#24448;后推迟。

                实时计算可以定义成这样一类计算,即系统的正确性不仅取决于计算的逻辑结果,还依赖于产生结果的时间。有两个关键点,即正确地完成和在给定的时间内完成,且两者重要性是等同的。如果计算结果出错,这将不是一个正确的系统,而计算结果正确,但计算所耗费的时间已经偏离需求设定的时间,那么这也不是一个实时系统。下图中描述了一个实时系统。

                对于输入的信号、事件,实时系统必须能够在规定的时间内得到正确的响应,而不管这些事件是单一事件、多重事件,还是同步信号或异步信号。

                举一个例子说明:假设一颗子弹从20米外射向一个玻璃杯,子弹的速度是v米/秒,那么经过t1=20/v秒后,子弹将击碎玻璃杯。而如果有一个保护系统在检测到子弹射出后,把玻璃杯?#31859;?#20102;,假设整个过?#22363;中鴗2秒的时间,如果t2<t1,玻璃杯就不会被击碎,那么就可以将这个系统看成是一个实时系统。

                实时系统

                和嵌入式系统类似,实时系统中也存在一定的计算单元,这些单元可对系统的环境及其内部的应用做出预计,这也就是很多关于实时系统的书中所谈及的可确定性,即系统可以在给定的时间(t秒)内对一个给定事件做出响应。多个事件、多个输入的系统响应的可确定性构成了整个实时系统的可确定性(实时系统并不代表着?#36816;?#26377;输入事件具备实时响应,而是在指定的时间内完成对事件的响应)。嵌入式系统的应用领域十分广泛,我们并不是要求所有的专用功能都具备实时性,只有当系统对任务有严格时间限定时,我们才关注它的实时性问题。具体的例?#24433;?#25324;实验控制、过程控制设备、机器人、空中交通管制、远程通信、军事指挥与控制系统等。而?#28304;?#21360;机这样一个嵌入式应用系统,人们并没有严格的时间限定,只有一个“尽可能快”的期望要求,因此,这样的系统称不上是实时系统。

                软实时与硬实时

                正如上面所描述的,实时系统关注的不外乎两点,即时间的正确性和功能的正确性。事实?#24076;?#34913;量一个实时系统的正确性正是如此,就是要求系统能在给定的时间内正确地完成相应的任务。但现实中也存在这样一种系统,即在多数情况下,它能够严格地在规定的时间内完成任务,但?#32423;?#23427;也会稍微超出这个给定的时间?#27573;?#25165;能正确地完成任务,我们通常把这种系统称为软实时系统。从系统对规定时间的敏感性的要求来看,实时系统可以分为硬实时系统和软实时系统。

                硬实时系统严格限定在规定的时间内完成任务,否则就可能导?#30053;?#38590;的发生,例如导弹拦截系统,汽车引擎系统等,当这些系统不能满足规定的响应时间时,即使只是?#32423;?#20063;将导致车毁人亡等重大灾难的发生。

                软实时系统,可以?#24066;砼级?#20986;现一定的时间偏差,但是随着时间的偏移,整个系统的正确性也会随之下降,例如可以将一个DVD播放系统看成一个软实时系统,?#24066;?#23427;?#32423;?#20986;?#21482;?#38754;或声音延迟。

                下图绘制了这三种系统(非实时系统、软实时系统和硬实时系统)的时效关系。

                时间与效用的关系

                ?#30001;?#22270;中我们可以看出,当事件触发,在时间t内完成,则三类系统的效用是相同的。但是当完成时间超出时间t时,则效用发生了变化。

                非实时系统:超过规定的时间t后,其效用缓慢下降。 软实时系统:超过规定的时间t后,其效用迅速下降。 硬实时系统:超过规定的时间t后,其效用立即归零。

                嵌入式实时操作系统

                在嵌入式设备中,除嵌入式操作系统之外,还有裸机程序,在主函数中编写一个大循环,循环中是各个任务的功能实现,而所有的任务都是平?#31471;?#24207;执行,下一个任务必须等待上一个任务运行完毕才能开始运行,这个运行着的大循环我们称之为后台程序。中断可?#28304;?#26029;系统当前的后台任务优先执行,等中断处理完?#24076;?#20877;回到原?#32676;?#21488;被中断处继续执行后台程序,中断处理程序称为前台程序。下图所示是一个前后台系统。

                前后台系统

                这样的前后台系统在实时性处理方面存在?#27605;藎?#20363;如任务1是重要任务,需要能够得到及时响应,在运行任务4的时候,产生中?#24076;?#25191;行任务1的条件被满足,最理想的快速响应方式是任务1立即被投入运行,但是在前后台程序中做不到,因为任务是被顺序执行的,即使任务1焦急万分,也必须等待任务4处理完毕后才能被运?#23567;?/p>

                嵌入式实时操作系统被设计成为一个抢占式系统,能够解决上述的实时性问题,它把任务分为不同的优先级,当运行条件被满足时,高优先级任务可?#28304;蚨系?#20248;先级任务优先运行,从而极大地提高了系统实时性。实时操作系统执行任务示意图如下图所?#23613;?/p>

                实时操作系统

                当然,嵌入式实时操作系统相比前后台程序,不仅有实时性方面的进步,它在多任务管理、任务间通信、内存管理、定时器管理、设备管理?#30830;?#38754;,也提供了一套完整的机制,极大程度?#23219;?#21033;了嵌入式应用程序的开发、管理和维护。如果要和桌面操作系统进行类比,那么前后台程序开发好比直接使用BIOS进行开发,而使?#20204;?#20837;式实时操作系统好比在Windows上进行应用开发。

                总体来说,嵌入式操作系统是应用于嵌入式系统的软件,?#32654;?#23545;接嵌入式底层硬件与上层应?#33804;?#20214;,操作系统将底层驱动封装起来为开发者提供功能接口,极大地提高了应用程序的开发效率。

                主流嵌入式实时操作系统

                uC/OS是美国的一款RTOS,发布于1992年。2001年,北航的邵贝贝教授第一次将有关uC/OS的书籍翻译成中文,该书出版后获得了大量好评,当时该书遇上了“嵌入式系统开发”风口,大量的高校学生开始学习嵌入式系统,将该书作为学习嵌入式操作系统的入门书籍,将学习的内容带入各类项目和产品后,它的特点才渐渐崭露?#26041;恰?#22312;2010年以前,uC/OS一直是国内大多企业的首选RTOS。2010年以后,开源免费的RTOS开始流行,而uC/OS本身的商业收费策略一直未能及时调整,导致很多厂商转而选择开源免费的操作系统,如FreeRTOS、RT-Thread。

                FreeRTOS诞生于2003年,按照开源、免费的策略发布,可用于任何商业和非商业场合。2004年,英国的ARM公?#23601;?#20986;第一款基于ARMv7-M架构的Cortex-M3 IP核,主打高性价比的MCU市场,随后美国德州仪器公?#23601;?#20986;了第一款基于Cortex-M3内核的MCU,接下来意法半导体、恩智浦、飞思卡尔、爱特梅尔等欧美厂商相继推出了基于Cortex-M内核的MCU,出于性价比的考虑,这些厂商都选择了FreeRTOS作为芯片默认使用的嵌入式操作系统,?#31859;?#36825;波热潮,FreeRTOS迅速崛起,在国内外流行开来。

                RT-Thread是国内的一款嵌入式实时操作系统,诞生于2006年,许可证类似FreeRTOS,以开源、免费的方式进行发布。与FreeRTOS和uC/OS不同的是,RT-Thread自创建之初的定位就不仅是一个RTOS内核,而?#21069;?#21547;网络、文件系统、GUI界面等组件的中间件平台,它秉承开源、免费的思想,积聚吸收社区的力量来不断发展壮大。经过十多年的积淀,RT-Thread已经成为一款知名度较高、口碑极?#36873;?#39640;?#20219;?#23450;可靠的实时操作系统。RT-Thread支持市面上所有的主流编译工具,如IAR、GCC、Keil等;在硬件支持方面,它完成了超过50款MCU芯片和所有主流CPU架构上的移植工作,包括ARM、MIPS、C-Sky、Xtensa、Andes与RISC-V等。在行业应用?#24076;?#22240;为RT-Thread的高可靠性和组件丰富等特点,它被广泛应用于安防、医疗、新能源、车载、北斗导航?#32422;?#28040;费电子等众多行业。

                ......

                以上内容没看够,?#20302;?#21578;诉你,本文节选自机械工业出版社华章公司的书籍《嵌入式实时操作系统:RT-Thread设计与实现》的部分精华。

                这是一本有关完全自主知识产权 RT-Thread 系统的设计与实现;

                十年磨一剑;

                由 RT-Thread 创始团队联合撰写;

                深入剖析了嵌入式操作系统的原理;

                大幅度降低了物联网开发门槛;

                为整个行业带来了巨大的价值!

                适读人群 :

                所有使用C/C++进行编程的开发人员 高校计算机/电子/通信类专业学生 嵌入式/物联网工程师 电子工程师

                目前,针?#28304;?#20070;,

                CSDN联合机械工业出版社华章公司,

                推出限时 7.8 折的优惠活动,

                《嵌入式实时操作系统:RT-Thread设计与实现》↓↓↓

                举报本文
                +10
                +10

                依据《信息网络传播权保护条例》第二十二条之规定,即“避风港原则?#20445;?#26412;站所有文章及内容系第三方作者上传,如有侵权行为请及时联系本站?#22836;境?#26412;站不对内容传播行为承担赔偿责任。

                跟贴 0
                参与 0
                发贴
                网友评论仅供其表达个人看法,并不表明E都市立场。
                11选5任3必中计算方法