资源描述:
《操作系统设备管理实验代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#includeusingnamespacestd;//typedefstructnode{charname[10];chardevname[10];structnode*next;}PCB;//进程PCB*run;//执行队列//typedefstructNode{charidentify[10];//标识intstate;//设备状态PCB*blocking;//阻塞队列指针}CHCT;//通道控制表CHCT*CH1,*CH2;//typedefstructNOde{charidentify[10];//标识intstate;//设备状态CHCT*chc
2、t;//CHCTPCB*blocking;//阻塞队列指针structNOde*next;}COCT;//控制器控制表COCT*cohead;typedefstructNODe{charidentify[10];//标识chartype;//设备类型intstate;//设备状态inttimes;//重复执行次数PCB*blocking;//阻塞队列指针COCT*coct;//COCT}DCT;//设备控制表typedefstructNODE{chartype;//类别charidentify[10];//标识DCT*dct;//DCT//驱动入口地址structNODE*ne
3、xt;}SDT;//系统设备表SDT*head;SDT*checkdel;voidInit(){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;CH
4、1=(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=c
5、h2block;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;co1blo
6、ck=(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->bl
7、ocking=co1block;CO2->blocking=co2block;CO3->blocking=co3block;//=====================================================d1block=(PCB*)malloc(sizeof(PCB));d2block=(PCB*)malloc(sizeof(PCB));d3block=(PCB*)malloc(sizeof(PCB));d4block=(PCB*)malloc(sizeof(P