- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include stdio.h
#include iostream.h
#include stdlib.h
#include string.h
struct PCB{
int id;
char name[10];
int size;
struct PCB *next;
};
struct PCB *running;
struct PCB *ready;
struct PCB *blocked;
struct PCB *q;
struct PCB *p;
int id=1;
int size;
char name[10];
//////////////////////////////////////////////////////////////////////////////////////
struct DCT{ //设备
char name[10];
int busy;
PCB * occupied;
PCB * waiting;
struct DCT *next;
struct COCT* coct; //上级控制器
};
struct COCT{ //控制器
char name[10];
int busy;
PCB * occupied;
PCB * waiting;
struct COCT *next;
struct CHCT* chct; //控制器的上级通道
};
struct CHCT{ //通道
char name[10];
int busy;
PCB * occupied;
PCB * waiting;
struct CHCT *next;
};
//////////////////////////////////////////////////////////////////////////////////////
struct DCT * dcts;
struct COCT *cocts;
struct CHCT *chcts;
void enqueue(int id,char *name,int size,struct PCB *head){
struct PCB *node=(struct PCB *)malloc(sizeof(struct PCB));
node-next=0;
node-id=id;
strcpy(node-name,name);
node-size=size;
struct PCB *tmp=head;
while(tmp-next!=0)
tmp=tmp-next;
tmp-next=node;
}
struct PCB * dequeue(struct PCB *head){
struct PCB * tmp=head-next;
if(head-next!=0){
head-next=head-next-next;
tmp-next=0;
}
return(tmp);
}
void createProcess(){
printf(\nname: );
scanf(%s,name);
printf(size: );
scanf(%d,size);
printf(\n);
enqueue(id++,name,size,ready);
if(running==0){
running=dequeue(ready);
}
}
void switchProcess(){
if(running!=0ready-next!=0)
{
enqueue(running-id,running-name,running-size,ready);
running=dequeue(ready);
}
else
printf(没有可切换的进程\n);
}
void blockProcess(){
if(running==0)
printf(没有可阻塞的进程\n);
else
{
enqueue(running-id,running-name,running-size,blocked);
running=0;
if(ready-next==0)
printf(没有可执
您可能关注的文档
- 城市轨道交通课程设计-110kV主变电所设计.doc
- 单片机原理及应用(1)课程设计报告-基于51单片机的秒表计时系统.doc
- 管理信息系统课程设计说明书--学生选修课管理信息系统.doc
- 计算机网络课程设计--DNS中继服务器实验报告.docx
- 计算机网络课程设计报告--简单Web服务器设计与实现.doc
- 计算机网络课程设计--简单web服务器的设计与实现.doc
- 节电灯课程设计.doc
- 课程设计--18mm斜凹槽拨叉设计.doc
- 课程设计--900吨锅炉脱硫设计.doc
- 课程设计--AD590的应用.doc
- 车间及其设备升级改造项目可行性研究报告模板-立项备案.doc
- 城市矿产资源循环利用产业园项目可行性研究报告写作模板-申批立项.doc
- 国际能源LNG调峰储备中心项目可行性研究报告模板-备案拿地.doc
- 1GWh钠离子电池全产业线项目可行性研究报告模板-立项拿地.doc
- 户外运动鞋品制造项目可行性研究报告模板-立项拿地.doc
- 年产50万套中医医疗器械生产线技术改造项目可行性研究报告写作模板-申批立项.doc
- 年产300万台专业电动工具智能化技改项目可行性研究报告模板-立项拿地.doc
- 年产3000万安时镍氢动力电池项目可行性研究报告写作模板-拿地申报.doc
- 链挂及智能化设备升级改造项目可行性研究报告写作模板-拿地申报.doc
- 年产3万吨高端不锈钢换热器管项目可行性研究报告模板-立项拿地.doc
文档评论(0)