风落平川 2024-03-19 10:13 采纳率: 96.7%
浏览 9
已结题

操作系统相关算法中while();的含义

以P操作为例,
wait(S)
{
while(S<=0);
S--;
}
当S小于等于零时,do nothing,此时想访问临界资源的进程需要等待;直到S大于零时,若有申请访问临界资源的进程,则信号量减一。
这样理解对吗?

  • 写回答

18条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-03-19 10:14
    关注

    🌈🌈🌈参考通义千问和郭老师的小迷弟雅思莫了-编写提供🌈🌈🌈
    您可以参考如下,如果回答的不正确,及时评论区回复我,我会根据你错误描述追加回复,直到您满意为止。

    您的理解基本上是正确的。while循环中的条件判断会不断地检查信号量S的值,直到S大于0为止,这样可以保证在访问临界资源之前,所有申请访问该资源的进程都必须等待直到资源可用。

    以下是稍作修改过的代码示例:

    wait(S) {
        while(S <= 0) {
            // do nothing, wait for S to become greater than 0
        }
        S--;
    }
    

    在这个例子中,wait函数会一直循环检查信号量S的值,直到S大于0时才会执行S--操作。这样可以保证在访问临界资源之前,所有等待资源的进程都必须等待信号量S的值大于0。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(17条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题