Следующий алгоритм для проблемы взаимного исключения не удовлетворяет свойству взаимного исключения. удовлетворяет ли он тупик, голод? А также правильно ли он работает в отсутствие разногласий?Критическая часть 2-я попытка?
int p=1;
int q=1;
process P process Q
while(true){ while(true){
a1 : nonCriticallSection1; a2 : nonCriticallSection1;
b1 : while (q !=1){ do nothing} b2 : while (p !=1){ do nothing}
c1 : p=0; c2 : q=0;
d1 : critical section d2 : critical section
e1 : p=1; e2 : q=1;
} }
end P; end Q;
Если это домашнее задание, добавьте тег 'homework'. Кроме того, пожалуйста, уточните свой вопрос, я не знаю, как «удовлетворить тупик». – thiton