思维导图

引言

上图中,进程AB同时访问打印机资源,这样就可能将AB的打印内容混在一起了,所以我们需要通过进程互斥来对资源进行访问控制
1、单标志法

我们用一个例子来说明:
小渣问老渣,你现在想用马桶吗?老渣说我现在不想用。小渣说:那我用了,下次让你先用。到了下次,小渣说你先用马桶,我是有原则的人,老渣却说,我不想用。这样小渣就要一直等。这样马桶就空下来了。违反了空闲让进的原则。只能轮询使用。
2、双标志法
双标志先


来看这样一个问题:
小渣问老渣你想用马桶吗?小渣一直在等老渣的回复。老渣突然问小渣你想用马桶吗?此时小渣说我想用,老渣也说我想用,然后俩个人一起走向了一个马桶。所以这种情况违反了忙则等待的原则。
双标志后检查法

来看这样一个问题:
当小渣想用马桶时,老渣同样也想要用马桶;然后小渣问老渣你想用吗?想用那你可以先用我等着。然后老渣又问小渣:你想用吗?你想用你先用我等着。就这样,俩个人都在等着,谁也不用。对于机器而言,俩个进程都不敢访问临界区(因为对方想用),这样就会进入无限的等待。这样虽然解决了忙则等待的问题,但违反了空闲让进和有限等待的原则。进而产生饥饿现象。
3、Peterson算法


来看例子:
小渣对老渣说:我想用马桶但是我可以让你先用。
老渣对小渣说:我想用马桶但是我也可以让你先用。
小渣说:那我不客气了。
本文介绍了进程互斥的几种软件实现方法,包括单标志法、双标志先检查法和Peterson算法。通过举例说明,阐述了各种方法在解决资源访问冲突时可能遇到的问题,如空闲让进、忙则等待和有限等待原则。单标志法可能导致进程无法及时使用资源,双标志法可能出现无限等待,而Peterson算法则提出了一种避免这些问题的解决方案。
1531

被折叠的 条评论
为什么被折叠?



