Anda di halaman 1dari 79

`

Professor Wdson de Oliveira Wdson.oliveira@terra.com.br ` Wd_oliver@hotmail.com

Disponibilidade : tera,sexta e sbado.

Objetivo

Conhecer, manter, configurar, discutir os desafios na implementao de sistemas distribudos, implementar algum componente distribudo.

Ementa

Definio de Sistema Distribudo. Arquiteturas Paralelas e Distribudas. Aspectos no Projeto de Sistemas Distribudos. Gerncia de Processos Distribudos (Escalonamento de Processadores, Migrao de Processos, Troca de Mensagens, Remote Procedure Call, Distributed Shared Memory). Grupos de Processos. Deadlock Distribudo, Excluso Mtua Distribuda. Gerncia de Arquivos Distribudos. Noes de Tolerncia a Falhas. Projeto e implementao de sistemas distribudos.
3

Critrios de Avaliao 2 provas Bimestrais 1 prova Sub Trabalhos Freqncia

` ` `

Bibliografia Bsica: COULOURIS, G; DOLLIMORE, J; KINDBERG, T. Sistemas Distribudos: Conceitos e Projeto. Bookman, 2007. TANENBAUM, A S; STEEN, M. Sistemas Distribudos Princpios e Paradigmas. SP: Prentice-Hall, 2007.

Motivaes
` ` ` `

Busca por maior desempenho; Aplicaes intrinsecamente paralelas. Alto custo dos supercomputadores tradicionais. Desenvolvimento de redes de computadores de alta velocidade; Desenvolvimento tecnolgico na construo de microprocessadores;

Conceitos Bsicos
`

Concorrncia: quando dois ou mais processos comearam sua execuo mas no terminaram. Sistema Distribudo: Processos concorrentes executados em vrios elementos de processamento. Paralelismo: Sistema distribudo visando soluo de um nico problema.
7

ARQUITETURAS PARALELAS
`

SISD (Single Instruction Single Data): Arquitetura de von Neumann; isto corresponde ao processamento sequencial

SIMD (Single Instruction Multiple Data): a mesma operao executada sobre multiplos operandos. Supercomputadores clssicos (Computadores vetoriais);

MISD (Multiple Instruction Single Data): O Mesmo fluxo de dados percorre um array linear de processadores (pipeline);

MIMD (Multiple Instruction Multiple Data): Arquiteturas formada por processadores.

ARQUITETURAS PARALELAS

Modelo simplificado dos conjuntos de aplicaes relacionados aos tipos de arquiteturas

10

ARQUITETURAS PARALELAS CATEGORIAS MIMD:


`

Memria compartilhada:
Caracteriza-se pela existncia de uma memria global.

Memria distribudas:
Cada processador possui sua prpria memria local. Os processos devem utilizar troca de mensagem para se comunicar. Redes de computadores utilizando um sistema de passagem de mensagem encontram-se nesta categoria.

11

Programao Paralela
Para a execuo de programas paralelos, deve haver meios de:
`

Definir um conjunto de tarefas a serem executadas paralelamente; Ativar e encerrar a execuo destas tarefas; Coordenar e especificar a interao entre estas tarefas.

12

Programao Paralela
`

H trs estilos bsicos de paralelismo, dependentes da plataforma de execuo.

Paralelismo Geomtrico: o conjunto de dados dividido e cada processador executa uma cpia do programa em seu conjunto de dados. Paralelismo Processor Farm: Caracteriza-se por um processador mestre que supervisiona um grupo de processadores escravos. Paralelismo Pipeline: A aplicao dividida em tarefas especficas que so distribudas aos processadores de forma pipeline.

13

Definio de SD
`

"Um sistema distribudo uma coleo de computadores autnomos conectados por uma rede e equipados com um sistema de software distribudo." [COULOURIS] "Um sistema distribudo uma coleo de computadores independentes que aparenta ao usurio ser um computador nico." [TANENBAUM]
14

Avanos tecnolgicos
`

Inveno de redes de computadores de alta velocidade (anos 70):


Rede local (Local rea Network - LAN) Rede global (Wide rea Network - WAN)

Desenvolvimento de microprocessadores potentes (anos 80).


15

