Рассмотрим фрагмент кода ниже:Каковы значения параметров, переданных sem_init() в Семафоры (операционные системы)?
#include <pthread.h>
#include <semaphore.h>
sem_t empty;
sem_t full;
sem_t mutex;
int main(int argc, char *argv[])
{
int MAX = 10;//Size of the Buffer
sem_init(&empty, 0, MAX);
sem_init(&full, 0, 0);
sem_init(&mutex, 0, 1);
return 0;
}
только требуемый код, я уже упоминал выше. Это часть кода производителя и потребителя. Каковы значения каждого параметра в sem_init()? Я мог понять, что 1-й параметр - это адрес переменной семафора, а третий - это значение.
Почему второй параметр всегда равен 0? Что это значит?
Указываем критическое значение для ожидания семафора с использованием второго параметра?
wait(S) {
while (S <= 0)
; // busy wait
S--;
}
Если я прохожу 3 в качестве 2-го параметра для sem_init(), делает петлю в то время как ожидания (S) будет изменен на
while (S <= 3)
как это?
Пожалуйста, прочитайте страницу руководства. Лучше, чтобы объяснение здесь и будет полным –