用信号量实现独木桥问题

1. 基本信息

姓名 学号 班级 是否编译成功 是否运行结果正确(逻辑也要正确) 是否有抄袭
是/否 是/否 是/否

如果代码运行不正确,写报告时,呈现所做的努力,按以下格式来写:

# 2. 做了什么
# 3. 碰到什么样的问题
# 4. 针对遇到的问题,你做了哪些努力

如果运行结果正确,按以下方式来写:

  • 结合关键代码,解释代码背后的原理(对于别人不能一眼就能明白你代码要做什么的,你要给出解释)
  • 给出测试结果,并解释运行结果
  • 文末,再给出完整的代码

以下是代码运行正确的报告格式:

2. 只允许一个人过桥

2.1 变量定义及初值

需要哪些变量,包括普通变量和信号量,各个变量代表的含义及初值是多少

2.2 伪代码

  • 写出伪代码,并解释算法
    • P(S)操作原语:若信号量S大于0,则S减1,否则进程进入睡眠
    • V(S)操作原语:对信号量S的值加1

2.3 编程实现

解释关键代码

2.4 测试

给出你的测试方法及结果。需要体现出没有加锁会出错,加了锁之后,不出错。

注:测试结果,只需要复制文本,以代码的形式插入即可,无须截图。

2.4.1 没有加锁

2.4.2 有加锁

2.5 实验过程中遇到的问题及解决方法

2.6 附完整源代码

3. 允许同方向的人同时过桥

4. 允许东西方向的人同时过桥

5. 挑战:交替通过

两个方向的人,交替通过,这一点在车辆会车的时候,很实用。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2023-04-26 11:41

results matching ""

    No results matching ""