1.目的:调试、修改、运行模拟程序,通过形象化的状态显示,使学生理解进程的概念,了解同步和通信的过程,掌握进程通信和同步的机制,特别是利用缓冲区进行同步和通信的过程。
通过补充新功能,使学生能灵活运用相关知识,培养创新能力。
2.内容及要求:1)调试、运行模拟程序。
2)发现并修改程序中不完善的地方。
3)修改程序,使用随机数控制创建生产者和消费者的过程。
4)在原来程序的基础上,加入缓冲区的写互斥控制功能,模拟多个进程存取一个公共缓冲区,当有进程正在写缓冲区时,其他要访问该缓冲区的进程必须等待,当有进程正在读取缓冲区时,其他要求读取的进程可以访问,而要求写的进程应该等待。
5)完成1)、2)、3)功能的,得基本分,完成4)功能的加2分,有其它功能改进的再加2分3.程序说明:  本程序是模拟两个进程,生产者(producer)和消费者(Consumer)工作。
生产者每次产生一个数据,送入缓冲区中。
消费者每次从缓冲区中取走一个数据。
缓冲区可以容纳8个数据。
因为缓冲区是有限的,因而当其满了时生产者进程应该等待,而空时,消费者进程应该等待;
当生产者向缓冲区放入了一个数据,应唤醒正在等待的消费者进程,同样,当消费者取走一个数据后,应唤醒正在等待的生产者进程。
就是生产者和消费者之间的同步。
  每次写入和读出数据时,都将读和写指针加一。
当读写指针同样时,又一起退回起点。
当写指针指向最后时,生产者就等待。
当读指针为零时,再次要读取的消费者也应该等待。
为简单起见,每次产生的数据为0-99的整数,从0开始,顺序递增。
两个进程的调度是通过运行者使用键盘来实现的。
4.程序使用的数据结构进程控制块:包括进程名,进程状态和执行次数。
缓冲区:一个整数数组。
缓冲区说明块:包括类型,读指针,写指针,读等待指针和写等待指针。
5.程序使用说明  启动程序后,如果使用'p'键则运行一次生产者进程,使用'c'键则运行一次消费者进程。
通过屏幕可以观察到两个进程的状态和缓冲区变化的情况。
2019/3/25 13:35:58 306KB 操作系统 上机 实验报告 进程同步
1
keil用汇编写数码管显示00-99,proteus下建立仿真,keil建立工程,运用AT89C51芯片,编译出.hex加入到仿真···
2020/2/9 17:57:43 14KB 汇编
1
hive-testbench-hive14.zip大数据TPCDS自动测试剧本
2017/10/15 21:35:40 9.23MB tpcds
1
该文件为基于Multisim13.0的数电交通灯仿真程序(已验证通过),可以直接运转!设计一个十字路口交通灯定时控制器:1)主、支干道交替通行,主道每次放行30s,支道每次放行20s。
2)绿灯亮表示可以通行,红灯亮表示禁止通行。
3)当绿灯变红灯时,黄灯先亮5s,此时另一干道上的红灯不变。
4)主、支路口要有数字显示,作为时间提示,以便人们更直观地把握时间。
具体要求:主、支干道通行时间及黄灯亮的时间均以秒为单位作减计数。
5)黄灯亮时,红灯按1Hz的频率闪烁。
6)要求主、支干通道通行时间及黄灯亮的时间均可在0--99S内任意设定。
2017/7/18 22:20:21 2.47MB 数电 交通灯 Multisim 仿真程序
1
中科院(亚洲人)人脸数据集[计算机视觉人脸辨认]该资源共有500组图片数据,每组数据有5份,共计2500份训练数据。
分别为part1(1-99)、part2(100-199)、part3(200-299)、part4(300-399)、part5(400-499);
因数据量过大,分5次上传,欢迎大家下载。
1
rfc规范中文版合集两头会有部分不全RFC1-99RFC101-698RFC763-988RFC1050-1483RFC1558-1992RFC2002-2495RFC2508-2994RFC3001-3093
2017/10/25 13:54:02 3.48MB 中文版
1
中科院(亚洲人)人脸数据集[计算机视觉人脸辨认]该资源共有500组图片数据,每组数据有5份,共计2500份训练数据。
分别为part1(1-99)、part2(100-199)、part3(200-299)、part4(300-399)、part5(400-499);
因数据量过大,分5次上传,欢迎大家下载。
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