一.Contiki之进程(1)——进程结构体定义
来源:互联网 发布:淘宝退货率排行 编辑:程序博客网 时间:2024/06/11 09:40
进程是contiki系统的主要数据结构之一,系统中将进程组织成链表,链表中的一个节点标志着一个进程。下面给出关于进程的结构体源码,在注释中给出详细分析。
struct process{/*****1.指向下一个进程*****/ struct process *next; //宏PROCESS_NAME_STRING(process)用于返回进程process名称,若系统无配置进程名称,则返回空字符串 #if PROCESS_CONF_NO_PROCESS_NAMES #define PROCESS_NAME_STRING(process) "" #else/*****2.标志进程的名称*****/ const char *name; #define PROCESS_NAME_STRING(process) (process)->name #endif /*****3.#define PT_THREAD(name_args) char name_args声明一个函数指针thread,指向的是一个含有3个参数,返回值为char类型的函数。这是进程的主体,当进程执行时,主要是执行这个函数的内容*****/ PT_THREAD((*thread)(struct pt *, process_event_t, process_data_t)); /*****4.struct pt { lc_t lc; }; typedef unsigned short lc_t;pt就直接理解成lc。lc(local continuations)用于保存程序被中断的行数,被中断的地方,保存行数(s=__LINE__)接着是语句case __LINE__。当该进程再次被调度时,从PROCESS_BEGIN()开始执行,而该宏展开含有这条语句switch(process_pt->pt),从而跳到上一次被中断的地方(即case __LINE__),继续执行。*****/ struct pt pt; /*****5.#define PROCESS_STATE_NONE 0 //类似于Linux系统的僵尸状态,进程已退出,只是还没从进程链表删除#define PROCESS_STATE_RUNNING 1 //进程正在执行#define PROCESS_STATE_CALLED 2 //实际上是返回,并保存lc值*****/ unsigned char state; /*****6.needspoll为1的进程有更高的优先级。当系统调用process_run()函数时,把所有needspoll标志为1的进程投入运行,而后才从事件队列取出下一个事件传递给相应的监听进程。*****/ unsigned char needspoll;};
0 0
- 一.Contiki之进程(1)——进程结构体定义
- 一.Contiki之进程(2)——创建进程
- Contiki教程——进程
- 进程-1: 进程定义及其结构
- contiki进程管理
- contiki 启动进程 process_start
- IPC多进程之完整解析——多进程的定义、多进程的运行模式(1)
- 三.Contiki之etimer定时器(1)——etimer定义与产生
- contiki系统分析三:进程分析
- Contiki开发8:进程协作
- 结构体进程描述进程
- Linux进程管理之task_struct结构体
- Linux进程管理之task_struct结构体
- Linux进程管理之task_struct结构体
- Linux进程管理之task_struct结构体
- Linux进程之task_struct结构体
- linux进程管理之task_struct结构体
- 进程—进程调度(1)
- 1004---找相同字符串个数操作
- 几种深度学习框架的分析与比较
- leetcode OJ:223. Rectangle Area
- Eclipse 下载安装使用
- MFC----------矩形的计算
- 一.Contiki之进程(1)——进程结构体定义
- UVa 156 Ananagrams
- python数据库模块MySQLdb
- IP、NAT、DNS、CDN
- centos不能上网的同时连接不上Xshell的解决办法
- Raspbian搭建python + opencv环境
- 设计模式 - 模板方法(Template Method)
- 创客时代,你准备好了吗?
- 学习的事