这个是很经典的问题实验题目:生产者与消费者(综合性实验)实验环境: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
JAVA2图形设计卷I:AWT源代码zip是机械工业出版社的那本书的源代码非常难得是时候拿点好的东西给大家分享了
2025/3/31 16:30:29 6.26MB java2图形 awt
1
计算机网络基础课程复习资源,包括考点总结+课程ppt详解(适用于机械工业出版社第七版——自顶向下法)
1
本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。
基本信息原书名:TheC++ProgrammingLanguage,SpecialEdition原出版社:AddisonWesley作者:(美)BjarneStroustrup译者:裘宗燕丛书名:计算机科学丛书出版社:机械工业出版社ISBN:7111102029上架时间:2002-7-12出版日期:2002年7月页码:936版次:1-1内容简介  本书介绍了标准c++以及由c++所支持的关键性编程技术和设计技术。
标准c++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。
本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。
本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而成为一名优秀的编程人员和设计人员。
适合做高校面向对象编程课程的教科书,也可作为c++爱好者的参考书。
[center][ahref=http://www.china-pub.com/main/sale/c++tb.htmtarget=_blank]c++之父bjarnestroustrup博士专访[/a]  [ahref="http://www.is.pku.edu.cn/~qzy/cpp.htm"target="_blank"]《c++程序设计语言》程序的更正和更新[/a]  [ahref="http://www.china-pub.com/temporary/list/cooperate/zipdownload/zg.zip"target="_blank"]本书忠告[/a][/center]作译者作者:BjarneStroustrupBjarneStroustrup现任AT&T实验室的大型程序设计研究部的主管。
1990年,Bjarne荣获《财富》杂志评选的“美国12位最年轻的科学家”称号。
1993年,由于在C++领域的重大贡献,Bjarne获得了ACM该年度的GraceMurrayHopper大奖并成为ACM院士(成立于1947年的ACM协会是历史最悠久、目前世界上最大的教育和科学计算协会,成为ACM院士是个人成就的里程碑)。
1995年,BYTE杂志颁予他“近20年来计算机工业最具影响力的20人”的称号。
[同作者作品]C++程序设计语言(特别版)(英文影印版)C++语言的设计和演化[按需印刷]C++程序设计语言(特别版)译者:裘宗燕知名译者,翻译严谨,喜与读者交流。
  裘宗燕教授是北京大学数学学院信息科学系的,关心的主要学术领域包括计算机软件理论、程序设计方法学、程序设计语言和符号计算。
已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999)[同作者作品]计算机基础教程(上下)(文科类)(裘宗燕等)数据结构——C++与面向对象的途径数据结构--C++与面向对象的途径(修订版)目录出版者的话专家指导委员会中文版序译者序序第2版序第1版序导论第1章致读者31.1本书的结构31.1.1例子和参考41.1.2练习51.1.3有关实现的注记51.2学习c++61.3c++的设计71.3.1效率和结构81.3.2哲学注记91.4历史注记91.5c++的使用111.6c和c++12.1.6.1给c程序员的建议131.6.2给c++程序员的建议131.7有关在c++里编程的思考141.8忠告151.9参考文献16第2章c++概览192.1为什么是c++192.2程序设计范型192.3过程式程序设计202.3.1变量和算术212.3.2检测和循环222.3.3指针和数组232.4模块程序设计232.4.1分别编译242.4.2异常处理252.5数据抽象262.5.1定义类型的模块272.5.2用户定义类型282.5.3具体类型292.5.4抽象类型312.5.5虚函数332.6面向对象的程序设计332.6.1具体类型的问题332.6.2
2024/10/13 4:51:33 51.87MB C++ 程序设计语言 特别版 详细书签版
1
《SIP原理与应用》周海华,边恩炯等编著机械工业出版社
2024/10/4 7:19:01 27.48MB sip原理
1
数据库系统原理及应用教程_第三版_课后答案(苗雪兰_刘瑞新_著)_机械工程出版社
2024/7/8 7:25:40 10.02MB 数据库 答案
1
机械化工行业常用材料性能查询软件,包括弹性模量,屈服强度,抗拉强度,导热系数,泊松比,硬度,许用应力等等
2024/2/6 1:12:37 4.36MB 机械 材料性能 化工
1
[美]布雷特.斯拉特金(BrettSlatkin)著;
爱飞翔译;
机械工业出版社;
本书会深入讲解如何以符合Python风格的方式来编写程序,这种方式就是运用Python语言的最佳方式。
2024/2/4 14:10:38 35.52MB Python
1
这是数据库系统概念原书第六版-课后答案(包括实践习题和习题答案两部分,在压缩文件里面已经分别注释了),唯一不足之处答案是英文版的,可以考验一下英文水平哦。
其实会点数据库语法的都可以看懂的
2024/1/13 5:06:04 24.17MB 数据库系统 Abraham Silb 机械工业
1
商务与经济统计(原书第13版)作者:戴维R.安德森(David出版社:机械工业出版社资源包中含有英文ppt+案例+习题集+其它+SolutionsManual_SBE13e等书籍配套文件
2023/12/23 16:37:38 44.14MB 商务智能 安德森 数据分析 统计
1
共 27 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