DAS5303: Informática Industrial II

 

Trabalhos para 2002/1


1) Alterar o exemplo listadup.c para que a função INSERE retorne um pointer para o elemento
recém inserido e a função RETIRA receba como parâmetro um pointer para o elemento
a ser removido.

2) Baseado nos exemplos listadup.c e tabhash.c, montar uma lista que usa a estrutura hash
para localizar os elementos mas ao mesmo tempo permite uma listagem ordenada através da
estrutura duplamente encadeada. As rotinas INSERE e RETIRA devem operar sobre as
duas estruturas. A rotina CONSULTA utiliza a estrutura hash, e a rotina LISTA utiliza a
estrutura duplamente encadeada. A estrutura registro deve ter o seguinte formato:

    struct registro{
            int prio;
            char nome[30];
            struct registro *prox_hash;
            struct registro *prox_lista;
            struct registro *ant_lista;
            };

Obs: As informações propriamente ditas "prio" e "nome" são armazenadas somente uma vez,
não devem ser duplicadas.

3) Implementar o produtor&consumidor usando a biblioteca pthreads do Linux.

4) Implementar o "servidor de meio de campo" usando Java e sockets tipo datagrama.

5) Implementar um programa em C no Linux usando a biblioteca de pthreads que simule um
equipamento de laboratório.

    O acesso aos transdutores deve ser feito através de rotinas que simulam a atuação e a leitura.
Essas rotinas devem ficar no arquivo "transdutores.c". Não é necessária precisão na simulação
da dinâmica do sistema, mas um comportamento consistente. Por exemplo, ao aumentar a queima
de gás a temperatura sobe.

    O programa em si deve ficar no arquivo "controle.c" e deve ser composto por várias threads
que colaboram entre si através de variáveis compartilhadas.

    Cada grupo deve criar seu cenário de controle, e apresentar ao professor para aprovação,
mas ele deve incluir no mínimo:

- Dois laços de controle com períodos diferentes;
- Amostragem de 4 variáveis;
- Dois alarmes associados com combinações de valores das variáveis amostradas;
- Armazenagem em arquivo de leitura periódicas;
- Informações periódicas na tela;
- Leitura de três diferentes comandos a partir do teclado, indicados pela letra digitada.

    Avaliação:
    - Código fonte
    - Texto explicando o sistema simulado
    - Apresentação individual do trabalho.