Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura de Sistemas
Operacionais
Técnico em Informática
Turmas: MBI1
Escalonamento de Tarefas
Thread
Cap. 6 – Thread
1
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Sumário
•
•
•
•
Introdução
Ambiente monothread
Ambiente multithread
Arquitetura e implementação
Cap. 6 – Thread
2
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Thread
• Thread, ou linha de execução em
português, é uma forma de um
processo dividir a si mesmo em duas
ou mais tarefas que podem ser
executadas simultaneamente
Cap. 6 – Thread
3
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Monothread
• Concorrência com processos
Subprocessos
Cap. 6 – Thread
Processos Independentes
4
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Monothread
• Ambiente monothread
Thread
Cap. 6 – Thread
Thread
Thread
5
• Ambiente multithread
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Thread 1
Thread 2
Thread 3
Contexto de
software
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Multithread
Espaço de
endereçamento
Cap. 6 – Thread
6
• 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
...
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Multithread
Cap. 6 – Thread
7
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Multithread
• Aplicação
multithread (a)
Th r e a d d e
e n tr a d a
Bu f f e r
Th r e a d d e
e xi b i çã o
Cap. 6 – Thread
Th r e a d d e
g r a v a çã o
8
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Ambiente Multithread
• Aplicação
multithread (b)
Processo servidor
Solicitações
Cap. 6 – Thread
Thread
Thread
Thread
Processo cliente
Processo cliente
Processo cliente
9
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
• Threads em modo usuário
• Threads em modo kernel
• Threads em modo híbrido
Cap. 6 – Thread
10
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
• Modo Usuário – são implementados pela aplicação e
não pelo sistema operacional.
Deve existir uma biblioteca de rotinas que possibilite
a aplicação realizar tarefas como eliminar/criar
threads, troca de mensagens e políticas de
escalonamento.
É limitante pois o SO reconhece a existência de um
único thread (um thread ao chamar uma rotina do
sistema coloca todo o processo e seus threads aptos
a executar em estado de espera )
Cap. 6 – Thread
11
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
• Modo Kernel – são implementadas diretamente pelo
núcleo do SO por meio de chamadas de sistema que
oferecem todas as rotinas de sincronização e
gerenciamento.
• Modo Híbrido – combina as vantagens de threads
implementados em modo usuário e modo kernel.
Cap. 6 – Thread
12
Thread 4
Thread 3
Thread 2
Thread 1
• Threads em modo usuário
Thread 0
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
Modo
usuário
Biblioteca
Kernel
Cap. 6 – Thread
Modo
kernel
13
Kernel
Cap. 6 – Thread
Thread 4
Thread 3
Thread 2
Thread 1
• Threads em modo kernel
Thread 0
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
Modo
usuário
Modo
kernel
14
TMU 5
TMU 4
TMU 3
TMU 2
TMU 1
• Threads em modo híbrido
TMU 0
Arquitetura de Sistemas Operacionais – Fucapi/CEEF
Arquitetura e Implementação
Modo
usuário
Biblioteca
TMK 0
TMK 1
TMK 2
TMK 3
Modo
kernel
Kernel
Cap. 6 – Thread
15
Download

3_3 - Escalonamento_Tarefas_Thread