Вы находитесь на странице: 1из 4

Captulo 3

Threads
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 1

Threads
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;

Ambiente Monothread
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;


3 4

Threads

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;

O Modelo de Thread

(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 8

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
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;
11

Ambiente Multithread
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;

12

Ambiente Multithread
Dentro de um mesmo processo:
Threads compartilham o mesmo contexto de software e espao de endereamento; Cada thread tem o seu prprio contexto de hardware; Estrutura de Thread:

Ambiente Multithread
Programas concorrentes multithreads so mais rpidos do que programas concorrentes implementados com mltiplos processos;
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

14

Ambiente Multithread

Ambiente Multithread

15

16

Ambiente Multithread
Threads 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;

Ambiente Multithread

17

18

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

Implementao de Threads de Usurio

20

Um pacote de threads de usurio

Threads em modo Kernel - TMK


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);

Implementao de Threads de Ncleo

21

22

Um pacote de threads gerenciado pelo ncleo

Threads em modo Hibrido - TMH


Combina vantagens de TMU e TMK; Um 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;
23

Implementaes Hbridas

24

Multiplexao de threads de usurio sobre threads de ncleo

Вам также может понравиться