第一范文网 - 专业文章范例文档资料分享平台

操作系统课程设计报告

来源:用户分享 时间:2025/5/28 7:48:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

者进程加入到就绪队列;初始化缓冲区。 void init() {

s1.type='a'; s1.val=10; s2.type='b'; s2.val=0; m1.type='c'; m1.val=1; m2.type='d'; m2.val=1;

for(int i=0;i

char str2[2]={'P','\\0'}; char * str;

str = join(str2,str1);

strcpy(producter[i].name,str);

producter[i].state='R';//就绪态,要加入就绪队列

21

producter[i].why=' '; producter[i].dd=0;

ready[irn++]=&producter[i];//将生产者加入就绪队列 }

for(int j=0;j

char str2[2]={'C','\\0'}; char * str;

str = join(str2,str1); strcpy(consumer[j].name,str); consumer[j].state='R'; consumer[j].why=' '; consumer[j].dd=0;

ready[irn++]=&consumer[j];//将消费者加入就绪队列 }

for(int k=0;k<10;k++) {

array[k] = ' ';

22

} }

//处理器调度

随机调度一个在就绪队列中的进程,判断是生产者进程还是消费者进程,执行不同的语句,执行一条指令后(执行后pc的值加1),重新调度。 void diaodu() {

while(irn!=0){ x=rand()%irn; rx=x;

process=ready[x]; pc=process->dd;

if(process->name[0]=='P'){ pt=pc; pc++; switch(pt){

case 0:p(&s1);process->dd=pc;break; case 1:p(&m1);process->dd=pc;break; case 2: put();process->dd=pc;break; case 3:v(&m1);process->dd=pc;break; case 4:v(&s2);process->dd=pc;break;

23

case 5: gotol();process->dd=pc; } }

else if(process->name[0]=='C'){ pt=pc; pc++; switch(pt){

case 0:p(&s2);process->dd=pc;break; case 1:p(&m2);process->dd=pc;break; case 2:get();process->dd=pc;break; case 3:v(&m2);process->dd=pc;break; case 4:v(&s1);process->dd=pc;break; case 5:gotol();process->dd=pc; } }

}//end while

printf(\程序结束!\\n\此程序没有结束的时候,固不需要改就绪态为运行态,也没有完成态 }

24

搜索更多关于: 操作系统课程设计报告 的文档
操作系统课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8guf82k0gd1oirv327pb3jk4h7sglc00pp8_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top