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

司机与售票员问题.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 11 目录 TOC \o 1-2 \h \z \u HYPERLINK \l _Toc312534838 1.需求分析 PAGEREF _Toc312534838 \h 2 HYPERLINK \l _Toc312534839 1.1实验目的 PAGEREF _Toc312534839 \h 2 HYPERLINK \l _Toc312534840 1.2设计要求 PAGEREF _Toc312534840 \h 2 HYPERLINK \l _Toc312534841 2. 功能设计 PAGEREF _Toc312534841 \h 2 HYPERLINK \l _Toc312534842 2.1流程图 PAGEREF _Toc312534842 \h 2 HYPERLINK \l _Toc312534843 2.2数据结构 PAGEREF _Toc312534843 \h 3 HYPERLINK \l _Toc312534844 3.开发平台及源程序代码 PAGEREF _Toc312534844 \h 4 HYPERLINK \l _Toc312534845 3.1开发环境与工具 PAGEREF _Toc312534845 \h 4 HYPERLINK \l _Toc312534846 3.2源代码 PAGEREF _Toc312534846 \h 4 HYPERLINK \l _Toc312534847 4.测试及结果 PAGEREF _Toc312534847 \h 7 HYPERLINK \l _Toc312534848 5.自我评价与总结 PAGEREF _Toc312534848 \h 10 HYPERLINK \l _Toc312534849 6.参考书目 PAGEREF _Toc312534849 \h 12 1.需求分析 1.1实验目的 掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步和互斥的方法,加深对进程同步互斥概念的理解。 1.2设计要求 设计程序模拟在公共汽车上,司机和售票员操作的同步。司机:启动车辆,正常行车,到站停车。售票员:上乘客,关车门,售票,开车门,下乘客。用PV操作对其控制。 2. 功能设计 本程序的设计原理比较简单,就是两大部分,一是司机的行车操作过程,另一个是售票员的开车门和关车门(以及售票,本程序不讨论售票过程)的过程。 现在来说明如何具体实现司机开车和售票员售票的相关过程。首先,设置2个私有信号量,分别是司机和售票员的。其中,司机的私有信号量设置为sj,其初始值为0;售票员的私有信号量为spy,其初始值为1;以上的初值表示的是司机和售票员的行车和开关车门的一个具体初始状态,具体的说也就是当车子停着,车门开着的时候的状态,此时,司机不能开车,只有当售票员售完票之后,通知司机才可以。 2.1流程图 用操作系统书上的方法写出的流程图如下: 启动汽车 启动汽车 到站停车 正常行驶 关车门 开车门 售票 司 机 售票员 (a)司机的工作流程 (b)售票员的工作流程 2.2数据结构 这样一来的话,仿照书上的P,V操作,实现司机和售票员之间的同步的过程如下: begin sj,spy;semaphore //设置司机和售票员的私有信号量; sj=0;spy=1; //设置初始值; cobegin process 司机 //司机的操作过程; begin L1:P(sj); 启动车辆; 正常行驶; 到站停车; V(spy); goto L1; end; process 售票员 //售票员的操作过程; begin L2:P(spy); 开车门; 关车门; V(sj); 售票; goto L2; end; coend; end; 3.开发平台及源程序代码 3.1开发环境与工具 系统平台:WINDOW环境 实现语言:C++ 开发工具:VC++6.0 3.2源代码 目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步和互斥的方法,加深对进程同步互斥概念的理解。 设计要求:设计程序模拟在公共汽车上,司机和售票员操作的同步。司机:启动车辆,正常行车,到站停车。售票员:上乘客,关车门,售票,开车门,下乘客。用PV操作对其控制。 其中源程序的代码如下: #includeiostream using namespac

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档