Файл: КУРСОВАЯ ПО ТВП.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.08.2024

Просмотров: 47

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

tmp="M"+IntToStr(ind-1);

M[1] = CreateMutex(NULL, false, tmp.c_str()); }

inttimeforeat=random(2000)+8000; //общее время для приема пищи

int period; //время на одноразовый прием пищи

DWORD Result;

do

{period=random(2000)+3000;

ToServer(3, ind, hPipe); //философ хочет есть

do

Result = WaitForSingleObject(M[0], 100); //пытается взять первую вилку

while (Result == WAIT_TIMEOUT); //пока не возьмет

do

Result = WaitForSingleObject(M[1], 100); //вторую

while (Result == WAIT_TIMEOUT); //пока не возьмет

ToServer(2, ind, hPipe); //сообщает, что начал есть

if (period>timeforeat) period=timeforeat; //если время на еду больше, чем общее время

//оставшееся до насыщения, переприсваиваем

timeforeat-=period; //уменьшаем время оставшееся до насыщения

Sleep(period); //ест

ReleaseMutex(M[0]); //кладет вилки

ReleaseMutex(M[1]); //мьютексы свободны

ToServer(1, ind, hPipe); //сообщает, что начал думать

Sleep(random(2000)+3000); //думает

} while (timeforeat>0);

ToServer(0, ind, hPipe); //окончание работы

CloseHandle(hPipe);

return 0;}

Рисунок 3 – Пример работы программы


3 Список использованных источников

1. Е. В. Рабинович . Теория вычислительных процессов.– Новосибирск :Издательство НГТУ–2007.–262 c.

2. Фундаментальное обучение информатике[Электронный ресурс].

Режим доступа: http://ric.uni-altai.ru/Fundamental/moi2/upr0/theory4.htm

Дата доступа: 23.12.2012

3. Блог об учебе[Электронный ресурс].

Режим доступа: http://educode.ru/article/translyacionnaya-semantika-2/

Дата доступа: 23.12.2012