Докажите, что алгоритм без тупиков - PullRequest
0 голосов
/ 17 октября 2019

Мне нужно доказать, что этот алгоритм свободен от тупиков и что нет ни одного момента t, в течение которого повар готовит печенье, а покупатель уменьшает количество порций , но я незнаю с чего начать. Это алгоритм:

semaphore mutex = 1
semaphore full = 0
semaphore empty = 0
int portions = 0
void Client(){
    P(mutex)
    if (portions = = 0) {
        V(empty);
        P(full);
    }
    portions --;
    V(mutex);
    <eat biscuits>;
}

void Chef (){
    while(true) {
        P(empty);
        <prepare biscuits>;
        portions = m;
        V(full);
    }
}

Я заметил, что когда повар готовит печенье, значение переменной full равно 0, а значение empty равно1. Мне нужно начать развивать математические отношения отсюда?

...