精华内容
下载资源
问答
  • 任务控制块 ...创建消息队列取一个空事件控制块和一个空队列控制块.   信号量集的功能分为两部分.标志组和等待任务链表 标志组结构:   等待任务控制块:   内存控制块 ...

    任务控制块

     

    任务就绪表

     

     

     

    事件控制块

     

    队列控制块和队列事件控制块一对一.创建消息队列取一个空事件控制块和一个空队列控制块.

     

    信号量集的功能分为两部分.标志组和等待任务链表

    标志组结构:

     

    等待任务控制块:

     

    内存控制块

    展开全文
  • ucos事件控制块

    2017-01-10 10:31:58
    信号 邮箱 消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这东西 什么是是事件控制块呢 可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个任务控制块...

    信号 邮箱 消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这东西

    什么是是事件控制块呢 可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个任务控制块存储

    关于这个任务重要消息,那么事件控制块就好比任务里的任务控制块,它存储这个事件重要消息,我们说,创建一个事件,其本质的过程

    就是初始化这个事件控制块,一个任务或中断服务子程序可以通过事件控制块ECB来向另外的任务发信号,这里所有的信号都被看成是事件(EVENT).

    一个任务还可以等待另一个任务或中断服务子程序给它发送信号,这里要注意的是,只有任务可以等待事件发生,中断服务子程序是不能这样做的

    对于处于等待的任务,还可以给它指定一个最长的等待事件,以此来防止因为等待的事件没有发生而无限等待下去。

    多个任务可以同时等待同一个事件的发生,这种情况下,当该事件发生后,所有等待该事件的任务中,优先级最高的任务得到了该事件并进入就绪态,准备执行,上面

    降到的事件,可以是信号量 邮箱或队列灯,当事件控制块是一个信号量时,任务可以等待它,它可以给它发送消息。

     

    事件控制块是一个数据结构,其定义如下:

    typedef struct{

     void *OSEventPtr; //指向消息或消息队列指针

     INT8U OSEventTbl[OS_EVENT_TBL_SIZE];//等待任务表

     INT16U OSEventCnt ;   //计数器

     INT8U OSEventType; //时间类型

     INT8U  OSEventGrp ;//等待任务在的组

    }OS_EVENT;

     

    OSEventPtr 指针,只有在定义的事件是邮箱或消息队列时才使用,当定义的事件是邮箱,它指向一个消息,当定义的是事件是消息队列时

    它指向一个数据结构

    OSEventTbl和OSEventGrp很像前面讲到的OSRdyTbl和OSRdyGrp,只不过前两部分的是等待事件的任务,后两者是包含的是系统中处于就绪的任务

    OSEventCnt 当事件是一个信号量时,OSEventCnt是用于信号量的计数器。

    OSEventType定义了事件的具体类型,它可以是信号量  邮箱 或消息队列

    展开全文
  • ucos之事件控制块ECB

    千次阅读 2013-09-24 10:41:05
    一个任务或者中断服务子程序可以通过事件控制块 ECB(Event Control Blocks)来向另外的任务发信号。这里,所有的信号都被看成是事件(Event)。把用于通讯的数据结构叫做事件控制块。  µC/OS-II通过uCOS_II.H 中...

             一个任务或者中断服务子程序可以通过事件控制块 ECB(Event Control Blocks)来向另外的任务发信号。这里,所有的信号都被看成是事件(Event)。把用于通讯的数据结构叫做事件控制块。

             µC/OS-II通过uCOS_II.H 中定义的 OS_EVENT数据结构来维护一个事件控制块的所有信息,也就是这里讲到的事件控制块 ECB。该结构中除了包含了事件本身的定义,如用于信号量的计数器,用于指向邮箱的指针,以及指向消息队列的指针数组等,还定义了等待该事件的所有任务的列表。

          typedef struct

          { 
                   void   *OSEventPtr;                                                                      /* 指向消息或者消息队列的指针 */
                   INT8U   OSEventTbl[OS_EVENT_TBL_SIZE];                      /* 等待任务列表      */
                   INT16U  OSEventCnt;                                                                /* 计数器(当事件是信号量时) */
                   INT8U   OSEventType;                                                               /* 时间类型  */
                   INT8U   OSEventGrp;                                                                /* 等待任务所在的组  */
           } OS_EVENT;

    展开全文
  • 事件控制块

    千次阅读 2009-05-17 21:01:00
    事件控制块 任务或中断服务子程序可以通过ecb向另外的任务发信号。事件:信号!!!控制块:数据结构!!!事件等待列表,类似于就绪表。当一个事件发生后,处于事件等待列表中的优先级最高的任务得到该事件 一. ...

    事件控制块

     

    任务或中断服务子程序可以通过ecb向另外的任务发信号。

    事件:信号!!!

    控制块:数据结构!!!

    事件等待列表,类似于就绪表。当一个事件发生后,处于事件等待列表中的优先级最高的任务得到该事件

     

    .   事件控制块ECB数据结构:

    typedef struct

    {

     INT8U   OSEventType; //事件类型

     INT8U   OSEventGrp;  //等待任务所在的组

     INT16U OSEventCnt; //当事件是信号量时的计数器

     void    *OSEventPtr;   //指向消息或消息队列的指针

     INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; //等待任务列表

    } OS_EVENT;

     

    二.关键算法:

    1,将一个任务插入到等待事件的任务列表中:

       当调用函数OS_EventTaskWait( )使一个任务进入等待某事件发生时,需要此算法,从而将任务插入到等待事件的任务列表中。

     

       pevent -> OSEventGrp         |= OSMapTbl[prio >> 3];

       pevent -> OSEventTbl[prio>>3] = OSMapTbl[prio & 0x07];

     

    2,从等待事件的任务列表中使任务脱离等待状态:

    当调用函数OS_EventTaskRdy( )使一个任务进入就绪态时,需要调用此算法,从而使等待的任务脱离等待状态进入就绪。

     

       if ((pevent -> OSEventTbl[prio >>3] &= ~OSMapTbl[prio & 0x07]) == 0)

        {

          pevent -> OSEventGrp &= ~OSMapTbl[prio >>3];

        }

     

    3,在等待事件的任务列表中查找优先级最高的任务:

       当调用函数OS_EventTaskRdy( )使一个任务进入就绪态时,需要调用此算法,从而首先找出在等待事件任务列表中最高优先级的任务进入就绪状态。

     

        y = OSUnMapTbl[pevent -> OSEventGrp];

        x = OSUnMapTbl[pevent -> OSEventTbl[y];

        prio = (y << 3) + x;

     

    三.对事件控制块ECB的基本操作

    1,初始化一个事件控制块:

       函数OSSemCreate( ),OSMutexCreate( ),OSMboxCreate( ),OSQCreate( )建立时,必须调用此函数进行初始化,初始化一个空的等待列表,表中没有任何等待事件的任务。

       OS_EventWaitListInit( );

     

    2,使一个任务进入就绪态:

       当某个事件发生了时,要将事件等待任务列表中最高优先级的任务进入就绪态,函数OSSemPost,OSMutexPost( ),OSMboxPost( ),OSQPost( )必将调用此函数从而使一个任务进入就绪态。

      OS_EventTaskRdy( );

     

    3,使一个任务进入等待某事件发生:

       当某个任务须等待一个事件的发生时,信号量、互斥型信号量、邮箱、消息队列会通过相应的PEND函数来调用这个函数。

       OS_EventTaskWait( );

     

    4,由于等待超时而将任务置为就绪态:

       如果在预先指定的等待时间内任务等待的事件没有发生,那么PNED类型函数将会调用此函数从而将等待超时的任务进入就绪态。

       OS_EventTo( );

     

    四.事件控制块ECB基本操作代码的分析。

    1OS_EventWaitListInit( );

     

     void OS_EventWaitListInit(OS_EVENT *pevent)

     {

        INT8U *ptbl; //定义指针变量ptbl

       

        pevent -> OSEventGrp = 0x00; //清除任务所在的组

    OS_EVENT_TBL_SIZEUCOS_ II.H中定义大小

        ptbl = &pevent -> OSEventTbl[0];

     

       

        #if OS_EVENT_TBL_SIZE > 0

            *ptbl++ = 0x00;     //清除等待任务列表,在这里没有使用for循环是为了节省系统开销

        #endif

      

        #if OS_EVENT_TBL_SIZE > 1

            *ptbl++ = 0x00;

        #endif

       

        #if OS_EVENT_TBL_SIZE > 2

            *ptbl++ = 0x00;

        #endif

       

        #if OS_EVENT_TBL_SIZE > 3

            *ptbl++ = 0x00;

        #endif

       

        #if OS_EVENT_TBL_SIZE > 4

            *ptbl++ = 0x00;

        #endif

       

        #if OS_EVENT_TBL_SIZE > 5

            *ptbl++ = 0x00;

        #endif

       

        #if OS_EVENT_TBL_SIZE > 6

            *ptbl++ = 0x00;

    #if OS_EVENT_TBL_SIZE > 7

     

            *ptbl++ = 0x00;

        #endif

    }

     

    2OS_EventTaskRdy( );

        INT8U OS_EventTaskRdy(OS_EVENT *pevent, void *msg,INT8U msk)

        {

          OS_TCB *ptcb;

          INT8U x;

          INT8U y;

    按照关键算法3,在等待事件的任务列表中找到优先级最高的任务,并确定其优先级。

          INT8U bitx;

     

          INT8U bity;

          INT8U prio;

         

          y = OSUnMapTbl[pevent -> OSEventGrp];   

          bity = OSMapTbl[y];

          x = OSUnMapTbl[pevent -> OSEventTbl[y]];

    利用算法2,从等待任务列表中删除此优先级最高的任务。

          bitx = OSMapTbl[x];

     

          prio = (INT8U)(( y << 3) + x);

         

          if ((pevent -> OSEventTbl[y] &= ~bitx) == 0x00)

            { pevent -> OSEventGrp &= ~bity;}

         

          ptcb = OSTCBPrioTbl[prio]; //知道了任务优先级,从而找到任务控制块的指针

          ptcb -> OSTCBDly     = 0; //由于此任务已经不再等待事件的发生,因此直接清0

          ptcb -> OSTCBEventPtr = (OS_EVENT *)0;//由于不再等待事件的发生,使指向事件控制块的指

    //针指向NULL

         

            #if ((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0)

              ptcb -> OSTCBMsg = msg;//如果此函数是邮箱或队列POST函数调用的,则需要将传递来的参

    //数放到它的任务控制块中

            #else

              msg = msg;

            #endif

              ptcb -> OSTCBStat &= ~msk;

              if (ptcb -> OSTCBStat == OS_STAT_RDY)]

              {

                OSRdyGrp   |= bity;    ---最高优先级的任务插入到就绪任务列表,由后续POST函数中的

                OSRdyTbl[y] |= bitx;   ---OSSched( )函数进行调度

    使任务进入就绪,请参考第三章之就绪表

              }

     

              return (prio);

           }

    3OS_EventTaskWait( );

       void OS_EventTaskWait(OS_EVENT *pevent)

       {

         OSTCBCur -> OSTCBEventPtr = pevent;

     

         if (( OSRdyTbl[OSTCBCur -> OSTCBY] &= ~OSTCBCur->OSTCBBitx) == 0x00)

          { OSRdyGrp &= ~OSTCBCur -> OSTCBBity; } //如果在PEND函数中没有收到有效的信号量,

    //那么将调用此函数进入睡眠态,在这里将任务在任务就绪列表中删除

         

          pevent -> OSEventTbl[OSTCBCur -> OSTCBY] |= OSTCBCur -> OSTCBBitx;

          pevent -> OSEventGrp |= OSTCBCur -> OSTCBBity;//把此任务放到ECB的等待事件的任务列

    //表中去

       }

     4OS_EventTo( );

           void OS_EventTO (OS_EVENT *pevent)

           {

              if (( pevent -> OSEventTbl[OSTCBCur -> OSTCBY] &= ~OSTCBCur -> OSTCBBitx) ==0x00)

              { pevent -> OSEventGrp &= ~OSTCBCur -> OSTCBBitY; }//将超时的任务在等待任务列表中删

    //

              OSTCBCur -> OSTCBStat = OS_STAT_RDY; //任务置为就绪态

              OSTCBCur -> OSTCBEventPtr = (OS_EVENT *)0;

           }

     

     

    附:

     

         任务或中断服务子程序可以通过事件控制块ECB向另外的任务发信号。这里,信号被看成是事件,这也说明为什么前面把用于通信的数据结构叫做事件控制块。

     

           事件控制块ECB是用于实现一下功能函数的基本数据结构,如“信号量管理”、“互斥型信号量管理”、“消息邮箱管理”、“消息队列管理”等。

     

           uC/OS-II通过uCOS_II.H中定义的OS_EVENT数据结构,维护一个事件控制块ECB的所有信息。该结构:

     

    1    该结构出了包含事件本身的定义外

    2    该结构还定义了等待该事件的所有任务的列表

    3    每个信号量、互斥型信号量、消息邮箱及消息队列都应分配到一个时间控制块ECB

           事件控制块ECB的数据结构

    typedef struct {

           INT8U           OSEventType;

           INT8U           OSEventGrp;

           INT16U         OSEventCnt;

           void              * OSEventPtr;

           INT8U           OSEventTbl[OS_EVENT_TBL_SIZE];

    } OS_EVENT;

     

    1 .OSEventType

           定义了事件的具体类型,它可以是:

        信号量

        互斥型信号量

        邮箱

        消息队列

        OSEventType是数据结构的第1个域(第1个字节),这便于实时检测,以确定该指针

    是指向ECB,还是事件标志。

     

    2 .OSEventPtr

           只有在所定义的事件是消息邮箱或者消息队列时才使用。

        当所定义的事件是邮箱时,它指向一个消息;

    当所定义的事件是消息队列时,它指向一个数据结构;

     

    3 .OSEventTbl[].OSEventGrp

     

        分别与OSRdyTbl[]OSRdyGrp相似,只不过前两者包含的是等待某事件的任务,而后

    两者包含的是系统中处于就绪状态的任务。

     

    4 .OSEventCnt

        当事件控制块用于信号量时,.OSEventCnt是用于信号量的计数器;

        当事件控制块用于互斥型信号量时,.OSEventCnt用于互斥型信号量和优先级继承优先

    级的计数器。

    6.00 将任务置于等待事件的任务列表

    将一个任务插入到等待事件的任务列表中的程序:

       pevent -> OSEventGrp             |= OSMapTbl[prio >>3];

       pevent -> OSEventTbl[prio >>3]   |= OSMapTbl[prio & 0x07];

    1    prio是任务的优先级;pevent是指向事件控制块的指针。

    2    由程序看出,将一个任务插入到等待事件任务列表中所需的时间是常数,与表中现有多少个任务无关。

     

    3    该算法的原理:

    任务优先级的最低3位决定了该任务在相应的.OSEventTbl[]中的位置,紧接着的高3位则决定了该任务优先级在.OSEventTBl[]中的字节索引。

    6.01 从等待事件的任务列表中使任务脱离等待状态

           程序如下:

           if ((pevent -> OSEventTbl[prio >>3] &= ~OSMapTbl[prio & 0x07]) == 0) {

                  pevent -> OSEventGrp &= ~OSMapTbl[prio >>3];

    }

     

    1    该代码消除了任务在.OSEventTbl[]中的相应位;

    2    并且,如果其所在的组中不再有处于等待该事件的任务(.OSEventTbl[prio >>3]0),则

    .OSEventGrp中的相应位也消除了。

    6.02 在等待事件的任务列表中查找优先级最高的任务

    代码如下:

    y = OSUnMapTbl[pevent -> OSEventGrp];

    x = OSUnMapTbl[pevent -> OSEventTbl[y]];

    prio = (y << 3) + x;

     

    1    第一行,确定优先级最高的任务所在的组;

    2    第二行,确定其在该组中的具体位置;

    3    第三行,确定优先级最高的任务的优先级序号值,其值范围为0~63

    6.03 空余事件控制块链表

    1 事件控制块ECB的总数由应用程序所需要的信号量、互斥型信号量、邮箱及消息队列

    的总数决定。该值由文件OS_CFG.H中的“# define OS_MAX_EVENTS”语句定义。

    2 在调用OSInit()时,所有事件控制块ECB被链接成一个单向链表—空余事件控制块链表

       每当建立一个信号量、互斥型信号量、邮箱及消息队列时,就从该链表中取出一个空余

           事件控制块,并对它进行初始化。

       调用删除信号量、互斥型信号量、邮箱及消息队列的函数,可将事件控制块放回到空余

    事件控制块链表中。

    3 对事件控制块进行的操作一般包括:

      初始化一个事件控制块;              --OS_EventWaitListInit()

      使一个任务进入就绪态;              --OS_EventTaskRdy()

      使一个任务进入等待某事件的状态;    --OS_EventWait()

      因为等待超时而使一个任务进入就绪态。--OS_EventO()

    展开全文
  • 信号、邮箱、消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这一东西。 那什么是事件控制块呢? 可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个...
  • ucos-II学习之:数据结构(任务控制块/事件控制块/内存控制块总结一)
  • UC/OS-II基础知识之事件控制块及事件处理函数1.等待任务列表 作为功能完善的事件,应该对那些处于等待任务具有两方面的管理功能,一是要对等待事件的所有任务进行记录并排序,而是允许等待任务有一个等待时限,即当...
  • 信号,邮箱,消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这一东西。 什么是事件控制块呢? 可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个任务...
  • 进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程,所以说,PCB(进程控制块)是系统感知进程存在的...
  • 进程控制块PCB

    千次阅读 2013-04-24 00:30:10
    PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容: ...
  • 进程控制块(PCB)的结构

    千次阅读 2018-04-07 21:46:12
    进程控制块 PCB (Process Control Block): 存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,...
  • 1 FreeRTOS中事件的理解 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输。与信号量不同的是,它可以实现一对多,多对多的同步。即一个任务可以等待多个...
  • 进程控制块中的信息: 1.进程标识符:进程标识符是惟一地标识一个进程。一个进程通常有两种标识符  (1).内部表示符:在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个进程的序号。...
  • 进程控制块PCB结构 task_struct 描述

    千次阅读 多人点赞 2013-09-16 10:46:21
    处于该状态的进程正在等待某个事件(Event)或某个资源,它肯定位于系统中的某个 等待队列(wait_queue)中。Linux 中处于等待状态的进程分为两种:可中断的等待状态和 不可中断的等待状态。处于可中断等待态的进程...
  • js 实现键盘控制方块移动

    千次阅读 2018-09-29 23:01:54
    在网页上有一个方块,我们需要键盘上下左右键控制方块的移动。 代码: &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &...
  • 进程控制块和状态转换

    千次阅读 2013-05-06 15:56:08
    1.进程控制块(PCB)  进程由PCB数据结构、程序和数据(结构)等组成。  进程控制块包含进程的描述信息、控制信息以及资源信息。进程在创建时应该首先创建其PCB,当进程完成后,系统则释放PCB,进程随之消亡。  ...
  • UC/OS基础知识之任务控制块

    千次阅读 2016-01-05 11:49:54
    UC/OS基础知识之任务控制块1....任务控制块是一个结构类型数据,当调用OSTaskCreate()创建任务时,该函数就会对任务控制块中的所有成员赋值,并驻留在RAM中。任务控制块结构的定义如下typedef struct os_tcb {
  • linux进程控制块

    千次阅读 2013-05-03 11:25:28
    这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构,它记录了一下几个类型的信息: 1.状态信息,例如这个进程处于可执行状态,休眠,挂起等。 2.性质,由于unix有很多变种,进程有...
  • 任务控制块os_tcb

    千次阅读 2018-08-10 09:43:16
    通常,操作系统会将当前所有任务控制块组成一个双向的链表OSTCBList,这个链表将在函数OSTimeTick中被用到。 OSTimeTick函数是系统的时钟处理函数,他负责系统各任务的延时工作,一般情况下,OSTimeTick会被周期性...
  • 任务控制块及其链表

    千次阅读 2017-03-29 19:30:38
    typedef struct os_tcb{ OS_STK*OSTCBStkPtr;//指向任务堆栈栈顶的指针#if OS_TASK_...//指向任务控制块扩展的指针 OS_STK*OSTCBStkBottom;//指向任务堆栈栈底的指针 INT32UOSTCBStkSize;//任务堆栈的长度 INT
  • 进程控制块PCB详解

    万次阅读 多人点赞 2015-06-12 11:23:44
    PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容: (1...
  • 进程控制块(PCB)的结构

    千次阅读 2013-02-19 10:32:52
    进程控制块(PCB)的结构 进程控制块 PCB (Process Control Block):  存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,...
  • 进程控制块、进程上下文

    千次阅读 2016-11-07 23:06:29
    进程控制块   为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块(PCB)。 它是进程重要的组成部分,它记录了操作系统所需的、用于描述进程的当前状态和控制进程的全部信息。 ...
  • ucos II 内核学习之二:任务控制块

    千次阅读 2011-12-18 22:05:16
    知道任务在创建的时候,任务控制块会被初始化。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫...
  •  为了使程序能够并发执行,并且对程序加以描述及控制,引入了进程的概念。 2. 进程的定义  进程是进程实体的运行过程,进程实体由程序段、相关的数据段和PCB三部分构成。在没有引入线程的操作系统中,进程是...
  • 进程控制块及其作用、组织方式

    千次阅读 2018-05-30 16:30:03
    进程控制块中的信息1) 进程标识符(1) 内部标识符 操作系统为每一个进程赋予的唯一数字标识符,系统使用 (2) 外部标识符 有创建者提供,通常有字母与数字组成,往往是由用户(进程)在访问该进程时使用。描述进程的...
  • FreeRTOS笔记(六)列表与任务控制块

    千次阅读 2018-12-21 18:17:59
    文章目录01 - 列表02 - 列表与任务控制块03 - 总结 上一文链接:FreeRTOS笔记(五)任务状态 01 - 列表   上一文提及到,任务具有多种状态,例如就绪、运行、阻塞等等,如果有多个任务都处于某一状态,例如...
  • 3、进程控制块及其作用、组织方式

    万次阅读 2017-11-03 21:37:25
    进程控制块中的信息1) 进程标识符(1) 内部标识符 操作系统为每一个进程赋予的唯一数字标识符,系统使用 (2) 外部标识符 有创建者提供,通常有字母与数字组成,往往是由用户(进程)在访问该进程时使用。描述进程的...
  • ucos任务状态及任务控制块

    千次阅读 2017-01-09 14:30:48
    一个任务被创建后,可以处于以下五种状态之一 这五种状态分别是: 1.睡眠状态 2.就绪状态 3.等待状态 4中断服务状态 5执行状态 下面简单介绍各状态的含义即各状态的切换方法  睡眠状态:睡眠态指任务驻留在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,012
精华内容 66,004
关键字:

创建事件控制块