你好我的 friend 我有这个例子我不明白解决方案: 这是问题所在:
有3个进程P1、P2、P3,分别对信号量S1、S2、S3进行3次操作,初始值 :S1 = 1, S2 = 1, S3 = 1。知道每个进程在一个循环内执行以下序列,以指示是否有可能留在状态interbloqueig。如果是这样,除了指示执行指令的顺序外,还可以通过图形映射资源来证明这一点。
**P1** **P2** **P3**
P(s1) P(s3) P(2)
P(s3) P(s2) the critical section
the critical section P(s1) V(s2)
V(s3) the critical section
V(s1) V(s1)
V(2)
V(3)
像 solition 我有这个: 我认为这是不正确的!
最佳答案
假设您在 P3 的开头指的是 P(s2) 而不是 P(2),并且图中的 R 指的是具有相同编号的信号量,您的图描述了所有 3 个进程都在在其关键部分之前的指令;并且由于存在循环 (P2->R1->P1->R2->P2),您遇到了死锁。所以我想完成这项作业所需要做的就是列出为达到这一点而执行的指令序列。
关于c - 图映射资源信号量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9776867/