- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言编程模拟生产者和消费者问题附代码程序
实验三 编程模拟生产者和消费者问题 一、实验目的和要求 模拟实现用同步机构避免发生进程执行时可能出现的与时间有关的错误。 进程是程序在一个数据集合上运行的过程,进程是并发执行的,也即系统中的多个进程轮流地占用处理器运行。 我们把若干个进程都能进行访问和修改的那些变量称为公共变量。由于进程是并发地执行的,所以,如果对进程访问公共变量不加限制,那么就会产生“与时间有关”的错误,即进程执行后所得到的结果与访问公共变量的时间有关。为了防止这类错误,系统必须要用同步机构来控制进程对公共变量的访问。一般说,同步机构是由若干条原语——同步原语——所组成。本实习要求学生模拟PV操作同步机构的实现,模拟进程的并发执行,了解进程并发执行时同步机构的作用。 二、实验环境 Windows操作系统和Visual C++6.0专业版或企业版 三、实验步骤 模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。 [提示]: (1) PV操作同步机构,由P操作原语和V操作原语组成,它们的定义如下: P操作原语P (s):将信号量s减去1,若结果小于0,则执行原语的进程被置成等待信号量s的状态。 V操作原语V (s):将信号量s加1,若结果不大于0,则释放一个等待信号量s的进程。 这两条原语是如下的两个过程: procedure p (var s: semaphore); begin s: = s-1; if s0 then W (s) end {p} procedure v (var s: semaphore); egin s: = s+1; if s£0 then R (s) end {v} 其中W(s)表示将调用过程的进程置为等待信号量s的状态;R(s)表示释放一个等待信号量s的进程。 在系统初始化时应把semaphore定义为某个类型,为简单起见,在模拟实习中可把上述的semaphore直接改成integer。 (2) 生产者——消费者问题。 假定有一个生产者和一个消费者,生产者每次生产一件产品,并把生产的产品存入共享缓冲器以供消费者取走使用。消费者每次从缓冲器内取出一件产品去消费。禁止生产者将产品放入已满的缓冲器内,禁止消费者从空缓冲器内以产品。假定缓冲器内可同时存放10件产品。那么,用PV操作来实现生产者和消费者之间的同步,生产者和消费者两个进程的程序如下: B: array [0..9] of products; s1, s2; semaphore; s1: =10, s2: =0; IN, out: integer; IN: =0; out: =0; cobegin procedure producer; c: products; begin L1: Produce (c); P (s1); B[IN]: =C; IN: =(IN+1)mod 10; V (s2); goto L1 end; procedure consumer; x: products; begin L2: p (s2); x: =B[out]; out: =(out+1) mod10; v (s1); consume (x); goto L2 end; coend. 其中的semaphore和products是预先定义的两个类型,在模拟实现中semaphore用integer代替,products可用integer或char等代替。 (3) 进程控制块PCB。 为了记录进程执行时的情况,以及进程让出处理器后的状态,断点等信息,每个进程都有一个进程控制块PCB。在模拟实习中,假设进程控制块的结构如图3-1。其中进程的状态有:运行态、就绪态、等待态和完成态。当进程处于等待态时,在进程控制块PCB中要说明进程等待原因(在模拟实习中进程等待原因是为等待信号量s1或s2);当进程处于等待态或就绪态时,PCB中保留了断点信息,一旦进程再度占有处理器则就从断点位置继续运行;当进程处于完成状态,表示进程执行结束。 进程名 状态 等待原因 断点 图3-1 进程控制块结构 (4) 处理器的模拟。 计算机硬件提供了一组机器指令,处理器的主要职责是解释执行机器指令。为了模拟生产者和消费者进程的并发执行,我们必须模拟一组指令和处理职能。 模拟的一组指令见图3-2,其中每条指令的功能由一个过程来实现。用变量PC来模拟“指令计数器”,假设模拟的指令长度为1,每执行一条模拟指令后,PC加1,提出下一条指令地址。使用模拟的指令,可把生产者和消费者进程的程序
您可能关注的文档
- aa课件111工程项目管理.doc
- abaqus614完美安装详细教程.doc
- abbabababccaabcaabbabac四字词语大全更拼音.doc
- abbacs800变频器提升程序n652介绍.doc
- abb定位器调节检修维护手册中文.doc
- abc类弱电机房建设要求分析.doc
- ac01ac02型电动列车正线常见故障应急处理.doc
- agv中文的操作手册仅供参考.doc
- aix61hacmporacle11gr2主备安装手册.docx
- aq30022005阻隔防爆撬装式汽车加油气装置技术要求.doc
- 《GB/T 29025.1-2025粒度分析 电阻法 第1部分:小孔管法》.pdf
- 《GB/T 37034.2-2025航空电子过程管理 防伪 第2部分:来源于非授权经销商电子元器件的管理》.pdf
- 中国国家标准 GB/T 37034.2-2025航空电子过程管理 防伪 第2部分:来源于非授权经销商电子元器件的管理.pdf
- GB/T 6113.102-2025无线电骚扰和抗扰度测量设备和测量方法规范 第1-2部分:无线电骚扰和抗扰度测量设备 传导骚扰测量的耦合装置.pdf
- GB/T 13609-2025天然气 气体取样.pdf
- 中国国家标准 GB/T 13609-2025天然气 气体取样.pdf
- 《GB/T 13609-2025天然气 气体取样》.pdf
- GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计.pdf
- 《GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计》.pdf
- 中国国家标准 GB/T 19629-2025医用电气设备 X射线诊断影像中使用的电离室和(或)半导体探测器剂量计.pdf
最近下载
- 公共危机管理概论完整版ppt整本书教学教程最全电子教案(必威体育精装版.pptx VIP
- 溃疡性结肠炎中医诊疗专家共识(2023).pptx VIP
- 小学课后延时服务建立良好的学习习惯.pptx VIP
- 2025年证券公司高级管理人员水平评价测试历年参考题库含答案详解(5套).docx VIP
- 2025年证券公司高级管理人员水平评价测试历年参考题库含答案详解.docx VIP
- 马克思主义哲学名著导读 第一编 马克思恩格斯的哲学名著.ppt VIP
- 大学生职业生涯规划人物访谈范例和报告.pdf VIP
- 项目全过程工程造价咨询招标文件模板.docx VIP
- 药剂学(本)形考任务1-3参考答案.docx VIP
- 2026北京中考英语听说考试应试技巧 课件.pdf
有哪些信誉好的足球投注网站
文档评论(0)