os.h

作者在 2010-09-01 00:40:23 发布以下内容

#include"config.h"
#ifndef __OS_H_H_H_H_
#define __OS_H_H_H_H_


/*--0---1---2---3---4---5---6---7--*/
        


//内核管理控制块的结构定义
typedef struct OSCB{
PCB*pcur;             //指向当前运行的进程控制块的指针;
PCB*pfirst;           //指向第一个进程控制块的指针;
PCB*plast;            //指向最后一个进程控制块的指针;
INT16U _int_nest;     //中断嵌套层次;
PSTK**pstktlb;        //指向进程指针数组的指针;
_OS_PRDYTLB*pprdytlb; //指向进程就绪表的指针;
PID highpriorpid;     //处于高优先度的pid
}_OS_OSCB;

//进程管理控制块的结构定义
typedef struct PCB{
    PSTK *pstk;          //进程堆栈指针
    PID  pid;            //进程号;
    PPC  *ppc;           //进程PC指针(只是指向代码开始位置)
    PCB  *pfather;       //父进程进程快指针;
    PSTA state;          //进程状态;
    
//PCB  *pback;         //指向下一个pcb块
    
//PCB  *pfront;        //指向前一个pcb块
    
//OSCB *oscb;          //指向内核控制块的指针;

#if P_NAME_EN ==1
    PNAME*pname;     //指向进程名的数据结构的指针;
#endif

#if MEMORY_EN==1
    MCB*pmcb;        //指向内存管理控制块的指针;
#endif

#if SEMAPHORE_EN==1  
    SCB*pscb;        //指向信号量管理控制块的指针;
#endif

#if EVENT_EN==1
    ECB*pecb;       //指向事件管理控制块的指针;
#endif

} _OS_PCB;

//OS全局变量总集
_OS_OSCB _os_oscb;//内核控制块;
_OS_PCB  _os_pcb[OS_REALITY_PROCESS_COUNT+2];//创建进程控制块的数组,由于有两个系统进程所以要加2;

_OS_PRDYTLBINDEX  _os_prdytlbindex; //进程就绪表索引数值,此处是一个无符号整型变量;
//进程就绪表索引数值,是一个具有256个元素的数组;    
const _OS_PRDYTLB  _os_prdytlb[256]={
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4,
0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 0
};

#endif


os.h文件,未完待续
默认分类 | 阅读 2169 次
文章评论,共0条
游客请输入验证码
文章分类
最新评论