Anda di halaman 1dari 16

PROJETO DE BLOCO

Arquitetura de Computadores,
Sistemas Operacionais e Redes

ROMULO ROCHA SANTOS

RIO DE JANEIRO - INFNET - 2018


Introdução
• Projeto de Bloco – Arquitetura de Computadores, Sistemas Operacionais e
Redes

• Disciplinas
• 1 - Arquitetura de Computadores e Sistemas Operacionais
• 2 - Fundamentos de Programação em Python
• 3 - Arquitetura de Redes de Computadores
• 4 - Desenvolvimento Python para Redes e Sistemas Operacionais
Motivação

• Implementar o conhecimento em práticas

• Integrar as disciplinas

• Desenvolver o primeiro software


Objetivo

• Utilizar lógica de programação desenvolvida nos TPs 1, 2 e 3

• Criar um programa Servidor que disponibilize os dados da máquina


• TP4: Informações do Computador
• TP5: Dados da Arquitetura (CPU)
• TP6: Monitoramento de Arquivos, Diretórios e Processos
• TP7: Informações de Redes

• Criar um programa Cliente que acesse o Servidor


• Interface de Usuário
• TP8: Serviços de Rede
Metodologia
• Implementação: Cliente e Servidor em Python

• Informações adquiridas com módulos Python


• OS: Arquivos e Diretórios
• Time: Informações sobre o momento da conexão
• PSUtil: Informações de performance
• CPUInfo: Informações da arquitetura e cpu
• Pickle: Serialização dos dados transferidos
• Sockets: Serviços de rede para conexão cliente-servidor
Metodologia

• Plataforma
• Computador: Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz, 4 núcleos 64 bits

• Desenvolvido em Python 3.6.4, Windows 10 (64 bits), Thonny 2.2.0b2

• Cliente e Servidor rodaram na mesma máquina

• Troca de informações através de Sockets com Pickles


Metodologia

• Servidor inicia escuta


• Cliente conecta e aguarda entrada do usuário
• Cliente processa entrada e envia código de opção selecionada
• Servidor recebe código e envia pacote de informações
• Cliente recebe informações e as apresenta
• Repete-se
t
Metodologia
cliente servidor
Resultados
• Servidor
-> Ambos interagem com códigos predefinidos
• Cliente
Resultados
Resultados
Análise
• Implementação simples (cliente + servidor -> 700 linhas de código)
• Preferência por linha de código -> Facilidade em reutilizar código

• Houveram dificuldades ao transmitir grandes quantias de dados


• Ex: Lista de processos

• Algumas questões de falta de sincronismo


• Quando rede instável
• Alternativas mais eficientes ao Sockets
Análise
Análise
• Dificuldade em preparar o projeto para atender múltiplos clientes
simultaneamente
• Não implementado por falta de tempo e experiência

• Necessidade de padronizar/abstrair o protocolo de comunicação


• Cada função realizou seu processo de envio/leitura de dados

• Fácil disponibilizar mais opções de informações

• Algumas rotinas associadas ao uso de CPU são lentas


• Paralelismo
• Otimização de código
Conclusão
• Foi apresentado um programa cliente capaz de acessar informações de um
servidor remoto e obter dados específicos da máquina:
• Informações de Performance
• Dados da Arquitetura
• Sistema de Arquivos
• Processos correntes
• Dados de Rede

• Como trabalho futuro, podem ser implementado:


• Troca de Arquivos
• Autenticação de Sessão
• Uso de Paralelismo
• Acesso Simultâneo por Múltiplos Clientes
Obrigado

Romulo Rocha Santos

Contato:
• romulo.ciencia@gmail.com
• +55 51 9 8467 7321