第二章1、已知一个求值公式(3A+2B)/(A+5B2+C),若A、B、C已赋值,试画出该公式求值过程的前趋图
解:令S1:X1=3A;S2:X2=2B;S3:X3=X1+X2;S4:X4=5B2;S5:X5=A+X4+C;S6:X6=X3/X5则求值过程的前趋图为:2、已知一个求值公式(B2+AB)/(5B+A),若A、B已赋值,试画出该公式求值过程的前趋图
解:令S1:X1=B2;S2:X2=AB;S3:X3=X1+X2;S4:X4=5B;S5:X5=X4+A;S6:X6=X3/X5
则求值过程的前趋图为:(自己画出)3、写出实现两个进程单向同步问题的伪码
(参考讲义)3、写出通过信号量实现生产进程和消费进程(单缓冲区)双向同步的伪码
(参考讲义)解:定义信号量:vars1,s2:semaphore:=1,0;生产进程伪码:ProcessP:beginwhile(true)dobegin生产一个产品;wait(s1);//P操作,等待可以生产的信号量将产品放入缓冲区
//其他操作singal(s2);//V操作,发送可以消费的信号量endend消费进程伪码:ProcessC:beginwhile(true)dobeginwait(s2);//P操作,等待可以消费的信号量从缓冲区中取出产品进行消费
//其他操作singal(s1);//V操作,发送可以生产的信号量endend4、写出通过信号量实现进程1和进程2互斥访问共享资源(临界资源)的伪码
(参考讲义)解:定义信号量:vars:semaphore:=1;访问资源进程1伪码:ProcessP1:beginwhile(true)dobeginwait(s);//P操作,申请访问资源权限的的信号量临界区代码;//其他访问资源操作singal(s);//V操作,释放访问资源权限的信号量endend访问资源