进程控制块
数据结构
struct ProcessTable {
uint32_t stack[MAX_STACK_SIZE]; //内核堆栈
struct StackFrame regs; //陷阱帧,保存上下文信息
uint32_t stackTop; //栈顶信息
uint32_t prevStackTop; //嵌套时保存待恢复的栈顶信息
int state; //进程状态,就是上一节提到的
int timeCount; //时间片
int sleepTime; //需要阻塞的时间
uint32_t pid; //进程唯一标识,进程号
char name[32]; //暂时用不到
};struct TrapFrame {
uint32_t gs, fs, es, ds;
uint32_t edi, esi, ebp, xxx, ebx, edx, ecx, eax;
uint32_t irq, error;
uint32_t eip, cs, eflags, esp, ss;
};
组织数据结构
PCB数组
关于管理空闲进程
Last updated