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

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

Sistemas Distribuídos Processos. Processos Introdução Processo, em sistemas operacionais é definido como um programa em execução. O Gerenciamento e o.

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos Processos. Processos Introdução Processo, em sistemas operacionais é definido como um programa em execução. O Gerenciamento e o."— Transcrição da apresentação:

1 Sistemas Distribuídos Processos

2 Processos 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. Sistemas Distribuídos

3 Processos 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; Sistemas Distribuídos

4 Processos 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; Sistemas Distribuídos

5 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; Processos Sistemas Distribuídos

6 Processos Utilização de threads em sistemas não distribuídos Benefícios por processos Multithread: 1.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. Sistemas Distribuídos

7 Processos Benefícios por processos Multithread (continuação): 2.É 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. 3.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 ). Sistemas Distribuídos

8 Processos 2.A desvantagem do IPC é que a comunicação requer extensivo chaveamento de contexto. 3.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. 4.Muitas aplicações são simplesmente mais fáceis de estruturar como um conjunto de threads cooperativos.

9 Processos Sistemas Distribuídos Implementação de Thread 2.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 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 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 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 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 Processos. Processos Introdução Processo, em sistemas operacionais é definido como um programa em execução. O Gerenciamento e o."

Apresentações semelhantes


Anúncios Google