现在位置: 首页 > 技术文章 > RTOS > 文章
2013年11月17日 RTOS ⁄ 共 1563字 什么是优先级反转,优先级继承已关闭评论 ⁄ 阅读 248 次
使用实时内核,优先级反转问题是实时系统中出现得最多的问题。下图解释优先级反转是如何出现的。如图,任务1优先级高于任务2,任务2优先级高于任务3。任务1和任务2处于挂起状态,等待某一事件的发生,任务3正在运行如[下图(1)]。此时,任务3要使用其共享资源。使用共享资源之前,首先必须得到该资源的信号量(Semaphore)。任务3得到了该信号量,并开始使用该共享资源[下图(2)]。由于任务1优先级高,它等待的事件到来之后剥夺了...
阅读全文
2013年11月17日 RTOS ⁄ 共 1084字 什么是可重入函数,什么是不可重入函数已关闭评论 ⁄ 阅读 166 次
可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以保护。如下程序是一个可重入型函数的例子。 void strcpy(char *dest, char *src) { while (*dest++ = *src++) { ; } *dest = NUL; } 函数Strcpy()做字符串复制...
阅读全文
2013年11月17日 UCOS-II ⁄ 共 1673字 不可剥夺型内核与可剥夺型内核已关闭评论 ⁄ 阅读 145 次
不可剥夺型内核 不可剥夺型内核要求每个任务自我放弃CPU的所有权。不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。 不可剥夺型内核的一个优点是响应中断快。在讨论中断响应时会进...
阅读全文
2013年11月17日 UCOS-II ⁄ 共 652字 评论 2 条 ⁄ 阅读 178 次
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间(如下图所示) 多任务 典型地、每个任务都是一个无限的循环。每个任务都处在以下5种状态之一的状态下,这5种状态是休眠态,就绪态、运行态、挂起态(等待某一事件发生)和被中断态...
阅读全文
2013年11月17日 UCOS-II ⁄ 共 560字 什么是前后台系统已关闭评论 ⁄ 阅读 239 次
不复杂的小系统一般设计成如下图所示的样子。这种系统可称为前后台系统或超循环系统(Super-Loops)。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级。前台也叫中断级。时间相关性很强的关键操作(Critical operation)一定是靠中断服务来保证的。因为中断服务提供的信息一直要等到后...
阅读全文
×