Arquitetura de Sistemas
Operacionais
Francis Berenger Machado
Luiz Paulo Maia
Capítulo 6
Thread
Cap. 6 – Thread
1
Sumário
•
•
•
•
Introdução
Ambiente monothread
Ambiente multithread
Arquitetura e implementação
Cap. 6 – Thread
2
Ambiente Monothread
• Concorrência com processos
Subprocessos
Cap. 6 – Thread
Processos Independentes
3
Ambiente Monothread
• Ambiente monothread
Thread
Cap. 6 – Thread
Thread
Thread
4
Ambiente Multithread
• Ambiente multithread
Contexto
de hardware
Contexto
de hardware
Thread 1
Thread 2
Thread 3
Contexto de
software
Contexto
de hardware
Espaço de
endereçamento
Cap. 6 – Thread
5
Ambiente Multithread
• Aplicação multithread
Processo
Variáveis
Programa Principal
Thread_1
PC
SP
Contexto de
Hardware
...
Espaço de
endereçamento
Call Sub_1
Thread_2
Sub_1
Ret
PC
SP
Thread_3
Sub_2
PC
SP
Contexto de
Hardware
Fim
Contexto de
Hardware
Call Sub_2
...
Ret
Cap. 6 – Thread
6
Ambiente Multithread
• Aplicação
multithread (a)
Thread de
entrada
Buffer
Thread de
exibição
Cap. 6 – Thread
Thread de
gravação
7
Ambiente Multithread
• Aplicação
multithread (b)
Processo servidor
Solicitações
Cap. 6 – Thread
Thread
Thread
Thread
Processo cliente
Processo cliente
Processo cliente
8
Arquitetura e Implementação
•
•
•
•
Threads em modo usuário
Threads em modo kernel
Threads em modo híbrido
Scheduler Activations
Cap. 6 – Thread
9
Arquitetura e Implementação
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
• Threads em modo usuário
Modo
usuário
Biblioteca
Kernel
Cap. 6 – Thread
Modo
kernel
10
Arquitetura e Implementação
Kernel
Cap. 6 – Thread
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
• Threads em modo kernel
Modo
usuário
Modo
kernel
11
Arquitetura e Implementação
TMU 5
TMU 4
TMU 3
TMU 2
TMU 1
TMU 0
• Threads em modo híbrido
Modo
usuário
Biblioteca
TMK 0
TMK 1
TMK 2
TMK 3
Modo
kernel
Kernel
Cap. 6 – Thread
12
Arquitetura e Implementação
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
• Scheduler Activations
Modo
usuário
Biblioteca
Kernel
Cap. 6 – Thread
Modo
kernel
13
Download

Ambiente Monothread