- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8实验八模拟设备管理参考代码2
#includeiostream
#includestdio.h
using namespace std;
//
typedef struct node
{
char name[10];
char devname[10];
struct node *next;
}PCB;//进程
PCB * run;//执行队列
//
typedef struct Node
{
char identify[10];//标识
int state;//设备状态
PCB *blocking;//阻塞队列指针
}CHCT;//通道控制表
CHCT * CH1, * CH2;
//
typedef struct NOde
{
char identify[10];//标识
int state;//设备状态
CHCT * chct;//CHCT
PCB *blocking;//阻塞队列指针
struct NOde *next;
}COCT;//控制器控制表
COCT * cohead;
typedef struct NODe
{
char identify[10];//标识
char type;//设备类型
int state;//设备状态
int times;//重复执行次数
PCB *blocking;//阻塞队列指针
COCT * coct;//COCT
}DCT;//设备控制表
typedef struct NODE
{
char type;//类别
char identify[10];//标识
DCT * dct;//DCT
//驱动入口地址
struct NODE *next;
}SDT;
//系统设备表
SDT * head;
SDT * checkdel;
void Init()
{
PCB * ch1block,* ch2block,* co1block,* co2block,* co3block,* d1block,* d2block,* d3block,* d4block;
COCT * CO1,* CO2,* CO3;
DCT *d1,*d2,*d3,*d4;
SDT *s1,*s2,*s3,*s4;
//=================================================
run=(PCB *)malloc(sizeof(PCB));
run-next=NULL;
CH1=(CHCT *)malloc(sizeof(CHCT));
CH2=(CHCT *)malloc(sizeof(CHCT));
strcpy(CH1-identify,ch1);
strcpy(CH2-identify,ch2);
CH1-state=0;
CH2-state=0;
ch1block=(PCB *)malloc(sizeof(PCB));
ch1block-next=NULL;
ch2block=(PCB *)malloc(sizeof(PCB));
ch2block-next=NULL;
CH1-blocking=ch1block;
CH2-blocking=ch2block;
cohead=(COCT *)malloc(sizeof(COCT));
cohead-next=NULL;
CO1=(COCT *)malloc(sizeof(COCT));
cohead-next=CO1;
CO1-next=NULL;
CO2=(COCT *)malloc(sizeof(COCT));
CO1-next=CO2;
CO2-next=NULL;
CO3=(COCT *)malloc(sizeof(COCT));
CO2-next=CO3;
CO3-next=NULL;
CO1-state=0;
CO2-state=0;
CO3-state=0;
co1block=(PCB *)malloc(sizeof(PCB));
co1block-next=NULL;
co2block=(PCB *)malloc(sizeof(PCB));
co2block-next=NULL;
co3block=(PCB *)malloc(sizeof(PCB));
co3block-next=NULL;
strcpy(CO1-identify,co1);
strcpy(CO2-identify,co2);
strcpy(CO3-identify,co3);
CO1-chct=CH1;
CO2-chct=CH1;
CO3-chct=CH2;
CO1-blocking=co1block;
CO2-blocking
文档评论(0)