Motivao
`

O software para sistemas distribudos completamente diferente do software para sistemas centralizados e est apenas comeando a se desenvolver. relativamente fcil agrupar um grande nmero de CPUs, conectando-as por uma rede de alta velocidade.

16

Exemplos de SD Uma rede de estaes de trabalho em uma universidade ou companhia. Uma rede de computadores em uma fbrica.

17

Exemplos de SD
`

Um grande banco com muitas agncias, cada qual com um computadores e caixas automticas. Sistema de reserva de passagens areas. Servios da Internet: WWW

18

Exemplos de SD
`

Clusters : Um conjunto de computadores ligados na rede, com a meta de atingir um objetivo, por exemplo, processamento de dados complexos.

Exemplos de SD Grid : a idia de um Cluster, porm as mquinas interligadas em diferentes regies do planeta, um exemplo o site http://www.worldcommunitygrid.org/ World Community Grid, faz o download, instala, ele vai se conectar com um servidor, baixar as instrues e comear a processar vrios resultados para pesquisas cientficas como Cura da AIDS, Meio Ambiente,etc. No seu computador voc s faz um parte do grande processamento que ocorre em todo o Grid. Se voc entrar na parte da estatstica vai ver que tem mais de 1 milho de computadores no planeta utilizando o software para processador os dados!!

Vantagens e
`

sobre C

el or relao

sto/benef io.

Capaci ade de processamento al m dos limites pr ticos de C. aior domnio de aplicaes. aior confiabilidade e disponibilidade. Crescimento gradati o da capacidade de processamento.
23

Vantagens de
` `

sobre Cs independentes

Compartil amento de dados comuns entre usurios. Compartil amento de recursos de ardware e software. Comunicao entre pessoas. lexibilidade na distribuio de tarefas de acordo com as aplicaes.

` `

24

Desvantagens de D
`

alta de software adequado. al as e saturao da rede de comunicao podem eliminar as vantagens de D. egurana pode ser comprometida: fcil acesso a dados e recursos.

25

Sistemas operacionais de rede


` `

Estaes de trabal o conectadas por uma . Cada estao tem seu pr prio sistema operacional. erramentas para login remoto e cpia de arquivos entre estaes. Servidores de arquivos e ferramentas para causar apar ncia de arquivo local.

26

Sistemas distribudos aut nticos


`

A rede toda tem apar ncia de ser um nico sistema timesharing. Mecanismo global para comunicao entre processos.
erenciamento de processos omogneo Sistema de arquivos omogneo.
27

` `

Sistemas timesharing para multiprocessadores.


`

ila nica de processos prontos para execuo: melhor distribuio de carga. C s especiali adas em: executar processos, controlar perif ricos, executar sistema operacional (gerenciar a memria global).
Sistema de arquivos comporta-se de maneira semelhante a um SC.
28

Caractersticas bsicas de SD
` ` ` ` ` `

Compartilhamento de recursos Extensibilidade (openness) Concorrncia Escalabilidade (crescimento gradativo) Tolerncia a falhas Transparncia

29

Compartilhamento de recursos
`

Componentes de hardware: discos, impressoras, ... Componentes de software: arquivos, bancos de dados, procedimentos, ... Modelos bsicos:
Modelo cliente-servidor Modelo baseado em objetos
30

Extensibilidade
`

` `

Extenses de hardware: perif ricos, memria, interfaces de comunicao, ... Extenses de software: funes de SO, protocolos de comunicao, ... Interfaces chaves so pblicas (system calls) Mecanismo uniforme de comunicao entre processos
31

Concorrncia Mais de um processo em execuo a cada instante:


Atividades separadas de usurios Independncia de recursos Locali ao de processos servidores em computadores distintos

Acesso concorrente a recursos compartilhados requer sincroni ao

32

Escalabilidade
`

Quantidade de trabalho envolvido no processamento de qualquer requisio de acesso a um recurso compartilhado i p do tamanho da rede.

33

Toler ncia a falhas


`

Falhas de hardware e software (em C s e redes): programas param ou produzem resultados errados. Abordagens:
Redundncia de hardware (Ex: banco de dados replicado em diversos servidores) Recuperao por software: manter dados permanentes sempre consistentes

34

Transparncia
`

Esconder do usurio e do programador de aplicaes a separao de componentes em um sistema distribudo, tal que este seja visto como um sistema centralizado. Formas de transparncia: acesso, localizao, concorrncia, replicao, falha, migrao, desempenho e escala.

