Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

SISTEMAS OPERACIONAIS
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Sistemas Operacionais
Sistemas Cliente/Servidor Introdução
Sistemas Operacionais
Threads (Linha de execução )
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais
Chapter 4: Threads.
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I
Sistemas Distribuídos
Threads.
Sistemas Operacionais
Threads sem Sincronização
Monitores.
Unidade 1-1 Processos e Threads
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
CUDA vs OpenCL Introdução.
Sistemas Operativos (S.O.)
Linguagem de Programação IV
Sistema Operacional Processos
Concorrência entre Threads Java
Processo Entidade dinâmica e efêmera
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Sistemas Distribuídos
Conteúdo Processos e threads Partes do processo
IC - UFF Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings.
Introdução à Informática
Sistemas Operacionais
Processos.
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 9 Regiane Kawasaki
Sistemas Distribuídos
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Prof. Alexandre Monteiro Recife
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Escalonamento de Processos e Threads
Processos.
SISTEMAS OPERACIONAIS I
Introdução a Banco de Dados Aula 04
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Capítulo 4: Processos.
ESTRUTURA DO SISTEMA OPERACIONAL
Infra-Estrutura de Software
SISTEMAS OPERACIONAIS MACH EPOS
SISTEMAS OPERACIONAIS
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Sistemas de Arquivos- Cap4
Tipos de Sistemas Operacionais
Arquitetura de computadores
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
Sistemas Operacionais Processo
Sistemas Distribuídos Professor: Luiz José Hoffmann Filho
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Sistemas Operacionais de Redes Virtualização IGOR ALVES.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Sistemas Distribuídos Processos

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.

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;

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;

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;

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.

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

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.

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

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

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;

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

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.