Este projeto faz parte do PPOS v2.
O sistema operacional gerencia muitas filas: de tarefas aguardando o processador, de requisições de acesso ao disco, de pacotes a enviar na rede, etc. Este projeto visa construir uma pequena biblioteca em C que ofereça operações básicas de inserção e remoção em uma fila genérica.
A fila a ser implementada é genérica, ou seja, é uma fila de ponteiros void * onde cada elemento é um ponteiro para um dado cujo tipo não é conhecido pela biblioteca. A fila não armazena os dados, mas somente os ponteiros para eles. Assim, essa fila pode ser usada para organizar vários tipos de dados.
Além disso, a fila deve manter um iterador, ou seja, um cursor que permite percorrê-la e consultar seus itens.
As operações básicas da fila são:
queue_create: cria uma nova fila (vazia)queue_destroy: destrói uma fila (mas não destrói os itens em si; o responsável por destruir os itens é quem os criou)queue_add: adiciona um item ao fim da filaqueue_del: remove um item da filaqueue_size: informa o número de itens na filaqueue_print: imprime o conteúdo da filaAs operações seguintes usam o iterador:
queue_head: ajusta o iterador para o início da filaqueue_next: avança o iterador ao próximo item da filaqueue_item: informa o item indicado pelo iteradorOs arquivos necessários a este projeto estão em tad-vazio.tgz:
queue.h : interface da bibliotecaqueue.c : implementação da biblioteca (a implementar)testa-fila.c : programa de testetesta-fila.txt : saída esperada do programa de testemakefile : para a compilaçãoOs seguintes requisitos devem ser atendidos:
queue.c.queue.c, os arquivos fornecidos não devem ser alterados.make test).queue.c. Assim, alterações feitas nos demais arquivos serão destruídas.
Envie somente o arquivo queue.c através do Moodle.