实时操作系统应具备的功能

1、异步的事件响应

  为了能在系统要求的时间内响应异步的外部事件,要求其具备异步IO和中断处理能力。IO响应常受到内存访问、硬盘访问和处理机总线的速度限制。

  异步事件响应是一种允许设备在阻塞等待一个任务的同时可以执行其他任务的能力。

  实现异步操作的一种方法:事件循环机制(Evevt Loop),可以从IO复用中抽象出事件循环(同时关注多个任务),而最简单的事件循环就是使用回调。从而可以看出具有异步IO的能力就相当于具有了事件循环的能力,也可以通过中断处理去设置一些任务就绪或挂起状态,或处理一些任务。

 图 1

2、切换上下文时间和中断延迟时间确定

  切换上下文:

  保存当前运行的任务的状态(从CPU寄存器到当前任务的栈空间)(称作现场保护),然后从即将运行的任务的栈空间复制相应的数据到CPU的寄存器并运行。

  切换上下文所需的时间取决于有多少寄存器要入栈。

  中断延迟时间:

  从中断发生开始到中断处理函数执行的第一条指令的这段时间。也就是MCU收到中断信号到系统响应并且切换到中断处理程序的这段时间。

3、具有优先级的中断和任务

  允许用户定义中断和任务的优先级,并且可以指定中断服务程序。

 图 2

4、抢占式调度

  为保证响应时间,允许已经就绪的高优先级任务立即抢占CPU运行。若多个任务同时就绪优先执行优先级较高的任务。

 图 3

5、内存锁定

  具有将进程或一段程序锁定在内存的能力,防止这段内存的数据被交换到磁盘上,这样可以减少切换上下文访问磁盘的时间,保证快速响应时间。

6、连续文件

  提供存取磁盘数据的优化方法,使得存取数据查询时间最少,通常是使用连续文件。

  连续文件是一种将文件中的数据存储在一片连续的磁盘(或其他存储介质)空间中,一些文件系统会将文件中的数据分别存储在不同能块(或扇区),而这些块可能在物理上不是严格连续的,这就造成了在存取数据时查找存储文件数据的块时会造成时间的浪费,所以实时系统要求以连续文件的方式存储数据。

图 4

 图中file1和file3属于连续文件,file2属于离散文件。

7、同步

  提供同步和协调共享数据使用和时间执行的手段(信号量、互斥锁、消息队列等方式)。

  其中包括任务同步(信号量、互斥锁、消息队列)、事件同步(可抢占优先级)、中断同步(开关中断、中断嵌套)、时钟同步(SystemTime)、数据同步(防止访问冲突、数据不一致)。

 

posted on 2024-01-18 14:40  _燃灯续昼  阅读(51)  评论(0编辑  收藏  举报

导航