A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Operacionais Distribuídos e/ou de Redes Engenharia da Computação – UCPEL Ritiele Moreira Aldeburg.

Apresentações semelhantes


Apresentação em tema: "Sistemas Operacionais Distribuídos e/ou de Redes Engenharia da Computação – UCPEL Ritiele Moreira Aldeburg."— Transcrição da apresentação:

1 Sistemas Operacionais Distribuídos e/ou de Redes Engenharia da Computação – UCPEL Ritiele Moreira Aldeburg

2 Sistemas Distribuídos Definimos um sistema distribuído como sendo aquele no qual os componentes de hardware ou software, localizados em computadores interligados em rede, se comunicam e coordena suas ações apenas enviando mensagens entre si.

3 O Sistema distribuído assim então formado, em sua usabilidade, da a impressão de ser uma única maquina com um único sistema. Sistemas Distribuídos

4 Sistemas Distribuídos Vantagens Econômicas: aproveitar máquinas potencialmente ociosas; mais barato vários processadores interconectados do que um supercomputador; Distribuição inerente: algumas aplicações são distribuídas por natureza; Tolerância a falhas: em caso de falha de uma máquina, o sistema como um todo pode sobreviver, apresentando apenas uma degradação de desempenho;

5 Sistemas Distribuídos Vantagens Crescimento incremental: o poder computacional pode ser aumentado através da inclusão de novos equipamentos; Flexibilidade: sistemas distribuídos são mais flexíveis do que máquinas isoladas, por isso muitas vezes são utilizados até mesmo que não se esteja buscando desempenho. É essa flexibilidade que permite que vários usuários compartilhem dados e periféricos.

6 Sistemas Distribuídos Desvantagens Pouco software de alto nível disponível para sistemas distribuídos; Dificuldades para evitar acesso indevido (segurança); A rede de interconexão pode causar problemas ou não dar vazão a demanda.

7 Sistemas Distribuídos..:: Questões envolvendo seu Projeto ::..

8 Sistemas Distribuídos Transparência Localização: os usuários não sabem onde os recursos estão localizados; Migração: os recursos podem se mover sem alterar seus nomes; Replicação: os usuários não sabem quantas cópias de um recurso existem; Concorrência: múltiplos usuários podem compartilhar um recurso automaticamente; Paralelismo: atividades podem ocorrer em paralelo sem que o usuário saiba (falta muito ainda para ser atingido).

9 Sistemas Distribuídos Flexibilidade Para obter isso, hoje a tendência é construir S.O. baseados em um micro kernel (ao invés de um sistema monolítico com mais performance mas menos flexibilidade). Um microkernel implementa poucas funções, fornecendo em princípio quatro serviços básicos: Mecanismo de comunicação entre processos Algum tipo de gerência de memória Uma pequena parte do escalonamento e gerência de baixo nível de processos Estrada e saída de baixo nível

10 Sistemas Distribuídos Confiabilidade Na teoria, a ideia é que se alguma máquina parar de funcionar, alguma outra máquina pode pegar o trabalho dela. Na prática, existem alguns servidores em diferentes máquinas que precisam estar no ar para que o sistema como um todo funcione.

11 Sistemas Distribuídos Aspectos relacionados a confiabilidade Disponibilidade (availability): se refere a fração de tempo que o sistema está funcionando/usável. Pode-se melhorar a disponibilidade através de um projeto que não exija o funcionamento simultâneo de um número substancial de componentes críticos; ou, ainda, através de redundância, isto é, componentes chaves de hardware e software devem ser replicados, de modo que se um deles falhar, os outros estarão aptos a tomar conta da tarefa.

12 Sistemas Distribuídos Aspectos relacionados a confiabilidade Tolerância a falhas: o que fazer em caso de falha de um servidor? Em geral, sistemas distribuídos podem ser projetados para mascarar falhas, isto é, escondê- las do usuário. Por exemplo, um serviço de arquivos (ou outros serviços quaisquer) pode ser construído com um grupo de servidores cooperantes de tal modo que o usuário não perceba a perda de um ou mais servidores (a não ser, talvez, por perda de desempenho).

