Arquitetura de Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

SISTEMAS OPERACIONAIS
Sistemas Distribuídos
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Operacionais
Sistemas Cliente/Servidor Introdução
Sistemas Operacionais
Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 5 – Processo1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo.
Sistemas Operacionais - 5
Sistemas Operacionais
Threads (Linha de execução )
Profa. Priscila Facciolli
Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Arquitetura de Sistemas Operacionais
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.
Sistemas Operacionais
Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
09/03/10 20:13 Claudio de Oliveira – 1/21.
Threads.
Sistemas Operacionais
Conteúdo Estrutura do sistema operacional Funções do Kernel
Unidade 1-1 Processos e Threads
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Linguagem de Programação IV
Concorrência entre Threads Java
Arquitetura Cliente /Servidor
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.
Unidade 2 - Parte 1 Programação Concorrente
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.
Claudio de Oliveira – Processos 09/03/10 20:13 Claudio de Oliveira –
Sistemas Operacionais
Sistemas Operacionais
Processos.
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Prof. Alexandre Monteiro Recife
Processos.
Sistemas Distribuídos
SISTEMAS OPERACIONAIS I
Troca de Mensagens Programação concorrente
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Capítulo 4: Processos.
ESTRUTURA DO SISTEMA OPERACIONAL
SISTEMAS OPERACIONAIS MACH EPOS
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais Processo
Bruna Cavallero Martins Universidade Católica de Pelotas.
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Complementado por Sidney Lucena (Prof. UNIRIO) Capítulo 6 Thread ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)

6 – Thread Ambiente Monothread Concorrência implementada apenas com o uso de processos independentes e subprocessos Permite dividir uma aplicação em partes que podem trabalhar de forma concorrente Problemas: Consumo maior de recursos do sistema Espaço de endereçamento não é compartilhado Comunicação entre processos mais difícil e lenta Compartilhamento de recursos é mais complicado (ex: arquivos abertos) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/1

6 – Thread Ambiente Monothread 6/1 ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/1

6 – Thread Ambiente Monothread Processos monothread possuem, cada um, seu próprio contexto de hardware, de software e espaço de endereçamento Exemplos de SO’s monothread: MS-DOS, primeiras versões do MS-Windows Primeiros sistemas UNIX ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/2

6 – Thread Ambiente Multithread 6/3 ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/3

6 – Thread Ambiente Multithread Programas são associados a threads, não a procesos Cada programa tem pelo menos uma thread de execução Pode compartilhar espaço de endereçamento com outras threads criadas pelo programa Thread corresponde a uma sub-rotina que pode ser executada de forma assíncrona (paralela) das demais Sub-rotinas concorrentes dentro de um mesmo processo Threads criadas dinamicamente, sob demanda ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/3

6 – Thread Aplicação Multithread 6/4 ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Aplicação Multithread Minimiza a alocação de recursos do sistema Mais rápidos p/ criação, término e troca de contexto Compartilham processador da mesma forma que processos independentes Mudança de estados entre wait, ready e running Cada thread com contexto próprio de hardware Threads de um mesmo processo compartilham contexto de software e espaço de endereçamento (comunicação mais rápida e eficiente) Implementadas por estrutura chamada Thread Control Block (TCB) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Aplicação Multithread TCB armazena contexto de hardware e informações exclusivas da thread (prioridade, estado) Unidade de alocação de recursos é o processo Threads criadas compartilham recursos do processo Unidade de escalonamento é a thread SO não escalona o processo para execução, mas sim uma de suas threads Compartilhamento de espaço de endereçamento inibe mecanismos de proteção no acesso a este espaço (aplicação deve cuidar disto) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Aplicação Multithread Threads de um mesmo processo pode facilmente compartilhar recursos como descritores de arquivos, sinais, temporizadores, etc Uso de periféricos pode ser realizado de forma concorrente entre as threads Melhora desempenho de algumas aplicações onde tarefas podem ser executadas em background durantes operações de E/S Exs: editores de texto, planilhas, aplicações gráficas, processamento de imagens ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Aplicação Multithread Thread principal solicita operações de E/S Threads específicas p/ executar as operações de E/S ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/5

