我正在为考试而学习,并且对于一个概念有困难。这是伪代码,我给出:如何使用TestAndSet()解决临界区问题?
int mutex = 0;
do {
while (TestAndSet(&mutex));
// critical section
mutiex = 0;
// remainder section
} while (TRUE);
我的教练说,只有两三个必要条件(互斥,进度和有界等待)全部满足与此代码,但我不明白这一个没有遇到...... ??
如何修改代码以支持缺失条件来解决临界区问题?预先感谢任何见解!
我假设“ mutiex“是一个错字。 – 2010-04-06 23:59:49
是的,这是一个错字。 如果不清楚,Set-and-Test定义为 SetAndTest(* target){bool rv = * target; target = True; return rv; } – 2010-04-07 00:04:14
此外,我相信'互斥= 0应该'互斥=假'。 – 2010-04-07 00:39:49