进程同步模拟课程设计——司机和售票员问题

进程同步模拟课程设计——司机和售票员问题

ID:12489406

大小:154.00 KB

页数:9页

时间:2018-07-17

进程同步模拟课程设计——司机和售票员问题_第1页
进程同步模拟课程设计——司机和售票员问题_第2页
进程同步模拟课程设计——司机和售票员问题_第3页
进程同步模拟课程设计——司机和售票员问题_第4页
进程同步模拟课程设计——司机和售票员问题_第5页
资源描述:

《进程同步模拟课程设计——司机和售票员问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、武汉理工大学《操作系统课程设计》说明书附件1:学号:课程设计题目进程同步模拟设计——司机和售票员问题学院计算机科学与技术专业计算机科学与技术班级姓名指导教师2011年1月21日课程设计任务书武汉理工大学《操作系统课程设计》说明书学生姓名:专业班级:计算机科学与技术指导教师:工作单位:计算机科学与技术学院题目:进程同步模拟设计——司机和售票员问题初始条件:1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。2.实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务:(包括课程设计

2、工作量及其技术要求,以及说明书撰写等具体要求)1.模拟公共汽车司机和售票员开关门及行车操作的同步模型。2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设

3、计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日1.课程设计目的与功能武汉理工大学《操作系统课程设计》说明书1.1课程设计目的:通过课程设计,运用信号量,模拟公共汽车司机和售票员开关门及行车操作的同步模型。1.2课程设计能够实现以下功能:设置信号量,保证以下四点:l公交运行的时候售票员不能开车门;l公交停下,售票员方可打开车门;l公交车

4、门打开时,司机不能开车;l公交车门关上时,司机方能启动公交1.需求分析,数据结构或模块说明(功能与框图)2.1需求分析l为了保证公交运行的时候车门不能开,应该设置一个表示公交运行的信号量,1表示公交运行在,0表示车已停下;l为了保证车门打开的时候司机不能启动公交,所以应设置一个表示车门是否打开的信号量,0表示公交门打开,1表示公交门关上l按照以上分析,两个信号量在同一时刻必定相反,由此得到结论:设置一个信号量,1表示车停门开,0表示车开门关2.2数据结构1.Bus类l成员变量:intflag表示公共的信号量,1表示车停门开,

5、0表示车开门关l方法:publicsynchronizedvoidopen(),表示乘务员开车门的动作publicsynchronizedvoiddrive(),表示司机启动车辆的动作2.Driver类,继承于Thread类l成员变量:privateBusc,表示该司机所驾驶的公交是cl方法:publicvoidrun(),执行Busc的driver()方法3.Conductor类,继承于Thread类l成员变量:privateBusc,表示该司机所驾驶的公交是cl方法:publicvoidrun(),执行Busc的open

6、()方法2.3模块说明武汉理工大学《操作系统课程设计》说明书lBus模块这里主要介绍Bus模块中的open()与driver()方法:1.open():方法open()具有synchronized关键字,表示该方法在执行的过程中,其他方法不能够改变该方法所在对象中所拥有的值,因此保证了时间的同步性。While(车还在开){等待,运用wait()方法}//车停下了乘客上下车车门关上改变信号量flag为0告诉司机车门关上了,可以启动车辆,运用notify()方法2.drive():类似于open()方法,方法drive()具有s

7、ynchronized关键字,表示该方法在执行的过程中,其他方法不能够改变该方法所在对象中所拥有的值,因此保证了时间的同步性。While(车门还没关){等待,运用wait()方法}//车门关了司机开车改变信号量flag为1车停下,告诉售票员可以开门了,运用notify()方法lDriver模块设置count,表示该模拟过程执行的次数,run()方法,执行私有成员bus的drive()方法,执行count次后停止。lConductor模块类似,Driver类,设置count,表示该模拟过程执行的次数,run()方法,执行私有成

8、员bus的open()方法,执行count次后停止。1.源程序的主要部分武汉理工大学《操作系统课程设计》说明书1.Bus类classBus{privateintflag=1;//1表示车停,门开,0表示车开,门关publicsynchronizedvoidopen(){while(flag

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。