Atividade de Comunicação entre Processos

De Aulas
Revisão de 20h53min de 4 de dezembro de 2020 por Admin (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Voltar para Sistemas Operacionais


Tplnote Bulbgraph.png

TRABALHO DE COMUNICAÇÃO ENTRE PROCESSOS 2020-2
DESCRIÇÃO
  • Grupo de até 4 pessoas
  • Fazer um servidor que executa alguma operação, conforme uma string recebida, exemplo:
    • Operações matemáticas
    • ordenação de strings
    • codificação/decodificação de string (coisa simples)
    • etc
  • O servidor envia uma resposta ao cliente
  • Um cliente que manda uma requisição a um servidor e recebe uma resposta e imprime na tela
APRESENTAÇÃO
  • O grupo todo deve apresentar na próxima aula (11 de dezembro de 2020)
  • Mostrar o que foi feito no código
  • Mostarar como foi feita a operação e estrutura das mensagens de requisição e resposta
  • Explicar individualmente dificuldades encontradas, o conhecimento adquirido, etc.

Observações

  • Grupos de até 4 componentes
  • Apresentação: Conforme descrito no cronograma do Plano de Ensino da disciplina.
  • 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.

Tpl warning.png

O não comparecimento no dia da apresentação, sem justificativa, implicará em nota zero.

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

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