网站大量收购闲置独家精品文档,联系QQ:2885784924

实验一 进程互斥 实验报告.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

计算机操作系统

模拟进程同步与互斥

1

注:实验报告应包含(实验目的,实验原理,主要仪器设备和材料,实验过程

和步骤,实验原始数据记录和处理,实验结果和分析,成绩评定)等七项内容。

具体内容可根据专业特点和实验性质略作调整,页面不够可附页。

一、实验目的

1、熟悉临界资源的、信号量及PV操作的定义

2、了解进程通信的方法

3、掌握实现进程互斥与同步的方法

4、掌握用信号量机制解决进程之间同步的与互斥的问题

5、实现生产者-消费者问题,深刻理解操作系统对进程的调度顺序及进

程同步的概念

二、实验原理(主要写算法思想)

生产者-消费者问题是经典的进程同步问题,在这个问题中,生产者不

断的向缓冲池中写入数据,消费者不断的从缓冲区中读取数据。生产者和

消费者对缓冲池的操作是互斥的,即当前只能由一个进程对这个缓冲池进

行操作。生产者生产时要判断当前缓冲池是否已满,当缓冲池满时,不能

再写入,消费者消费时要判断当前缓冲池是否已空,当缓冲池空时,不能

再读取。

三、主要器材设备和原料

1.PC微机。

2.Windows操作系统。

3.C语言开发集成环境。

2

四、实验过程和步骤(比如流程图)

1.本实验具体要求

在同一个进程地址空间内执行的两个进程,生产者进程生产产品,然后将产

品放置在一个空缓冲区中供消费者进程消费。消费者进程从缓冲区中获得产品,

然后释放缓冲区。当生产者进程生产产品时,如果没有空缓冲区可用,那么生产

者线程必须等待消费者进程释放出一个空缓冲区。当消费者进程消费产品时,如

果缓冲区为空,那么消费者进程将被阻塞,直到新的产品被生产出来。

2.程序实现步骤

(1)通过srand函数产生随机数,并通过产生的随机数来判断执行生产者

进程或者执行消费者进程。

(2)当执行生产者进程时,需对产品类型进行选择,当缓冲区未满时,将

该产品放置在缓冲区,以等待消费者消费。

(3)当缓冲区已满时,生产者进程将被阻塞,直到消费者消费产品后,缓

冲区有空间存放产品,同时程序跳转至步骤(1)。

(4)当执行消费者进程时,需对产品类型进行选择,当缓冲区有该产品时,

则消费者进行消费。

(5)如果缓冲区不存在该产品,即为空,则消费者者进程将被阻塞,同时

程序跳转至步骤(1)。

(6)当程序执行十次,即产生十次随机数后,程序终止。

3、流程图(如下图1所示)

3

开始

i=0

i10

产生随机数j

j40判断j与40的大小j40

i++

缓冲区是否为满缓冲区是否为空

不满满不空空

显示缓冲区显示缓冲区

生产消费

满了

文档评论(0)

139****8394 + 关注
实名认证
内容提供者

硕士生导师

1亿VIP精品文档

相关文档