首先声明一点,我自己也是菜菜,只是用过uC/OS-II做过一些东西,都是用别人现成的移植版本。做人要活得明白,所以我下定决心要把uC/OS-II这东西给弄透了,除了这个劲头,当然还需要时间的考验,一直认为,坚持是学通一门东西最大的障碍。把自己学习日志贴上来一来是要和像我这样门外的渴望进步的青年一起学习探讨,二来请大家监督免得自己学着学着就偏离航道了(嘿嘿)。好了废话不多说,开始你我的uC/OS-II之旅吧(如果你愿意)。再废话一句,请忍耐!我有两本书:邵贝贝教授翻译的《嵌入式实时操作系统uC/OS-II》和仁哲教授的《嵌入式实时操作系统uC/OS-II原理及应用》,才买的,心疼。每天一贴,每天学一点点。
实时操作系统?什么东西。天...。操作系统就不解释了,重点在“实时”。实时含有立即、及时之意。如果操作系统能使计算机系统及时响应外部事件的请求,并能及时的控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种操作系统就是一个实时操作系统(Real Time Operation System)。通过对上面定义的理解可以得出对实时系统有两个基本的要求:第一,实时系统的计算必须产生正确的结果,称为逻辑或功能(Logical or Functional Correctness)正确;第二,实时系统的计算必须在预定的周期内完成称为时间正确(Timeing Correctness)。
能够产生正确的结果这点是基本要求,不能产生正确结果的系统谁敢用?所以实时操作系统的重点还是落到了这个时间正确性上来了。按照时间的正确性的程度来分:
第一,软实时系统:顾名思义,软的那就是还有一定的自由度。系统中个任务的执行时间可以有一定的走展,要求各个任务尽快地运行而不要求限定在某一段时间内完成。
第二,硬实时系统:硬的?那就是没得余地了,任务不仅要执行无误,而且要做到准时。
如果想要做到绝对的实时,恐怕还是很有难度的,所以平时用得最多的还是软实时系统,但是由于应用领域不一样,对软的层度要求就不一样,这一点相信大家都有深刻的理解。
实时系统定义的学习就这样吧,我认为理解才是王道,没必要死记。但是有一点一定要记住实时操作系统的英文RTOS(Real Time Operation System)。
那在实时操作系统之前,都在用什么监控整个系统的运行呢?答案是前后台系统(foreground/bakground)或超级循环系统(super-loop2)。在前后台系统中应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看做后台行为(background)。中断服务程序处理异步事件,这部分可以看做是前台行为(foreground)。后台也可以叫做任务级,前台也叫做中断级。在前后台系统中,时间相关性很强的关键操作(Critical Operation)一定是靠中断服务来保证的。这种系统在出来信息的及时性上,比实际上可以做到的要差。处理信息的及时性称为任务级响应时间。根据其超级循环的机理,可想而知最坏情况下任务级的响应时间取决于整个循环的执行时间。因为循环的执行时间不是常数,程序经过某个特定部分的准确时间也是不能确定的。进而,如果程序修改了,循环的时序也会受到影响。
文章评论(0条评论)
登录后参与讨论