实验2 进程通信设计说明书 .pdfVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

进程通信参考实例:设计说明书

1概述

在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的

情况是一些线程进行某些处理操作,而其它的线程必须对其处理结果进行了解。正常情况下对

这种处理结果的了解应当在其处理任务完成后进行。如果不采取适当的措施,其它线程往往会

在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误的了解。例

如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个线程

负责改变此变量的值,而其他线程负责同时读取变量内容,则不能保证读取到的数据是经过写

线程修改后的。为了确保读线程读取到的是经过修改的变量,就必须在向变量写入数据时禁止

其他线程对其的任何访问,直至赋值过程结束后再解除对其他线程的访问限制。像这种保证线

程能了解其他线程任务处理结束后的处理结果而采取的保护措施即为线程同步。

1.1目的

通过本软件的演示,使学生更直观、更深入的明确操作系统进程、线程的概念。能够知道

为什么要使用多道程序的思想,以及怎么使用API创建多线程和使线程同步的基本方法。把课

本上的P、V操作的思想运用到实践当中。掌握基本的VC编程,提高动手能力。

1.2主要完成的任务

Buffer1Buffer2

PUTMOVEGET

图1模型图

对该模型(图1)实例化,利用图形界面直观易懂的特点,把完全抽象的线程的就绪、阻塞、

执行的概念以及同步互斥的过程用图形动态的显示出来。

1.3使用的开发工具

VC++6.0,WINDOWS2000

1.4解决的主要问题

(1)线程的同步互斥

首先我们要对问题进行正确的P、V操作的描述,然后选择适当的API加以描述。

(2)图形显示模拟的问题。

利用一定的图形清楚直观的反应抽象的数据,把整个模型的动态流程表示出来。

(3)各功能模块的协调合作

要为各模块及程序做好运行时的状态保存,然后依据状态进行合适的操作。

2使用的基本概念和基本原理

2.1程序、进程、线程

程序:是指一个指令序列。

进程:为执行程序指令的线程而保留的一系列资源的集合。

线程:操作系统用来调度执行的最小单位。

2.2线程的同步

临界段:临界段对象通过提供所有线程必须共享的对象来控制线程。只有拥有临界段对象

的线程才可以访问保护资源(进行临界区操作)。在另一个线程可以获取对象的访问权。用户应

用程序可能会使用临界对象来阻止两个线程同时访问共享的资源发文件等。

互斥量:互斥量的工作方式和临界段非常相似,其区别在于互斥量不公保护一个进程内的

资源共享,而且还保护系统中进程之间的共享资源。它是通过为互斥量提供一个“互斥量名”

来进行进程间资源共享协调的。

事件:事件对象用于给线程传递信号,指示线程中特定的操作可以开始或结束。除非线程

已经收到了这个事件信号,否则它将一直处于挂起状态。当事件对象进入其信号状态时,正在

等待该事件的线程就可以开始执行。例如,一个应用程序可以通过事件来通知线程它需要的数

据已经准备好。经常利用事件进行线程之间的通信。

信号量:信号量与互斥相似,但是互斥只允许在同一时刻一个线程访问它的数据,而信号

量允许多个线程在同一时刻访问它的数据。WIN32不知道哪一个线程拥有信号量,它只保证信

号量使用的资源计数正确的设置。

2.3基本原理

本程序使用信号量作为同步互斥的工具,当然也可以用其它的,通过对BUFFER1、BUFFER2

的容量,还有控制权设置不同的信号量来协调PUT、GET、MOVE线程,使其同步来实现P、

V操作。本程序并非真正的传输数据,只是对一个数据计数器加减来模拟数据的增加减少,被

送来被取走,然后通过定时刷新,将线程的状态、数据显示到界面上。

3总体设计

3.1基本技术路线

MFC中已实现有对线程操作和同步互斥的全部类,但是他对实现P、V操作的模拟不够直

观;使用API面向过程的

文档评论(0)

155****6602 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档