课程设计任务书 下载本文

内容发布更新时间 : 2024/6/27 2:24:06星期一 下面是文章的全部内容请认真阅读。

课程设计任务书

学生姓名: 丁光明 专业班级: 计算机0506 指导教师: 何克右 工作单位: 计算机科学与技术学院

题 目: 进程同步模拟设计——司机和售票员问题 初始条件:

1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。

2.实践准备:掌握一种计算机高级语言的使用。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写

等具体要求)

1.模拟公共汽车司机和售票员开关门及行车操作的同步模型。 2.设计报告内容应说明: ⑴ 课程设计目的与功能;

⑵ 需求分析,数据结构或模块说明(功能与框图); ⑶ 源程序的主要部分;

⑷ 测试用例,运行结果与运行情况分析; ⑸ 自我评价与总结:

i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正;

iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他的其他方法(如果有,简要说明该方法); v)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:

设计安排一周:周1、周2:完成程序分析及设计。

周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。

(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)

指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日

题 目: 进程同步模拟设计——司机和售票员问题 1.初始条件:

1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。

2.实践准备:掌握一种计算机高级语言的使用。

2要求完成的主要任务:

2.1.模拟公共汽车司机和售票员开关门及行车操作的同步模型。

在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开门让乘客上下车。因此,司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。

司机 P1 售票员 P2

①启动 ②关门 ③到站停 ④开门

正常运行-售票-关门-启动-行驶-停-开门 为了安全起见:

(1)关车门后才能启动车辆 -启动在关门之后

(2)到站停车后,才能开车门 -开车门在到站停车之后

在计算机系统中可以将司机和售票员分别看作P1、P2两个进程,当它们并发地向前推进时,计算机系统所接受到的实际上是司机活动与售票员活动的许多交叉中的任意一个交叉,这些交叉有些满足上述要求,有些则不满足,而操作系统必须保证不发生不满足上述要求的交叉,即:

如P2尚未推进到②处时,而P1已推进到①处,则P1应等待直到P2推进到②处为止;

如P1尚未推进到③时,P2已到④,则P2应等待直到P1推进到③处为止。

P1在①处发生了等待,则P2执行到②处时应将P1唤醒;

P2在④处发生了等待,P1到③处应将P2唤醒

应设置两个信号量:S1 、S2 ;

S1 表示是否允许司机启动汽车(其初值为0 ) ; S2 表示是否允许售票员开门(其初值为0 )。 用P 、v 原语描述如下:

int s1=O; int s2=O;

main() {

cobegin driver(); conductor(); coend }

driver() {

while(1) {

p(s1); 启动车辆; 正常行车; 到站停车; v(s2); } }

conductor() {

while(1) {

关车门; v(s1); 售票; p(s2); 开车门; 上下乘客; } }

2.2.设计报告内容应说明:

2.2.1课程设计目的与功能; 实验目的:

对进程的同步和互斥,以及信号量机制度有深入的理解。

一组相互合作的并发进程,为了协调其推进速度,有时需要相互等待与相互唤醒,进程之间这种相互制约的关系称作进程同步,虽然进程同步仅发生在相互有逻辑关系的进程之间,这种相互制约的关系称作进程同步,进程同步现象仅发生在相互有逻辑关系的进程之间,这点与进程互斥不同,进程互斥现象