Sistemas Distribuídos
Download
1 / 13

Sistemas Distribuídos - PowerPoint PPT Presentation


  • 124 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Sistemas Distribuídos' - flower


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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.


Processos

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;


  • 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;


    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;


    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.


    Processos

    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 ).


    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.


    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


    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).


    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;


    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


    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.


    ad