Buscar

Processos e Threads em Sistemas Distribuídos

Prévia do material em texto

A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 1 Hélio Crestana Guardia - 2011
Processos
• Arquiteturas cliente-servidor são importantes em sistemas 
distribuídos
• Implementação de funcionalidades (cliente e servidor) é comumente 
realizada por processos
• Multithreading permite particionar as atividades e sobrepor 
comunicação e processamento local, com ganho de desempenho
• Virtualização:
– Permite que aplicação e ambiente de execução executem 
concorrentemente com outras aplicações
– Alto grau de independência do hardware e de plataformas subjacentes
– Alto grau de portabilidade
• Migração de código auxilia na escalabilidade e configurações dinâmicas
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 2 Hélio Crestana Guardia - 2011
Threads
• Processos formam um bloco de construção para as atividades a 
executar.
• Threads permitem refinar a granularidade das operações a realizar
Process: A software processor in whose context one or more threads may be executed. 
Executing a thread, means executing a series of instructions in the context of that 
thread.
Thread: A minimal software processor in whose context a series of instructions can be 
executed. Saving a thread context implies stopping the current execution and saving 
all the data needed to continue the execution at a later stage.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 3 Hélio Crestana Guardia - 2011
Threads
• Sistema Operacional (SO) cria processadores virtuais para executar as diversas 
aplicações
• SO mantém informações sobre cada processo, incluindo valores dos registradores da 
CPU, mapas de memória, arquivos abertos, dados de contabilização, privilégios e 
outras informações
• Processos caracterizam programas em execução nos processadores virtuais 
• Mecanismos de hardware permite que SO isole a execução dos processos, que não 
interferem uns nos outros
• Processos possuem espaços de endereçamento independentes (memória virtual)
• Alternância no uso de processador físico implica troca de contextos
• Contexto de um processo: valores dos registradores usados em sua execução, 
contador de programa, ponteiro de pilha, registrador da unidade de gerenciamento de 
memória, caches de tradução de endereço
• Contexto de um thread: valores dos registradores, pilha e informações de estado. 
Demais informações, como áreas de código e dados, arquivos, etc., são 
compartilhadas com o processo e possíveis outras threads deste mesmo processo.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 4 Hélio Crestana Guardia - 2011
Threads
 Permitem sobrepor atividades de um mesmo processo
 Favorecem o paralelismo da aplicação quando há vários 
processadores físicos
 Permitem implementar diferentes funcionalidades de uma aplicação 
de forma independente
 Permitem comunicação baseada em memória compartilhada, para 
threads do mesmo processo, ao invés de usar mecanismos de IPC 
(Inter Process Communication), típicos entre processos no mesmo 
sistema
 Criação e destruição de threads são menos onerosas que 
processos
 Trocas de contexto entre threads de um mesmo processo 
envolvem menos operações 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 5 Hélio Crestana Guardia - 2011
Threads
 Implementação do suporte para threads pode ocorrer como biblioteca no 
espaço de endereçamento do usuário ou como um suporte provido pelo 
sistema operacional (kernel space)
 Solução no espaço de usuário (user space):
– Criação simplificada: alocação de memória para pilha
– Trocas de contexto no âmbito do processo
– Bloqueio do processo pára todas as threads 
 Solução no espaço do sistema operacional (kernel space):
– Contexto de cada thread mantido no kernel 
– Trocas de contexto
 Lightweight Processes (LWP): modelo híbrido (user/kernel space)
– Conceitual, implementação não usual
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 6 Hélio Crestana Guardia - 2011
Threads
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 7 Hélio Crestana Guardia - 2011
Threads
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 8 Hélio Crestana Guardia - 2011
Threads
 Possibilidade de bloquear thread sem bloquear processo como 
um todo favorece uso de threads em sistemas distribuídos, em 
que múltiplas comunicações podem estar ativas ao mesmo 
tempo
 Uso de threads permite ocultar atrasos de propagação de 
