Sistemas Distribuídos: Processos (Threads E Virtualização)
Artigo: Sistemas Distribuídos: Processos (Threads E Virtualização). Pesquise 862.000+ trabalhos acadêmicosPor: tekacosta • 1/12/2014 • 3.234 Palavras (13 Páginas) • 886 Visualizações
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âmicasA. 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 usualA. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 6 Hélio Crestana Guardia - 2011
ThreadsA. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 3 – Processos / 7 Hélio Crestana Guardia - 2011
ThreadsA. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e
...