1、有进程A对文件F进行读操作,进程B对文件F进行写操作,对文件F的读写操作不能同时进行。请利用PV原语和信号量实现进程A与B的互斥。
2条回答 默认 最新
寒意漫彻山川 2023-04-28 10:25关注这种题目不难,把信号量确定好,然后按进程流程写就好了。
```c semaphore read = 1; // 读信号量 semaphore write = 1; // 写信号量 void A(){ wait(write); // 等待文件F的写操作完成 // 读取文件F的数据 signal(write); // 文件F的写操作已完成,解锁 } void B(){ wait(read); // 等待文件F的读操作完成 wait(write); // 等待文件F的写操作完成 // 写入文件F的数据 signal(write); // 文件F的写操作已完成,解锁 signal(read); // 文件F的读操作已完成,解锁 }```
解决 无用评论 打赏 举报 编辑记录