操作系统(OS)

转载 如何用P V原语实现进程间的互斥与同步收藏

导读:PV原语的含义   P操作和V操作是不可中断的程序段,称为原语。PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。  P原语操作的动作是:  (1)sem减1;  (2)若sem减1后仍大于或等于零,则进程继续执行;  (3)若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。  V原语操作的动作是:  (1)sem加1;  (2)若相加结果大于零,则进程继续执行;  (3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。  PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断的发生。P原语:P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。操作为:申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该进程被阻塞;阅读全文>

发表于 @ 2008年04月27日 09:38:00|评论(loading...)|编辑|收藏

Csdn Blog version 3.1a
Copyright © Henry