浙江工业大学操作系统第二章进程管理.ppt

浙江工业大学操作系统第二章进程管理

* * * * * * * * * * * * Dijkstra在1971年提出,把所有进程对某一种临界资源的同步操作都集中起来,构成一个所谓的秘书进程,凡是要访问此临界资源的进程都要先报告秘书,由秘书来实现进程的同步。 * * * * * * * * * * * * * * * * * * * 如果有一个理发师速度比较快,或者一位顾客头发比较少,这时,释放第一个进入椅子的顾客会导致下面的情况: * * * * * * * * * * * * * * * * (1) 不能保证实现“空闲让进”的准则1,轮到Pj使用临界区,但Pj在进入临界区前被熊吃掉了。 * 第2次课止 Pi进入While语句发现Flag[j]=false,但在它将flag[i]置为true之前,调度程序调度运行了pj,Pj进入While语句发现Flag[i]=false,Pj置 Flag[j]=true进入临界区;在pj退出临界区前,调度程序调度到pi,Pi 置Flag[i]=true进入临界区。 * * Peterson算法解决了互斥访问的问题,而且克服了强制轮流法的缺点,可以完全正常地工作。 * * Testset指令测试它的参数i的值。若为0,则用1代替并返回true;否则值不变返回false。整个testset指令自动执行,它不服从于任何中断。右图是使用这个指令的互斥规程。共享变量bolt被初始化为0,

文档评论(0)

1亿VIP精品文档

相关文档