一、实时操作系统定义
1.实时操作系统
实时操作系统(RTOS )是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM 的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
2.实时操作系统的特征
通常,实时操作系统必须有以下特征:
1)多任务;
2)有线程优先级
3)多种中断级别
小的嵌入式操作系统经常需要实时操作系统。内核要满足实时操作系统的要求。但其它部件,如设备驱动程序也是需要的,因此,一个实时操作系统常比内核大。
3.实时操作系统的分类及优缺点
∙ 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定
的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件
相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作, 为应用软件
提供良好的运行软件环境及开发环境。
从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统
和嵌入式实时操作系统。
1、一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时
性较弱的实时系统,并且提供了开发、调试、运用一致的环境。
2、嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程
序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。
优点:嵌入式实时操作系统具有规模小(一般在几K ~几十K 内) 、可固化使
用实时性强(在毫秒或微秒数量级上) 的特点 。在嵌入式实时操作系统环境下开
发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的
功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为
简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系
统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2~5%
的CPU 额外负荷,以及内核的费用。
4. 实时操作系统的评价指标
∙ RTOS 是操作系统研究的一个重要分支, 它与一般商用多任务OS 如Unix 、
Windows 、Multifinder 等有共同的一面, 也有不同的一面。对于商用多任务OS ,
其目的是方便用户管理计算机资源,追求系统资源最大利用率;而RTOS 追求的
是实时性、可确定性、可靠性。评价一个实时操作系统一般可以从任务调度、内
存管理、任务通讯、内存开销、任务切换时间、最大中断禁止时间等几个方面来
衡量。
1. 任务调度机制:
RTOS 的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调
度策略上来讲, 分优先级调度策略和时间片轮转调度策略;从调度方式上来讲,
分可抢占、不可抢占、选择可抢占调度方式;从时间片来看, 分固定与可变时间
片轮转。
2. 内存管理: 分实模式与保护模式。
3. 最小内存开销:
RTOS 的设计过程中, 最小内存开销是一个较重要的指标, 这是因为在工业控
制领域中的某些工控机(如上下位机控制系统中的下位机),由于基于降低
成本的考虑,其内存的配置一般都不大,例如康拓5000系列5185板,其基本内
存配置仅为256K SRAM +128K EPROM,而在这有限的空间内不仅要装载实时操作
系统,还要装载用户程序。因此,在RTOS 的设计中,其占用内存大小是一个很
重要的指标,这是RTOS 设计与其它操作系统设计的明显区别之一。
4. 最大中断禁止时间:
当RTOS 运行在核态或执行某些系统调用的时候,是不会因为外部中断的到
来而中断执行的。只有当RTOS 重新回到用户态时才响应外部中断请求,这一过
程所需的最大时间就是最大中断禁止时间。
5. 任务切换时间:
当由于某种原因使一个任务退出运行时,RTOS 保存它的运行现场信息、插
入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程
所需时间称为任务切换时间。
上述几项中, 最大中断禁止时间和任务切换时间是评价一个RTOS 实时性最
重要的两个技术指标
。
二、改善措施
对于一个好的操作系统,需要兼顾功能强大,用户易用性,可靠性,实时性,
可维护性, 很多时候最后的设计是这些要求达成的一个平衡,今天我们讨论如
何提高操作系统的实时性
实时分为软实时与硬实时, 软实时要求平均响应时间要小于某一个值,硬
实时要求最坏响应时间要小于某一个值,很多应用场景任务的实时要求非常高,
比如汽车防抱死系统,差10毫秒就是人命关天,时间就是生命。 电信中主管网
络损坏,需要在50毫秒之内倒换到备份网络之中,否则可能有成千上万个通话
中断, 损失重大, 至于航天系统,实时的重要性要求不言而喻。其他的系统,
如手机,太慢了用户感觉肯定不爽,不希望按接电话键2秒钟都没反应,那样对
方可能挂机了。
如何提高操作系统的实时性呢。
1. 缩短中断响应时间。为了获得对外部事件的及时响应,最小化硬件中断
发生到执行该中断的第一条代码的时间很重要。这个时间间隔称为中断延迟,为
了保证中断延迟尽可能小,一个好的RTOS 应该在几乎所有时间内都支持产生
中断。正如在关于内核抢占部分提到的那样,一些重要的代码段的确需要暂时屏
蔽中断。这种最大的屏蔽时间通常被定义为最大的中断延迟。
在某些情况下,硬件中断处理器必须调度并运行一个更高优先级的线程(例
如在一个驱动程序中) 。在这样的情况下,中断处理器将返回并指示一个事件将
被处理。这样的处理将引入了第二种形式的延迟-调度延迟,这个延时必须在设
计中加以考虑。调度延迟是介于用户的中断处理器的最后一条指令和驱动程序线
程第一条指令的执行之间的时间。
在一个嵌入式系统中可能会同时出现多个硬件中断。例如,在一个病人监护
系统中,当一个传感器记录了病人心跳的一次变化并且网卡接收到网络传来的数
据的同时,护士按了触摸屏。很明显,一些中断(如心率的变化) 应该立即得到处
理,而其他的则可以延缓。通过提供对嵌套中断的支持,RTOS 支持嵌入式系统
优先处理更高优先级的中断。
几乎所有的实时事件都是通过中断上报的,当中断来临时,我们必须停止当
前的一切任务,响应中断,我们把中断分成两部分:上半部分与下半部分,或者
快中断部分与慢中断部分。上半部分屏蔽其他中断,处理那些紧急任务,如清除
某些寄存器,保存中断现场,给相应进程发送消息等, 其他不太紧急的部分放
在下半部分,此时所有中断打开,不影响其他任务的完成。
2. 缩短进程上下文切换时间。当CPU 在执行某个任务时,实时任务到来,
需要马上执行实时任务,我们不能等到当前任务时间片用完才去执行实时任务,
那样黄花菜都凉了,必须在中断来临之时马上能过切换过去,保存当前进程的上
下文如寄存器,内存文件,信号等上下文,恢复实时任务的上下文。保存恢复上
下文越快越好,这就要求两个进程的上下文共享的资源越少越好,如每个任务的
内存是独立的,甚至寄存器也是独立的,这样互不干扰,切换最快了。
3. 优先级。然而,为一个进程设定一个高优先级并不总能保证该进程能够
抢占低优先级的进程。有时候,系统会出现一种称为优先级倒置(priority inversion)
的状态,在这种状态下,低优先级的进程将在“无意中”阻止较高优先级进程占用
CPU 。优先级倒置可能会表现为几种形式,为了防止发生这种情况,RTOS 必
须提供一种称为优先级继承的功能。
假定系统有三个进程:A(低优先级) ,B(中等优先级) ,Z(高优先级) 。这里Z
是一个为A 和B 提供服务的“服务器”进程。
现在假定A 已经请求Z 来执行一个计算,而在这期间,突然B 需要Z 的服
务。因为B 拥有比A 更高的优先级,一般会认为Z 将立即挂起A 的请求并将转
向为B 服务。但是实际情况并非如此,因为Z 比B 具有更高的优先级。其结果
是,B 不能阻止Z 完成它当前的工作,即对A 做出响应。
从效果上看,低优先级的进程A 占用了更高优先级进程B 的CPU 时间,这
是引入优先级继承的原因。通过使用RTOS 提供的优先级继承机制,系统可以在
A 发出请求的情况下,让Z 继承A 的低优先级。通过这种方式,B 能够在任何时候抢占A
的请求。
如果一个应用程序分布于几个通过网络连接的处理器,那么RTOS 也应该支持分布式
优先级继承,这样可以按照优先级的顺序处理来自多个处理器的请求。如果没有优先级继承,
一个多处理器系统可能会落入无限的优先级倒置和死锁中。
4. 缩短进程资源分配等待时间。对于一个多进程操作系统,很多资源是大
家共享的,如果实时进程需要某个资源,发现那个资源被别的低优先级进程占用,
非要等人家执行完才行,而此低优先级进程级别实在太低,其它的进程趁机抢占
了CPU , 导致这个低优先级进程迟迟得不到执行,连累苦了我们的实时进程。这
样就造成了优先级的反转, 解决优先级反转也有很多办法:主要有优先级继承
与优先级极限两种, 原理都相同:此时迅速提高占有资源的低优先级进程的优
先级,使其优先级至少与等待资源的实时进程相同。
5. 以空间换时间,减少资源的延迟分配。减少虚资源的分配, 要给就给
实的,甚至可以预分配资源。通常进程创建时得到的内存都是虚的,适用malloc
得到的资源也是虚拟内存,真正的内存只有当你读些到这个页时才分配,先产生
缺页中断,在缺页中断里调用物理页面分配函数,不过这需要一定的时间,硬实
时任务是等不及的,所以开始不能跟他玩虚的,狠狠心,开始就把它需要的物理
资源备好,所以如果需要寄存器就不要拿Cache 敷衍,
如果需要Cache 就不要拿内存敷衍,如果需要内存就不要拿硬盘
空间敷衍, 传统的以时间换空间的方法在这儿行不通的。在价格能够承受的情
况下,尽量分配多级存贮系统的高速部分。
6. 尽量使操作系统简单,甚至定制。为了实时性,我们不得不牺牲他的其
他功能,也减少用户易用性,如去掉图形界面部分,去掉虚拟内存管理,甚至去
掉多进程,专注于一个任务效率当然最高, 理论证明,如果有多个实时任务,
要保证他们都不会 miss deadline, 流出来的缓冲时间至少要达到30%, 这里还
没考虑到上下文切换时间,实际需要的缓冲时间更多。
当前实时操作系统有DOS, Windows mobile, Windows CE, VxWorks, 各种
实时Linux , Qnux等。 我国我们的通用操作系统要考虑到实时性,必须在其设
计的时候考虑到可裁减性,可配置性,这样到实时场合下,可以很方便的抛弃一
切不必要的负担,全身的投入到实时任务之中。而这不是一个简单的要求。
7. 采用微内核(mricokernel)架构来提供更精确的故障隔离。像QNX
Neutrino 这样的操作系统都基于微内核架构。微内核有两个明确的特征:
1. 在操作系统内核中只实现了一个包含了基本OS 服务的小内核(如信号
量、定时器、任务调度等) 。包括驱动程序、文件系统、协议栈和用户应用程序
在内的所有其它的组件在内核外部分离的、保护内存的进程中运行。有问题的系
统服务不再作为孤立的故障点,而是在它破坏其它服务或操作系统内核之前被终
止并重启。
2. 所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障
了程序在保持彼此安全隔离的前提下进行数据交换。适当实现的消息传递也可以
作为一个虚拟的“软件总线”,允许几乎任何的软件组件,甚至是一个设备驱动程
序被动态地加入或替换,对于必须提供连续服务的系统而言这是一项关键要求。 和传统的操作系统架构相比,微内核支持嵌入式设备赢得明显更快的平均修复时
间(MTTR)。例如,如果一个设备驱动程序失败将可能出现以下情况:操作系统
可以终止该驱动程序,回收其正在使用的资源,并对其进行重新启动,这个过程
通常这只需要几个毫秒时间。
三、小结
计算机控制技术是一门跨学科以及应用性、技术性、综合性都很强的专业技术
课程,要求具备较强的专业基础知识,同时,要求掌握计算机控制系统的控制原
理和分析设计方法,具备基本的设计技能,能够设计出简单的计算机控制系统。
所以我们我们不能只是明白或弄懂课本上的知识,我们要在弄懂课本知识的基础
上,阅览计算机控制方面的课外读物开阔我们的知识面。
四、参考文献:
[1]于海生. 《计算机控制技术》[M].机械工业出版社,2007
[2]王锦标 《计算机控制技术》[M].清华大学出版社,2004
[3]许勇. 《计算机控制技术》[M]. 机械工业出版社,2008
[4]顾德英. 《计算机控制技术与系统》[M]. 北京邮电大学出版社,2009
[5]李伟 《计算机控制系统》[M]. 清华大学出版社,,1998
一、实时操作系统定义
1.实时操作系统
实时操作系统(RTOS )是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM 的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
2.实时操作系统的特征
通常,实时操作系统必须有以下特征:
1)多任务;
2)有线程优先级
3)多种中断级别
小的嵌入式操作系统经常需要实时操作系统。内核要满足实时操作系统的要求。但其它部件,如设备驱动程序也是需要的,因此,一个实时操作系统常比内核大。
3.实时操作系统的分类及优缺点
∙ 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定
的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件
相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作, 为应用软件
提供良好的运行软件环境及开发环境。
从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统
和嵌入式实时操作系统。
1、一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时
性较弱的实时系统,并且提供了开发、调试、运用一致的环境。
2、嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程
序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。
优点:嵌入式实时操作系统具有规模小(一般在几K ~几十K 内) 、可固化使
用实时性强(在毫秒或微秒数量级上) 的特点 。在嵌入式实时操作系统环境下开
发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的
功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为
简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系
统服务,嵌入式实时操作系统使得系统资源得到更好的利用。
缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2~5%
的CPU 额外负荷,以及内核的费用。
4. 实时操作系统的评价指标
∙ RTOS 是操作系统研究的一个重要分支, 它与一般商用多任务OS 如Unix 、
Windows 、Multifinder 等有共同的一面, 也有不同的一面。对于商用多任务OS ,
其目的是方便用户管理计算机资源,追求系统资源最大利用率;而RTOS 追求的
是实时性、可确定性、可靠性。评价一个实时操作系统一般可以从任务调度、内
存管理、任务通讯、内存开销、任务切换时间、最大中断禁止时间等几个方面来
衡量。
1. 任务调度机制:
RTOS 的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调
度策略上来讲, 分优先级调度策略和时间片轮转调度策略;从调度方式上来讲,
分可抢占、不可抢占、选择可抢占调度方式;从时间片来看, 分固定与可变时间
片轮转。
2. 内存管理: 分实模式与保护模式。
3. 最小内存开销:
RTOS 的设计过程中, 最小内存开销是一个较重要的指标, 这是因为在工业控
制领域中的某些工控机(如上下位机控制系统中的下位机),由于基于降低
成本的考虑,其内存的配置一般都不大,例如康拓5000系列5185板,其基本内
存配置仅为256K SRAM +128K EPROM,而在这有限的空间内不仅要装载实时操作
系统,还要装载用户程序。因此,在RTOS 的设计中,其占用内存大小是一个很
重要的指标,这是RTOS 设计与其它操作系统设计的明显区别之一。
4. 最大中断禁止时间:
当RTOS 运行在核态或执行某些系统调用的时候,是不会因为外部中断的到
来而中断执行的。只有当RTOS 重新回到用户态时才响应外部中断请求,这一过
程所需的最大时间就是最大中断禁止时间。
5. 任务切换时间:
当由于某种原因使一个任务退出运行时,RTOS 保存它的运行现场信息、插
入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程
所需时间称为任务切换时间。
上述几项中, 最大中断禁止时间和任务切换时间是评价一个RTOS 实时性最
重要的两个技术指标
。
二、改善措施
对于一个好的操作系统,需要兼顾功能强大,用户易用性,可靠性,实时性,
可维护性, 很多时候最后的设计是这些要求达成的一个平衡,今天我们讨论如
何提高操作系统的实时性
实时分为软实时与硬实时, 软实时要求平均响应时间要小于某一个值,硬
实时要求最坏响应时间要小于某一个值,很多应用场景任务的实时要求非常高,
比如汽车防抱死系统,差10毫秒就是人命关天,时间就是生命。 电信中主管网
络损坏,需要在50毫秒之内倒换到备份网络之中,否则可能有成千上万个通话
中断, 损失重大, 至于航天系统,实时的重要性要求不言而喻。其他的系统,
如手机,太慢了用户感觉肯定不爽,不希望按接电话键2秒钟都没反应,那样对
方可能挂机了。
如何提高操作系统的实时性呢。
1. 缩短中断响应时间。为了获得对外部事件的及时响应,最小化硬件中断
发生到执行该中断的第一条代码的时间很重要。这个时间间隔称为中断延迟,为
了保证中断延迟尽可能小,一个好的RTOS 应该在几乎所有时间内都支持产生
中断。正如在关于内核抢占部分提到的那样,一些重要的代码段的确需要暂时屏
蔽中断。这种最大的屏蔽时间通常被定义为最大的中断延迟。
在某些情况下,硬件中断处理器必须调度并运行一个更高优先级的线程(例
如在一个驱动程序中) 。在这样的情况下,中断处理器将返回并指示一个事件将
被处理。这样的处理将引入了第二种形式的延迟-调度延迟,这个延时必须在设
计中加以考虑。调度延迟是介于用户的中断处理器的最后一条指令和驱动程序线
程第一条指令的执行之间的时间。
在一个嵌入式系统中可能会同时出现多个硬件中断。例如,在一个病人监护
系统中,当一个传感器记录了病人心跳的一次变化并且网卡接收到网络传来的数
据的同时,护士按了触摸屏。很明显,一些中断(如心率的变化) 应该立即得到处
理,而其他的则可以延缓。通过提供对嵌套中断的支持,RTOS 支持嵌入式系统
优先处理更高优先级的中断。
几乎所有的实时事件都是通过中断上报的,当中断来临时,我们必须停止当
前的一切任务,响应中断,我们把中断分成两部分:上半部分与下半部分,或者
快中断部分与慢中断部分。上半部分屏蔽其他中断,处理那些紧急任务,如清除
某些寄存器,保存中断现场,给相应进程发送消息等, 其他不太紧急的部分放
在下半部分,此时所有中断打开,不影响其他任务的完成。
2. 缩短进程上下文切换时间。当CPU 在执行某个任务时,实时任务到来,
需要马上执行实时任务,我们不能等到当前任务时间片用完才去执行实时任务,
那样黄花菜都凉了,必须在中断来临之时马上能过切换过去,保存当前进程的上
下文如寄存器,内存文件,信号等上下文,恢复实时任务的上下文。保存恢复上
下文越快越好,这就要求两个进程的上下文共享的资源越少越好,如每个任务的
内存是独立的,甚至寄存器也是独立的,这样互不干扰,切换最快了。
3. 优先级。然而,为一个进程设定一个高优先级并不总能保证该进程能够
抢占低优先级的进程。有时候,系统会出现一种称为优先级倒置(priority inversion)
的状态,在这种状态下,低优先级的进程将在“无意中”阻止较高优先级进程占用
CPU 。优先级倒置可能会表现为几种形式,为了防止发生这种情况,RTOS 必
须提供一种称为优先级继承的功能。
假定系统有三个进程:A(低优先级) ,B(中等优先级) ,Z(高优先级) 。这里Z
是一个为A 和B 提供服务的“服务器”进程。
现在假定A 已经请求Z 来执行一个计算,而在这期间,突然B 需要Z 的服
务。因为B 拥有比A 更高的优先级,一般会认为Z 将立即挂起A 的请求并将转
向为B 服务。但是实际情况并非如此,因为Z 比B 具有更高的优先级。其结果
是,B 不能阻止Z 完成它当前的工作,即对A 做出响应。
从效果上看,低优先级的进程A 占用了更高优先级进程B 的CPU 时间,这
是引入优先级继承的原因。通过使用RTOS 提供的优先级继承机制,系统可以在
A 发出请求的情况下,让Z 继承A 的低优先级。通过这种方式,B 能够在任何时候抢占A
的请求。
如果一个应用程序分布于几个通过网络连接的处理器,那么RTOS 也应该支持分布式
优先级继承,这样可以按照优先级的顺序处理来自多个处理器的请求。如果没有优先级继承,
一个多处理器系统可能会落入无限的优先级倒置和死锁中。
4. 缩短进程资源分配等待时间。对于一个多进程操作系统,很多资源是大
家共享的,如果实时进程需要某个资源,发现那个资源被别的低优先级进程占用,
非要等人家执行完才行,而此低优先级进程级别实在太低,其它的进程趁机抢占
了CPU , 导致这个低优先级进程迟迟得不到执行,连累苦了我们的实时进程。这
样就造成了优先级的反转, 解决优先级反转也有很多办法:主要有优先级继承
与优先级极限两种, 原理都相同:此时迅速提高占有资源的低优先级进程的优
先级,使其优先级至少与等待资源的实时进程相同。
5. 以空间换时间,减少资源的延迟分配。减少虚资源的分配, 要给就给
实的,甚至可以预分配资源。通常进程创建时得到的内存都是虚的,适用malloc
得到的资源也是虚拟内存,真正的内存只有当你读些到这个页时才分配,先产生
缺页中断,在缺页中断里调用物理页面分配函数,不过这需要一定的时间,硬实
时任务是等不及的,所以开始不能跟他玩虚的,狠狠心,开始就把它需要的物理
资源备好,所以如果需要寄存器就不要拿Cache 敷衍,
如果需要Cache 就不要拿内存敷衍,如果需要内存就不要拿硬盘
空间敷衍, 传统的以时间换空间的方法在这儿行不通的。在价格能够承受的情
况下,尽量分配多级存贮系统的高速部分。
6. 尽量使操作系统简单,甚至定制。为了实时性,我们不得不牺牲他的其
他功能,也减少用户易用性,如去掉图形界面部分,去掉虚拟内存管理,甚至去
掉多进程,专注于一个任务效率当然最高, 理论证明,如果有多个实时任务,
要保证他们都不会 miss deadline, 流出来的缓冲时间至少要达到30%, 这里还
没考虑到上下文切换时间,实际需要的缓冲时间更多。
当前实时操作系统有DOS, Windows mobile, Windows CE, VxWorks, 各种
实时Linux , Qnux等。 我国我们的通用操作系统要考虑到实时性,必须在其设
计的时候考虑到可裁减性,可配置性,这样到实时场合下,可以很方便的抛弃一
切不必要的负担,全身的投入到实时任务之中。而这不是一个简单的要求。
7. 采用微内核(mricokernel)架构来提供更精确的故障隔离。像QNX
Neutrino 这样的操作系统都基于微内核架构。微内核有两个明确的特征:
1. 在操作系统内核中只实现了一个包含了基本OS 服务的小内核(如信号
量、定时器、任务调度等) 。包括驱动程序、文件系统、协议栈和用户应用程序
在内的所有其它的组件在内核外部分离的、保护内存的进程中运行。有问题的系
统服务不再作为孤立的故障点,而是在它破坏其它服务或操作系统内核之前被终
止并重启。
2. 所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障
了程序在保持彼此安全隔离的前提下进行数据交换。适当实现的消息传递也可以
作为一个虚拟的“软件总线”,允许几乎任何的软件组件,甚至是一个设备驱动程
序被动态地加入或替换,对于必须提供连续服务的系统而言这是一项关键要求。 和传统的操作系统架构相比,微内核支持嵌入式设备赢得明显更快的平均修复时
间(MTTR)。例如,如果一个设备驱动程序失败将可能出现以下情况:操作系统
可以终止该驱动程序,回收其正在使用的资源,并对其进行重新启动,这个过程
通常这只需要几个毫秒时间。
三、小结
计算机控制技术是一门跨学科以及应用性、技术性、综合性都很强的专业技术
课程,要求具备较强的专业基础知识,同时,要求掌握计算机控制系统的控制原
理和分析设计方法,具备基本的设计技能,能够设计出简单的计算机控制系统。
所以我们我们不能只是明白或弄懂课本上的知识,我们要在弄懂课本知识的基础
上,阅览计算机控制方面的课外读物开阔我们的知识面。
四、参考文献:
[1]于海生. 《计算机控制技术》[M].机械工业出版社,2007
[2]王锦标 《计算机控制技术》[M].清华大学出版社,2004
[3]许勇. 《计算机控制技术》[M]. 机械工业出版社,2008
[4]顾德英. 《计算机控制技术与系统》[M]. 北京邮电大学出版社,2009
[5]李伟 《计算机控制系统》[M]. 清华大学出版社,,1998