Mudanças entre as edições de "Atividade de Comunicação entre Processos"

De Aulas
 
(Sem diferença)

Edição das 18h35min de 22 de setembro de 2022

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