35

` `

Acesso : Operaes de acesso a objetos de informao so idnticas para objetos locais e remotos Localizao : Acesso a um objeto ocorre sem que seja necessrio o conhecimento de sua localizao

` `

36

Concorrncia: processos operam concorrentemente usando objetos de informao comuns sem interferncia entre eles. Replicao: vrias instncias de um objeto de informao so usadas sem requerer o conhecimento das r plicas pelos usurios e aplicaes. Fal a: mascaramento de falhas de hardware e software.

37

Migrao: movimento de objetos de informao dentro do sistema no afeta a operao de usurios e aplicaes. Desempenho: reconfigurao do sistema para melhorar desempenho conforme a carga varia. Escala: o sistema e as aplicaes podem expandir em escala sem requerer modificaes na estrutura do sistema ou nos algoritmos das aplicaes.

38

Applications, s rvices

Middleware

Operating system Platform Computer and network ardware

MIDDLEWARE : camada de software que fornece uma abstrao de programas, assim como o mascaramento da heterogeneidade das redes. Oferece estrutura de dados e operaes que permitem que processos e usurios em mquinas distantes se relacionem em grupo de um modo consistente. Exemplos : CORBA ( Common Object Request Broker Arquiteture). JAVA RMI ( Remote Method Invocation ). DCOM (Distributed Component Object Model ).

O modelo de arquitetura de um SD considera: O posicionamento dos componentes em uma rede de computadores buscando definir padres para a distribuio de dados e da carga de trabalho. Os inter-relacionamentos entre os componentes isto , seu papeis funcionais e os padres de comunicao entre eles.

41

1. Client/Server 2. Mltiplos Servers 3. Web proxy server

Uma das estruturas mais comuns em SD a Cliente/Servidor. A idia por trs deste modelo a de estruturar o SO como um grupo de processos cooperantes, denominados SERVIDORES, que oferecem servios a processos usurios, denominados CLIENTES. As mquinas clientes e as mquinas servidoras normalmente rodam o mesmo Kernel.
43

Client

invocation result

invocation result

Server

Server

Client Key: Process: Computer:

Os servidores, podem, por sua vez, ser clientes de outros servidores. Exemplos: Um servidor Web freqentemente um cliente de um servidor de arquivos local que gerencia os arquivos nos quais as paginas Web esto sendo armazenadas. Os servidores Web, e a maioria dos outros servios Internet, so clientes do servio DNS, que mapeia nomes de domnio Internet a endereos de rede (IP).

46

Os servios podem ser implementados como vrios processos servidores em diferentes computadores hospedeiros (servidores), interagindo conforme for necessrio para fornecer um servio para processos clientes. Particionar o conjunto de objetos nos quais o servio baseado e distribui-los. Manter cpias duplicadas dos objetos que compem o servio em vrios outros servidores. Exemplo : servio baseado em dados replicados NIS (Network Information Service) da SUN. Cada servidor NIS tem sua prpria cpia (rplica) de um arquivo de senhas que contm a lista de login dos usurios e suas senhas.
47

Service

Server Client

Server

Client Server

Servidor que atua como um cache, armazenando pginas da internet recmvisitadas, aumentando a velocidade de carregamento destas pginas ao cham-las novamente.

49

Client Proxy server

Web server

Client

Web server

51

Escalonamento de Processos Migrao de Processos Troca de Mensagens Remote Procedure Call Memria compartilhada.

52

O escalonamento de processadores a forma com que os processadores existentes num sistema computacional so utilizados para efetuar o processamento,isto , como os processos so distribudos para execuo nos processadores. Quando mais de um processo executvel, o sistema operacional deve decidir qual ser executado primeiro. A parte do sistema operacional dedicada a esta deciso chamada escalonador (scheduler) e o algoritmo utilizado chamado algoritmo de escalonamento ( scheduling algorithm). [TAN92, p. 62]

53

A forma com que se d o escalonamento , em grande parte, responsvel pela produtividade e efici ncia atingidas por um sistema computacional. Mais do que um simples mecanismo, o escalonamento deve representar uma poltica de tratamento dos processos que permita obter os melhores resultados possveis em um sistema.
54

