RTOS调度器的软硬件实现
发布时间:2008/6/3 0:00:00 访问次数:611
引言
实时操作系统(rtos),在整个嵌入式系统中扮演着十分重要的角色,它就像人的大脑支配人的行为一样,控制着整个系统的工作与运转,一个rtos性能的优劣将对整个系统的性能产生直接的影响。衡量一个rtos的好坏有多种标准,实时性则为一个关键指标,并且随着实时操作系统实际运用的加深及拓广,对rtos提出了更加严格的要求。在系统限定时间内响应处理外部事件已经成为了对rtos的一个基本要求。
任务调度,是rtos的核心所在,任务间的通信、外部事件的处理以及中断处理等都离不开任务调度的参与。而且随着系统功能的完善与增强,任务间的关系变得更加复杂,需要与更多的外围设备打交道,这就需要任务调度不断地参与其中,从而导致系统性能的急剧下降、对事件实时响应能力的降低。任务调度则成为了rtos性能的瓶颈,提高rtos的整体性能则首先应当从提高任务调度的性能着手。将任务调度硬件化,无疑可以提升任务调度的性能,从而提高整个rtos的性能。本文讨论了三种任务调度的实现方法,分别为:软件调度器模型、协处理器调度模型、硬件调度器模型,并在文章最后对其性能进行了测试。测试结果表明,硬件调度器模型具有良好的性能,相对协处理器方式需要更少的硬件实现逻辑单元。
系统功能的增强,使得任务间的调度以及任务之间的通信变得更加复杂,必将导致系统性能急剧降低。而且,随着系统不断完善,在实时嵌入式系统中,计算结果的正确性已经不再是整个系统追求的目标,而实时性则成为整个系统面对的首要难题。如果将rtos的调度功能由原来的纯软件实现转变为硬件实现,将极大的提高实时系统的实时性以及处理能力。
设计与实现
逻辑时序关系
图1是操作系统以及应用程序都由单cpu运行的逻辑时序图。由时序图可以看出,在单cpu运行rtos以及应用程序条件下,cpu不断地在rtos内核以及应用程序之间切换。即使在没有外部中断的情况下,cpu的运行都将在确定的时刻执行任务调度程序(由系统时钟触发),例如t2、t4、t6等时刻。每次的任务调度都至少执行以下四步操作:(1) 当前任务上下文内容的保存;(2) 操作系统内核态的恢复;(3) 操作系统内核态信息保存;(4) 新任务上下文内容恢复。即便调度前后,例如t1与t3时刻,cpu执行相同的任务,也同样要执行上述的四步操作。很明显,这样的操作浪费了大量的cpu处理时间,执行了大量的无谓的内容保存工作。
ti为第i个任务运行时间; cs+os为任务上下文转换时间以及rtos所占用时间;int中断服务程序时间;c st 为当前任务上下文内容保存时间; cr rtos 为操作系统上下文恢复时间;rtos为操作系统运行内核程序以及调度时间; cs rtos 操作系统上下文保存时间; cr t 调度后新任务上下文恢复时间。
图2为协处理器运行调度程序,而应用程序由主cpu运行,这样调度程序和应用程序在时间上为并行执行。当主cpu需要进行任务调度时,将会引发中断,通知协处理器。在完成中断处理以及任务上下文保存与恢复之后,主cpu 继续执行新的任务,这样去除了rtos进出内核态的上下文保存时间,无疑可以提升rtos的整体性能。
设计实现
在上文中,已经提到,将rtos的调度以三种方式进行实现,分别为纯软件实现、协处理器实现以及纯硬件实现。
为了实现这三种调度方法,采用了xilinx公司的virtex-ii pro系列的 xc2vp30 芯片,软件平台为edk(embeded development kit)功能以及时序仿真采用modelsim软件。cpu采用edk提供的microblaze处理器模型,并集成64k的sram以及1m的flash建立一个最小的核心系统,作为该调度算法的核心硬件平台。microblaze为32位的哈佛结构的处理器,采用risc指令集,为便于计算,设置其工作频率为50mhz。
1.软件调度模型实现
软件调度模型系统由以下几部分组成:1)microblaze处理器;2)ram存储区;3)片上总线;4)中断以及时间控制模块;5)监控模块;6)uart接口。microblaze处理器用于运行rtos以及应用程序。应用程序的执行具有周期性的特点,而外部的中断则将打断这种周期性具有突发性的特点。microblaze需实时处理两种不同类型的事件,这与实际应用情况相符合。监控模块是在edk中一个特定模型的实现,用于监控外部单元与主cpu的通信过程(以中断方式或者轮询方式)。监控模块具有两个特定功能,获取当前系统时间以及向cpu发送中断信号。最后,将实测的调度时间数据通过uart接口发送至上位机
引言
实时操作系统(rtos),在整个嵌入式系统中扮演着十分重要的角色,它就像人的大脑支配人的行为一样,控制着整个系统的工作与运转,一个rtos性能的优劣将对整个系统的性能产生直接的影响。衡量一个rtos的好坏有多种标准,实时性则为一个关键指标,并且随着实时操作系统实际运用的加深及拓广,对rtos提出了更加严格的要求。在系统限定时间内响应处理外部事件已经成为了对rtos的一个基本要求。
任务调度,是rtos的核心所在,任务间的通信、外部事件的处理以及中断处理等都离不开任务调度的参与。而且随着系统功能的完善与增强,任务间的关系变得更加复杂,需要与更多的外围设备打交道,这就需要任务调度不断地参与其中,从而导致系统性能的急剧下降、对事件实时响应能力的降低。任务调度则成为了rtos性能的瓶颈,提高rtos的整体性能则首先应当从提高任务调度的性能着手。将任务调度硬件化,无疑可以提升任务调度的性能,从而提高整个rtos的性能。本文讨论了三种任务调度的实现方法,分别为:软件调度器模型、协处理器调度模型、硬件调度器模型,并在文章最后对其性能进行了测试。测试结果表明,硬件调度器模型具有良好的性能,相对协处理器方式需要更少的硬件实现逻辑单元。
系统功能的增强,使得任务间的调度以及任务之间的通信变得更加复杂,必将导致系统性能急剧降低。而且,随着系统不断完善,在实时嵌入式系统中,计算结果的正确性已经不再是整个系统追求的目标,而实时性则成为整个系统面对的首要难题。如果将rtos的调度功能由原来的纯软件实现转变为硬件实现,将极大的提高实时系统的实时性以及处理能力。
设计与实现
逻辑时序关系
图1是操作系统以及应用程序都由单cpu运行的逻辑时序图。由时序图可以看出,在单cpu运行rtos以及应用程序条件下,cpu不断地在rtos内核以及应用程序之间切换。即使在没有外部中断的情况下,cpu的运行都将在确定的时刻执行任务调度程序(由系统时钟触发),例如t2、t4、t6等时刻。每次的任务调度都至少执行以下四步操作:(1) 当前任务上下文内容的保存;(2) 操作系统内核态的恢复;(3) 操作系统内核态信息保存;(4) 新任务上下文内容恢复。即便调度前后,例如t1与t3时刻,cpu执行相同的任务,也同样要执行上述的四步操作。很明显,这样的操作浪费了大量的cpu处理时间,执行了大量的无谓的内容保存工作。
ti为第i个任务运行时间; cs+os为任务上下文转换时间以及rtos所占用时间;int中断服务程序时间;c st 为当前任务上下文内容保存时间; cr rtos 为操作系统上下文恢复时间;rtos为操作系统运行内核程序以及调度时间; cs rtos 操作系统上下文保存时间; cr t 调度后新任务上下文恢复时间。
图2为协处理器运行调度程序,而应用程序由主cpu运行,这样调度程序和应用程序在时间上为并行执行。当主cpu需要进行任务调度时,将会引发中断,通知协处理器。在完成中断处理以及任务上下文保存与恢复之后,主cpu 继续执行新的任务,这样去除了rtos进出内核态的上下文保存时间,无疑可以提升rtos的整体性能。
设计实现
在上文中,已经提到,将rtos的调度以三种方式进行实现,分别为纯软件实现、协处理器实现以及纯硬件实现。
为了实现这三种调度方法,采用了xilinx公司的virtex-ii pro系列的 xc2vp30 芯片,软件平台为edk(embeded development kit)功能以及时序仿真采用modelsim软件。cpu采用edk提供的microblaze处理器模型,并集成64k的sram以及1m的flash建立一个最小的核心系统,作为该调度算法的核心硬件平台。microblaze为32位的哈佛结构的处理器,采用risc指令集,为便于计算,设置其工作频率为50mhz。
1.软件调度模型实现
软件调度模型系统由以下几部分组成:1)microblaze处理器;2)ram存储区;3)片上总线;4)中断以及时间控制模块;5)监控模块;6)uart接口。microblaze处理器用于运行rtos以及应用程序。应用程序的执行具有周期性的特点,而外部的中断则将打断这种周期性具有突发性的特点。microblaze需实时处理两种不同类型的事件,这与实际应用情况相符合。监控模块是在edk中一个特定模型的实现,用于监控外部单元与主cpu的通信过程(以中断方式或者轮询方式)。监控模块具有两个特定功能,获取当前系统时间以及向cpu发送中断信号。最后,将实测的调度时间数据通过uart接口发送至上位机
热门点击
- PWM至线性信号转换电路适于风扇速度控制
- 国内外电站DCS系统的现状和发展
- 人机界面的技术发展史
- 由NE555光控及抗干扰电路及CD4541定
- 富士触摸屏与西门子PLC通讯中的问题及解决方
- 基于uC/OS-Ⅱ的光盘伺服控制系统的设计
- 为微控制器提供4到20mA回路的电路
- 水位自动控制器 二
- 可编程温湿度控制器
- 单相电动机调速方法及其实现
推荐技术资料
- 自制经典的1875功放
- 平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]