Алгоритм Деккера для 3 процессов - PullRequest
2 голосов
/ 02 мая 2011

Как и я, я должен кое-что проверить по алгоритму Деккера - но с 3 процессами -

Я могу найти только оригинальную версию для 2 процессов.

Целью является не алгоритм, а его реализация и проверка в системе SMV http://www.cs.cmu.edu/~modelcheck/smv.html

Ответы [ 3 ]

3 голосов
/ 03 мая 2011

Возможно, вам следует обратиться к сотрудникам курса, но вы можете использовать два мьютекса Dekker для достижения мьютекса с тремя процессами. Процессы 0 и 1 конкурируют, чтобы получить мьютекс A; держатель мьютекса A и процесса 2 конкурируют за приобретение мьютекса B, держателю которого разрешено запускать критическую секцию.

1 голос
/ 12 апреля 2012
  // Dekkers algorithm version3
  system:
  boolean t1WantsToEnter=false;
  boolean t2WantsToEnter=false;
  startThreads;//initialize and launch all threads

  Thread T1;
  void main();{
  while(!done);
  {
  t1WantsToEnter=true;
  while(t2WantsToEnter); //wait
  //critical section cokde
  t1WantsToEnter=false;
  //code outside critical section

  Thread T2;
  void main();{
  while(!done);
  {
  t2WantsToEnter=true;
  while(t1WantsToEter);//wait
  //critical section code
  t2WantsToEnter=false;
  //code outside critical section
  // if u want to know how this code is executed using RAM diagram,         
0 голосов
/ 12 апреля 2012
// Dekkers algorithm version3
  system:
  boolean t1WantsToEnter=false;
  boolean t2WantsToEnter=false;
  startThreads;//initialize and launch all threads

  Thread T1;
  void main();{
  while(!done);
  {
  t1WantsToEnter=true;
  while(t2WantsToEnter); //wait
  //critical section cokde
  t1WantsToEnter=false;
  //code outside critical section
  } //end outer while
  } //end Thread T1
  Thread T2;
  void main();{
  while(!done);
  {
  t2WantsToEnter=true;
  while(t1WantsToEter);//wait
  //critical section code
  t2WantsToEnter=false;
  //code outside critical section
  } //end outer while
  } //end Thread T2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...