Objetivos do escalonamento O projeto de um escalonador adequado deve levar em conta uma srie de diferentes necessidades, ou seja, o projeto de uma poltica de escalonamento. Deve contemplar os seguintes objetivos:

55

Objetivos: Ser justo: todos os processos devem ser tratados igualmente, tendo possibilidades idnticas de uso do processador, devendo ser evitado o adiamento indefinido. Maximizar a produtividade (throughput): procurar maximizar o nmero de tarefas processadas por unidade de tempo. Ser previsvel: uma tarefa deveria ser sempre executada com aproximadamente o mesmo tempo e custo computacional. Minimizar o tempo de resposta para usurios interativos.

56

Objetivos: Minimizar a sobrecarga (overhead). Balancear o uso de recursos: o escalonador deve manter todos os recursos ocupados, ou seja, processos que usam recursos sub-utilizados deveriam ser favorecidos.

57

O maior problema existente no projeto de algoritmos de escalonamento est associado a natureza imprevisvel dos processos, pois no possvel prevermos se um dado processo utilizar intensamente o processador, ou se precisar grandes quantidades de memria ou se necessitar numerosos acessos aos dispositivos de E/S.

58

Como dividir as tarefas da melhor forma possvel em um ambiente distribudo ? Dada as caractersticas das CPUs, muito provvel que aquela com maior poder (mais rpida, maior memria, etc) concluir sua(s) tarefa(s) bem antes que as mais modestas, vindo a ficar ociosa. fcil perceber que, neste caso, podemos no ter o resultado esperado e pior, podemos at ter um desempenho inferior ao que teramos se colocssemos todas as tarefas na mquina mais robusta.

59

Para isso, algumas coisas importantes precisam ser estudadas: Primeiro, procurar a melhor maneira de medir o "poder" de processamento das mquinas e o grau de ociosidade das mesmas. Depois, tentar medir a carga das tarefas a serem distribudas e estimar o tempo (ou a ordem) de processamento necessrio. Com estas informaes, possvel ento providenciar uma correta distribuio destas tarefas, ou seja, a busca do

Escalonamento timo.
`
60

Para o correto Escalonamento em Sistemas Distribudos, um ponto inicial conhecer detalhadamente cada uma das mquinas do sistema.

A parte mais difcil saber "quanto" de sua capacidade de processamento est sendo usada.

61

Uma maneira bem simples e bastante usada usar o tempo mdio de espera na fila de execuo como medida. Esta mdia obtida a partir dos tempos anteriores que as tarefas levaram para serem executadas, desde de a sua entrada na fila at sua sada (execuo completada). Uma outra, seria gerar um ndice de utilizao da CPU. Para isso, necessrio a utilizao de processos especficos (chamados de espies) para testar, de tempos em tempos, estas caractersticas. Atualizao da situao do sistema: Estti e Dinmi s.
62

Um grave problema no Escalonamento em Sistemas Distribudos quanto ao Overhead de comunicao. Como estes sistemas so necessariamente com memria distribuda, o custo na troca de informaes entre os ns muito grande. Polticas : Transferncia, seleo, localizao e informao
63

Poltica de Transferncia 1.Determinar qual n est apto a receber uma tarefa. .Determinar os ns que esto sobrecarregados. .Define-se um nmero mximo de carga que o n suporta. 4.O escalonador define dois tipos de ns : receptor e oa or.

` ` `

64

Poltica de seleo Escolher, dentre tantas, a tarefa mais adequada a ser enviada a um determinado n. Geralmente opta-se por tarefas recentemente iniciadas, pois so as que devem possuir menores custos de transferncias. Ou ento, as tarefas menores. Considera Escalonamento Preemptivo e nopreemptivo
65

Poltica de localizao Achar, dentre todos os ns, aquele mais adequado a receber a carga. Alguns selecionam vrios ns e fazem uma votao entre estes para garantir que o melhor n foi escolhido, mas isto gera um excesso de comunicao.

66

Poltica de Informao Definir o local onde as informaes sobre os ns so armazenados e com que freqncia so atualizados.
1.Um n especifico recebe as informaes de todos os outros ns. 2.Cada n envia um broad ast para todos os outros informando sua capacidade de processamento. 3.Cada nodo ter apenas as informaes sobre si prprio e estas informaes serem requisitadas por outro nodo quando este desejar fazer uma troca de tarefas
67

