注意:block原语和wakeup原语是一对作用刚好相反的原语。因此,如果在某进程中调用了阻塞原语,则必须在与之相合作的另一进程中或其他相关的进程中安排唤醒原语,以能唤醒阻塞进程;否则,被阻塞进程将会因不能被唤醒而长久地处于阻塞状态,从而再无机会继续运行。 在临界区前面增加一段代码,对欲访问的临界资源进行检查,看它是否正被访问。如果此刻该临界资源未被访问,进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。把这段代码称为进入区(entry section)。 相应地,在临界区后面也要加上一段称为退出区(exit section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。 Var empty, full: semaphore :=1, 0; buffer: array[1] of item; Begin Parbegin producer : begin repeat wait(empty); putdata; signal(full); until false;
您可能关注的文档
最近下载
- 基层医疗卫生机构慢性病健康管理中心建设与服务指南(2026版).pptx VIP
- 洗罐机操作培训手册.doc.doc VIP
- 班级图书借阅登记表封面.doc VIP
- 小微型企业安全生产标准化管理体系文件汇编(依据GBT47911-2026).docx
- 标准日语基础能力测试卷(N4-N5难度).docx VIP
- D-Z-T 0205-2020 矿产地质勘查规范 岩金(正式版).docx VIP
- 突发性耳聋护理业务学习.pptx VIP
- 取样员安全培训PPT课件.pptx VIP
- 夏普 MX-C3081R_C3581R_C4081R 维修手册.pdf VIP
- 暑期培训讲座-Li-Fe同位素在地幔交代作用中的应用.ppt
原创力文档

文档评论(0)