mensagens em redes de longa distância
 Ex.: cliente navegador WWW:
 Busca de arquivos associados a uma página pode ser sobreposta com 
apresentação
 Conexões simultâneas podem ser usadas para busca de dados a partir de 
múltiplas réplicas
 Ex.: servidor WWW multithread:
 Simplicação da implementação das funcionalidades
 Exploração do paralelismo de processadores atuais
 Sobreposição de processamento e acesso ao sistema de arquivos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 9 Hélio Crestana Guardia - 2011
Threads
 Organização do trabalho pode ocorrer no modelo despachante 
(dispatcher thread) e operário (worker thread)
 Dispatcher lê requisições recebidas numa porta de comunicação
 Operário ocioso é selecionado para atender a solicitação
 Operário atua de forma bloqueante
 Servidor sem suporte a threads pode ficar bloqueado durante 
espera por requisição, e seu processamento, retardando o 
atendimento de novas solicitações
 Servidor não multithread pode ser implementado como uma 
máquina de estados finitos (finite-state machine):
 Requisição recebida é tratada imediatamente se dados pedidos estão disponíveis (cache)
 Requisição pendente gera solicitação ao sistema de arquivos; estado atual é salvo
 Servidor busca nova requisição pendente; indicação de conclusão de solicitação solicitada 
anteriormente é tratada de acordo com estado atual
 Operações de entrada e saída, da rede e do sistema de arquivos, são realizadas de forma 
não bloqueante 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 10 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 11 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 12 Hélio Crestana Guardia - 2011
Virtualização
 Virtualização estende ilusão de paralelismo de processador para os demais 
recursos
 Virtualização possibilita que software de aplicação sobreviva aos sistema 
subjacentes de hardware e software
 Virtualização estende ou substitui interface existente, imitando o 
comportamento de um outro sistema
 Motivação inicial do conceito (década de 1970) era permitir que software 
legado executasse nos mainframes, incluindo o sistema operacional do qual 
dependiam
 Atualmente, virtualização permite manter plataformas de software 
adequadas para aplicações, que são mais estáveis e evoluem em ritmo mais 
lento
 Cada aplicação pode ser executada em sua própria máquina virtual, 
incluindo sistema operacional e bibliotecas de suporte necessárias
 Virtualização possibilita portabilidade e migração, além de isolação de 
componentes com falhas ou sob ataque.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 13 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 14 Hélio Crestana Guardia - 2011
Arquiteturas de máquinas virtuais
 Sistemas computacionais oferecem 4 tipos diferentes de interfaces, em 4 
níveis diferentes:
 Interfaceentre o hardware e o software, que consiste em instruções de máquina, 
possíveis de serem invocadas por quaisquer programas
 Interface entre o hardware e o software, que consiste em instruções de máquina 
possíveis de serem invocadas somente por programas privilegiados, como um 
sistema operacional
 Interface que consiste em chamadas de sistema, como oferecidas por um 
sistema operacional
 Interface que consiste em chamadas de biblioteca, formando uma API 
(application programming interface)
 Essência da virtualização consiste em imitar o comportamento dessas 
interfaces
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 15 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 16 Hélio Crestana Guardia - 2011
Virtualização
Virtualização pode ocorrer de 2 maneiras:
 Construindo sistema de execução que forneça um conjunto de instruções 
abstrato que deve ser usado para executar aplicações
 Instruções podem ser interpretadas ou emuladas, resultando numa máquina 
virtual de processo
 Programa é compilado para código intemediário (portável), executado por um 
sistema em tempo de execução (runtime system)
 Virtualização é feita para um único processo
 Ex.: Java VM
 Implementando uma camada que proteje o hardware, e que oferece como 