Iniciados pelo sender (doador) Iniciados pelo receiver (doador) Exemplos sistemas com escalonamento de processos distribudos: o V-System e o Sprite.

68

Como fazer esta tarefa em sistemas heterogneos?


x Envio de processos de mquinas sobrecarregadas para mquinas com cargas mais leves. x Evitar grande quantidade de mensagens trocadas entre aplicaes cliente-servidor:

Exemplo 1: Operaes de banco de dados que envolvem uma grande quantidade de dados(aplicao cliente servidor).

69

Modelos para Migrao de Cdigo Migrao de cdigo algo muito amplo: podemos tambm migrar status de um programa, sinais pendentes e outras partes do ambiente. Processo consiste em trs segmentos:
1. Segmento de cdigo: contm o conjunto de instrues que compem o programa que est em execuo. 2. Segmento de recursos: contm referncias a recursos externos (arquivos, impressoras). 3. Segmento de execuo: armazenar o estado em execuo de um processo no momento da migrao (dados privados, pilha,contador de programa)

70

Modelos para Migrao de Cdigo Mobilidade pode ser de dois tipos:


1. Mobilidade Fraca: possvel transferir somente o segmento de cdigo, junto com alguns dados de inicializao. Requer somente que a mquina-alvo possa executar o cdigo (portabilidade). 2. Mobilidade Forte: segmento de execuo tambm pode ser transferido. O processo em execuo pode ser parado e movido para uma outra mquina e retomar a execuo no ponto original.

71

Em relao do ponto de incio da migrao:


x Iniciada pelo remetente: a migrao iniciada na mquina em que o cdigo est em execuo no momento em questo.
x Exemplo: Enviar programa de busca pela Internet a um servidor de banco de dados para realizao de pesquisas.

x Iniciada pelo destinatrio: Iniciativa da migrao de cdigo tomada pela mquina-alvo.

72

Migrao e Recursos Locais Segmentos de recursos requerem uma ateno especial Exemplo: Comunicao de um processo sendo feita atravs de uma porta TCP. Ao mudar de localizao, este processo dever devolver a porta e requisitar uma nova no destino.

73

Migrao e Recursos Locais Trs tipos de vinculaes processo-recurso:


x Vinculao por identificador

Processo requer exatamente o recurso referenciado (URL de um site).


x Vinculao por valor

necessrio somente um valor. Se outro recurso fornece o mesmo valor, execuo no afetada (bibliotecas padronizadas).
x Vinculao por tipo
Processo

requer um recurso de um tipo especfico (monitores, impressoras).

74

Migrao e Recursos Locais Trs tipos de vinculaes recurso-mquina:


x Recursos no ligados: recursos podem ser movidos com facilidade entre maquinas diferentes(arquivos de dados). x Recursos amarrados: recursos podem ser movidos ou copiados, mas s a custo relativamente alto ( banco de dados locais). x Recursos fixos: recursos esto intimamente vinculados a uma mquina ou ambiente especifico e no podem ser movidos (porta).

75

Migrao e Recursos Locais Referncia global


x Caso vrios processos referenciem um recurso, uma alternativa estabelecer uma referncia global, que atravesse as fronteiras das mquinas. x URL (baixa complexidade). x Memria compartilhada entre processos (referncia global significa memria compartilhada).

76

Migrao e Recursos Locais Vrias combinaes entre vinculao processorecurso e recurso-mquina.


x Exemplo 1: Processo admite que a memria pode ser compartilhada entre processos (recurso fixo,vinculao de valor). x Exemplo 2:Bibliotecas de tempo de execuo (recurso amarrado, vinculao de valor).

77

Migrao e Recursos Locais Complexidade est ligada aos tipos de vnculo processo-recurso e recurso-mquina.
x Recursos no ligados: A melhor soluo copiar ou mover o recurso para o novo destino. x Vinculaes por tipo: A soluo vincular novamente o processo a um recurso do mesmo tipo disponvel no local.

78

Migrao em Sistemas Heterog neos Requisitos:


x Segmento de cdigo possa ser executado em cada plataforma. x Segmento de execuo pode ser adequadamente representado em cada plataforma.

79

Anda mungkin juga menyukai