Mudanças entre as edições de "Atividade de Comunicação entre Processos"
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Afluentes: [[Sistemas Distribuídos e Mobile]], [[Sistemas Operacionais]] | Afluentes: [[Sistemas Distribuídos e Mobile]], [[Sistemas Operacionais]] | ||
+ | <!-- | ||
{{tip|;TRABALHO DE COMUNICAÇÃO ENTRE PROCESSOS 2020-2 | {{tip|;TRABALHO DE COMUNICAÇÃO ENTRE PROCESSOS 2020-2 | ||
Linha 18: | Linha 19: | ||
* Mostarar como foi feita a operação e estrutura das mensagens de requisição e resposta | * Mostarar como foi feita a operação e estrutura das mensagens de requisição e resposta | ||
* Explicar individualmente dificuldades encontradas, o conhecimento adquirido, etc.}} | * Explicar individualmente dificuldades encontradas, o conhecimento adquirido, etc.}} | ||
+ | --> | ||
− | = | + | |
+ | = Orientações = | ||
* Grupos de até 4 componentes | * 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. | * 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 = | = Apresentação = | ||
Linha 47: | Linha 46: | ||
* '''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. | * '''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. | ||
<!-- * '''Processo Executor:''' localizado no mesmo computador que o Processo Servidor. Recebe uma mensagem via pipes da operação, executa o processamento e retorna o resultado também via pipe. --> | <!-- * '''Processo Executor:''' localizado no mesmo computador que o Processo Servidor. Recebe uma mensagem via pipes da operação, executa o processamento e retorna o resultado também via pipe. --> | ||
+ | |||
+ | {{tip|Opcionalmente, o grupo pode usar uma estrutura para troca de mensagens padronizada, tipo JSON, XML, etc..}} | ||
=== Observações === | === Observações === |
Edição atual tal como às 17h25min de 27 de setembro de 2022
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 |