Sie sind auf Seite 1von 11

10/07/2017

ROBERTO TENORIO FIGUEIREDO ROBERTO TENORIO FIGUEIREDO


www.osfedera.com www.osfedera.com
tenorio.petrolina@bol.com.br tenorio.petrolina@bol.com.br

Processos Threads
Diferentes tipos de processos desempenham Vrios processadores virtuais criados pelo S.O.
papel crucial em sistemas distribudos. so monitorados auxiliados pelo uso de uma
tabela de processos que contm entradas
O conceito, que vem de S.O., define processos para armazenar valores de registro de CPU,
como programas em execuo + contexto. mapas de memria, entre outros.

Usar processos multithreading auxiliam em Um processo em execuo est sendo


melhoria de desempenho em sistemas cliente- executado em um dos processadores virtuais
servidor do S.O. no momento.

3 4

Threads
Threads
Uso em sistemas no distribudos
O S.O. garante transparncia sobre uso de CPU Distribuio de vrias tarefas concorrentes, sem que
e dispositivos de I/O concorrentemente. Para o processo inteiro seja bloqueado em espera a
isso usado o escalonamento de processos. determinada resposta;
Em sistemas multi-core, cada thread pode ser
Uso demasiado de chaveamento no modo dual
executada ao mesmo tempo em processadores
(usurio/monitor);
distintos;
Uso demasiado de chaveamento entre processos;
Cooperao entre programas atravs do uso de IPC
Modificaes constantes no MMU (Memory (InterProcess Communication)
Management Unit) e no TLB (Translation
Comunicao requer chaveamento de contexto em 3
Lookaside Buffer) pontos diferentes.

5 6

1
10/07/2017

Threads
Implementao de Thread
Chaveamento de Contexto - IPC
Existem basicamente duas abordagens:

Construir uma biblioteca de threads que


executada inteiramente em modo usurio:

Criar e terminar threads barato;


Escalonamento feito internamente;
Uma chamada bloqueadora bloqueia todo o processo.

7 8

Implementao de Thread Implementao de Thread - LWPs


Existem basicamente duas abordagens: Abordagem hbrida: LWP (Lightweight Process)
Executa em um nico contexto (pesado);
Fazer com que o ncleo fique ciente dos threads e Vrios LWPs por processo;
os escalone Todas operaes em threads so realizadas sem
interveno do ncleo;
Criar e terminar threads tem alto custo; Sincronizao entre LWPs no requer interveno do
ncleo;
Escalonamento feito pelo S.O.;
Chamada bloqueadora bloqueia apenas o thread Uma chamada bloqueante bloqueia um LWP, mas no os
outros LWPs, que compartilham a tabela de threads entre
si.

9 10

Uso de LWPs para implementao de


Threads em Sistemas Distribudos
threads
Proporcionam um meio conveniente para
permitir chamadas bloqueadoras de sistema
sem bloquear o processo inteiro no qual o
thread est executando;

Imagine um processo monothread: O que


aconteceria com o processo quando a
interrupo da placa de rede feita para
envio/recebimento de dados?

11 12

2
10/07/2017

Servidores Multithread Clientes Multithread


Resposta: Servidores Monothread no Usados para ocultar latncias de comunicao,
poderiam atender a um segundo usurio separando threads de envio/recebimento de
enquanto l disco! dados com threads de processamento da
interface.
Torna possvel recebimento de vrios arquivos de
uma pgina WEB ao mesmo tempo;
Torna possvel acesso a vrios servidores
(redundantes), que serviro os dados
independentemente, gerando maior velocidade.

13 14

Servidores Multithread
Servidores Multithread
Modelo despachante/operrio
Alm de simplificar o cdigo do servidor,
explora paralelismo para obter alto
desempenho, mesmo em sistemas
monoprocessadores;
Um thread despachante cria a diviso de vrios
threads com tarefas distintas, como ler disco,
receber dados de socket, enviar dados para
socket, atender N usurios simultaneamente;

O thread despachante atribui a requisio a um


thread operrio ocioso (bloqueado).

15 16

Servidores Multithread Servidores Multithread


