Sistema de Gerenciamento de Filas na linguagem de programação C

Cancelado Postado há 5 anos Pago na entrega
Cancelado Pago na entrega

Numa repartição, os cidadãos são atendidos por ordem de prioridade. Existem 3 prioridades: 0 (a mais alta), 1 (média) e 2 (a mais baixa).

Dentro da prioridade, o atendimento obedece à política FIFO. A princípio, um cidadão na fila de prioridade 1 será atendido apenas quando a fila de prioridade 0 estiver vazia; um cidadão na fila de prioridade 2 será atendido apenas quando as fila de prioridade 1 e 0 estiverem vazias. Dessa forma, cidadãos nas filas 1 e 2 poderiam ficar esperando indefinidamente para serem atendidos, sofrendo, assim, de starvation. Para evitar isso, o sistema de gerência das filas aplica um algoritmo de envelhecimento (aging): a cada 3 cidadãos da fila 0 atendidos em sequência, o cidadão que está a mais tempo na fila 1 passa para a fila 0; a cada 3 cidadãos da fila 1 atendidos em sequência, incluindo aqueles que foram "promovidos", o cidadão que está a mais tempo na fila 2 passa para a fila 1.

Objetivo do trabalho

O objetivo deste trabalho é implementar um programa na linguagem C que faça o gerenciamento das filas conforme descrito acima. As filas deverão ser implementadas na forma de uma multilista conforme a figura em anexo.

Neste exercício, você primeiro precisa criar uma lista vinculada e verificar se está funcionando.

Então você faz um simulador, que é um pthread. Em seguida, você insere elementos e chama o método de suspensão. Então você imprime a lista.

Em seguida, crie a janela pthread com a função remove e insira a função, que deve ter o bloqueio e o desbloqueio.

Finalmente, crie pthread aging, que move os nós nas listas.

Tudo sempre respeitando o que está na descrição do exercício.

Programação C

ID do Projeto: #17999250

Sobre o projeto

1 proposta Projeto remoto Ativo em há 5 anos

1 freelancer está oferecendo em média $25 para esse trabalho

akashsevana

Hi, I'm an experienced software developer, I have experience in C programming. I can help you with the task, Request you to initiate a chat. Regards, Akash

$25 USD em 1 dia
(0 Comentários)
0.0