Você está na página 1de 18

Thread

Sistemas Operacionais
tila R. Lopes

Here comes your footer

Thread

Processos Independentes, sub-processos e Threads

So 3 maneiras diferentes de implementar a concorrncia nas


aplicaes.

Busca-se dividir o cdigo em partes menores para trabalharem


de forma cooperativa.

Processos Independentes

Maneira mais simples de implementar concorrncia


No existe vinculo do processo criado com o seu criador
Possui PCB, contexto de hardware e software e esp. de end.
prprio.

Here comes your fo

Thread

sub-processo

Um processo pode criar outro processo de maneira hierrquica

O processo criado chamado sub-processo ou processo filho

Um sub-processo pode criar um outro processo.

Caso um processo pai deixe de existir, seus sub-processo


tambm deixam de existir.

Cada sub-processo possui seu prprio PCB, contexto de


hardware, contexto de software e esp. de endereamento.

Here comes your fo

Thread

A utilizao de sub-processos feita em aplicaes


concorrentes

Podem compartilhar quotas com o processo pai (proc. Pa


cede parte de sua quota para o filho)
Proc.
A

Proc.
B

Proc.
D

Proc.
C

Proc.
E

Here comes your fo

Thread

Tanto os processos Independentes como os subprocesso consomem recurso do sistemas:

CH, CS, EE e tempo da CPU (criao e eliminao).


Comunicao e o sincronismo pouco eficientes:
Possuem seu prprio espao de endereamento.

Here comes your fo

Thread

Surgiu na tentativa de diminuir o tempo gasto pela CPU (criao /


eliminao) de processos e economizar os recursos do sistema como um
todo

So linhas de controle dentro de um nico processo (sub-rotinas)

Fluxos independentes de execuo pertencentes a um mesmo processo

Em um processo pode haver um ou vrios Threads

Possibilita que um nico processo execute varias aplicaes


concorrentemente

Compartilham a CPU da mesma maneira que um processo

Here comes your fo

Thread

Elimina a criao de vrios processos para aplicaes


concorrentes (mltithread)

Cada Thread possui seu prprio registrador, porem


compartilham o mesmo espao de endereamento com as
demais Threads do processo

Complexos, devido ao paralelismo dos programas


concorrentes

Comunicao mais eficiente (dividem esp. End.)

Here comes your fo

Thread

Monothread
Os processos suportam apenas um programa em seu
espao de endereamento.

Aplicaes concorrentes:

Implementadas por mltiplos Processos ou sub-processos.


Ex: software de gerenciamento de e-mails

Desvantagem:

Consumo de recursos do sistema.


Comunicao entre os processos.

Here comes your fo

Thread

Prog. 1

Prog. 2

Proc.
Prog 1

Contexto de
Hard.
(Proc.1)

Contexto de
Soft.
(Proc.1)

Proc.
Prog 2

Espao de
End.
(Proc.1)

Contexto de
Hard.
(Proc.2)

Here comes your fo

Contexto de
Soft.
(Proc.2)

Espao de
End.
(Proc.2)

Thread

Multithreads
Os programas esto associados aos Threads e no aos
processos

Os processos podem dividir seu espao de endereamento


com vrios Threads.

C. H.
C.
S.

-------------

C. H.
-------------

C. H.
-------------

Espao de endereamento

Here comes your fo

10

Thread

Considerado uma sub-rotina de um programa,

Especificao dos Threads e associao s sub-rotinas:

Funo do programador

Compartilham:

Pode ser executado concorrentemente ao programa que o chamou.

CPU
Contexto de software,
Espao de endereamento (melhor comunicao)

No compartilham:

Contexto de hardware.

Here comes your fo

11

Thread

Gerenciados pelo TBC (Bloco de Controle de Threads):


Armazenam contextos de hardware e software.

Monothreads:
Processo = unidade de alocao de recursos,
Processo = unidade de escalonamento;

Multithreads:
Processo = unidade de alocao de recursos,
Thread = unidade de escalonamento

Here comes your fo

12

Thread

Vantagens dos Multithreads:

Execuo mais rpida.


Comunicao interna bem mais rpida.
Podem compartilhar facilmente outros recursos.
Consomem menos recursos

Importncia de Multithreads na arquitetura Cliente-Servidor

Enquanto o cliente aguarda uma solicitao, ele pode estar


Thread de
executando outros servios.
exibio
----Thread de
entrada

----Buffer
----Thread de
gravao

Here comes your fo

13

Thread

Sub-processo X Thread

Sub-processo:
Espao de end. prprio e protegido

Thread:
Compartilham o mesmo espao de end. e no utilizam mecanismos de
proteo

Arquitetura e implementao

Trs formas distintas:


Biblioteca de rotinas fora do ncleo do SO (modo usurio)
Ncleo do SO (modo kernel)
Juno dos 2 primeiros (modo hibrido)

Here comes your fo

14

Thread

Threads em Modo Usurio


Implementado pela aplicao e no pelo SO

O SO no sabe da existncia desses Threads

Biblioteca de rotinas que possibilite a aplicao (criar, eliminar,


comunicao e escalonamento)

A aplicao gerencia os Threads

Vantagens:

Implementa aplicaes multithreads em ambientes monothreads


Rpidos e eficientes por no acessar o kernel

Here comes your fo

15

Thread

Desvantagens:

O SO gerencia apenas os processos:

Se um thread entra em estado de bloqueio, todo processo


fica bloqueado,

Soluo: a biblioteca deve possuir rotinas para substituir


as rotinas bloqueantes do SO

No executa em sistemas com multiplos


processadores

Here comes your fo

16

Thread

Threads em modo kernel


Implementadas pelo ncleo do SO:

Chamadas a rotinas

O SO sabe da existncia dos Threads e pode escalona-lo


individualmente.

Executa em sistemas com multiplos processadores:

Desvantagem:

Baixo desempenho (acessos ao kernel).

Here comes your fo

17

Thread

Threads em modo Hbrido

Combinam as vantagens do mono Usurio com as do


modo kernel.

Um processo pode ter vrios Threads em modo


kernel (TMK) e, por sua vez, um TMK pode ter vrios
TMU.

Os TMK fazem um link com os TMU, que so


executados quando o SO escalona os TMK.

Here comes your fo

18