SylixOS优先级与POSIX优先级关系

来源:互联网 发布:批量产生随机数软件 编辑:程序博客网 时间:2024/06/07 01:41
SylixOS 优先级值越小优先级越大,POSIX 优先级值越大优先级越大。

SylixOS 优先级配置文件位置为libsylixos\SylixOS\kernel\include\k_priority.h

/***************************************************************************  优先级范围***************************************************************************/#define LW_PRIO_HIGHEST         0                 /*  SylixOS 最高优先级          */#define LW_PRIO_LOWEST          255               /*  SylixOS 最低优先级          *//***************************************************************************   优先级 (一般应用的最高优先级不能高于 LW_PRIO_CRITICAL 最低不能低过 LW_PRIO_LOW)***************************************************************************/#define LW_PRIO_EXTREME         LW_PRIO_HIGHEST  /*  最高优先级                  */#define LW_PRIO_CRITICAL        50               /*  关键处理任务                */#define LW_PRIO_REALTIME        100              /*  实时处理任务                */#define LW_PRIO_HIGH            150              /*  高优先级任务                */#define LW_PRIO_NORMAL          200              /*  正常优先级                  */#define LW_PRIO_LOW             250              /*  低优先级                    */#define LW_PRIO_IDLE            LW_PRIO_LOWEST   /*  最低优先级                  */

优先级转换操作宏见libsylixos\SylixOS\posix\include\px_sched_param.h

/***************************************************************************  sched priority convert with SylixOS***************************************************************************/#define PX_PRIORITY_CONVERT(prio)   (LW_PRIO_LOWEST - (prio))

POSIX线程属性块默认参数初始化操作如下:

/******************************************************************************** 函数名称: pthread_attr_init** 功能描述: 初始化线程属性块.** 输 入  : pattr         需要初始化的 attr 指针.** 输 出  : ERROR CODE** 全局变量: ** 调用模块:                                            API 函数***************************************************************************/LW_API int  pthread_attr_init (pthread_attr_t  *pattr){    if (pattr == LW_NULL) {        errno = EINVAL;        return  (EINVAL);    }        pattr->PTHREADATTR_pcName          = "pthread";    pattr->PTHREADATTR_pvStackAddr     = LW_NULL;                          /*  自动分配堆栈                */    pattr->PTHREADATTR_stStackGurad    = LW_CFG_THREAD_DEFAULT_GUARD_SIZE;    pattr->PTHREADATTR_stStackByteSize = 0;                                /*  0 表示继承创建者优先级      */    pattr->PTHREADATTR_iSchedPolicy    = LW_OPTION_SCHED_RR;               /*  调度策略                    */    pattr->PTHREADATTR_iInherit        = PTHREAD_EXPLICIT_SCHED;           /*  继承性                      */    pattr->PTHREADATTR_ulOption        = LW_OPTION_THREAD_STK_CHK;         /*  SylixOS 线程创建选项        */    pattr->PTHREADATTR_schedparam.sched_priority = LW_PRIO_NORMAL;        return  (ERROR_NONE);}

SylixOS技术讨论群(32537017) SylixOS开发者联盟群(216907470)

系统常用链接:
【1】系统主页  www.sylixos.com
【2】系统百科  wiki.sylixos.com/index.php/%E9%A6%96%E9%A1%B5
【3】系统下载  git.sylixos.com/cgit/
【4】系统论坛  bbs.sylixos.com/forum.php
【5】社区新闻  bbs.sylixos.com/forum.php
【6】清华镜像站点 coop.tuna.tsinghua.edu.cn/git  coop.tuna.tsinghua.edu.cn/git (改版中)
【7】北邮镜像站点(建设中)


0 0
原创粉丝点击