Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xsxs2
2 / 2 / 0
Регистрация: 06.05.2012
Сообщений: 28
#1

Задача обедающих философов - C++

15.12.2012, 19:18. Просмотров 590. Ответов 0
Метки нет (Все метки)

Здраствуйте.
Нужно написать программу, которая реализует классическую задачу обедающих философов с помощью мониторов. Не могу разобраться как применить монитор:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
monitor dp
 
{
    enum {thinking, hungry, eating} state [5];
    condition self [5];
 
void pickup (int i) {
    state [i] = hungry;
    test (i);
    if (state[i] != eating) {
    self[i].wait ();
}
}
/* pickup */
void putdown (int i) {
    state [i] = thinking;
    test ((i+4) % 5));
    test ((i-1) % 5));
    /* когда палочка свободна, проверить соседей */
}            /* putdown */
 
void test (int i) {
    if (state((i+4)%5) != eating &&
        state [i] = hungry &&
        state((i+1)%5) != eating)) {
    state[i] = eating;
    self[i].signal;
 
void init () {
for (int i = 0; i < 5; i++) {
state[i] = thinking;
}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 19:18     Задача обедающих философов
Посмотрите здесь:

Потоки. Event. Задача про обедающих философов. - C++
Здравствуйте, товарищи. Возник вопрос непонимания, по которому не удалось продолбиться с помощью MSDNa и существующих тем на форуме. Что...

Реальзация задачи обедающих философов с помощью событий - C++
помогите написать реальзацию задачи обедающих философов с помощью событий. не могу понять сколько событий нужно и для чего. Буду очень...

задача про обедающих философов - Delphi
Здравствуйте! Делаю программу про обедающих философов. http://alice.pnzgu.ru/~dvn/prolog/articls/9.htm Хочу сделать через картинки....

Эмуляция обедающих философов - C Linux
Доброго времени суток, уважаемые форумчане! Необходима помощь в доработке одной программы... Суть задачи: При этом требуется...

Задача об обедающих философах - C++ WinAPI
Тема заезженная,но все таки. Интересует решение задачи &quot;Обедающих философов&quot;. Мне надо сделать решение этой задачи на формах (WinApi) ...

Задача об обедающих философах [C++|Linux|ARM Mitel5000] - C++ Linux
Всем привет) Собственно несколько дней я ковыряюсь с проблемой и не знаю как её решить) Условия задачи: За круглым столом расставлены...

ТЕСТ: Кто Вы из греческих философов?
http://testoteka.ukr.net/testdrive/test/47/ Мой результат: Горгий Леонтийский Вы тонкий, остроумный человек, умеющий...

Какое наибольшее количество философов могло обедать одновременно - Pascal ABC
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь на обеды. Обедали они за круглым столом,...

Какое наибольшее количество философов могло обедать одновременно? - Pascal ABC
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь на обеды. Обедали они за круглым столом,...

Какое наибольшее количество философов могло обедать одновременно? - Pascal ABC
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь на обеды. Обедали они за круглым столом,...

Ординарная Сеть Петри для задачи об "обедающих философах" - C++
Помогите с сетью Петри. дуб в этом Задача об обедающих философах. Пять философов отдыхают в пансионате. Каждый из философов может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru