【操作系统】读者写者问题——写者优先、寿司店问题 题目+答案

本文介绍了操作系统中的经典同步问题——读者写者问题,重点探讨了写者优先的解决方案,并引入了寿司店问题作为类比,阐述了在资源有限情况下如何实现线程的同步和互斥。此外,还讨论了并发访问单链表的搜索、插入和删除操作的分类互斥问题,并提供了信号量实现的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

噩梦来啦~

一】讲解
同步:多进程按一定顺序执行
互斥:多进程操作同一个临界资源

信号量>0,说明它空闲。所测试的线程可以锁定而使用它。
信号量=0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。

问题描述:若干进程通过有限的共享缓冲区交换数据。
其中,“生产者”进程不断写入,而“消费者”进程不
断读出;共享缓冲区共有 N 个;任何时刻只能有一个进
程可对共享缓冲区进行操作。

信号量机制
S当前可用的资源数目
S的初值
S=1 实现互斥 S=1有资源 S=0 没资源
S>1

二】题目 and 参考答案

  1. 读者写者问题的写者优先算法 : 1)共享读; 2)互斥写、读写互斥; 3)写者优先于读者
    (一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)。
    在这里插入图片描述
    在这里插入图片描述

  2. 寿司店问题。假设一个寿司店有 5 个座位,如果你到达的时候有一个空座位,你可以立刻就坐。但是如果你到达的时候 5 个座位都是满的有人已经就坐,这就意味着这些人都 是一起来吃饭的,那么你需要等待所有的人一起离开才能就坐。编写同步原语,实现

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值