Open hopperhuang opened 6 years ago
Peterson's algorithm 核心思想:
Semaphores mutex: 信号变量, 初始为1 list: 等待队列 p: 测试信号量, 信号量 -1 ; mutex < 0 则将本进程放入队列 v: 信号量 + 1; mutex <= 0; 唤醒并执行等待队列中其中一个程序 p,v 操作必须时原子操作,禁止中断 p -> critical section -> v
资源 1 p 发布需求 需求 大于 资源 进程进入等待 , 记录需求数量 1 - mutex v 表示完成需求 需求需求数量 -1 1 - (mutex - 1) 表现为 信号量 + 1 ; 完成需求后,仍存在需求,在从队列中找到一个等待执行的程序
http://iips.icci.edu.iq/images/exam/Abraham-Silberschatz-Operating-System-Concepts---9th2012.12.pdf