Для домашнего задания мне нужно запрограммировать следующий сценарий. Это будет сделано с использованием семафоров с использованием BACI (то есть C--)
Есть 2 туалета для мужчин и женщин, каждая из которых может вместить 4 человека. Поскольку это унисекс, в туалете могут одновременно находиться только люди одного пола, и FIFO не имеет значения. У меня в голове есть базовый «алгоритм», чтобы справиться с 4 мужчинами и 4 женщинами на 1 туалет. Но я не знаю, как это кодировать. Любая помощь будет принята с благодарностью. Вот что у меня есть.
Woman:
Check to see if there are any men in the restroom. If so "wait".
If no men check to see if there are 4 people. If so "wait".
If no men and not 4 use restroom. When leaving signal there is a vacancy.
If last woman signal the men if they are waiting if not signal the woman.
Man:
check to see if there are any woman in the restroom. if so "wait"
If no woman check to see if there are 4 people. If so "wait".
If no woman and not 4 use restroom. when leaving signal there is a vacancy.
if last man signal the women if they are waiting if not signal the men.
Эти дополнительные инструкции были предоставлены
Используйте случайные циклы FOR для моделирования течения времени в соответствующих местах. Это легко сделать с помощью функции задержки:
void Delay (void) Это будет сделано с использованием семафоров с использованием BACI (то есть C--)
Есть 2 туалета для мужчин и женщин, каждая из которых может вместить 4 человека. Поскольку это унисекс, в туалете могут одновременно находиться только люди одного пола, и FIFO не имеет значения. У меня в голове есть базовый «алгоритм», чтобы справиться с 4 мужчинами и 4 женщинами на 1 туалет. Но я не знаю, как это кодировать. Любая помощь будет принята с благодарностью. Вот что у меня есть.
Woman:
Check to see if there are any men in the restroom. If so "wait".
If no men check to see if there are 4 people. If so "wait".
If no men and not 4 use restroom. When leaving signal there is a vacancy.
If last woman signal the men if they are waiting if not signal the woman.
Man:
check to see if there are any woman in the restroom. if so "wait"
If no woman check to see if there are 4 people. If so "wait".
If no woman and not 4 use restroom. when leaving signal there is a vacancy.
if last man signal the women if they are waiting if not signal the men.
Эти дополнительные инструкции были предоставлены
Используйте случайные циклы FOR для моделирования течения времени в соответствующих местах. Это легко сделать с помощью функции задержки:
void Delay (void) Это будет сделано с использованием семафоров с использованием BACI (то есть C--)
Есть 2 туалета для мужчин и женщин, каждая из которых может вместить 4 человека. Поскольку это унисекс, в туалете могут одновременно находиться только люди одного пола, и FIFO не имеет значения. У меня в голове есть базовый «алгоритм», чтобы справиться с 4 мужчинами и 4 женщинами на 1 туалет. Но я не знаю, как это кодировать. Любая помощь будет принята с благодарностью. Вот что у меня есть.
Woman:
Check to see if there are any men in the restroom. If so "wait".
If no men check to see if there are 4 people. If so "wait".
If no men and not 4 use restroom. When leaving signal there is a vacancy.
If last woman signal the men if they are waiting if not signal the woman.
Man:
check to see if there are any woman in the restroom. if so "wait"
If no woman check to see if there are 4 people. If so "wait".
If no woman and not 4 use restroom. when leaving signal there is a vacancy.
if last man signal the women if they are waiting if not signal the men.
Эти дополнительные инструкции были предоставлены
Используйте случайные циклы FOR для моделирования течения времени в соответствующих местах. Это легко сделать с помощью функции задержки:
void Delay (void) в моей голове обрабатывать 4 мужчин и 4 женщины на 1 туалет. Но я не знаю, как это кодировать. Любая помощь будет принята с благодарностью. Вот что у меня есть.
Woman:
Check to see if there are any men in the restroom. If so "wait".
If no men check to see if there are 4 people. If so "wait".
If no men and not 4 use restroom. When leaving signal there is a vacancy.
If last woman signal the men if they are waiting if not signal the woman.
Man:
check to see if there are any woman in the restroom. if so "wait"
If no woman check to see if there are 4 people. If so "wait".
If no woman and not 4 use restroom. when leaving signal there is a vacancy.
if last man signal the women if they are waiting if not signal the men.
Эти дополнительные инструкции были предоставлены
Используйте случайные циклы FOR для моделирования течения времени в соответствующих местах. Это легко сделать с помощью функции задержки:
void Delay (void) в моей голове обрабатывать 4 мужчин и 4 женщины на 1 туалет. Но я не знаю, как это кодировать. Любая помощь будет принята с благодарностью. Вот что у меня есть.
Woman:
Check to see if there are any men in the restroom. If so "wait".
If no men check to see if there are 4 people. If so "wait".
If no men and not 4 use restroom. When leaving signal there is a vacancy.
If last woman signal the men if they are waiting if not signal the woman.
Man:
check to see if there are any woman in the restroom. if so "wait"
If no woman check to see if there are 4 people. If so "wait".
If no woman and not 4 use restroom. when leaving signal there is a vacancy.
if last man signal the women if they are waiting if not signal the men.
Эти дополнительные инструкции были предоставлены
Используйте случайные циклы FOR для моделирования течения времени в соответствующих местах. Это легко сделать с помощью функции задержки:
void Delay (void)
{
int i;
int DelayTime;
DelayTime = случайный (ЗАДЕРЖКА);
для (i = 0; i
где const int DELAY = некоторое число от 10 до 100.
- Распечатайте и отформатируйте вывод, а также распечатайте сообщения таким образом, чтобы, прочитав вывод, можно было проследить порядок выполнения.
- Настройте процессы. для бесконечного цикла и используйте элемент управления C (или прерывание управления), чтобы остановить вашу программу.