火龙果软件LINUX设备驱动开发研讨.ppt

火龙果软件LINUX设备驱动开发研讨

临界区 把对共享内存进行访问的程序片段称作临界区(critical region),或临界段(critical section)。如果我们能够适当地安排使得两个进程不可能同时处于临界区,则就能够避免竞争条件。 临界区四要素 任何两个进程不能同时处于临界区 临界区外的进程不能阻塞其他进程 不能使进程在临界区外无限等待 不应对CPU的速度和数目做假设 PV操作解决同步互斥 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原语执行期间不允许有中断的发生。 解决互斥 用PV原语实现进程的互斥 由于用于互斥

文档评论(0)

1亿VIP精品文档

相关文档