Uma terceira alternativa seria usar uma
mquina de estados finitos, que consiste em
apenas um thread que usa chamadas no
bloqueadoras como send e receive.

17 18

3
10/07/2017

Virtualizao
Virtualizao
Arquiteturas de mquinas virtuais
a capacidade de uma nica CPU em fingir Sistemas de computadores oferecem quatro tipos
que h mais delas, assim como essa diferentes de interface em quatro nveis diferentes:
extenso a outros recursos.
Estende ou substitui uma interface existente 1. Interface entre hardware e software para instrues de
para imitar o comportamento de outro sistema mquina invocadas por qualquer programa;
2. Interface entre hardware e software para instrues de
mquina invocadas por programas privilegiados (S.O.);
3. Interface de chamada de sistemas;
4. Interface de chamadas de bibliotecas (API).

19 20

Virtualizao
Virtualizao - Interfaces
Arquiteturas de mquinas virtuais
A virtualizao pode ocorrer de dois modos:

Construir um sistema de execuo que fornea um


conjunto abstrato de instrues que deve ser usado para
executar aplicaes mquina virtual de processo
(interpretadas, como Java);

21 22

Virtualizao Arquiteturas de mquinas virtuais


Arquiteturas de mquinas virtuais PVM x VMM
A virtualizao pode ocorrer de dois modos:

Fornecer um monitor de mquina virtual, que um


sistema essencialmente implementado como uma camada
que protege completamente o hardware mas oferece
como interface o conjunto completo de instrues do
mesmo;
Interface pode ser oferecida simultaneamente a programas
diferentes;
Possvel executar vrios S.O.s simultaneamente e
concorrentemente.

23 24

4
10/07/2017

Clientes Clientes
Proporcionam meios para interagir com Proporcionam meios para interagir com
servidores, podendo ser das seguintes formas: servidores, podendo ser das seguintes formas:
Sincronizados por protocolo de aplicao. Onde Atravs de servios remotos, oferecendo apenas
cada servio remoto tem um representante na uma interface de usurio conveniente. O servidor
mquina cliente que pode contatar o servio pela faz tudo e o usurio s recebe a resposta no
rede. formato amigvel. Essa abordagem chamada de
Exemplo: Dropbox. terminais clientes minimizados.

25 26

Clientes Clientes
Interfaces de usurios de rede Exemplo: sistema X Window
Usado para controlar terminais baseados em bits
(monitor, teclado, mouse...)

27 28

Clientes Clientes
Exemplo: sistema X Window Exemplo: sistema X Window
Principais problemas Uso de documentos compostos, que integram
Pode ser necessrio uso de compactao, por aplicativos distintos para cooperarem entre si,
exemplo na reproduo de vdeos ou dados dividindo a carga entre os servidores que
multimdia. Para tanto os terminais devem ser
capazes de descompactar os dados, tornando-se servem os servios para cada tipo.
mais caros! Arrastar e soltar um documento em outro ou na
Em aplicativos fortemente acoplados, haver lixeira;
grande espera por resposta, pois no haver Editar um arquivo de texto que contm uma
tarefas a serem feitas enquanto o servidor imagem e um grfico.
processa tarefas.

29 30

5
10/07/2017

Software do lado cliente para Software do lado cliente para


transparncia de distribuio transparncia de distribuio
Parte do nvel de processamento e dados so Transparncia de localizao, migrao e
executados no lado do cliente; relocao;
Caixas automticos, leitoras de cdigo de barras;
Troca de servidores mveis sem conhecimento da
Transparncia de acesso aplicao cliente.
manipulada por meio da gerao de um apndice de
cliente conforme uma definio da interface do que o Transparncia de replicao;
servidor tem a oferecer, ocultando possveis diferenas em Software do lado cliente envia rplicas de
arquitetura de mquina e comunicao propriamente dita. requisio a todos servidores, passando uma
nica resposta aplicao cliente.

31 32

Software do lado cliente para Software do lado cliente para


transparncia de distribuio transparncia de distribuio
Transparncia a falha;
Mascaramento de falhas: repetir requisies N
vezes ao servidor, e tentar trocar em caso de falha.
Transparncia de concorrncia;
Usa servidores intermedirios especiais, e requer
menos suporte de software cliente.

33 34

Servidores
Servidores
Questes Gerais de projeto
Processo que implementa um servio em Os servidores aguardam requisies em:
nome de um conjunto de clientes. Podem ser portas especficas, podendo ter suas portas
organizados de vrias formas: designadas pela IANA (Internet Assigned Numbers
Iterativo: manipula a requisio e, se necessrio, Authority);
retorna uma resposta ao cliente requisitante.
portas designadas dinamicamente pelo sistema
Concorrente: no manipula por si prprio a operacional, por exemplo, atravs de um daemon
requisio, mas passa para um thread separado
(servio) ou de um superservidor.
ou para um outro processo.

35 36

6
10/07/2017

Servidores Servidores
Interrupo de servidor pode ser feita:
Atravs de finalizao forada da tarefa;
Enviar dados de interrupo fora da banda (dados com
privilgios na fila);
Servidor possui estado, ou seja, conhece seus
clientes?
Sem estado: no mantm informaes sobre o estado de
seus clientes;
Estado flexvel: mantm dados por tempo limitado;
Com estado: mantm informaes persistentes sobre o
cliente.

37 38

Clusters de Servidores Clusters de Servidores


Organizao Geral Organizao Geral
Conjunto de mquinas conectadas por uma rede,
no qual cada mquina executa um ou mais
servidores.
Normalmente organizado logicamente em trs
camadas, sendo:
1. Comutador (lgico) por meio do qual so roteadas as
requisies de clientes;
2. Servidores dedicados a processamento da aplicao;
3. Servidores de processamento de dados;

39 40

Clusters de Servidores
Clusters de Servidores - TCP handoff
Organizao Geral
Vrios servios distribudos em vrios Quando recebe uma requisio o comutador
servidores de aplicao. identifica o melhor servidor para manipular
Comutador deve distinguir servios para repassar aquela requisio.
requisies para as mquinas corretas;
Carga desbalanceada de servidores (soluo:
O servidor escolhido responde ao cliente com
migrao de cdigo);
se fosse o computador que recebeu a
Deve-se fazer o aceso aos servidores de maneira
transparente. Isso pode ser feito pela tcnica
solicitao.
conhecida como TCP handoff.

41 42

7
10/07/2017

Clusters de Servidores Clusters de Servidores


Transparncia de acesso por TCP Handoff Servidores distribudos
Uso de um nico ponto de acesso (por
exemplo o comutador) causa a
indisponibilidade do cluster inteiro em caso de
falha.
Soluo: fornecer vrios pontos (ex.: atravs de
DNS).
Ainda requer que clientes faam diversas
tentativas em caso de falha, e ainda requer pontos
estticos.

43 44

Clusters de Servidores Servidores distribudos


Servidores distribudos Funcionamento do MIPv6
Um servidor distribudo um conjunto de Um n mvel que possui:
mquinas que possivelmente muda Rede Nativa, em que normalmente reside, na qual
dinamicamente, com vrios pontos de acesso recebe um endereo estvel associado, o HoA
(Home Address);
tambm possivelmente variveis, que se
Endereo Externo, ou CoA (Care-of Adress),
apresenta ao mundo externo como uma nica endereo recebido ao se conectar a uma rede
e poderosa mquina. externa.
Uso de MIPv6 (Ip verso 6) auxilia a conseguir um Um agente nativo faz a transferncia dos dados
ponto de acesso estvel em tal sistema. Funciona do HoA para o CoA quando este estiver fora.
baseado em n mvel.

45 46

Servidores distribudos Gerenciamento de Clusters de


Funcionamento do MIPv6 Servidores
Abordagens:
Um computador controla o cluster: essa
abordagem no serve quando se tem muitas
centrais de dados espalhados em muitos clusters
diferentes.
Ainda no h uma abordagem eficiente para essa
coordenar essa situao. Os casos vo sendo
resolvidos ad hoc.

47 48

8
10/07/2017

Migrao de Cdigo Migrao de Cdigo


A migrao de cdigo torna possvel a
migrao de processos entre servidores, com
os seguintes objetivos:
Balanceamento de carga;
Explorao do paralelismo;
Flexibilidade;
Configurar dinamicamente sistemas distribudos.

49 50

Modelos para migrao de cdigo Modelos para migrao de cdigo


Um processos consiste em 3 seguimentos: Para que seja possvel a migrao, faz-se
necessrio um grau de mobilidade.
Segmento de cdigo: parte que contm o
conjunto de instrues que compe o programa
Mobilidade Fraca
que est em execuo.
possvel transferir apenas um segmento de cdigo, talvez
Segmento de recursos: contm as referncias a junto com alguns dados de inicializao;
recursos externos de que o processo necessita.
Mobilidade Forte
Segmento de execuo: usado para armazenar o O segmento de execuo tambm pode ser transferido.
estado de execuo de um processo no momento
da migrao.

51 52

Modelos para migrao de cdigo Modelos para migrao de cdigo


A migrao pode ser iniciada por:
Remetente: iniciado pela mquina em que o cdigo est
em execuo no momento;
Requer autenticao do usurio;
Requer proteo de recursos.
Destinatrio: a iniciativa tomada pela mquina-alvo (ex.:
Java Applets).
Mais simples que a primeira;
Feita apenas para melhorar o desempenho do cliente;
No requer maiores polticas de segurana.

53 54

9
10/07/2017

Modelos para migrao de cdigo Modelos para migrao de cdigo


Migrao de Recursos Locais Migrao de Recursos Locais
Podem ser vinculados de trs formas:
Mais complicado que migrar cdigo e 1.Vinculao por identificador requer exatamente
execuo. o recurso referenciado;

2.Vinculao por valor s o valor de um recurso


Separadas quanto ao tipo de vinculao e necessrio (ex.: bibliotecas padronizadas);
quanto referncia aos recursos.
3.Vinculao por tipo precisa somente de um
recurso de um tipo especfico.

55 56

Modelos para migrao de cdigo Modelos para migrao de cdigo


Migrao de Recursos Locais Migrao de Recursos Locais
Podem ser referenciados como:
1. Recurso no ligado pode ser movido com
facilidade entre mquinas diferentes;
2. Recurso amarrado pode ser movido ou
copiado, mas com custo relativamente alto;
3. Recurso fixo intimamente vinculado a uma
mquina ou ambiente especfico, no podendo
ser movido.

57 58

Migrao em sistemas heterogneos Migrao em sistemas heterogneos


Sistemas distribudos so construdos sobre Solues adotadas:
um conjunto heterogneo de plataformas, Codificar programas em linguagem de script (PHP,
cada um com seu prprio sistema operacional PERL) ou que possam ser executados em
e arquitetura de mquina. mquinas virtuais (ex. Java), para a execuo de
todo (ou parte do) cdigo;
Os problemas que surgem na migrao de
sistemas heterogneos so, sob muitos aspectos,
os mesmos problemas de portabilidade. As Transferir ambientes inteiros, por exemplo,
solues so similares. quando se deseja desligar uma mquina.

59 60

10
10/07/2017

Migrao em sistemas heterogneos Migrao em sistemas heterogneos


Problemas principais: Problemas principais:
1. Migrar toda a imagem da memria: 2. Migrar vinculaes a recursos locais:
Empurrar pginas de memria para a nova mquina e
reenviar as que forem modificadas mais tarde durante a
migrao do processo; Anunciar a nova vinculao rede-endereo MAC,
de modo que clientes possam contatar os
Parar a mquina virtual corrente, migrar memria e
processos migrados na interface de rede correta;
iniciar a nova mquina virtual;
Deixar que a nova mquina virtual puxe novas pginas
conforme necessrio, isto , deixar que processos Se possvel admitir que o armazenamento
comecem imediatamente na nova mquina virtual e fornecido como camada separada, migrar
copiar pginas por demanda. vinculao a arquivos tambm ser simples.

61 62

DVIDAS

63

11

Das könnte Ihnen auch gefallen