6 – Thread Aplicação Multithread Essenciais para arquiteturas cliente-servidor Thread no cliente p/ solicitar e aguardar o serviço enquanto thread principal continua executando em background Evita que processo cliente pare aguardando serviço pedido Processo servidor dispara threads para atender cada solicitação que chega de maneira simultânea Evita que uma solicitação precise aguardar o término do atendimento das solicitações anteriores Úteis para núcleo de arquiteturas microkernel ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Aplicação Multithread 6/6 ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/6

6 – Thread Arquitetura e Implementação Sistemas Operacionais disponibilizam pacotes de threads para serem usados pelas aplicações Abordagem usada no pacote influenciará o desempenho, a concorrência e a modularidade das aplicações multithread Podem ser oferecidas de quatro formas: Biblioteca de rotinas em modo usuário (fora do núcleo do SO) Rotinas em modo kernel (do núcleo do SO) Modo híbrido (modos kernel + usuário) Modelo de Scheduler Activations ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Arquitetura e Implementação Ex. de SO’s de acordo com a arquitetura de thread: Modo usuário Open VMS versão 6 Modo kernel Windows 2000, Open VMS versão 7, Compaq UNIX Modo híbrido Sun Solaris versão 2 Modelo de Scheduler Activations FastThreads (University of Washington) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Usuário Threads em modo usuário (TMU) são implementadas pela aplicação, e não pelo SO, através de uma biblioteca de rotinas Criação, eliminação, troca de mensagens, política de escalonamento SO não gerencia nem sincroniza as múltiplas thread, é responsabilidade da aplicação Vantagem é poder implementar aplicações multithreads em SO’s que não suportam threads TMU’s são mais rápidas por dispensarem acessos ao kernel do SO, porém mais limitadas ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Usuário SO gerencia TMU’s como se fosse uma única thread Caso uma thread entre em estado de espera, todo o processo fica em estado espera Biblioteca deve possuir rotinas que substituam as rotinas bloqueantes por outras não-bloqueantes Sinais são enviados para o processo, não para a thread Processo deve reconhecer os sinais e encaminhá-los para as threads de direito O mesmo para interrupções de clock objetivando time-sharing ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Usuário Caso hajam múltiplos processadores, TMU’s não poderão rodar nos diferentes processadores Como o SO só enxerga o processo, todas as TMU’s rodarão no mesmo processador Limitação extrema para o paralelismo da aplicação ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Kernel Threads em modo kernel (TMK) são implementadas diretamente pelo núcleo do SO através de system calls que fazem o gerenciamento e a sincronização SO escalona as threads individualmente Utiliza capacidade de múltiplos processadores Baixo desempenho devido às mudanças de modo de acesso usuário-kernel-usuário (10 a 30x, +/-) ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Híbrido Threads em modo híbrido (TMH) combinam vantagens das TMU’s e das TMK’s Processo pode ter várias TMK’s e as TMK’s podem ter várias TMU’s TMK’s escalonadas individualmente pelo SO Uma TMU pode ser executada por qualquer TMK Apesar da flexibilidade, apresenta desvantagens Quando TMK faz uma operação bloquante, todas as TMU’s associadas à TMK ficam bloqueadas TMU’s que precisem rodar em diferentes processadores precisam estar em TMK’s distintas ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads em Modo Híbrido 6/4 ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads no Modelo Scheduler Activations Problemas das TMH’s em muito se devem à falta de comunicação entre TMU’s e TMK’s O ideal é combinar o que há de melhor nas TMU’s e nas TMK’s sem precisar repetir os modelos Modelo de scheduler activations Introduzido na década de 1990 na Universidade de Washington Núcleo do SO troca informações com biblioteca de threads através de estrutura chamada scheduler activations Evita mudanças desnecessárias de modos de acesso ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Threads no Modelo Scheduler Activations Caso uma thread faça uma chamada bloqueante, biblioteca em modo usuário escalona outra thread em cooperação com modo kernel Cada camada implementa seu escalonamento de forma independente, trocando informações quando necessário ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4

6 – Thread Modelos de Programação Desenvolvimento de aplicações multithread exige sincronismo na comunicação e compartilhamento de recursos entre as threads Deve-se evitar problemas de inconsistência e deadlocks Procedimento de depuração torna-se mais complicado Fator importante para desempenho do programa é sua política de criação e eliminação de threads, o que implicará no número total de threads coexistindo Uma boa estratégia de modularização do programa e conseqüente divisão em threads é fundamental ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO) 6/4