13 Sistemas Distribuídos Desempenho Todos os itens anteriores não devem ser atingidos sacrificando o desempenho. Quando rodar uma determinada aplicação em um sistema distribuído, ele não pode ser pior do que rodar a mesma aplicação em um único processador.

14 Sistemas Distribuídos Desempenho Métricas para medir desempenho: Tempo de resposta Throughput (número de tarefas / tempo) Utilização do sistema Quantidade consumida da capacidade da rede

15 Sistemas Distribuídos Desempenho Principal problema = Custo de Comunicação Para otimizar o desempenho, otimiza-se o número de mensagens. Porém, a melhor forma de obter desempenho é ter várias atividades rodando em paralelo em diferentes processadores, o que implica em enviar muitas mensagens.

16 Sistemas Distribuídos Desempenho Solução: considerar a granulosidade Tamanho do grão (grain size): tempo execução de uma tarefa (grão fino - fine-grain - e grão grosso -coarse grain); Executar tarefas pequenas remotamente não é válido porque o custo adicional (overhead) de comunicação não compensa o ganho de CPU; Executar tarefas que envolvam grandes computações (coarse- grained parallelism), baixas taxas de interações e poucos dados pode ser mais apropriado.

17 Sistemas Distribuídos Escalabilidade (Scalability) Os sistemas distribuídos precisariam se adaptar a possibilidade de termos ambientes com centenas ou milhares de processadores. Para isso, deve-se evitar: Componentes centralizados. Por exemplo, um único servidor de email para todos os usuários. Tabelas centralizadas. Por exemplo, uma única relação on-line de telefones. Algoritmos centralizados. Por exemplo, roteamento de mensagens baseado em informações completas.

18 Sistemas Distribuídos Escalabilidade (Scalability) Deve-se usar algoritmos descentralizados, que possuem as seguintes características: Nenhuma máquina possui informações completas sobre o estado do sistema. Máquinas tomam decisões baseadas apenas nas informações disponíveis localmente. Falha de uma das máquinas não impede o funcionamento do algoritmo. Não há suposições implícitas de que existe um relógio global.

19 Sistemas Operacionais Distribuídos Sistemas distribuídos são como sistemas operacionais tradicionais mas possui determinadas características especificas: A tuam como gerentes de recursos, permitindo que múltiplos usuários ou aplicações compartilhem CPUs, memórias, periféricos, rede e dados; Tentam esconder a heterogeneidade e complexidade do hardware (remoto, principalmente) ao fornecer uma máquina virtual (software) onde aplicações podem ser executadas mais facilmente

20 Fortemente acoplados Tentam manter visão única e global dos recursos gerenciados Fracamente acoplados Coleção de computadores, cada um executando seu próprio sistema operacional No entanto, estes sistemas operacionais trabalham juntos para tornar os serviços e recursos de uns disponíveis aos outros Sistemas Operacionais Distribuídos

21 Sistemas operacionais fortemente acoplados Para sistemas (computadores e programas) distribuídos, geralmente, são chamados de sistemas operacionais distribuídos (SODs) – visão única e global dos recursos Sistemas operacionais fracamente acoplados São os sistemas operacionais de rede (SORs) – cada computador executando seu próprio SO, e vice- versa, um SO completo para cada computador Para melhor suporte à transparência de distribuição são necessários melhoramentos ou serviços adicionais aos serviços de SORs, principalmente; Estes adicionamentos levaram ao chamado middleware;

22 Sistemas Operacionais Distribuídos SistemaDescriçãoPrincipal objetivo SOD SO fortemente acoplado para multi- processadores e multicomputadores homogêneos Esconder e gerenciar recursos de hardware SOR SO fracamente acoplado para multicomputadores heterogêneos (LAN/WAN) Oferecer serviços locais para clientes remotos MiddlewareCamada adicional sobre um SORProver transparência de distribuição

23 Sistemas Operacionais Distribuídos Tipos Sistema operacional multi-processador ▫Gerencia recursos de um multiprocessador Sistema operacional multi-computador ▫Para multicomputadores homogêneos

