下面是两个并发执行的进程,它们能正确运行吗若不能请举例说明,并改正。
参考答案:P1和P2两个并发进程的执行结果是不确定的,它们都对同一变量X进程操作,X是一个临界资源,而没有进行保护。例如:
1)若先执行完P1再执行P2,结果是x=0,y=1,z=1,t=2,u=2。
2)若先执行P1到“x=1”,然后一个中断去执行完P2,再一个中断回来执行完P1,结果是x=0,y=0,z=0,t=2,u=2。
显然两次执行结果不同,所以这两个并发进程不能正确运行。可以将这个程序改为:
下面是两个并发执行的进程,它们能正确运行吗若不能请举例说明,并改正。
参考答案:P1和P2两个并发进程的执行结果是不确定的,它们都对同一变量X进程操作,X是一个临界资源,而没有进行保护。例如:
1)若先执行完P1再执行P2,结果是x=0,y=1,z=1,t=2,u=2。
2)若先执行P1到“x=1”,然后一个中断去执行完P2,再一个中断回来执行完P1,结果是x=0,y=0,z=0,t=2,u=2。
显然两次执行结果不同,所以这两个并发进程不能正确运行。可以将这个程序改为: