Sistemas Distribuidos
Dissertações: Sistemas Distribuidos. Pesquise 861.000+ trabalhos acadêmicosPor: c4sp3r • 5/5/2014 • 1.366 Palavras (6 Páginas) • 697 Visualizações
Sistemas Distribuídos
Introdução:
Processos:
• Threads
- Monothread
- Multithread
- Virtualização
• RPC – Chama de procedimento remoto
4
Sistemas Distribuídos
Processos (Tanenbaum, 2007, p.42)
Introdução:
Segundo Tanenbaum (2007), os processos desempenham papel
fundamental em sistemas distribuídos:
“Para organizar sistemas cliente-servidor, muitas vezes é
conveniente usar técnicas de multithreading.”
“O conceito de virtualização ganhou popularidade.”
“A virtualização permite que uma aplicação, e possivelmente também
seu ambiente completo, incluindo o Sistema Operacional, execute
concorrentemente com outras aplicações, mas com alto grau de
independência em relação ao hardware e plataformas subjacentes, o
que resulta em alto grau de portabilidade.”
5
Sistemas Distribuídos
Threads e Processos
Um processo costuma ser definido como um programa em execução, isto é,
um programa que está sendo executado em um dos processadores
virtuais do S.O. no momento em questão.
Um Thread é a abstração do Sistema Operacional de uma atividade –
(“thread”) fio ou linha de execução. É o processo se dividir em várias
“atividades”.
Threads e Processos podem ser vistos como um modo de fazer mais coisas
ao mesmo tempo. Na verdade, eles nos permite construir (porções de)
programas que “parecem” ser executados simultaneamente.
6
Sistemas Distribuídos
• É claro que em um computador monoprocessado essa “execução
simultânea” é uma ilusão.
Como há somente uma CPU, só uma instrução de um único thread ou
processo será executada por vez.
A ilusão de paralelismo é criada pelo chaveamento rápido entre threads
e/ou processos.
• As threads podem ser criadas e destruídas dinamicamente.
• Alguns autores chamam de “gargalo de John Von Newman”.
Threads e Processos ...continuação
7
Sistemas Distribuídos
O objetivo de se ter Threads é maximizar o grau de execuções concorrentes
entre operações.
Os threads são computacionalmente mais baratas de serem criadas e
gerenciadas do que processos, e o compartilhamento de recursos pode ser
obtido de forma mais eficiente, por compartilharem um mesmo ambiente de
execução.
Um ambiente de execução é a unidade de gerenciamento de recursos: conj.
de recursos locais gerenciados pelo núcleo, aos quais as threads tem
acesso. Consiste principalmente em :
- Um espaço de endereçamento;
- Recurso de sincronização e comunicação entre threads;
- Recursos como arquivos e janelas abertas;
Threads e Processos ...continuação
8
Sistemas Distribuídos
• Assim como um processo, um thread executa sua própria porção
de código, independente de outras threads.
Ambiente Execução Thread
Tabelas de espaço de
endereçamento
Registradores internos do
processador salvos
Interfaces de comunicação,
arquivos abertos
Prioridade e estado da execução
(Blocked)
Semáforos, outros objetos de
sincronização
Informações do tratamento da
interrupção de software
Lista de identificadores de thread Identificador do ambiente de
execução
Estados associados aos ambientes de execução e as threads
9
Sistemas Distribuídos
Threads em Sistemas Distribuídos (Tanenbaum, 2007, p.46)
Introdução e Conceitos:
Até o final da década 70, os sistemas suportavam somente processos. Exemplos:
“Tops-10” da DEC, “MVS” da IBM e “Unix” da Bel.
Em 1979, surgem os “processos leves”(Light Weight Process), introduzido pelo
desenvolvimento do sistema operacional TOTH.
Somente em meados de 1984 é que esse conceito foi aceito comercialmente.
Monothread
É um
...