24 Sistemas Operacionais Distribuídos Multi-processador Objetivo: alto desempenho através de múltiplos processadores – o número de CPUs deve ser transparente para a aplicação Suporte a múltiplos processadores com acesso a uma memória compartilhada Proteção contra acesso concorrente para garantir consistência, através de primitivas de sincronização o Semáforo o Monitor

25 Sistemas Operacionais Distribuídos Multi-computador Não há compartilhamento de memória, mas sim comunicação – comunicação confiável é um aspecto importante e complexo

26 Sistemas Operacionais de Rede Em SORs, serviços estão disponíveis em máquinas distintas.

27 Sistemas Operacionais de Rede Login remoto (rlogin) Cópia remota (rcp) o É preciso saber onde (máquinas) os arquivos se localizam... Pouca transparência!

28 Sistemas Operacionais Distribuídos K42 O que é o K42? kernel de sistema operacional para sistemas de multiprocessadores de 64­bits com cache coerente; Open source; Em constante evolução, incorporando mecanismos inovadores e técnicas de programação modernas

29 K42 Terceira geração da pesquisa de sistemas operacionais multiprocessados; Primeira geração: Hurricane OS ; Segunda geração: Tornado OS ; Desenvolvidos do zero especialmente para os multiprocessadores de memória compartilhada de hoje (NUMA). Sistemas Operacionais Distribuídos K42

30 Kernel ▫Gerenciamento de memória ▫Gerenciamento de processos ▫Infraestrutura de IPC ▫Escalonamento básico Sistemas Operacionais Distribuídos Estrutura do K42

31 System Servers Bibliotecas em nível de aplicação Evitar overhead de IPC Flexibilidade Sistemas Operacionais Distribuídos Estrutura do K42

32 Orientada a objetos ▫Toda comunicação entre processos é feita entre objetos Suporte à API do Linux ▫Através de uma camada de emulação que implementa chamadas ao sistema Linux chamando métodos em objetos K42. Sistemas Operacionais Distribuídos Estrutura do K42

33 Suporta as interfaces externas e internas e modelos de execução do Linux, para suportar suas aplicações e kernel Design feito para que o K42 seja facilmente portado para novos hardwares e depois melhorado para explorar features específicas do hardware utilizado Sistemas Operacionais Distribuídos Tecnologias do K42

34 K42 mantém boa performance através de um mecanismo IPC eficiente (com performance comparável a chamadas de sistema) memória compartilhada entre clientes, servers e kernel, diminuindo custos de comunicação K42 é totalmente preemptivo e a maior parte dos dados do kernel pode ser paginada – libera mais memória para aplicações Sistemas Operacionais Distribuídos Tecnologias do K42

35 K42 usa clocks sincronizados em diferentes processadores, permitindo que processos sejam executados simultaneamente por pequenos períodos; Deleção de objetos K42 acontece somente após todas as threads que estejam rodando no momento terminaramos de tempo em múltiplos processadores Sistemas Operacionais Distribuídos Tecnologias do K42

36 Bibliografia http://www.ic.unicamp.br/~islene/2s2007- mo806/slides/distribuidos.pdfhttp://www.ic.unicamp.br/~islene/2s2007- mo806/slides/distribuidos.pdf https://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A 3o_distribu%C3%ADdahttps://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A 3o_distribu%C3%ADda http://www.lac.inpe.br/~becceneri/arquivos/sod.ppt http://www.dcce.ibilce.unesp.br/~norian/cursos/pso/se minarios2002/so1.pdfhttp://www.dcce.ibilce.unesp.br/~norian/cursos/pso/se minarios2002/so1.pdf http://www.cin.ufpe.br/~dmrac/infras%20de%20softw are/resuminho[1].pdfhttp://www.cin.ufpe.br/~dmrac/infras%20de%20softw are/resuminho[1].pdf Sistemas Operacionais Distribuídos e de Redes, Notas de Aula - 2000/1, Profa. Patrícia Kayser Vargas


Carregar ppt "Sistemas Operacionais Distribuídos e/ou de Redes Engenharia da Computação – UCPEL Ritiele Moreira Aldeburg."

Apresentações semelhantes


Anúncios Google