嵌入式操作系统内核原理和开发(线程状态)

嵌入式操作系统内核原理和开发(线程状态)

ID:5330008

大小:462.64 KB

页数:15页

时间:2017-12-08

嵌入式操作系统内核原理和开发(线程状态)_第1页
嵌入式操作系统内核原理和开发(线程状态)_第2页
嵌入式操作系统内核原理和开发(线程状态)_第3页
嵌入式操作系统内核原理和开发(线程状态)_第4页
嵌入式操作系统内核原理和开发(线程状态)_第5页
资源描述:

《嵌入式操作系统内核原理和开发(线程状态)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处嵌入式操作系统内核原理和开发(线程状态)从第一篇的os博客以来,谈了很多内容,有中断、切换、调度、内存、互斥和延时等等,但是线程的状态却没有涉及到,今天我们要好好说一说。说到线程的状态,按照一般的说法,主要包括就绪、延时、阻塞、阻塞超时四个状态。如果线程没有死亡的话,那么这几个状态也够用了,但是我们后来发现可能需要对某些线程进行挂起处理,这可能是出现了故障或者是为了调试使用。因此,除了上面的四个状态,我们还要补充对应的四个挂起状态,分别是挂起、延时挂起、阻塞挂起、阻塞延时挂起。说

2、到了线程状态,下面我们就看看常见的线程处理函数有哪些,无外乎线程创建、线程延时、线程挂起、线程恢复和线程删除等等。[cpp]viewplaincopy1.RAW_U16raw_task_create(RAW_TASK_OBJ*task_obj,RAW_U8*task_name,RAW_VOID*task_arg,2.RAW_U8task_prio,RAW_U16time_slice,PORT_STACK*task_stack_base,3.RAW_U32stack_size,RAW_TASK_ENTRYtask_entry,RAW_U8auto_start)4.5.{6.

3、#if(RAW_TASK_STACK_CHECK>0)7.PORT_STACK*p_stack;8.RAW_U32i;9.#endif10.11.RAW_SR_ALLOC();12.13.#if(RAW_TASK_FUNCTION_CHECK>0)14.本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处15.if(task_obj==0){16.returnRAW_NULL_OBJECT;17.}18.19.if(task_prio>=

4、CONFIG_RAW_PRIO_MAX){20.returnRAW_BYOND_MAX_PRIORITY;21.}22.23.if(task_stack_base==0){24.returnRAW_NULL_POINTER;25.}26.27.if(task_entry==0){28.returnRAW_NULL_POINTER;29.}30.31.#endif32.33.RAW_CRITICAL_ENTER();34.35.if(task_prio==IDLE_PRIORITY){36.37.if(idle_task_exit){38.39.RAW_CRITICAL_E

5、XIT();40.returnRAW_IDLE_EXIT;41.42.}43.44.idle_task_exit=1;本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处45.}46.47.48.RAW_CRITICAL_EXIT();49.50.raw_memset(task_obj,0,sizeof(RAW_TASK_OBJ));51.52.#if(CONFIG_ROUND_ROBIN>0)53.54.if(time_slice){5

6、5.task_obj->time_total=time_slice;56.57.}58.59.else{60.61.task_obj->time_total=TIME_SLICE_DEFAULT;62.}63.64.task_obj->time_slice=task_obj->time_total;65.66.#endif67.68.if(auto_start)69.task_obj->task_state=RAW_RDY;70.else71.task_obj->task_state=RAW_SUSPENDED;72.73.74.#if(RAW_TASK_STACK_CH

7、ECK>0)本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处本文由兰州中研白癜风研究院http://www.lzbdf120.com/收集,转载请注明出处75.76.task_obj->task_stack_base=task_stack_base;77.p_stack=task_stack_base;78.79.for(i=0;itask_sta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。