实验一-进程互斥-实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1计算机操作系统模拟进程同步与互斥2注:实验报告应包含(实验目的,实验原理,主要仪器设备和材料,实验过程和步骤,实验原始数据记录和处理,实验结果和分析,成绩评定)等七项内容。具体内容可根据专业特点和实验性质略作调整,页面不够可附页。一、实验目的1、熟悉临界资源的、信号量及PV操作的定义2、了解进程通信的方法3、掌握实现进程互斥与同步的方法4、掌握用信号量机制解决进程之间同步的与互斥的问题5、实现生产者-消费者问题,深刻理解操作系统对进程的调度顺序及进程同步的概念二、实验原理(主要写算法思想)生产者-消费者问题是经典的进程同步问题,在这个问题中,生产者不断的向缓冲池中写入数据,消费者不断的从缓冲区中读取数据。生产者和消费者对缓冲池的操作是互斥的,即当前只能由一个进程对这个缓冲池进行操作。生产者生产时要判断当前缓冲池是否已满,当缓冲池满时,不能再写入,消费者消费时要判断当前缓冲池是否已空,当缓冲池空时,不能再读取。三、主要器材设备和原料1.PC微机。2.Windows操作系统。3.C语言开发集成环境。3四、实验过程和步骤(比如流程图)1.本实验具体要求在同一个进程地址空间内执行的两个进程,生产者进程生产产品,然后将产品放置在一个空缓冲区中供消费者进程消费。消费者进程从缓冲区中获得产品,然后释放缓冲区。当生产者进程生产产品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者进程释放出一个空缓冲区。当消费者进程消费产品时,如果缓冲区为空,那么消费者进程将被阻塞,直到新的产品被生产出来。2.程序实现步骤(1)通过srand函数产生随机数,并通过产生的随机数来判断执行生产者进程或者执行消费者进程。(2)当执行生产者进程时,需对产品类型进行选择,当缓冲区未满时,将该产品放置在缓冲区,以等待消费者消费。(3)当缓冲区已满时,生产者进程将被阻塞,直到消费者消费产品后,缓冲区有空间存放产品,同时程序跳转至步骤(1)。(4)当执行消费者进程时,需对产品类型进行选择,当缓冲区有该产品时,则消费者进行消费。(5)如果缓冲区不存在该产品,即为空,则消费者者进程将被阻塞,同时程序跳转至步骤(1)。(6)当程序执行十次,即产生十次随机数后,程序终止。3、流程图(如下图1所示)4图1五、实验结果和分析缓冲池中没有物品,无法消费,只能进行生产生产数字产品开始产生随机数j判断j与40的大小j40j40生产消费缓冲区是否为满缓冲区是否为空不满满不空空显示缓冲区满了显示缓冲区为空结束i=0i10i++5生产字符产品消费数字产品消费字符产品缓冲池已满,不能生产,只能进行消费6

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功