问答题
[问题2]
代码一所示的方法能够实现共享资源的互斥访问吗?请用300字以内文字举例说明。
【正确答案】
【答案解析】代码一所示的方法不能实现资源的互斥访问。
例如,考虑如下的情形;
(1)初始化的时候,flag数组的两个元素值均为PALSE;
(2)任务0先执行,在执行while循环语句时,由于flag[1]=FALSE,所以顺利结束,不会被卡住,假设这个时候来了一个时钟中断,打断其运行:
(3)任务1去执行,在执行while循环语句时,由于flag[0]=FALSE,所以顺利结束,不会被卡住,然后就进入了临界区;
(4)后来当任务0再执行时,也进入了临界区,这样就同时有两个任务在临界区。