实时操作系统与通用操作系统的一些比较(转载)

实时操作系统与通用操作系统的一些比较
邵祖铭
嵌入式(注1)实时系统(注2)中采用的操作系统称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源、占用、低功耗等特点;而作为一种实时操作系
统,它与通用操作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们通过比较这两种操作系统之间的差距来描述实时操作系统的主要特点。
最常用的操作系统是通用操作系统, 通用操作系统是由分时操作系统发展而来,大部分都支持多用户和多进程,负责管理众多的进程并为它们分配系统资源。分时操作系统的基本设计原则是:尽量缩短 系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。 如对于整个系统来说,注重所有任务的平均响应时间而不关心单个任务的响应时间,对于单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应 时间。通用操作系统中采用的很多策略和技巧都体现出了这种设计原则,如虚存管理机制中由于采用LRU等页替换算法,使得大部分的访存需求能够快速地通过物 理内存完成,只有很小一部分的访存需求需要通过调页完成,但从总体上来看,平均访存时间与不采用虚存技术相比没有很大的提高,同时又获得了虚空间可以远大 于物理内存容量等好处,因此虚存技术在通用操作系统中得到了十分广泛的应用。
而对于实时操作系统, 前面已经提到,它除了要满足应用的功能需求以外,更重要的是还要满足应用提出的实时性要求,而组成一个应用的众多实时任务对于实时性的要求是各不相同的, 此外实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等,这就为系统实时性的保证带来了很大的困难。因此,实时 操作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性。可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统 的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用操作系统 不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现,更准确地讲是个体最坏情况表现。
由于实时操作系统与通用操作系统的基本设计原则差别很大,因此在很多资源调度策略的选择上以及操作系统实现的方法上两者都具有较大的差异,这些差异主要体现在以下几点:
(1)任务调度策略:
通用操作系统中的任务调度策略一般采用基于优先级的抢先式调度策略,对于优先级相同的进程则采用时间片轮转调度方式,用户进程可以通过系统调用动态地调整自己的优先级,操作系统可根据情况调整某些进程的优先级。
实时操作系统中的任务调度策略目前使用最广泛的主要可分为两种,一种是静态表驱动方式,另一种是固定优先级抢先式调度方式。
静态表驱动方式是指在系统运行前工程师根据各任务的实时要求用手工的方式或在辅助工具的帮助下生成一张任务的运行时间表,这张时间表与列车的运行时刻表类似,指明了各任务的起始运行时间以及运行长度,运行时间表一旦生成就不再变化了,在运行时调度器只需根据这张表在指定的时刻启动相应的任务理即可。静态表驱动方式的主要优点是:
?运行时间表是在系统运行前生成的,因此可以采用较复杂的搜索算法找到较优的调度方案:1
?运行时调度器开销较小;?系统具有非常好的可预测性,实时性验证也比较方便;
这种方式主要缺点是不灵活,需求一旦发生变化,就要重新生成整个运行时量间表。由于具有非常好的可预测性,这种方式主要用于航空航天、军事等对系统的实时性要求十分严格的领域。
固定优先级抢先式调度方式则与通用操作系统中采用的基于优先级的调度方式基本类似, 但在固定优先级抢先式调度方方式中,进程的优先级是固定不变革的,并且该优先级是在运行前通过某种优先级分配策略来指定的。这种方式的优缺点与静太表驱动 方式的优缺点正好完全相反,它主要应用于一些较简单、较独立的嵌入式系统,但随着调度理论的不断成熟和完善,这种方式也会逐渐在一些对实时性要求十分严格 的领域中得到应用。目前市场上大部分的实时操作系统采用的都是这种调度方式。
(2)内存管理:
关于虚存管理机制在上面已经进行了一些分析。为解决虚存给系统带来的不可预测性,实时操作系统一般采用如下两种方式:
?在原有虚存管理机制的基础上增加页面锁功能,用户可将关键页面锁定在内存中,从而不会被swap程序将该页面交换出内存。这种方式的优点是既得到了虚存管理机制为软件开发带来的好处,又提高了系统的可预测性。缺点是由于TLB等机制的也是按照注重平均表现的原则进行的,因此系统的可预测性并不能完全得到保障;
?采用静态内存划分的方式,为每个实时任务划分固定的内存区域。这种方式的优点是系统具有较好的可预测性,缺点是灵活性不够好,任务对存储器的需求一旦有变化就需要重新对内存进行划分,此外虚存管理机制所带来的好处也丧失了。
目前市场上的实时操作系统一般都采用第一种管理方式。

posted on 2008-05-05 10:44  dqshll  阅读(329)  评论(1)    收藏  举报

导航