第2讲从应用编程者角度看进程.PPT

* * * * * * * * 你可以用以上的算法解决你的程序之间的同步与互斥的关系 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 37 互斥 在操作系统中,当多个并发进程使用同一个资源。而这个资源又不能同时使用,进程间的这种相互制约关系称为互斥。 进程及进程管理——进程相互制约关系 34 1. 进程互斥的概念 进程及进程管理——进程相互制约关系 例1:两个进程A、B共享一台打印机 例2:两个进程共享一个变量x 设:x代表某航班机座号,p1和p2两个售票进程,售票 工作是对变量x加1。这两个进程在一个处理机C上并 发执行,分别具有内部寄存器r1和r2。 35 P1与P2并发执行,两种可能的执行次序: A情形(希望这样) p1: r1 := x;r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ; 设x的初值为10,两种情况下的执行结果: 情况A: x = 10+2 情况B: x = 10+1 进程及进程管理——进程相互制约关系 B情形 p1: r1 := x; r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ; 36 临界区是进程中对临界资源使用的程序段,称为相对于该临界资源的临界区。 临界资源 一次仅允许一个进程使用的资源称为临界资源。 硬件:如输入机、打印机、磁带机等 软件:如公用变量、数据、表格、队列等 临界区 进程及进程管理——进程相互制约关系 ? x := x+1; ? csa { 进程P1 进程P2 ? x := x+1; ? csb { 40 1. 锁和上锁、开锁操作 什么是锁 用变量w代表某种资源的状态,w称为“锁” 。 上锁操作和开锁操作 进程及进程管理——进程同步机构 检测w的值 (是0还是1); 如果w的值为1,继续检测; 如果w的值为0,将锁位置1 (表示占用资源),进入临界区执行。 (此为上锁操作) 临界资源使用完毕,将锁位置0。 (此为开锁操作) 42 上锁原语和开锁原语 上锁原语 算法 lock 输入:锁变量w 输出:无 { test: if (w为1) goto test; ∕* 测试锁位的值*∕ else w=1; ∕*上锁*∕ } 进程及进程管理——进程同步机构 开锁原语 算法 unlock 输入:锁变量w 输出:无 { w=0;∕*开锁*∕ } 47 进程及进程管理——进程互斥与同步的实现 程序描述 程序 task1 main( ) pa( ) pb( ) { { { int w=1; ∕* 互斥锁 *∕ ? ? cobegin 

文档评论(0)

1亿VIP精品文档

相关文档