interface o conjunto de instruções completo do mesm ou de outro hardware
 Interface pode ser provida de maneira simultânea a diferentes programas
 Vários SOs podem executar de maneira concorrente na mesma plataforma
 Interface oferecida é chamada de monitor de máquina virtual (Virtual 
Machine Monitor – VMM) 
 Ex.: Vmware, Xen, VirtualBox
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 17 Hélio Crestana Guardia - 2011
Virtualização
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 18 Hélio Crestana Guardia - 2011
Virtualização: VMMs
 VMMs permitem o isolamento de aplicação completa e seu 
ambiente
 Falhas têm seus efeitos limitados à máquina virtual
 VMMs promovem descoplamento entre hardware e software, 
favorecendo a migração completa de um ambiente para outro
 VMMs estão sendo executadas sobre SOs existentes:
 Executam tradução binária
 Traduzem instruções da aplicação ou SO àquelas da máquina 
sobre a qual estão sendo executadas.
 Instruções privilegiadas (traps ao kernel original ou chamadas de 
sistema) são substituídas por chamadas à VMM.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 19 Hélio Crestana Guardia - 2011
Clientes e servidores
Clientes
 Clientes oferecem aos usuários uma interface de acesso aos servidores 
remotos
 2 abordagens principais de implementação:
 Para cada serviço remoto, usa-se uma aplicação local. Ex.: agenda local que 
acessa agenda remota. Protocolo de aplicação realiza sincronização.
 Cliente serve apenas como terminal de acesso aos serviços remotos. Cliente não 
requer armazenamento local. Ex. thin client
 Exemplo: X server (executa no computador cliente!)
 X Window System permite acesso a serviços remotos com interação via 
inteface gráfica
 Aplicação é executada no servidor e é cliente dos eventos gráficos exibidos no 
dispositivo do usuário
 Biblioteca: xlib; protocolo: X protocol
 Para simplificar aplicação no dispositivo do usuário, aplicação (executada no 
servidor) pode realizar todo o processamento dos dados que serão exibidos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 20 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 21 Hélio Crestana Guardia - 2011
Protocolo 
específico 
da aplicação
Clientes
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 22 Hélio Crestana Guardia - 2011
Clientes
 Funcionalidades de nível mais alto podem ser providas no cliente para 
aperfeiçoar comunicação
 drag-and-drop: move objects across the screen to invoke interaction with other 
applications 
 in-place editing: integrate several applications at user-interface level (word processing + 
drawing facilities)
 Partes do nível de dados e de processamento podem ser executadas no lado 
do cliente
 Ex.: caixas automáticos, transceptores de TV, etc.
 Além da interface de usuário e outros softwares relacionados com a aplicação, software 
cliente inclui componentes para conseguir transparência de distribuição
 Transparência de acesso: stubs para RPC no lado do cliente
 Transparência de localização/migração: software cliente mantém controle da localização
 Transparência de replicação: stubs no cliente tratam múltiplas requicições
 Transparência de falhas: mascara no cliente as falhas de comunicação com servidor.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 23 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 24 Hélio Crestana Guardia - 2011
Servidores
 Servidor: implementa serviço específico em nome de clientes
 Organização: espera requisição e promove atendimento
 Servidor iterativo: próprio servidor manipula requisição e, se necessário, retorna resposta
 Servidor concorrente: repassa requisições para thread específico. Pode também gerar 
novo processo para atender requisições. Processo ou thread tratator envia resposta ao 
cliente.
 Comunicação comumente ocorre através de uma porta de comunicação na 
máquina onde servidor é executado
 Servidores esperam comunicação em portas específicas, conhecidas pelas aplicações 
clientes
 Na Internet, atribuição de portas gerenciada pela IANA (Internet Assigned Numbers 
Authority)
 Mapeamento de nome + porta permitem localizar serviço
 Mapeamento de portas também pode ser dinâmico, sendo realizado por um servidor que 
atende em porta conhecida
 Processo superservidor pode intermediar requisições para vários serviços. Ex.: Unix 
inetd, xinetd.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 25 Hélio Crestana Guardia - 2011
Servidores
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 26 Hélio Crestana Guardia - 2011
Servidores
 Comunicação fora da banda (out-of-band) permite ter fluxos diferentes de 
