把临界区设计为原语,也可以实现互斥,这样做有什么不足?
加锁法是对临界区加锁以实现互斥。当某个进程进入临界区后,就锁定临界区直到它退出临界区,其他进程要进入时,须要不断测试临界区是否被用着,直到临界区空着是才能进入。这会影响系统的可靠性和执行效率。
p,v原语操作能改变信号量的数值,信号量(sem)可代表管理相应临界区公共资源的实体。当sem>=0时,表示可供并发进程使用的资源实体数,当sem<0是时,表示正在等待使用临界区的进程数。而一次p操作使得sem减1,一次v操作使得sem加1。
p,v操作中进程不需要象加锁时要不断的测试,而是在队列里等待其他进程执行v操作时,就可以进入临界区了。这样p,v操作比加锁更简单,且表达能力强,但p,v相对来说不安全,会出现死锁,遇到复杂的同步互斥问题时会更复杂。
答:我以前学过一门课“信息安全与密码学”,其中有讲到“数字签名” 你想知道什麽?详情>>
答:详情>>