Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais PROCESSOS E THREADS Ana Cristina A. Oliveira Dantas ana.oliveira@ifpb.edu.br IFPB – Instituto Federal da Paraíba Campus Campina Grande Eixo Temático Processos Threads Comunicação interprocessos Escalonamento PROCESSOS E THREADS 2 Threads PROCESSOS E THREADS 3 Definição Fluxo de controle de execução de um processo Designa uma parte de um programa que pode executar concorrentemente com outros threads É às vezes chamado de processo leve (LWP) Threads ◦ De instrução ◦ De controle PROCESSOS E THREADS 4 Introdução a Threads Compartilham espaço de endereço e outras informações globais com seu processo de origem Possui informações específicas próprias ◦ Registradores, pilha, máscaras de sinal e outros dados Gerenciados pelo SO ou pela aplicação de usuário Exemplos: threads Win32, C-threads, Pthreads PROCESSOS E THREADS 5 Threads O Modelo de Thread (a) Três processos cada um com um thread (b) Um processo com três threads PROCESSOS E THREADS 6 O Modelo de Thread PROCESSOS E THREADS Items compartilhados por todos os threads em um processo Itens privativos de cada thread 7 O Modelo de Thread Cada thread tem sua própria pilha de execução (contém as instruções que serão executadas) PROCESSOS E THREADS 8 Uso de Thread: Exemplo 1 Um processador de texto com três threads PROCESSOS E THREADS 9 Uso de Thread: Exemplo 2 Um servidor web com múltiplos threads PROCESSOS E THREADS 10 Uso de Thread: Exemplo 2 Código simplificado do slide anterior ◦ Thread despachante ◦ Thread operário PROCESSOS E THREADS 11 Uso de Thread Três maneiras de construir um servidor PROCESSOS E THREADS Modelo Características Threads Paralelismo, chamadas ao sistema com bloqueio Processo monothread Sem paralelismo, chamadas ao sistema com bloqueio Máquinas de estados finitos Paralelismo, chamadas ao sistema sem bloqueio, interrupções 12 Implementação de Threads de Usuário Um pacote de threads de usuário PROCESSOS E THREADS 13 Implementação de Threads de Usuário Um pacote de threads gerenciado pelo núcleo PROCESSOS E THREADS 14 Implementações Híbridas Multiplexação de threads de usuário sobre threads de núcleo PROCESSOS E THREADS 15 Ativações do Escalonador: threads de usuário imitando as de núcleo Objetivo: imitar a funcionalidade dos threads de núcleo ◦ Executar threads de usuário de modo mais eficiente Evita transições usuário/núcleo desnecessárias ◦ Exemplo: se um thread bloqueia esperando que outro thread faça algo, não há razão para envolver o núcleo ◦ Evitar a sobrecarga da transição usuário-núcleo PROCESSOS E THREADS 16 Ativações do Escalonador: threads de usuário imitando as de núcleo Núcleo atribui processadores virtuais para cada processo ◦ O sistema supervisor aloca threads para esses processadores Problema: ◦ Baseia-se fundamentalmente nos upcalls ◦ O núcleo (camada inferior) chamando procedimentos no espaço do usuário (camada superior) PROCESSOS E THREADS 17 Threads Pop-Up Criação de um novo thread quando uma mensagem chega (a) antes da mensagem chegar (b) depois da mensagem chegar PROCESSOS E THREADS 18 Convertendo Código Monothread em Código Multithread Conflitos entre threads sobre o uso de uma variável global PROCESSOS E THREADS 19 Convertendo Código Monothread em Código Multithread Threads podem ter variáveis globais privadas PROCESSOS E THREADS 20 Ciclo de Vida de Threads PROCESSOS E THREADS 21 Modelos de Threads Threads de usuário ◦ Executam operações de suporte no espaço do usuário ◦ Não podem executar instruções privilegiadas nem acessar as primitivas do núcleo diretamente Threads de núcleo ◦ Tentam resolver as limitações de acesso dos threads de usuário ◦ Mapeamento de cada thread em seu contexto de execução ◦ Nem sempre são a solução ideal para as aplicações Pode haver combinação dos dois modelos PROCESSOS E THREADS 22 Entrega de Sinal a um Thread Todo thread normalmente está associado a um conjunto de sinais ◦ São emitidos (entregues) quando ele é executado Tipos de sinais ◦ Síncrono ◦ Assíncrono O thread pode mascarar todos os sinais, exceto aqueles que deseja receber PROCESSOS E THREADS 23 Mascaramento de Sinal para um Processo PROCESSOS E THREADS 24 Término de Threads Depende de como foram implementados os threads Se for terminado prematuramente, pode provocar erros nos processos ◦ Vários threads compartilham o mesmo espaço de endereço Algumas implementações permitem que um thread determine quando ele pode ser terminado ◦ Evitar que o processo entre em um estado inconsistente PROCESSOS E THREADS 25 Bibliografia ANDREW S. TANENBAUM. Sistemas Operacionais Modernos. Editora Prentice-Hall, 2ª Edição, 2003. ISBN: 8587918575 ◦ Capítulo 2: Processos e Threads DEITEL & CHOFFNES. Sistemas Operacionais. Editora Prentice-Hall, 3ª Edição, 2005. ISBN: 8576050110. ◦ Capítulo 3: Conceito de processos PROCESSOS E THREADS 26
Compartilhar