Решение задачи взаимного исключения

Имеется остановка маршрутного такси. С определенными интервалами времени на остановку приходят пассажиры и подъезжают такси. Такси уезжает, когда в него сядет 10 пассажиров. Если пришедший пассажир не обнаруживает стоящего такси, он встает в очередь на посадку. Если такси подъехало на пустую остановку, оно ждет пасажиров. Если такси подъехало, а на остановке уже стоит такси, оно встает в очередь такси.

Не получается сделать модель точно по коду

`#include <pilgrim.h>
float Pas=1.0;  /* интервал прихода пассажиров */
float Tax=10.0; /* интервал прихода такси */ 
float Mod_time=360.0; 
forward
{
 modbeg(“Маршр. такси”, 5, Mod_time, (long)time(NULL),
         none,2, none, 5, 2);
 ag(“Пассажиры”, 1, none, expo, Pas, zero, zero, 2);
 ag(“Такси”, 6, none, norm, Tax, Tax/3, zero, 2);
 network(dummy, dummy)
 { 
  top(2): queue(“Пассажиры”, none, 3);
          clcode 
           if (addr[2]->na == 1)
            hold(3); /* начальное размыкание ключа */  
          place;
  top(3): key(“Есть такси?”, 4);
          place; 
  top(4): delet(“Посадка в такси”, 0, 10, 5);
          rels(3);
          hold(8);
          place;
  top(5): term(“Такси уехало”);
          hold(3); 
          rels(8);
          place; 
  top(7): queue(“Такси”, none, 4);
          place;
  top(8): key(“Остановка свободна?”, 4);
          place; 
  fault(123);
 }
 modend(“pilgrim.rep”, 1, 12, page);
 return 0;
}

` введите сюда описание изображения


Ответы (0 шт):