Atividade de Comunicação entre Processos
Afluentes: Sistemas Distribuídos e Mobile, Sistemas Operacionais
Orientações
- Grupos de até 4 componentes
- O trabalho já deve estar pronto no dia da apresentação. Se o grupo for chamado e estiver ainda "terminando", perde dois pontos.
Apresentação
A apresentação deve feita por todos os elementos do grupo em datashow. O professor pode fazer perguntas a qualquer elemento do grupo, sendo que questões mal respondidas implicam a perda de pontos na nota final do grupo.
|
Relatório
Elaborar um relatório relativo ao trabalho implementado conforme especificação descrita em Estrutura Básica para Relatórios. O relatório deve ser enviado em formato PDF para o e-mail saulopz@gmail.com até um dia antes da apresentação.
Descrição do Trabalho
No trabalho, há três tipos de processos envolvidos:
- Processo Cliente: localizado em um computador cliente. O usuário desse processo deve chamá-lo para efetuar alguma operação. O processo cliente envia uma mensagem para o servidor (via socket) que envia de volta o resultado. O processo cliente imprime o resultado na tela.
- Processo Servidor: localizado em um computador servidor. Esse processo recebe uma requisição (via socket) de um cliente e inicia um processo filho para gerenciar a conexão. Depois de tratar a requisição, retorna o resultado ao cliente.
Observações
- É importante a criação de um protocolo, ou estrutura, da mensagem para troca entre cliente, servidor, e executor.
- Quantidade mínima de informações para serem tratadas no servidor a cada requisição: 10 informações.
Exemplos de aplicações
Esses são dois exemplos, mas vocês devem fazer outras aplicações. Os grupos não devem implementar os mesmos problemas ou ideias. Ao decidirem, conversem com o professor para ver se a ideia é válida ou não conflita com ideias dos outros grupos.
Cálculo de Notas
Um processo cliente pede para o usuário entrar com a nota de vários alunos. Essas notas são enviadas ao servidor. O servidor cria um processo cliente para calcular a nota normalizada de cada aluno e retorna o resultado para o cliente, que mostra na tela os alunos e sua nota normalizada. A fórmula da nota normalizada é:
Nota_Normalizadai = Notai x 10 / Maior_Nota
Cálculo de matrizes
Envia para o servidor uma ou mais matrizes para algum cálculo específico. Nesse caso, é importante que o cliente saiba que operação efetuar, e o tamanho de Linhas e Colunas da matriz. Essas informações podem estar na requisição na forma de um cabeçalho. Por exemplo:
+ 2 2 65 3 22 6 33 21 45 89 | | | | | | | | | | | +---> 2a linha da 2a matriz | | | | +---------> 1a linha da 2a matriz | | | +--------------> 2a linha da 1a matriz | | +-------------------> 1a linha da 1a matriz | +-----------------------> Informando o tipo das matrizes: 2 x 2 +-------------------------> Operação de soma de matrizes
Ordenação de Palavras
Ordenar uma lista de palavras.
Critérios de avaliação
Item | Descrição | Valor |
---|---|---|
1 | Sistema montado e funcionando | 2.0 |
2 | Relatório escrito do projeto | 2.0 |
3 | Uso de estruturas de controle e repetição | 0.5 |
4 | Uso de variáveis, vetores e/ou matrizes | 0.5 |
5 | Uso de strings e operações com strings | 0.5 |
6 | Uso de ponteiros e alocação dinâmica de memória | 0.5 |
7 | Funções com passagem de parâmetro por valor e por referência | 0.5 |
8 | Utilização de struct | 0.5 |
9 | Utilização de subprocessos (fork) e comunicação via pipes | 0.5 |
10 | Comunicação via sockets e definição da estrutura das mensagens | 0.5 |
11 | Utilização de threads | 0.5 |
12 | Processo servidor preparado para receber múltiplas conexões e funcionando | 0.5 |
13 | Processo cliente funcionando | 0.5 |
14 | Código organizado, indentado e documentado | 0.5 |