5A26458G05
许多人都把实时理解为速度快。那么,速度快到什么程度才算是达到实时呢?其实,所谓实时,其核心含义在于确定,而不是单纯的速度快。也就是说,RTOS所要求的是在规定的时间内做完应该做的事情,并且操作系统的行为(执行线索)是确定的,这是写出高可靠程序的基础。如果完成同样的动作,有的时候快,有的时候慢,且执行线索千差万别,程序员无法把握,可靠就无从。
嵌入式系统为什么对实时要求那么高呢?因为嵌入式系统主要是对仪器设备的动作进行监测控制的,而一般的桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作。相对而言,仪器设备的动作具有严格的、机械的时序要求,而人的动作和反应在时序上并不那么严格。比如,用于控制火发动机的嵌入式系统,它所发出的指令不仅要速度快,而且多个发动机之间的时序要求严格,否则就会差之毫厘、谬之千里。在这样的应用环境中,非实时的普通操作系统无论如何是无法适应的。
如果我们所开发的设备并不是像航空航天器那样生命攸关或者生产控制那样的关键任务系统,而是像消费电子类那样,即使出现错误也不会造成灾难后果的设备,那么实时(严格地讲是确定)是否还具有现实意义呢?答案是肯定的!设备的高可靠可以有效地降低维护成本;软件运行效率高也会降低对的要求,从而降低硬件成本。对于消费电子产品这类价格十分敏感的产品,实时、可靠仍然是值得重视的问题。
坚如磐石――可靠
桌面操作系统与RTOS相比,另一个差别就是对于稳定、可靠方面的设计思路。一方面,桌面操作系统比较庞大、复杂,而RTOS比较小巧、简捷,而“越简单、越可靠,越复杂、故障概率越大”这又是一个常理。另一方面,重要的是:桌面操作环境与嵌入式环境在设计思路上有一个重大的不同——桌面环境假定应用软件与操作系统相比而言可以是不可靠的,而嵌入式环境假定应用软件与操作系统一样可靠。
运行于嵌入式环境中的RTOS要求应用软件具有与操作系统同样的可靠,这种设计思路对应用开发提出了高的要求,同时也要求操作系统自身足够开放。
木桶原理”告诉我们,局部的不足会导致整体的缺陷。要系统的可靠,必须系统中每一个部分都是可靠的,任何部分的不可靠都会导致系统整体的不可靠。大多数桌面系统都是上千万行代码的庞大而复杂的系统,即使有源代码程序员也难以把握。而且对开发来说,桌面系统庞杂的细节是隐蔽在一个个的固定的接口下的,是一个黑箱,很难把握具体执行的线索。即便其内核是足够可靠的,但它的应用环境复杂多样、千差万别,其中常常有一些应用并不是那么稳定可靠,从而破坏了整体系统的可靠。相反,RTOS对软件开发来说是完全开放的,是一个白箱,允许开发清楚地了解和掌握操作系统内部情况,对存储器中的每一位和每一个I/O接口进行操作控制,从而可以设计出稳定的应用软件。
DS200TCCAF1BDE
DS200TCCAF1BDF
DS200TCCAG1A
DS200TCCAG1B
DS200TCCAG2A
DS200TCCAG2B
DS200TCCAP1BAD
DS200TCCBF1ACA
DS200TCCBF1ACB
DS200TCCBF1BDA
DS200TCCBF1BDB
DS200TCCBF1BDC
DS200TCCBF2BDA
DS200TCCBF3BAG
DS200TCCBF3BAJ
DS200TCCBG1A
DS200TCCBG1B
DS200TCCBG2A
DS200TCCBG2B
DS200TCCBG3A
DS200TCCBG6B
DS200TCCBG8B
DS200TCCBP1BAC
DS200TCCBP2BAB
DS200TCDAF1ACD
DS200TCDAF1ACE
DS200TCDAF1ACI
DS200TCDAF1ACL
DS200TCDAF1ACM
DS200TCDAF1ACN
DS200TCDAF1BCE
DS200TCDAF1BCI
DS200TCDAF1BCK
DS200TCDAF1BCM
DS200TCDAF1BCN
DS200TCDAH1B
DS200TCDAH1BGD
DS200TCDAH1B
DS200TCDAP1BCJ
DS200TCDAP1BCM
DS200TCEAF1ACH
DS200TCEAF1ACK
DS200TCEAF1ACM
DS200TCEAF1BDB
DS200TCEAF1BDC
DS200TCEAF1BDE
DS200TCEAF1BEA
DS200TCEAF1BEB
DS200TCEAF1BEC
DS200TCEAG1A
DS200TCEAG1B
DS200TCEAG2B
DS200TCEAP1BBC
DS200TCEAP1BBD
DS200TCEBG1A
DS200TCEBG1B
DS200TCPAF1AAB
DS200TCPAF1AAC
DS200TCPAF2AAB
DS200TCPAG1A
DS200TCPDG1A
DS200TCPDG1B
DS200TCPDG2B
DS200TCPDG3B
DS200TCPDG3BE
DS200TCPSG1A
DS200TCQAF1AEC
DS200TCQAF1AED
DS200TCQAF1AEE
DS200TCQAF1AFA
DS200TCQAF1AFB
DS200TCQAF1AFC
DS200TCQAF1AFE
DS200TCQAF1AFF
DS200TCQAF1BBC
DS200TCQAF1BBD
DS200TCQAF1BBE
DS200TCQAF1BBF
DS200TCQAF1BBK
DS200TCQAF1BBL
DS200TCQAG1A
DS200TCQAG1B
DS200TCQAG2B
DS200TCQAP1BAB
DS200TCQBF1ABG
DS200TCQBF1ABH
DS200TCQBF1ABI
DS200TCQBF1ABJ
DS200TCQBF1BAA
DS200TCQBF1BAC
DS200TCQBF1BAD
DS200TCQBF1BAE
DS200TCQBF2BAA
DS200TCQBG1A
DS200TCQBG1B
DS200TCQBG2A
DS200TCQBG2B
DS200TCQCG1A
DS200TCQCG1B
DS200TCQEF1ABB
DS200TCQEF2ABA
DS200TCQEG1A
DS200TCQEG2A
DS200TCQEP1ABB
DS200TCQEP2AAB
DS200TCQFF1AAA
DS200TCQFF1AAD
DS200TCQFG1A
DS200TCRAG1A
DS200TCRAG2A
DS200TCSAG1A
DS200TCTEG1A
DS200TCTGG1A
DS200TCTLG1A
DS200TCTSG1A
DS200TCTSG2A
DS200TCTSG3A
DS200TGDBG1A
DS200TMIAP1ACG
DS200TURCF1ACB
DS200TURQF1ACB
DS200TVCOG1A
DS200UCIAG1A
DS200UCIAG2A
DS200UCIAP1AAC
DS200UCIBG1A
DS200UCIBG3A
DS200UDSAG1A
DS200UPLAF1CAB
DS200UPLAF1CAC
DS200UPLAG1B
DS200UPSAG1A
DS200VPBLG1A
DS200XDSAG1A
DS2020ACHAG1
DS2020ACHAG2
DS2020ACHAG3
DS2020ACSAG1
DS2020ACSAG2
DS2020AGSAG1
DS2020ASDAG1
DS2020ASSAG2
DS2020BRCAG3
DS2020BRCBG1A
DS2020BRCBG2A
DS2020CMB0606C4D8D8E
DS2020DACAG1
DS2020DACAG2
DS2020DACAG2
DS2020ERCAG1
DS2020EXPMG2
DS2020EXPSG1
DS2020EXPSG3
DS2020EXTYG2
DS2020FEANRP020A
DS2020FEANRP025A
DS2020FEANRP050A
DS2020FEANRP075A
DS2020FEANRP150A
DS2020FEANRX050A
DS2020FEANRX075A
DS2020FEBNRP075A
DS2020FEBNRX015A
DS2020FEBNRX020A
DS2020FEBNRX025A
DS2020FEBNRX050A
DS2020FEBNRX075A
DS2020FECNRP005A
DS2020FECNRP010A
DS2020FECNRP015A
DS2020FECNRP020A
DS2020FECNRX001A
DS2020FECNRX005A
DS2020FECNRX010A
DS2020FECNRX015A
DS2020FECNRX020A
DS2020FEXAG4
DS2020FEXBG4
DS2020FFMAG1
DS2020FFMCG1
DS2020LPPA300A
DS2020LPPA340A
DS2020LPPB310A
DS2020LPPB312A
DS2020LRPBG1
DS2020LRPBG2
DS2020PDMAG1
DS2020PDMAG4
DS2020PDMAG5
DS2020PDMAG6
DS2020SVSAG2
DS2020UCOCN1G1A
DS2020UCOCN4G1A
DS213SPICNDEVCOM
DS215ADCIH1AZZ
DS215DCVAG2AZZ
DS215DKLAG1AZZ01A
DS215DMCAG2AZZ02A
DS215DMCBG1AZZ01A
DS215DMCBG1AZZ03A
DS215DMCBG1AZZ03B
DS215GGIAG1BZZ01A
DS215GGIAG1BZZ01B
DS215KLDCG1AZZ03A
DS215KLDCG1AZZ03B
DS215LRPAG1AZZ01A




