进程数据结构
进程的数据结构为链表,代码中所有的进程使用进程链表管理。
-
struct process {
-
struct process *next;
-
#if PROCESS_CONF_NO_PROCESS_NAMES
-
#define PROCESS_NAME_STRING(process) ""
-
#else
-
const char *name;
-
#define PROCESS_NAME_STRING(process) (process)->name
-
#endif
-
PT_THREAD((* thread)(struct pt *, process_event_t, process_data_t));
-
struct pt pt;
-
unsigned char state, needspoll;
-
};
next 指向下一进程控制块,name为进程名,thred为进程的实体(函数指针),pt保存该进程执行的行数,实现进程切换,state为进程的运行状态,needpoll为进程的优先级。
进程创建完成后,需要其运行需要调用process_start,将进程控制块,挂载到进程链表中。注意每次挂载,从头开始挂载。
阅读(533) | 评论(0) | 转发(0) |