实时操作系统软件调度器/硬件调度器的设计与实现

发布者:EtherealGlow最新更新时间:2012-05-07 来源: eefocus关键字:处理器调度  实时操作系统  软件调度 手机看文章 扫描二维码
随时随地手机看文章
引言

实时操作系统(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接口发送至上位机,进行分析处理,以验证模型的性能。

2.协处理器调度模型实现

协处理器调度模型在软件调度模型基础上增加协处理器模块。该模型中,将RTOS的任务调度模块从主CPU中分离出来,并将该部分代码完全运行于协处理器中。协处理器需要完成任务状态以及任务堆栈管理,并通过DMA方式与主内存之间通信,实现同主CPU中任务各种状态以及信息的同步。

在协处理器调度模式下,当系统时钟产生中断时,不需要进行任务调度的工作,只有当主CPU需要进行任务调度时,通知协处理器等待挂起的任务号以及其上下文内容,协处理器将该任务完整保存之后,将处于最高优先级的就绪态任务及其上下文内容送入主CPU,完成任务调度。

由协处理器模式下调度的整个流程可以看出,任务的调度完全由主CPU发起,任务的调度只是发生在需要调度的时刻,同时由于协处理器参与了调度的工作,主CPU不需要进入内核态来实现任务调度,这极大的提高了主CPU的有效工作效率。[page]

3.硬件调度器模型实现

硬件调度器模型将调度的功能完全用专用的硬件IP核实现。见图3,整个系统包含图3中去除协处理器的所有部分。调度模块具有与协处理器相同的功能,但是调度模块完全由时序以及逻辑模块组成,不具有协处理器智能化的特性,其开发难度也相对较大。但是正是由于调度模块采用的时序以及逻辑模块组合的结构,其实现无需程序控制,故调度速度要高于协处理器调度模式。

整个调度模块由三部分组成,见图4:调度核、任务管理、通信接口。通信接口将CPU传送过来以及调度核的指令进行翻译转换,实现CPU与调度核之间的通信。调度核控制任务管理,将等待挂起的任务以及最高就绪态的任务号发送给任务管理器,同时与CPU交互信息,从CPU获取系统时间等各种有用信息。任务管理则负责各种任务状态的切换,将调度核发送过来的等待挂起的任务置入等待队列,而将最高优先级的任务标志为运行态,交由调度核并发送给CPU。


性能测试及结论

为了验证三种调度模型的性能,采用了如下的测试方法。应用程序由10个相同功能的任务组成,任务的序号分别为1到10,每个任务运行确定时间之后,挂起自身而运行任务号加1的任务。异步中断通过外部按键人为触发,一个始终处于挂起态的任务用于接收按键消息,并处理。按键消息处理之后,任务将自身挂起。图5为主机通过串口获取的任务切换信息,并通过matlab绘制的图形。从图可以看出,三种调度器性能由低到高分别为软件调度模型、协处理器调度模型、硬件调度模型。


结语

本文介绍了三种RTOS的调度器实现模型,软件调度模型为当前最常用的也最稳定的调度模型,其实现简单,且硬件成本低;协处理器调度模型具有较高的性能,但是由于采用协处理器的支持,无疑增加了硬件成本,RTOS的调度由协处理器完成,减轻了主CPU的负担,但是协处理器的调度过程实际上也由软件实现,其整体的调度速度不是很高,其性能提升只是在减小主CPU的调度次数以及避免进入内核态上;硬件调度模型具有最高的效率,虽然模块开发调试复杂繁琐,但是与协处理器调度模式相比,占用更少的硬件资源,而且效率高于协处理器方式,必将极大地提高系统性能。综上所述,三种RTOS各具有自身特点,在具体的实现过程中,需要考虑系统的特性折中选择实现方式。与当前流行的调度模式相比,硬件调度模型具有更高的性能,必将成为今后RTOS发展的一个方向。

关键字:处理器调度  实时操作系统  软件调度 引用地址:实时操作系统软件调度器/硬件调度器的设计与实现

上一篇:缩短μC/OS-II实时内核中断关闭时间的方法设计
下一篇:软总线架构在实时多任务软件系统中的设计应用

推荐阅读最新更新时间:2024-05-02 22:02

RTOS实现双核MCU消息通信
手机、电脑多核的CPU你可能经常看见,但多核的单片机相对来说就不那么常见了。随着需求的增加、技术的进步,单片机已不再局限于单核了,因此,近几年陆续出现了双核的单片机了。 你可能会好奇,双核单片机之间怎么通信?其实,通信的方式和方法有很多种。本文就给大家描述一下:使用FreeRTOS消息缓冲区,实现简单的非对称多处理(AMP)核心到核心通信,结合STM32H7(M4和M7) 双核处理器为例。 分享正文之前推荐一个嵌入式招聘信息的平台: 概述 实现STM32H7双核之间通信是FreeRTOS官方提供的一个方案,是基于FreeRTOS消息缓冲区,该消息缓冲区是无锁循环缓冲区,可以将大小不同的数据包从单个发送方传递到单个接收方。
[单片机]
<font color='red'>RTOS</font>实现双核MCU消息通信
64位VxWorks实时操作系统【Wind River】
风河(Wind River)近日发布新版VxWorks实时操作系统(RTOS,Real-Time Operating System)。VxWorks是业界领先的RTOS,本次推出的新版本可提供64位运算能力,进一步强化了多核处理能力,是目前市面上所有商业版RTOS中最先具备64位支持能力的版本之一。 Wind River VxWorks产品管理副总裁Warren Kurisu表示:“由于各类系统变得更加复杂,而且其连网及相互通信能力也大幅提升,使得嵌入式应用市场对运算性能的需求不断提高;嵌入式应用所需的运算能力、内存容量以及数据量成长幅度都急剧攀升。本次推出支持64位运算能力的全新VxWorks实时操作系统,将有效地满足
[嵌入式]
基于RTOS的智能交通灯设计方法
引言 随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管部分管理城市交通的重要工具。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性;软件编程采用了实时操作系统RTX51,在确保实时性要求的同时,简化了复杂的软件设计工作。 1 方案论证 图1是一个典型的十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用a、b、c、p分别表示各主车道的左行
[单片机]
基于<font color='red'>RTOS</font>的智能交通灯设计方法
基于Small-RTOS51的数据采集器设计
引 言   随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时内核也称为实时操作系统或RTOS。它使得实时应用程序的设计、扩展和维护变得更容易,不需要大的改动就可以增加新的功能。通过应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为简化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。   目前8位单片机在嵌入式系统中,应用还是最广泛的。51多任务系统中,Keil C51 所带的RTX51 Full 太大(6KB多),且需要外部
[单片机]
基于Small-<font color='red'>RTOS</font>51的数据采集器设计
建立一个属于自己的AVR的RTOS(第三篇:GCC)
简介:本文为建立一个属于自己的AVR的RTOS:第三篇:GCC中对寄存器的分配与使用相关内容。 第三篇:GCC中对寄存器的分配与使用 在很多用于AVR的RTOS中,都会有任务调度时,插入以下的语句: 入栈: __asm____volatile__( PUSHR0 t ); __asm____volatile__( PUSHR1 t ); ...... __asm____volatile__( PUSHR31 t ); 出栈 __asm____volatile__( POPR31 t ); ...... __asm____volatile__( POPR1 t ); __asm____volatile__( POPR
[单片机]
实时操作系统μC/OS-II的改进与应用研究
  传统的嵌入式系统设计大多采用单任务顺序机制,应用程序是一个无限的大循环,所有的事件都按顺序执行,与时间相关性较强的事件靠定时中断来保证,由此带来系统的稳定性、实时性较差;尤其当系统功能较复杂,且对实时性要求较严格时,这种单任务机制的弱点暴露无遗。本文引入的嵌入式操作系统μC/OS-II是一个多任务的实时内核,主要提供任务管理功能。在实时系统中的多个任务,必须决定这些任务的优先级顺序,任务调度算法需要动态为就绪任务的优先级排序。为了满足对实时性要求越来越高的需要,同时避免频繁改变就绪任务的优先级,在分析μC/OS-II源代码的基础上,对其调度算法进行改进。    1 μC/OS-II概述   μC/OS-II是一个完整的,可
[嵌入式]
基于ARM7支持触摸屏和实时操作系统的开发与应用
  概述   随着信息技术的发展,支持图形界面的触摸操作和实时操作系统相结合的应用系统已经越来越广泛地应用到航空航天、军事、消费类电子、通讯设备等领域。mC/OS-II操作系统是一种占先式、实时操作系统(RTOS),由于其内核可拆减、可剥离性,使得它在实时控制领域中有着广泛的应用。它不仅减小了因为系统硬件设计缺陷带来的不可靠因素,而且增强了系统的控制实时性,从软件方面进一步增强了ARM控制系统的性能。另外,新版本的mC/OS-II已经通过了FAA认证,很适合应用于对实时性要求很高的嵌入式工业控制领域,如目前应用较广泛的军用战斗机、攻击机和火控系统等。   支持图形界面操作(mC/GUI)是一种较为流行的人机交互系统,它能够提供
[单片机]
基于ARM7支持触摸屏和<font color='red'>实时操作系统</font>的开发与应用
嵌入式实时操作系统的RAM盘扩展
    摘要: 介绍了一种在嵌入式实时操作系统内核(以下简称实时内核)上实现RAM盘的方法,配合接受用户命令的Shell任务,可实现嵌入式系统的多任务动态加载和监控,扩展了实时内核的应用领域。实时内核采用目前十分流行的免费内核μC/OS-Ⅱ,硬件不台为通用现场总线控制器系统。     关键词: μC/OS-Ⅱ内核 嵌入式系统 通用现场总线控制器(GPFC) ColdFire 1 嵌入式RTOS 目前,嵌入式RTOS的应用领域越来越广泛。已经有80多个RTOS厂商生产面向8位、16位、32位、甚至64位微处理器的RTOS产品。商业的实时操作系统如VxWorks,pSOS,VRTX,WindowsCE等功能完
[缓冲存储]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved