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

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

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

1 Sistemas Distribuídos
Processos

2 Processos Sistemas Distribuídos Introdução Processo, em sistemas operacionais é definido como um programa em execução. O Gerenciamento e o escalonamento são as questões mais importantes a discutir. Outro ponto é a virtualização, que ganhou popularidade. Ela permite que uma aplicação, incluindo seu ambiente completo e o SO execute concorrentemente com outras aplicações, mas com alto grau de independência em relação ao hardware.

3 Os processos formam um bloco de construção nos SD.
Sistemas Distribuídos Threads Os processos formam um bloco de construção nos SD. Múltiplos processos proporcionado pelo SO não são suficientes. Ter múltiplos threads de controle por processo facilita a construção de aplicações Distribuídas e a obtenção de melhor desempenho. Introdução aos Threads Como processos e threads se relacionam? Para executar um programa o SO cria vários processadores virtuais, cada um para executar um programa diferente; Para gerenciar, o SO possui uma tabela de processos que contem entradas para armazenar valores de registradores de CPU, mapas de memória, arquivos abertos, informações, privilégios;

4 Introdução aos Threads (continuação )
Processos Sistemas Distribuídos Introdução aos Threads (continuação ) Um processo costuma ser definido como um programa em execução num dos processadores virtuais. O SO deve tomar grande cuidado para assegurar que os processos não interfiram em um outro. Vários processos podem compartilhar concorrentemente a mesma CPU e outros recursos de hardware, de forma transparente; Esta transparência de concorrência tem preço relativamente alto; Chavear a CPU entre dois processos pode ser é caro; Se o SO suportar mais processos que a memória pode conter, ele pode efetuar troca dinâmica entre a memória e o disco;

5 Introdução aos Threads (continuação )
Processos Sistemas Distribuídos Introdução aos Threads (continuação ) Como no processo, um thread executa sua própria porção de código, independentemente de outros threads. Nenhuma tentativa é feita para se obter um alto grau de transparência de concorrência se isto degradar o desempenho; Um sistema de threads mantém a mínima informação que permita a CPU ser compartilhada por várias threads; Informações que não são necessárias para gerenciar múltiplos threads são ignorados; Proteger contra acessos inadequados ficam a cargo do desenvolvedor;

6 Utilização de threads em sistemas não distribuídos
Processos Sistemas Distribuídos Utilização de threads em sistemas não distribuídos Benefícios por processos Multithread: Em um processo mono thread, sempre que for executado uma chamada bloqueadora de sistema, o processo é bloqueado como um todo (indesejável). Exemplo: Uma aplicação - programa de planilha Quando o usuário muda uma célula, dispara uma série de cálculos. Se houver só um thread de controle, o cálculo não pode prosseguir, enquanto o programa estiver esperando uma entrada. Também, não é possível fornecer uma entrada se o programa estiver calculando. A solução seria dois threads de controle:  um para manipular a entrada e outro para atualizar a planilha. Poderia ter um terceiro thread para disparar o salvamento automático.

7 Benefícios por processos Multithread (continuação):
Sistemas Distribuídos Benefícios por processos Multithread (continuação): É possível explorar o paralelismo ao executar o programa em um sistema multiprocessador. Quando usado corretamente, o paralelismo pode ser transparente; Este paralelismo tem se tornado cada vez mais importante com as CPU´s de múltiplos núcleos. O Multitreading é útil em grandes aplicações. Temos um conjunto de programas cooperativos, cada um com processo em separado.  Como exemplo temos os sistemas UNIX, LINUX A comunicação entre programas se da por meios da comunicação entre processos - IPC ( Interprocess Communication ).

8 Processos Sistemas Distribuídos A desvantagem do IPC é que a comunicação requer extensivo chaveamento de contexto . Pode-se construir aplicações tal que as diferentes partes sejam executadas por threads separadas. A comunicação é feita com a utilização de dados compartilhados. Muitas aplicações são simplesmente mais fáceis de estruturar como um conjunto de threads cooperativos.

9 Implementação de Thread
Processos Sistemas Distribuídos Implementação de Thread Threads são fornecidos como pacotes de de threads. Eles contem operações para criar e terminar threads, e outras funções. Temos duas abordagens Uma biblioteca executada em modo usuário; O Núcleo fica ciente dos threads e os escalona; A primeira tem várias vantagens: Criar e terminar threads são baratos; Chaveamento do contexto é feito com poucas instruções

10 Implementação de Thread ( continuação )
Processos Sistemas Distribuídos Implementação de Thread ( continuação ) Tem como desvantagem o seguinte: ao invocar uma chamada bloqueadora de sistema, bloqueará todo o processo e todas as threads deste processo; Este problema é contornado pela segunda abordagem. Só que a implementação de threads no núcleo tem um preço alto. O Beneficio da utilização de threads acaba desaparecendo. Uma solução é uma forma híbrida de threads de nível de usuário e nível de núcleo, chamada processos leves (Lghtweight Process - LWP).

11 Implementação de Thread ( continuação )
Processos Sistemas Distribuídos Implementação de Thread ( continuação ) Um LWP executa no contexto de um único processo (pesado); Pode haver vários LWP´s por processo; Além de ter LWP´s, um sistema fornece um pacote de thread´s de nível de usuário, o qual oferece as aplicações as operações usuais de criação e encerramento de threads. A questão importante é que o pacote de thread´s é implementado inteiramente em espaço de usuário;

12 Implementação de Thread ( continuação )
Processos Sistemas Distribuídos Implementação de Thread ( continuação ) Vantagens em utilizar LWP´s em combinação com threads de nível de usuário 1 - Criar, destruir e sincronizar threads é relativamente barato e não envolve intervenção do núcleo; 2 - Se tiver LWP´s suficientes, uma chamada bloqueadora não suspenderá o processo inteiro; 3 - Não há necessidade de que a aplicação ter conhecimento de LWP´s. Tudo que a aplicação vê são as threads de nível de usuário; 4 - Pode ser usado com facilidade em ambientes de multiprocessamento pela execução de diferentes LWP´s em diferentes CPU´s. Este multiprocessamento pode ser inteiramente oculta a aplicação

13 Implementação de Thread ( continuação )
Processos Sistemas Distribuídos Implementação de Thread ( continuação ) A Desvantagen em utilizar LWP´s é que criar e destruir LWP´s é extremamente caro, mas isto é feito só ocasionalmente; Uma abordagem alternativa mas similar a LWP´s é utilizar ativações de escalonador. A diferença para os LWP´s é que quando um therad bloqueia em uma chamada de sistema o núcleo faz uma upcall para o pacote de thread´s. Isto poupa gerenciamento de LWP, mas é considerada menos elegante por violar a estrutura de sistemas em camadas.


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google