1. 实验目的

用信号量来解决实际进程互斥问题,进而加深对信号量、进程互斥的理解,用信号量解决现实问题。

2. 实验内容

在服务器上用Vim编写一个程序,使用信号量解决IPC问题:独木桥。

有一座东西方向的独木桥,分别为下列3种情况,在指定文件编写代码,要求不能带有竞争条件。

(1) 每次只允许一个人过桥(2分)

在文件single_log_bridge_onlyone.c文件上编写代码。

(2) 当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待(3分)

在文件single_log_bridge_same_direction.c文件上编写代码。

(3) 当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥(5分)

在文件single_log_bridge_same_direction_ew.c文件上编写代码。

对于每一个实验,

  • 需要哪些变量,包括普通变量和信号量,各个变量代表的含义及初值是多少
  • 写出伪代码,并解释算法
    • P(S)操作原语:若信号量S大于0,则S减1,否则进程进入睡眠
    • V(S)操作原语:对信号量S的值加1
  • 编程实现,并测试

一些有用资料:

3. 实验要求

实验基本要求见:所有实验要求

截止时间:2023-05-09 23:00 (大概有两周时间可以做)

实验报告提交:提交到课堂派,同时上传pdf和markdown文档

4. 评分

得分:

  • 本次实验:10分,三个小实验分别为2、3、5分。
  • 评分由程序辅助判定+教师评分

[!Warning]

实验最看中的,是过程,认真去做,哪怕没有完成,将整个过程记录下来(遇到什么样的问题,付出哪些努力解决),呈现出你为本次实验所做的努力,依然可以得高分,甚至是满分。

5. 实验报告

实验报告模板

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

results matching ""

    No results matching ""