dados e controle nas transmissões entre cliente e servidor
 Implementação pode ser realizada com portas separadas ou usando a 
transmissão de dados urgentes providas pelo protocolo TCP
 Servidor pode manter informações de estado (stateful) ou não (stateless)
 Servidor sem estado (stateless) não mantém informações sobre o estado 
dos clientes e pode mudar seu estado sem informar aos clientes. 
 Ex.: servidor WWW: limita-se a responder requisições HTTP. Servidor 
pode até manter informações sobre os clientes, mas a perda dessas 
informações não gera disrupção do serviço oferecido.
 Soft state (estado flexível): servidor mantém infos de estado dos 
clientes por tempo limitado e depois descarta informações armazenadas.
 Distinção entre estado de sessão e estado permanente
 Cookies podem ser usados para manter informações de estado no 
cliente
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 27 Hélio Crestana Guardia - 2011
Servidores e informações de estado
Stateless servers
 Nunca mantém informações precisas sobre o estado de um cliente depois de 
ter processado uma requisição
 Não mantém informações sobre arquivos abertos, que são fechados depois 
do processamento de cada requisição
 Consequências:
 Clientes e servidores são completamente independentes
 Evita-se inconsistências de estado devido a falhasno cliente ou no servidor
 Possível perda de desempenho, uma vez que servidor não prevê comportamento 
do cliente: uso ineficiente de cache e prefetching 
 Pode usar comunicação orientada a conexão?
Stateful servers
 Mantém informações sobre o estado dos clientes.
 Registros de arquivos abertos, possibilitando cache e prefetching 
 Pode prover melhor desempenho, usando cópias dos dados nos clientes.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 28 Hélio Crestana Guardia - 2011
Clusters de servidores
 Servidores podem trabalhar de maneira cooperativa em clusters
 Máquinas são interligadas em rede e cada uma executa um ou mais 
servidores
 Rede local oferece alga largura de banda e baixa latência
 Organização dos servidores comumente ocorre em 3 camadas:
 (c1) Comutador lógico: realiza encaminhamento das requisições 
recebidas
− Comutador pode trabalhar no nível das conexões TCP
− Servidor Web trabalha reencaminhando requisições HTTP
 (c2) Servidores de aplicação
 (c3) Servidores de processamento de dados (arquivo e BD)
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 29 Hélio Crestana Guardia - 2011
Clusters de servidores
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 30 Hélio Crestana Guardia - 2011
Encaminhamento de requisições
 Ponto de acesso único aos serviços
 Comutador esconde detalhes da existência de vários servidores 
(transparência)
 Possível gargalo (bottleneck) de operação
 Possibilidade de replicação de funções
 TCP-handoff: requisição TCP recebida é encaminhada para servidor 
mais apropriado para tratá-la
 Balanceamento de carga por rotação da distribuição dos fluxos ou 
baseado em critérios de serviço
 Servidor encarregado das comunicações faz-se passar pelo 
comutador, alterando endereços dos pacotes enviados
 Ex.: Linux HA: High-Availability
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 31 Hélio Crestana Guardia - 2011
Encaminhamento de requisições
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 32 Hélio Crestana Guardia - 2011
Servidores Distribuídos
 Localização de servidor pode ser baseada no mecanismo de 
mobilidade com Ipv6.
 Conceitos:
 Rede nativa (Home network): Home address = endereço na rede 
nativa
 Care-of-address (endereço externo): usando quando um nó se 
liga numa rede externa
 Requisições encaminhadas à rede nativa são repassadas ao 
CoAddress 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 33 Hélio Crestana Guardia - 2011
Servidores distribuídos: MIPv6
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 34 Hélio Crestana Guardia - 2011
Gerenciamento de clusters
 Sistema de acesso remoto
 Monitoramento e ativação de atividades remotas
 Ferramentas: Ssh + auth + NFS + … + monitoramento 
