计算机操作系统实验指导实验报告模板.doc

计算机操作系统实验指导实验报告模板.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 第PAGE 3页,共 NUMPAGES 3页 教务处制 XXXX大学实验报告 院、系 年级专业 姓名 学号 课程名称 成绩 指导教师 同组实验者 实验日期 实 验 名 称 实验目的 初步了解 Linux 系统中,进程间通信的方法。 实验内容 编写一个程序,用 Linux 中的 IPC 机制,完成两个进程“石头、剪子、布”的游戏。 实验步骤 本实验可以创建三个进程,其中,一个进程为裁判进程,另外两个进程为选手进程。可以将“石头、剪子、布”这三招定义为三个整型值。胜负关系:石头〉剪子〉布〉石头。 选手进程按照某种策略(例如,随机产生)出招,交给裁判进程判断大小。裁判进程将对手的出招和胜负结果通知选手。比赛可以采取多盘(>100盘)定胜负,由裁判宣布最后结果。每次出招由裁判限定时间,超时判负。 每盘结果可以存放在文件或其他数据结构中。比赛结束,可以打印每盘的胜负情况和总的结果。 1.设计表示“石头、剪子、布”的数据结构,以及它们之间的大小规则。 2.设计比赛结果的存放方式。 3.选择 IPC 的方法。 4.根据你所选择的 IPC 方法,创建对应的 IPC 资源。 5.完成选手进程。 6.完成裁判进程。 实验结果 实验步骤1的数据结构: 实验步骤1的大小规则: 这里采用枚举类型,令stone=1,scissor=2,cloth=3,当石头和剪刀、剪刀和布比较大小时,哪个数字小哪个就赢,当石头和布比较大小时,作另外的判断,哪个大哪个赢。 实验步骤 2 的结构: 比赛结果都存放到文件中,最后读取文件中所有的胜负判断谁胜谁负。 实验步骤 3 中,你所选择的 IPC 方法: System V IPC消息队列。 实验步骤 3,为何选择该方法? 因为消息队列能够定义消息格式,且操作比较方便,资料较多。且以前尝试过消息队列的建立与释放,因此选择改方法。 实验步骤 3,如果选择消息队列机制,描述消息缓冲区结构: 如上图所示,这是自定义的消息缓冲区结构,type表示消息类型,data用于存放每个选手出的剪刀石头布和裁判返回的胜负结果。 实验步骤 4,如何创建 IPC 资源? 通过msgget函数可以申请一个消息队列,通过msgctl函数可以释放一个消息队列。为了避免通过命令行手动释放的麻烦,所以用一个类封装了一下这两个函数。运用了c++一种叫RAII(资源获取即初始化)的编程思想,在类的构造函数中建立消息队列,在类的析构函数中释放消息队列,这样来管理资源。具体代码如下图: 实验步骤 5,程序主要流程或关键算法: 具体想法是,对于两个选手和一个裁判,总共建立四个消息队列,每个选手拥有两个消息队列,一个消息队列用于存放剪刀石头布这些出招信息,一个消息队列用于存放裁判返回的胜负结果。程序的主要流程是,两个独立的选手进程和一个独立的裁判进程,三个进程同时开始,两个选手进程分别向各自的消息队列中写入出招信息,裁判从这两个消息队列中取出各自的出招信息,并向两名选手的结果消息队列中写入结果,然后选手进程要从结果消息队列中获取裁判进程发来的结果,并写入文件。这个过程可以看作是同步的,因为裁判返回结果需要两个选手的出招信息,当获取两个选手完整的出招信息的时候才会进行判决,写入胜负结果。另外为了便于进程的管理,程序采用了线程来模拟进程。 实验部分结果的展示: 五、实验总结 通过进程间通信实验,让我了解了在Linux环境下如何创建多个进程(fork),如何在子进程中执行其他的程序(exec族函数),以及进程间通讯的方式(共享内存,管道,消息队列)。 编程中也遇到很多问题,如:随机数进程(选手进程)在很短时间内被两次调用时,两次产生的随机数是一样的等,解决方案:随机数进程(选手进程)每次产生100个随机数,然后相加模3

文档评论(0)

173****0166 + 关注
实名认证
内容提供者

临床医师执业资格证持证人

医学资料整理

领域认证该用户于2023年01月12日上传了临床医师执业资格证

1亿VIP精品文档

相关文档