Magna Concursos

Considere dois processos, produtor e consumidor, compartilhando um mesmo buffer de tamanho fixo N. No processo produtor, produz-se itens de dados e os coloca no buffer. No processo consumidor retira-se o item de dado do buffer. Uma situação de exceção surge quando o consumidor tenta retirar um item do buffer vazio, ou quando o produtor tenta inserir um item no buffer cheio. Um algoritmo para a solução deste problema, utilizando semáforos, é dado pelos procedimentos PRODUTOR e CONSUMIDOR, apresentados a seguir.

PRODUTOR

while TRUE

produzir_item(item)

down(empty)

down(mutex)

insere_no_buffer(item)

up(mutex)

up(full)

CONSUMIDOR

while TRUE

down(full)

down(mutex)

retira_do_buffer(item)

up(mutex)

up(empty)

consome_item(item)

Nestes procedimentos, são utilizados três semáforos, mutex, empty e full, responsáveis conjuntamente por viabilizar o bloqueio e a liberação da execução do processo. As funções up e down, respectivamente, incrementam e decrementam os valores dos semáforos.

Sob esta ótica, a opção que corresponde aos valores de inicialização dos semáforos é

 

Provas

Questão presente nas seguintes provas