18.1实时系统与前后台系统
1. 实时系统 实时系统简称RTOS,能够运行多个任务,并且根据不同任务进行资源管理、任务调度、消息管理等工作,同时RTOS能够根据各个任务的优先级来进行任务调度,以达到保证实时性的要求。RTOS能够使CPU的利用率得到最大的发挥,并且可以使应用程序模块化,而在实时应用中,开发人员可以将复杂的应用程序层次化,这样代码更加容易设计与维护,比较常见的RTOS如ucos、VxWorks、freertos等,更譬如较高级的应用在手机上的操作系统主要有Palm OS、Symbian(塞班)、Windows mobile、Linux、Android(安卓)、iPhone(苹果)OS如图18.1-1、Black Berry(黑莓)OS 6.0、Windows Phone 7(自Windows Phone7出现后,Windows Mobile系列正式退出手机系统市场),这些系统都是一个实时性、多任务的纯32位操作系统 。 实时系统是任何必须在指定的有限时间内给出响应的系统。在这种系统中,时间起到重要的作用,系统成功与否不仅是看是否输出了逻辑上正确的结果,而且还要看它是否在指定时间内给出了这个结果。 按照对时间要求的严格程度,实时系统被划分为硬实时(hard real time)、固实时(firm real time)和软实时(soft real time)。硬实时系统是指系统响应绝对要求在指定的时间范围内。软实时系统中,及时响应也很重要,但是偶尔响应慢了也可以接受。而在固实时系统中,不能及时响应会造成服务质量的下降。 飞机的飞行控制系统是硬实时系统,因为一次不能及时响应很可能会造成严重后果。数据采集系统往往是软实时系统,偶尔不能及时响应可能会造成采集数据不准确,但是没有什么严重后果。VCD机控制器如果不及时播放画面,不会造成什么大的损失,但是可能用户会对产品质量失去信心,这样的系统可以算作固实时系统。 常见的实时系统通常由计算机通过传感器输入一些数据,对数据进行加工处理后,再控制一些物理设备做出响应的动作。比如冰箱的温度控制系统需要读入冰箱内的温度,决定是否需要继续或者停止温度。由于实时系统往往是大型工程项目的核心部分,控制部件通常嵌入在大的系统中,而控制程序则固化在ROM中,因此有时也被称作嵌入式系统(embedded system)。 实时系统需要响应的事件可以分为周期性(periodic)和非周期性的(aperiodic)的。比如空气检测系统每过100ms通过传感器读取一次数据,这是周期性的;而战斗机中的飞行控制系统需要面对各种突发事件的,属于非周期性的。 实时系统有以下特点: l 要和现实世界交互 这是实时系统区别于其他系统的一个显著特点。它往往要控制外部设备,使之及时响应外部事件。 比如生产车间的机器人,必须把零部件准确地组装起来。 l 系统庞大复杂 实时系统的复杂性不仅仅体现在代码的行数上,而且体现在需求的多样性。由于实时系统要和现实世 界打交道,而现实世界总是变化的,这会导致实时系统在生命周期里时常面对需求的变化,不得不作出相应的变化。 l 对可靠性和安全性的要求非常高 很多实时系统应用在十分重要的地方,有些甚至关系到生命安全。系统的失败会导致生命和财产的损失,这就要求实时系统有很高的可靠性和安全性。 l 并发性强 实时系统常常需要同时控制许多外围设备,例如,系统需要同时控制传感器、传送带和传感器等设备。多数情况下,利用微微控制器时间片分配给不同的进程,可以模拟并行。但是在系统对响应时间要求十分严格的情况下,分配时间片模拟的方法可能无法满足要求。这时,就得考虑使用多处理机系统。这就是为什么多处理机系统最早是在实时系统领域里繁荣起来的原因所在。 使用实时系统可以简化应用程序的设计: (1)操作系统的多任务和任务间通信的机制允许复杂的应用程序被分成一系列更小的和更多的可以管理的任务。 (2)程序的划分让软件测试更容易,团队工作分解,也有利于代码复用。 (3)复杂的定时和程序先后顺序的细节,可以从应用程序代码中删除。
|