操作系统的PV 操作
当三个以上进程需要进入临界区运行的时候,我们在第一个进程进入临界区后执行P(S)操作,此时S为0,如果其他进程需要进入则先执行P(S)操作,发现S小于0,如果这个时候,进...
当三个以上进程需要进入临界区运行的时候,我们在第一个进程进入临界区后执行P(S)操作,此时S为0 ,如果其他进程需要进入则先执行P(S)操作,发现S小于0,如果这个时候,进入临界区的进程退出临界区,执行V(S)操作,但此时由于其他进程执行了P(S)操作,导致S小于0,所以即使S+1 也依然小于0,则其他进程永远无法进入临界区运行,是不是这样?
展开
1个回答
展开全部
当然不是。 对若干 个并发进程共享某一变量的相 关临界区的管理有三个要求:
①一次至多一个 进程能够进入临界区 ,当有进程在临界区执行时,其他想进入临界区的进程必须等待;
②不能让一个进程无限制地在临界区执行,即任何一个进入临界区的进程必须在有限的时间内退出临界区;
③不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。
①一次至多一个 进程能够进入临界区 ,当有进程在临界区执行时,其他想进入临界区的进程必须等待;
②不能让一个进程无限制地在临界区执行,即任何一个进入临界区的进程必须在有限的时间内退出临界区;
③不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。
追问
那么当其他进程需要使用P(S)操作(此时S值小于0)才能知道临界区有没有进程,如果发现有进程是不是会调用V(S)操作,使S值变为原来第一个进程进入后的S值?
追答
如果发现有进程在等待,而此时的s却<0,就表示他没有资源了。则这个进程将一直等待然后在调用v(s)操作。但是他的值是后来的值而不是第一个进入后S的值。
康科达
2023-08-22 广告
2023-08-22 广告
北京康科达科技有限公司是一家专业从事放射治疗配套设备及耗材生产、经营的科技企业。客户面向全国的疾控中心和放疗科医院。主营电离室、放疗剂量仪、放疗自动扫描水箱、调强验证系统、放疗质控设备、激光定位系统、放疗定位产品、放疗定位膜、放疗模室产品、...
点击进入详情页
本回答由康科达提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询