Buscar

MIGRAÇÃO DE CODIGO FINAL

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

MIGRAÇÃO DE CODIGO
BRUNO GUTIERREZ
FELLIPE PRATES
HELIO HACHIMINE
LEONARDO NERES
SEBASTIÃO BATISTA
INTRODUÇÃO
Migração de código em sistemas distribuídos consiste na migração de processos inteiros que são movidos de uma máquina para outra;
Isso é uma tarefa bastante complicada;
O objetivo sempre é ganhar desempenho no processo.
Foco atual é minimizar a comunicação ao invés de otimizar a computação
INTRODUÇÃO
Processo consiste em 3 segmentos:
De código – contem o conjunto de instruções que compõe o programa que esta em execução
De recursos – contem as referencias para utilização de recursos externos (impressora, monitor, arquivos)
De execução – armazenar o estado em execução de um processo no momento da migração (dados privados, pilha, contador)
INTRODUÇÃO
Ex1: Sistema cliente servidor em que o servidor gerencia um grande BD. As operações do cliente migram para o servidor e apenas os resultados são enviados.
Ex2: Busca de informações na WEB;
Ex3: Em um cluster, para melhorar o balanceamento de carga, pode migrar programas para máquinas ociosas, liberando as demais;
Ex4: Utilização de maquinas virtuais;
RAZÕES PARA MIGRAR O CODIGO
Principais razões para migrar o código são o desempenho e a localidade;
Estratégias para mobilidade:
Agentes moveis – Um exemplo típico e procurar informações na Web. 
E relativamente simples implementar uma consulta de pesquisa sob a forma de um pequeno programa móvel denominado agente móvel, que passa de site para site. Fazendo várias copias desse programa e enviando cada uma para sites diferentes, talvez seja possível conseguir um aumento linear de velocidade em comparação com utilizar apenas uma instancia de programa único.
RAZÕES PARA MIGRAR O CODIGO
Movimentação Dinâmica – um caso simples de apresentar é uma comunicação entre cliente e servidor;
O cliente para se comunicar com o servidor, ele tem que usar um software necessário que faça a comunicação do mesmo protocolo que o servidor.
Assim ele poderá fazer as operações desejadas
A vantagem é que o cliente não precisa que o software seja totalmente instalado e pode ser descartado quando não for usado.
MODELO PARA MIGRAÇÃO DE CODIGO
A fragmentação de um código para se executar a migração consiste em:
(a)segmento de código é a parte que contém o conjunto de instruções;
(b) segmento de recursos é a parte que contém referências a recursos externos de que o processo necessita;
(c) segmento de execução é usado para armazenar o estado de execução de um processo no momento em questão.
MODELO PARA MIGRAÇÃO DE CODIGO
Tipos de mobilidades:
(a) Mobilidade fraca é possível transferir apenas o segmento de código, talvez junto com alguns dados de inicialização. 
característica = processo sempre é reinicializado
(b) Mobilidade forte o segmento de execução também pode ser transferido. O processo para a sua execução é migrado e continua na outra máquina de onde ele parou.
Em ambos os casos a mobilidade pode ser iniciado pelo remetente ou pelo destinatário.
MODELO PARA MIGRAÇÃO DE CODIGO
MIGRAÇÃO E RECURSOS LOCAIS
Processo para recurso:
Vinculação por identificador é quando um processo se refere a um recurso por seu identificador. O processo requer precisamente o recurso referenciado e nada mais.
Exemplo, uma URL que referencia um site web específico.
Vinculação por valor é quando apenas o valor de um recurso é necessário. A execução dos processos pode não ser afetada se outro recurso pode fornecer o mesmo valor.
Exemplo, C padrão ou bibliotecas Java.
Vinculação por tipo é quando um processo indica que ele precisa apenas de um recurso de tipo específico.
Exemplo, dispositivos locais como periféricos.
MIGRAÇÃO E RECURSOS LOCAIS
Recurso para máquina:
Não ligado é o recuso que pode ser facilmente movido entre diferentes máquinas.
Exemplos, eles são tipicamente os arquivos associados apenas com programas que serão migrados
Movendo ou copiando um recurso amarrado deve ser possível, mas apenas a um relativo custo.
Exemplos, base de dados locais e completos sites web.
Recurso Fixo são intimamente ligados a uma máquina específica e não pode ser movido.
Exemplo, dispositivos locais.
MIGRAÇÃO E RECURSOS LOCAIS
Migração em sistemas heterogêneos
Sistemas distribuidos são construidos sobre urn conjunto heterogêneo de plataformas, cada uma com seu proprio sistema operacional e arquitetura de maquina. Migração em tais sistemas requer que cada plataforma seja suportada, isto é, que o segmento de codigo possa ser executado em cada plataforma
Uma solução simples surgiu no final da década de 1970, por exemplo, para amenizar muitos dos problemas para transportar Pascal
Migração em sistemas heterogêneos
25 anos mais tarde, ataque a migração de código em sistemas heterogêneos.
Linguagens de “Script”.
Linguagem Java.
Pegando como exemplo a migração em tempo real de um sistema operacional virtualizado, essa migração envolveria dois problemas principais: migrar toda a imagem da memoria e migrar vinculações a recursos locais.
1. Empurrar paginas de memoria para a nova maquina e reenviar as que forem modificadas mais tarde durante a migração do processo.
2. Parar a maquina virtual corrente; migrar memoria e iniciar a nova maquina virtual. 
3. Deixar que a nova máquina virtual puxe novas páginas conforme necessário, isto e, deixar que processos comecem imediatamente na nova maquina virtual e copiar paginas por demanda.
Migração em sistemas heterogêneos
Uma alternativa ao primeiro problema seria usar uma abordagem de pré-cópia que combina a primeira opção com uma breve fase parar-e-copiar, como representada pela segunda opção. Essa combinação pode resultarão em tempos de parada de serviço de 200 ms ou menos.
Em relação a recursos locais, as coisas são simplificadas quando lidamos somente com um cluster de servidores. Em primeiro lugar, como há só uma rede, a única coisa que precisa ser feita e anunciar a nova vinculação rede-endereço MAC, de modo que clientes possam contatar os processos migrados na interface de rede correta. Por fim, se for possível admitir que o armazenamento é fornecido como camada separada, migrar vinculação a arquivos também será simples.
O efeito global é que, em vez de migrar processos, agora vemos, realmente, que um sistema operacional inteiro pode ser movido entre máquinas.
Migração em sistemas heterogêneos
OBRIGADO!!!
Livro – Sistemas Distribuídos – princípios e paradigmas (2 ed)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais