Upload
vuphuc
View
218
Download
0
Embed Size (px)
Citation preview
3 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Ingredientes: dados de entrada
§ Receita do Bolo Programa (Algoritmo)
Quem prepara (confeiteiro): CPU
Processo – atividade de: § Ler a receita § Buscar ingredientes § Assar o bolo
4 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Quando picada tiver sido tratada, confeiteiro volta ao bolo
§ Continua do ponto onde parou
§ 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)
5 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Processo 1 Processo 2 Processo 3
§ Mistura o ovo § Ovo misturado com a farinha
§ Calda é colocada na massa misturada com ovo
Ingredientes: dados de entrada
Receita (Algoritmo)
6 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Processo 1 Thread
Processo 2 Thread
Processo 3 Thread
§ Mistura o ovo § Ovo misturado com a farinha
§ Calda é colocada na massa misturada com ovo
Ingredientes: dados de entrada
Receita (Algoritmo)
7 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ 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)
O que é?
9 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
S ubp rocessos Proce ssos In dep enden te s
§ Processo independente: não existe vínculo entre processo criado e seu criador
§ Subprocessos: processos criados dentro de uma estrutura hierárquica
§ Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento
10 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Th rea d Th rea dTh rea d
§ Cada processo possui seu próprio contexto de software, hardware e espaço de endereçamento
§ Ambiente monothread: um processo suporta apenas um programa no seu espaço de endereçamento
11 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Variantes do Unix (antigas versões)
MS-DOS
Processo Único Thread Único
Múltiplos Processos Um Thread por processo
Fonte: Stalings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011)
Thread
C on textod e h a rdwa re
C on textod e h a rdwa re
C on textod e h a rdwa re
Esp a ço d eendereça men to
Con
texto de
softwar
e
Th rea d 3Th rea d 2Th rea d 1
13 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Um processo com 3 threads
§ Compartilham mesmo espaço de endereçamento
§ Não existe a ideia de programas associados a processos, mas sim a threads
14 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
Um Processo Múltiplos Threads
Múltiplos Processos Múltiplos Threads por processo
Fonte: Stallings, W. Operating Systems: Internals and Design Principles, 6.ed., (2011)
Windows, Solaris e novas versões do Unix/
Linux
Java Run-time Thread
Esp a ço d eendereça men to
Processo
Prog ram a Pr in cipa l
Con
texto de
Har
dware
Con
texto de
Har
dwar
eCon
texto de
Har
dware
C a l l Su b_1
C a l l Su b_2
Th rea d_1
Th rea d_2
Th rea d_3
PCSP
PCSP
PCSP
F im
Sub_2
Va riá ve is
Ret
S ub_1
Ret...
...
15 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Threads executados concorrentemente
§ Vantagem § Minimizar alocação
de recursos do SO § Diminuir overhead
(sobrecarga) na criação, troca e eliminação de processos
`
Aplicação Multithread
S o l icita ções
Processo se rvido r
Th rea dTh rea d
Processo clienteProcesso cliente Processo cliente
Th rea d
16 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Permite que diversos pedidos sejam atendidos simultaneamente
§ Thread pode solicitar serviço remoto enquanto a aplicação pode continuar realizando outras tarefas
`
Aplicação Multithread
20 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
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 FastThreads Scheduler Activations
§ Bibliotecas de rotinas thread § Fora do núcleo SO: usuário § Pelo núcleo: kernel § Combinação: híbrido
21 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Implementados pela aplicação e não SO
§ Existe uma biblioteca para criação/eliminação de threads, e escalonamento
§ Aplicação gerencia e sincroniza os threads
§ Rápidos e eficientes por não acessar kernel
Modou suá rio
Modok erne l
K erne l
Bib lio teca
Thre
ad 0
Thre
ad 4
Thre
ad 3
Thre
ad 2
Thre
ad 1
Threads em Modo Usuário (TMU)
22 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Implementados pelo SO
§ SO sabe da existência dos threads e pode escaloná-los um a um
§ Problema de baixo desempenho porque utilizam kernel para chamadas ao sistema
Threads em Modo Kernel (TMK)
Modou suá rio
Modok erne lK erne l
Thre
ad 0
Thre
ad 4
Thre
ad 3
Thre
ad 2
Thre
ad 1
23 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ 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
Threads em Modo Híbrido (TMH)
Modou suá rio
Modok erne l
K erne l
TMK 0 TMK 3TMK 2TMK 1
Bib lio teca
TMU 0
TMU 4
TMU 5
TMU 3
TMU 2
TMU 1
24 14/05/14 © P C F de Oliveira 2014
Capítulo 06 Thread
§ Combina o melhor das duas arquiteturas
§ Kernel troca informações com a biblioteca de threads usando a estrutura de dados SA
§ Melhor desempenho é alcançado porque evita mudanças de modos de acesso desnecessárias (e.g. Usuário-kernel-usuário)
Scheduler Activations (SA)
Modou suá rio
Modok erne lK erne l
Bib lio teca
Thre
ad 0
Thre
ad 4
Thre
ad 3
Thre
ad 2
Thre
ad 1