Você está na página 1de 4

Threads

Captulo 3
 Antigamente

os SO suportavam apenas processos


com um nico thread (monothread);
 Um processo pode ter partes diferentes do seu
cdigo sendo executadas em paralelo;
 Menor overhead do que utilizar mltiplos
processos;
 Threads de um mesmo processo compartilham o
mesmo espao de endereamento;

Threads
Profa. Msc. Patrcia Vasconcelos
1
1
1
1

Threads

Ambiente Monothread

A

comunicao entre threads no envolve


mecanismos lentos de intercomunicao entre
processos (maior desempenho);
 Implementao multithread no simples;
 O paralelismo introduz um novo conjunto de
problemas como a comunicao e sincronizao
de threads;

 Um

processo suporta apenas um programa no seu


espao de endereamento;
 A utilizao de processos independentes e
subprocessos permite dividir uma aplicao em
partes que podem trabalhar de forma concorrente;


Gerenciamento de emails;

Cada funcionalidade do software implica a


criao de um novo processo para atend-la;

Threads
O Modelo de Thread

Ambiente Monothread
Demanda consumo de diversos recursos do sistema;
Sempre que um processo criado:
 Alocar recursos para cada processo;
 Consumindo tempo de processador;
 Trmino do processo:
 Dispensa tempo para desalocar recursos previamente
alocados;
 Comunicao
 Difcil e lenta;
 Utiliza pipes, sinais, semforos, etc;
 Exemplo:
 DOS, primeiras verses do windows, verses antigas do
UNIX;



(a) Trs processos cada um com um thread


(b) Um processo com trs threads

O Modelo de Thread

O Modelo de Thread




Items compartilhados por todos os threads em um processo


Itens privativos de cada thread
7

Cada thread tem sua prpria pilha

Uso de Thread

Uso de Thread

10

Um processador de texto com trs threads

Um servidor web com mltiplos threads

Ambiente Multithread

Ambiente Multithread

No existe a idia de programas associados a processos,


mas a threads;
 Processo tem pelo menos um thread de execuo, e pode
compartilhar seu espao de endereamento com
inmeros outros;
 Thread pode ser uma sub-rotina de um programa que
pode ser executada de forma assncrona (paralelamente
ao programa chamador);
 Este ambiente possibilita a execuo concorrente de subrotinas dentro de um mesmo processo;

Possibilidade de minimizar a alocao de recursos do sistema;


Diminui o overhead na criao, troca e eliminao de
processos;
 Threads compartilham o processador da mesma maneira que
processos, e passam pelas mesmas mudanas de estado;
 Quando um thread espera por uma operao de E/S, outro
thread pode ser executado;
 Cada thread possui seu prprio contexto de hardware para
permitir a troca de contexto;
 Quando um thread est sendo executado, seu contexto de
hardware est armazenado nos registradores do
processador;
 Quando perde a UCP, as informaes so atualizadas no
seu contexto de hardware;


11

12

Ambiente Multithread
 Dentro

Ambiente Multithread

de um mesmo processo:

 Programas

concorrentes multithreads so mais


rpidos do que programas concorrentes
implementados com mltiplos processos;

Threads compartilham o mesmo contexto de software e


espao de endereamento;
 Cada thread tem o seu prprio contexto de hardware;
 Estrutura de Thread:


Operaes de criao, troca de contexto e eliminao de


threads geram menor overhead;

TCB Thread Control Block:

Armazena, alm do contexto de hardware, algumas


informaes tipo: prioridade, estado de execuo,

13

Ambiente Multithread

14

Ambiente Multithread

15

Ambiente Multithread
 Threads

16

Ambiente Multithread

so essenciais para solicitao de servios

remotos;



Um thread pode solicitar um servio remoto, enquanto a


aplicao continua realizando outras atividades;
Permite que diversos pedidos sejam atendidos
simultaneamente;

17

18

Implementao de
Threads de Usurio

Threads em modo
Usurio - TMU
So implementados pela aplicao e no pelo sistema operacional;
Deve existir uma biblioteca de rotinas que possibilite aplicao
realizar tarefas como criao/eliminao de threads, troca de
mensagens entre threads e poltica de escalonamento;
 O SO no sabe a existncia de mltiplos threads (responsabilidade
exclusiva da aplicao esse gerenciamento);
 Possibilidade de implementar aplicaes multithreads em SO que
no suportam threads;
 So rpidos e eficientes, evitando mudana de modo de acesso
(usurio-kernel-usurio);
 Tratamento de sinais complicado (os sinais encaminhados apenas
aos processos devem ser direcionados para cada thread);



19

20

Um pacote de threads de usurio

Threads em modo
Kernel - TMK

Implementao de
Threads de Ncleo

 So

implementados pelo ncleo do SO, atravs de


chamadas de rotinas do sistema;
 SO sabe da existncia de cada thread e pode
escalon-las individualmente;
 Baixo desempenho (vrios modos de acesso);

21

22

Um pacote de threads gerenciado pelo ncleo

Threads em modo
Hibrido - TMH

Implementaes Hbridas

 Combina

vantagens de TMU e TMK;


processo pode ter vrios TMK que por sua vez pode
ter vrios TMU;
 O ncleo do sistema reconhece os TMK e pode
escalon-los individualmente;
 Um TMU pode ser executado em um TMK e em outro
instante em um outro;
 Os TMU so mapeados em TMK quando o processo
executado;
 Um

23

24

Multiplexao de threads de usurio sobre threads de ncleo

Você também pode gostar