Filas genéricas

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.

Fila genérica

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 fila
  • queue_del: remove um item da fila
  • queue_size: informa o número de itens na fila
  • queue_print: imprime o conteúdo da fila

As operações seguintes usam o iterador:

  • queue_head: ajusta o iterador para o início da fila
  • queue_next: avança o iterador ao próximo item da fila
  • queue_item: informa o item indicado pelo iterador
Esta biblioteca será utilizada em vários outros projetos, portanto capriche na sua implementação!

Os arquivos necessários a este projeto estão em queue.tgz:

  • queue.h : interface da biblioteca
  • queue.c : implementação da biblioteca (a implementar)
  • testa-fila.c : programa de teste
  • testa-fila.txt : saída esperada do programa de teste
  • makefile : para a compilação

Os seguintes requisitos devem ser atendidos:

  • A implementação deve ser feita em C no padrão C99 no arquivo queue.c.
  • Com exceção de queue.c, os arquivos fornecidos não devem ser alterados.
  • O código deve funcionar corretamente com o programa de teste.
  • A saída do programa de teste deve ser igual à saída esperada (veja make test).
O processo de correção substitui os arquivos do projeto pelas versões originais, com exceção da implementação do aluno em queue.c. Assim, alterações feitas nos demais arquivos serão destruídas.

Envie somente o arquivo queue.c através do Moodle.

  • Dependências:
    • Conhecimento da linguagem C.
  • ppos-v2/filas_genericas.txt
  • Última modificação: 2026/06/10 01:02
  • por maziero