❦♛ら 2023-04-28 09:53 采纳率: 50%
浏览 4

操作系统pv原语,咯

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的读操作已完成,解锁  
    }
    
    

    ```

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月28日