1.资源(resource)
任何任务所占用的实体都可以称为资源,如一个变量、数组、结构体等。
2.共享资源(shared resource)
至少可以被两个任务使用的资源称为共享资源,为了防止共享资源被破坏,每个任务在操作共享资源时,必须保证是独占该资源。
保护共享资源常用的方法有:① 关中断(ZigBee协议栈最常用);② 使用测试并置位指令(T&S指令);③ 禁止任务切换;④ 使用信号量。
3.任务(task)
一个任务,又称作一个线程,是一个简单的程序的执行过程,在任务执行过程中,可以认为CPU完全属于该任务。在任务设计时,需要将问题尽可能地分为多个任务,每个任务独立完成某种功能,同时被赋予一定的优先级,拥有自己的CPU寄存器和堆栈空间。一般将任务设计为一个无限循环。
4.多任务运行(muti-task running)(www.xing528.com)
实际上只有一个任务在运行,但是CPU可以使用任务调度策略将多个任务进行调度,每个任务执行特定的时间,时间片到了后,就进行任务切换。
5.内核(kernel)
在多任务系统中,内核负责管理各个任务,主要包括:为每个任务分配CPU时间;任务调度;负责任务间的通信。
6.互斥(mutual exclusion)
多任务间通信最简单,常用的方法是使用共享数据结构。对于单片机系统,所有任务都在单一的地址空间下,使用共享的数据结构,包括全局变量、指针、缓冲区等。虽然共享数据结构的方法简单,但是必须保证对共享数据结构的写操作具有唯一性,以避免晶振和数据不同步。
7.消息队列(message queue)
消息队列用于任务间传递消息,通常包含任务间同步的信息。通过内核提供的服务、任务或中断服务程序将一条消息放入信息队列,然后,其他任务可以使用内核提供的服务从消息队列中获取属于自己的消息。为了降低传递消息的开支,通常传递指向消息的指针。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。