Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1
Seção 1.1 Introdução 2
Receita do Bolo Programa (Algoritmo) Ingredientes: dados de entrada Quem prepara (confeiteiro): CPU Processo atividade de: Ler a receita Buscar ingredientes Assar o bolo 3
Confeiteiro registra onde estava na receita (processo é salvo) Busca Livro Primeiros Socorros Segue instruções do livro Confeiteiro (CPU) passa de um processo (Assar o bolo) para um de prioridade mais alta (fornecer cuidados médicos) Quando picada tiver sido tratada, confeiteiro volta ao bolo Continua do ponto onde parou 4
Capítulo 06 Receita (Algoritmo) Processo 1 Mistura o ovo 14/05/14 Ingredientes: dados de entrada Processo 2 Ovo misturado com a farinha P C F de Oliveira 2014 Processo 3 Calda é colocada na massa misturada com ovo 5
Capítulo 06 Receita (Algoritmo) Processo 1 Mistura o ovo 14/05/14 Ingredientes: dados de entrada Processo 2 Ovo misturado com a farinha P C F de Oliveira 2014 Processo 3 Calda é colocada na massa misturada com ovo 6
O que é? Unidade básica de utilização de CPU Silberchatz, Galvin, Gagne (2005) Processo dentro de um processo, ou um miniprocesso Tanenbaum (2010) Unidade de execução ou um processo leve (lightweight process) Stallings (2011) 7
Seção 1.2 Ambiente Monothread 8
Subprocessos: processos criados dentro de uma estrutura hierárquica Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento Processo independente: não existe vínculo entre processo criado e seu criador Subprocessos Processos Independentes 9
Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento Cada processo possui seu próprio contexto de software, hardware e espaço de endereçamento 10
MS-DOS Processo Único Único Variantes do Unix (antigas versões) Múltiplos Processos Um por processo Fonte: Stalings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011) 11
Seção 1.3 Ambiente Multithread 12
Um processo com 3 threads Contexto de hardware Contexto de hardware Contexto de hardware C on texto d e so ftw a re Não existe a ideia de programas associados a processos, mas sim a threads 1 2 Espaço de endereçamento 3 Compartilham mesmo espaço de endereçamento 13
Java Run-time Um Processo Múltiplos s Windows, Solaris e novas versões do Unix/ Linux Múltiplos Processos Múltiplos s por processo Fonte: Stallings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011) 14
Processo Espaço de endereçamento... Aplicação Multithread Variáveis Program a Principa l Call Sub_1 _1 PC SP C on texto de H a rdw a re Call Sub_2 Vantagem Minimizar alocação de recursos do SO Diminuir overhead (sobrecarga) na criação, troca e eliminação de processos Fim Sub_1 Ret Sub_2 Ret... _2 PC SP _3 PC SP C ontexto de H a rdw a re C on texto d e H a rdw a re s executados concorrentemente 15
Permite que diversos pedidos sejam atendidos simultaneamente Processo servidor Aplicação Multithread Solicitações pode solicitar serviço remoto enquanto a aplicação pode continuar realizando outras tarefas Processo cliente Processo cliente Processo cliente 16
Seção 1.4 Programação Multithread 17
18
Seção 1.5 Arquitetura e Implementação 19
Ambientes Arquitetura Distributed Computing Environment (DCE) Modo Usuário Compaq Open MVS v.6 Modo Usuário Windows 2000 Modo Kernel Compaq Unix Modo Kernel Compaq Open MVS v.7 Modo Kernel Solaris v.7 Modo Híbrido University of Washington Fasts Scheduler Activations Bibliotecas de rotinas thread Fora do núcleo SO: usuário Pelo núcleo: kernel Combinação: híbrido 20
s em Modo Usuário (TMU) Threa d 0 Threa d 1 Th re a d 2 Threa d 3 Threa d 4 Modo usuário Implementados pela aplicação e não SO Existe uma biblioteca para criação/ eliminação de threads, e escalonamento Biblioteca Aplicação gerencia e sincroniza os threads Kernel Modo kernel Rápidos e eficientes por não acessar kernel 21
s em Modo Kernel (TMK) Threa d 0 Threa d 1 Th re a d 2 Th rea d 3 Th rea d 4 Modo usuário Implementados pelo SO SO sabe da existência dos threads e pode escaloná-los um a um Kernel Modo kernel Problema de baixo desempenho porque utilizam kernel para chamadas ao sistema 22
s em Modo Híbrido (TMH) TMU 0 TMU 1 TMU 2 Kernel TMU 3 Biblioteca TMU 4 TMU 5 TMK 0 TMK 1 TMK 2 TMK 3 Modo usuário Modo kernel Combina as vantagens de threads em TMU e TMK Programador desenvolve aplicação em termos de TMU e especifica quantos TMK estão associados ao processo TMU são mapeados em TMK quando processo está sendo executado Apresenta problemas herdados das duas implementações 23
Scheduler Activations (SA) Combina o melhor das duas arquiteturas Th rea d 0 Th re a d 1 Th rea d 2 Threa d 3 Th rea d 4 Modo usuário Kernel troca informações com a biblioteca de threads usando a estrutura de dados SA Biblioteca Kernel Modo kernel Melhor desempenho é alcançado porque evita mudanças de modos de acesso desnecessárias (e.g. Usuário-kernelusuário) 24
Texto Fonte Arial Normal Máx.14pt / Mín.12pt Preto Centralizado 25