司机与售票员.docVIP

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

甘肃政法学院 本科课程设计报告 题 目 司机与售票员(信号量操作) 计算机科学学_院_计算机科学与技术_专业 ___2008 级__计本1 ____班 学 号:_____200881010126____ 姓 名:_____王亚彬__________ 指导教师:______何珍祥___________ 成 绩:________________ ___ 完成时间:_ _2011 __年 _06___月 目录 一、设计思想基于理论 3 (一).设计要求: 3 (二)、信号量和PV原语 4 (三)、进程的同步互斥 4 (四)利用PV原语实现司机与售票员问题 5 二、数据结构流程图 5 (一)、理论分析 5 (二)、总体设计 5 三、开发环境 6 四、程序分析引用到的系统调用 8 (一)、Semaphore类 8 (二)、Thread类 8 (三)、sleep系统调用 9 (四)wait系统调用 10 (五)、ReleaseSemaphore调用 10 (六)、CreateProcess调用 10 (七)、CreateSemaphore调用 11 五、运行结果 12 六、分析总结 13 七、程序清单 13 参考文献…………………………………………………………………………………………..15 司机与售票员(信号量操作) 王亚彬 独立完成 一、设计思想基于理论 掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步和互斥的方法,加深对进程同步互斥概念的理解 (一).设计要求: 设计程序模拟在公共汽车上,司机和售票员操作的同步。司机:启动车辆,正常行车,到站停车。售票员:上乘客,关车门,售票,开车门,下乘客。用PV操作对其控制。 (二)、信号量和PV原语 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release Semaphore VI分别放置在每个关键代码段的首末端。确认这些信号量VI引用的是初始创建的信号量。信号量是最早出现的用来解决进程同步与互斥问题的机制, 包括一个称为信号量的变量及对它进行的两个原语操作。每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列对一个信号量变量可以进行两种原语操作:p操作和v操作p操作和v操作是不可中断的程序段,称为原语。如果将信号量看作共享变量,则pv操作为其临界区,多个进程不能同时执行。??由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。一个信号量只能置一次初值,以后只能对之进行p操作或v操作。?semaphore)来记录当前可用资源的数量。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。 P原语操作的动作是: (1) sem减1; (2) 若sem减1后仍大于或等于零,则进程继续执行; (3) 若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。 ????? V原语操作的动作是: (1) sem加1; (2) 若相加结果大于零,则进程继续执行; (3) 若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。进程的互斥和同步 进程同步:主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。相互合作的两个进程之间需要在某些确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。这就是进程间的同步。 进程互斥:主要源于资源共享,是进程之间的间接制约关系。在多道系统中,两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用,这种现象称为进程间的互斥。同步的主要特征是:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。互斥的主要特征是争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程 关车门; 售票; 开车门;

文档评论(0)

pangzilva + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档