uC/OS-II 学习笔记之:任务的概念
来源:互联网 发布:安装完ubuntu无法启动 编辑:程序博客网 时间:2024/05/05 14:29
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
更多原创“uC/OS-II学习笔记之:系列”基础及嵌入式相关知识详解,请访问可乐虎博客:
http://blog.csdn.net/dcx1205
相信不会让您失望!!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一、任务:一个任务,也叫一个线程,是一个简单程序,改程序可以认为CPU完全只属于自己。每个任务都是整个应用的某一部分,
每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和栈空间。
二、多任务:多任务运行的实现实际是靠CPU在许多任务之间转换、调度。CPU轮流服务于一系列任务中的某一个。
三、任务状态:每个任务都是一个无限循环。每个任务都处在以下5种状态之一:
1)睡眠态:任务只是以代码的形式驻留在程序空间(ROM或RAM),还没有交给操作系统管理时的情况叫做睡眠态(也称休眠态)。
简单说,任务在没有被配备任务控制块或被剥夺了任务控制块时的状态叫做任务的睡眠态。
2)就绪态:如果系统为任务配备了任务控制块且在任务就续表中进行了就绪登记,则任务就具备了运行的充分条件,
这时任务的状态就叫做就绪态。
3)运行态:处于就绪态的任务如果经调度器的判断获得了CPU的使用权,则任务就进入运行状态。
注:任何时刻只能有一个任务处于运行态,就绪的任务只有当所有优先级高于本任务的任务都转为等待状态时,才能进入运行态。
4)等待态:正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会把CPU的使用权让给其它任务而使任务进入等待态(也称阻塞态)。
5)中断态:一个正在运行的任务一旦响应中断申请就会中止运行而去执行中断服务程序,这时任务的状态叫做中断服务状态(也称挂起态)。
四、任务不是普通的C语言函数,因此不能被主函数或其它函数调用,主函数只负责创建和启动它们,而由操作系统负责来调度运行它们。
五、uC/OS-II中预定义了两个为应用程序服务的系统任务:空闲任务和统计任务。
其中空闲任务是每个应用程序必须使用的,而统计任务是应用程序根据实际需要来选择使用的。
六、任务的组成:任务控制块、任务代码、任务堆栈。
七、创建任务的函数:
INT8U OSTaskCreate (
void (*task)(void *pd),//定义一个函数指针
void *pdata,//传递给任务的参数
OS_STK *ptos,//任务堆栈栈顶的指针
INT8U prio//指定任务优先级的参数
)
参: 任哲 《嵌入式实时操作系统uC/OS-II原理及应用》
参: 卢有亮 《嵌入式实时操作系统uC/OS原理与实践》
- uC/OS-II 学习笔记之:任务的概念
- uC/OS-II 学习笔记之:怎样在uC/OS-II里创建一个任务?
- uC/OS-II 学习笔记之:任务堆栈
- uC/OS-II 学习笔记之:任务删除
- uC/OS-II 学习笔记之:任务的优先级别和任务数
- uC/OS-II 学习笔记:任务堆栈
- uC/OS-II学习笔记--任务
- uC/OS-II 学习笔记之:信号量
- uC/OS-II 学习笔记之:事件
- uc/os学习笔记1【uc/os的任务管理】
- uC/OS-II的任务
- uC/OS-II 学习笔记:任务创建步骤
- uC/OS-II 学习笔记:任务控制块ECB
- uc/os-ii学习笔记(一)之实时系统概念
- uC/OS-II学习笔记(2012.12.11)任务就绪表之如何理解OSUnMapTbl[]
- uC/OS-II 学习笔记之:任务就绪表-举例详解!
- uC/OS-II 学习笔记之:任务挂起与恢复,调度器上锁与解锁!
- uC/OS-II 学习笔记之:在VC++6.0环境下调试uC/OS-II的源代码分享!
- JAVA笔试又是快排!!!写在博客滥记于心!!!!!!!
- VC++ MFC文件的移动复制删除更名遍历操作
- yii导入资源文件
- 什么是BIOS bootloader ubuut
- Lucene3.6小例子
- uC/OS-II 学习笔记之:任务的概念
- Hibernate将文件二进制存入mysql
- 置顶菜单可用性研究,可使网站导航快22%
- eclipse subclipse unable load default svn client的解决办法
- Building eLua in Windows
- django如何使ForeignKey字段显示树状结构
- 【Java知识点】Refection获取调用栈信息
- java.lang.RuntimeException: Invalid action class configuration that references an unknown class name
- incomplete implementation 警告–查找未实现的方法