uMROS多任务操作系统1

uMROS多任务操作系统1

ID:41852280

大小:242.67 KB

页数:13页

时间:2019-09-03

uMROS多任务操作系统1_第1页
uMROS多任务操作系统1_第2页
uMROS多任务操作系统1_第3页
uMROS多任务操作系统1_第4页
uMROS多任务操作系统1_第5页
资源描述:

《uMROS多任务操作系统1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、uMROS137【amicro(u)Multitasking,Real-timeOperatingSystem】(Note:"u"of"uMROS"representsGreek"mu”andisreadas"micro".)•Author:TonyHavens(黄正)•Copyright(C)2003~2005byHavens.•Tel:86-755-13554704988•E-mail:hsvens@21cn.comNotice:最新版木的uMROS请到“网上邻居\黄匸PUBLIC(1234)softwa「

2、cuMROS1.37”目录下拷贝[ESSENTIAL]>本操作系统采用多任务并行处理机制,每个任务都有4个状态:READY、RUNNING、WAITING、SUSPEND;只有当前正在运行的唯一任务才具有RUNNING态,其他态可以有多个任务。不同的状态的任务存放在不同的STATUSLIST屮间,总内存由用户自行指定,各个LIST采用动态内存分配方式,用3个指针控制。>每次用八创建一个新的任务时,uMROS首先判断该任务所需要的MUTEX(uMROS提供8个MUTEX可供用户选用)是否处于FREE状态,如果是,将此

3、任务状态置为READY(见图1•①),如果MUTEX正被其他任务所占用,则将此任务状态置为SUSPENDEDo>任务运行结束或者进入WAITING态Z后,uMROS将口动调用Scheduler函数对任务进行调度。当前任务等待状态时,uMROS的OSTaskExecuteC)函数会将当前的任务转为WAITING状态(见图1•②),然后将最靠前的一个READY态的任务捉出來转为RUNNING态并执行。>每个任务执行完毕后,如果SUSPENDEDLIST中冇任务,将会逐一判断SUSPENDEDLIST小的任务,看是否刚才的

4、结束的任务己经释放了MUTEX。如果是,则该SUSPENDED将会转为READY态,存入READYLIST。如果SUSPENDEDLIST中某一个任务占有ALLMUTEX,则它之后的任务无条件延迟,直到轮到此任务执行完成之后才可以继续执行它之后的所有任务。>用户在任务中可以调用OSSetMutex()来改变本任务的mutex占有状态,每次调用OSSetMutex()之后,OS将会逐一判断SUSPENDEDLIST里的任务,将已被释放mutex的SUSPENDEDTASK转为WAITING状态等待被运行。>当所有的RE

5、ADY态的任务全部执行完毕后(或者转入WAITING态),剩下的可以执行的任务全部为WAITING态的时候,采用ROUNDROBIN调度方式对所有的WAITING态的任务进行调度执行(见图2.③)。>任务可以被删除,在调用OSTaskTerminate()删除任务时,被删除的任务的操作数(ops)将被指向一个特定的caseTERMINATE,在此case下执行任务被删除后的善后工作。用户在写任务吋务必要注意保留一个TERMINATE的case,以免在删除任务的OSTaskTerminateO之后,操作数指向一个不可预

6、知的caseo>在某个任务运行中再创建新的任务的时候,要注意其nwtex是否与原任务冲突,如果冲突,新创建的此任务将永远不可能在原任务运行中得到执行(推荐:在原任务中创建新任务,mutex设为FREE状态)°另外,在原任务中创建新任务并等待其运行完毕之前,注意一淀要调用OSWaitingStart(0)來使原任务进入等待状态,以释放系统资源使其他任务得到运行,否则系统将进入一种“死锁”的状态(即等待某个任务运行完毕,而该任务却从来没有机会运行)。总之,等待“信号”到达之前(包括某个任务运行完毕的信号),一定要进入等待

7、状态。ReadyList①WaitingListNewtasksptrSuspendedSuspendedwptr/WaitingWaitingrptr/ReadyReadyRunning②SuspendedList图1•任务内存分配示意图图2.任务状态Z间的关系[DATASTRUCTURE]typedefunionunsignedcharbytes[9];struct{八BYTEO:*/unsignedcharstat:7;/*0—null1■“ready2—running3•“waiting4…suspended

8、*/unsignedcharwait:l;/*waitingforsomesignal*//客BYTEl:*/unsignedcharmutex;/*mutualexclusionsemaphore*//客BYTE2:*/unsignedcharid;/*id:l~255*//*BYTE3:*/unsignedcharops;/*taskope

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

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

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