(heartbeat) + 
 Sistemas: CMS, Rocksclusters, Linux-HA, ...
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 35 Hélio Crestana Guardia - 2011
PlanetLab
 Organizações doam nós (ou clusters) para o sistema, que são 
compartilhadas nos experimentos
 Nós executam VMM (vservers com Linux)
 Vserver gerente de nó controla recursos locais 
 Máquinas virtuais podem ser ativadas sobre essa plataforma
 VMM Linux mantém separação de plataformas
 Conjuntos de nós pode ser organizado em fatias (slices), que caracterizam 
clusters virtuais
 Alocações de recursos (rspecs) nos nós incluem: espaço em disco, 
descritores de arquivo, largura de banda de E/S e rede, memória, CPU, etc.
 Rspecs são identificadas por id de 128 bits globalmente exclusivo
 Para usar recursos é preciso reservar fatias (slices) 
 Nós são contatados para alocar vservers e recursos associados
 Vservers oferecem um ambiente protegido com suas bibliotecas, etc.
 Aplicações são associadas a coleções de vservers.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 36 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 37 Hélio Crestana Guardia - 2011
Gerenciamento PlanetLab
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 38 Hélio Crestana Guardia - 2011
Migração de código
 Migração normalmente ocorria na forma de migração de processos 
 Migração de processos é complexa, justificada por questões de desempenho
 Redistribuição de carga baseada em filas e taxas de ocupação da CPU e/ou 
outras métricas
 Minimização das comunicações pode ser crítico
 Abordagem pode incluir transferir processo para próximo dos dados 
manipulados
 Agente móvel pode ser usado também para processar dados em diversos 
sites (ex.: programa de busca na Web)
 Migração possibilita configuração dinâmica de sistemas distribuídos
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 39 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 40 Hélio Crestana Guardia - 2011
Modelos para migração de código
 Migração de processo pode envolver outros aspectos além do código
 Segmentos de um processo:
 Segmento de Código: instruções
 Segmento de Recursos: referências a recursos externos (arquivos, impressoras, 
dispositivos, etc.)
 Segmento de Execução: estado de execução do processo (dados privados, pilha 
e contador de programa)
 Mobilidade fraca (weak mobility): transferência apenas do segmento de código, 
talvez junto com dados de inicialização. Código executado da partir o início.
 Mobilidade forte (strong mobility): segmento de execução também pode ser 
transferido. Execução pode prosseguir de onde foi interrompida. Implementação 
complexa...
 Iniciativa da migração pode ser do remetente ou do destinatário.
Migration: move entire object from one machine to the other Cloning: start a clone, and set it in the same execution state.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 41 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 42 Hélio Crestana Guardia - 2011
Migração e recursos locais
 Problema: objetos referenciados por processo migrando podem não estar 
disponíveis no destino.
Ex. socket com conexão de rede (não disponível remotamente); arquivo 
refernciado por URL absoluta (disponível de forma independente de 
localização)
 Vinculação processo-recurso (object-to-resource binding):
 (forte) por identificador: ex. Uso de URL para referência a site Web.
 (mais fraca) por valor: objeto precisa apenas do valor do recurso. Ex.: 
dependência de bibliotecas padronizadas (C ou java); bibliotecas devem 
estar disponíveis mas localização exata pode ser direrentes. 
 (fraca) por tipo: ex. Referências a dispositivos locais, como monitores, 
impressoras, etc. Recursos apenas precisam estar disponíveis.
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 43 Hélio Crestana Guardia - 2011
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 44 Hélio Crestana Guardia - 2011
Migração em sistemas heterogêneos
Problema: máquina alvo pode não ser apropriada para execução do código 
migrado. 
 Definição de processo / thread / contexto de processador é dependente do 
hardware, do sistema operacional e do sistema de suporte em tempo de 
execução
Solução: uso de máquina virtual abstrata que é implementada em diferentes 
plataformas
 Linguagens interpretadas,considerando uma máquina virtual própria
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes