这个是很经典的问题实验题目:生产者与消费者(综合性实验)实验环境:C语言编译器实验内容:①由用户指定要产生的进程及其类别,存入进入就绪队列。
  ②调度程序从就绪队列中提取一个就绪进程运行。
如果申请的资源被阻塞则进入相应的等待队列,调度程序调度就绪队列中的下一个进程。
进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。
运行结束的进程进入over链表。
重复这一过程直至就绪队列为空。
  ③程序询问是否要继续?如果要转直①开始执行,否则退出程序。
实验目的:通过实验模拟生产者与消费者之间的关系,了解并掌握他们之间的关系及其原理。
由此增加对进程同步的问题的了解。
实验要求:每个进程有一个进程控制块(PCB)表示。
进程控制块可以包含如下信息:进程类型标号、进程系统号、进程状态、进程产品(字符)、进程链指针等等。
系统开辟了一个缓冲区,大小由buffersize指定。
程序中有三个链队列,一个链表。
一个就绪队列(ready),两个等待队列:生产者等待队列(producer);
消费者队列(consumer)。
一个链表(over),用于收集已经运行结束的进程本程序通过函数模拟信号量的操作。
参考书目:1)徐甲同等编,计算机操作系统教程,西安电子科技大学出版社2)AndrewS.Tanenbaum著,陈向群,马红兵译.现代操作系统(第2版).机械工业出版社3)AbranhamSilberschatz,PeterBaerGalvin,GregGagne著.郑扣根译.操作系统概念(第2版).高等教育出版社4)张尧学编著.计算机操作系统教程(第2版)习题解答与实验指导.清华大学出版社实验报告要求:(1)每位同学交一份电子版本的实验报告,上传到202.204.125.21服务器中。
(2)文件名格式为班级、学号加上个人姓名,例如:电子04-1-040824101**.doc  表示电子04-1班学号为040824101号的**同学的实验报告。
(3)实验报告内容的开始处要列出实验的目的,实验环境、实验内容等的说明,报告中要附上程序代码,并对实验过程进行说明。
基本数据结构:PCB*readyhead=NULL,*readytail=NULL;//就绪队列PCB*consumerhead=NULL,*consumertail=NULL;//消费者队列PCB*producerhead=NULL,*producertail=NULL;//生产者队列over=(PCB*)malloc(sizeof(PCB));//over链表intproductnum=0;//产品数量intfull=0,empty=buffersize;//semaphorecharbuffer[buffersize];//缓冲区intbufferpoint=0;//缓冲区指针structpcb{/*定义进程控制块PCB*/intflag;//flag=1denoteproducer;flag=2denoteconsumer;intnumlabel;charproduct;charstate;structpcb*processlink;……};processproc()---给PCB分配内存。
产生相应的的进程:输入1为生产者进程;
输入2为消费者进程,并把这些进程放入就绪队列中。
waitempty()---如果缓冲区满,该进程进入生产者等待队列;
linkqueue(exe,&producertail);//把就绪队列里的进程放入生产者队列的尾部voidsignalempty()boolwaitfull()voidsignalfull()voidproducerrun()voidcomsuerrun()voidmain(){processproc();element=hasElement(readyhead);while(element){exe=getq(readyhead,&readytail);printf("进程%d申请运行,它是一个",exe->numlabel);exe->flag==1?printf("生产者\n"):printf("消费者\n");if(exe->flag==1)producerrun();elsecomsuerrun();element=hasElement(readyhead);}printf("就绪队列没有进程\n");if(ha
1
Python编程的pdf版,marklutz(著)邹晓;瞿乔;任发科(译)中国电力出版社
2025/6/14 14:26:43 54.97MB python
1
捷联惯性导航技术(张天光译)(第二版),是一本学习导航制导的必看书籍。
1
IntermediatePython这本书具有如下几个优点:简单、易读、易译。
这些都不是重点,重点是:它是一本开脑洞的书。
无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。
本书作者的行文方式有着科普作家的风范,--那就是能将晦涩难懂的技术用比较清晰简洁的方式进行呈现,深入浅出的风格在每个章节的讨论中都得到了体现:每个章节都非常精简,5分钟就能看完,用最简洁的例子精辟地展现了原理每个章节都会通过疑问,来引导读者主动思考答案每个章节都引导读者做延伸阅读,让有兴趣的读者能进一步举一反三每个章节都是独立的,你可以挑选任意的章节开始阅读,而不受影响
2025/6/8 5:57:04 17.23MB python
1
华章数学译丛59多元时间序列分析及金融应用R语言中英文
2025/5/1 11:12:52 62.55MB math
1
作者对本书作了许多教学方法上的精心细致的安排,这形成了本书的一个明显的特色:每章开头是与该章内容有关的专业性讨论,每章后有小结;
所有的原理均通过清晰的逻辑推导得出,提供解答详细的例题和各种类型的大量习题;
书中包含PSpice软件仿真内容,并有相应的习题;
每章最后一节研究应用实例,帮助学生掌握相关概念和方法的应用。
这些特色使本书成为一本明白易懂、内容丰富、条理清晰、富有趣味的教科书。
本书除可供电类各专业的学生作为教科书使用外,还适于自学者使用,或供有关技术人员、高校教师参考。
2025/4/29 12:10:12 115.34MB 电路基础
1
KendallAtkinson著韩渭敏译人民邮电出版社
2025/4/25 10:10:18 24.66MB Elementary Numerical Analysis
1
CWM公共仓库元模型开发指南+彭蓉译两套CWM公共仓库元模型开发指南+彭蓉译两套
2025/4/22 22:43:07 73.55MB CWM
1
11.《无穷之旅:关于无穷大的文化史》(以色列)伊莱·马奥尔著王前武学民金敬红译2000年8月第一版12.《20世纪数学的五大指导理论》(美国)约翰·L·卡斯蒂著叶其孝刘宝光译2000年12月第一版13.《数:科学的语言》(美国)T·丹齐克著苏仲湘译2000年12月第一版14.《数学游戏与欣赏》(美国)劳斯·鲍尔(加拿大)考克斯特著杨应辰译2001年4月第一版15.《数学旅行家:漫游数王国》(美国)卡尔文·C·克劳森著袁向东袁钧译2001年12月第一版
2025/4/20 16:27:10 40.18MB math
1
Python程序设计_车万翔译_课后全部奇偶页答案与源程序,辅助资料,还有ppt,所有例题程序。
1
共 378 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