Anda di halaman 1dari 26

Threads

Fluxos de Controle

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

Os softwares funcionam atravs de threads enviados ao processador que contm as instrues que devero ser executadas. Cada processador pode executar um thread por vez. um fluxo de controle seqencial isolado dentro de um programa. O modelo de processo diz que um processo um programa que executa uma nica thread. Quando um processo est executando um programa de processamento de textos uma nica thread est sendo executada. Essa nica thread de controle permite que o processo execute apenas uma tarefa de cada vez.
Sistemas Operacionais - Marcelo Hely
2

09/04/2012

Threads

O usurio no pode, ao mesmo tempo, digitar caracteres e executar o corretor ortogrfico dentro do mesmo processo. Nos SOs tradicionais

Cada processo tem um espao de endereamento e; um nico fluxo de controle (thread).

O processo uma unidade de gerenciamento de recursos, pois so usados para agrupar recursos.

Os processos com somente um fluxo de controle so chamados Processos Monothread.

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

Um processo tem duas partes:


Ativa: fluxo de controle Passiva: espao de endereamento

Um thread consiste somente em fluxo de controle. Tambm chamado de processo leve. Muitas vezes processos usam dados compartilhados, e usar vrios threads no mesmo espao de endereamento mais eficiente. Processo (Unix):

Espao de endereamento + fluxo de controle

Thread:

Fluxo de controle
Espao de endereamento Um processo uma tarefa com um nico thread. Uma tarefa pode conter vrios threads. No h proteo entre threads de uma mesma tarefa! Um thread pertence a uma nica tarefa.

Tarefa (task):

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

O modelo de processo baseia-se em dois conceitos independentes:

Agrupamento de recursos relacionados e execuo.

Exemplo de recursos: espao de endereamento que contm o cdigo e os dados do programa e arquivos abertos.

THREAD de execuo fluxo de controle ID de thread; Contador de programa, que registra qual a prxima instruo que ser executada; Registradores, que armazenam suas variveis atuais de trabalho; Pilha, que guarda a histria de execuo do thread
Sistemas Operacionais - Marcelo Hely
6

09/04/2012

Threads

Os SOs modernos oferecem recursos para que um nico processo contenha mltiplos fluxos de controle (MULTITHREADING). Mais tarefas podem ser realizadas de cada vez.
O thread a unidade bsica de utilizao da CPU. a entidade escalonada para execuo sobre a CPU.

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

Como um programa sequencial qualquer, um thread tem um comeo, um fim, e uma seqncia de comandos. Entretanto, um thread em Java no um programa, no roda sozinho, roda dentro de um programa. Threads permitem que um programa simples possa executar vrias tarefas diferentes ao mesmo tempo, independentemente umas das outras.

09/04/2012

Sistemas Operacionais - Marcelo Hely

Threads

O browser HotJava, implementado em Java, um exemplo. Da mesma forma que o Netscape, com o HotJava voc pode fazer um scroll em uma pgina enquanto carrega uma imagem ou executa vrios applets ao mesmo tempo.

09/04/2012

Sistemas Operacionais - Marcelo Hely

10

Threads

Estas duas caractersticas podem ser tratadas de forma independente pelo SO:

thread ou processo peso leve (lightweight process): a unidade de despacho processo ou tarefa: a unidade de alocao de recursos

09/04/2012

Sistemas Operacionais - Marcelo Hely

11

Threads

Um browser um exemplo de uma aplicao multithreaded

Vrias coisas podem ocorrer ao mesmo tempo:



09/04/2012

scroll download de um applet download de uma imagem tocar uma animao tocar um som imprimir uma pgina em background download de uma nova pgina olhar 3 applets de ordenao trabalhando
Sistemas Operacionais - Marcelo Hely
12

Threads

Multithreading: Viso do Programador A diviso de um programa em vrios threads facilita o desenvolvimento.

O programa desenvolvido em mdulos, ao invs de ser escrito como um nico bloco de cdigo.
Os testes e isoladamente. o tratamento de erros ocorrem

Com vrios threads o trabalho torna-se mais complexo.

Devido a troca de dados e o compartilhamento de recursos entre os vrios threads.


Sistemas Operacionais - Marcelo Hely
13

09/04/2012

Threads

Motivao para o Desenvolvimento de Aplicaes com Multithreading Os threads so mais fceis de criar e destruir, pois no existem recursos associados. Por exemplo: Windows gerencia melhor programas com apenas um processo e vrios threads.

O tempo para criar um processo e alternar entre eles muito grande.

Linux e outros SO baseados no Unix capazes de criar novos processos rapidamente

09/04/2012

Sistemas Operacionais - Marcelo Hely

14

Threads

Compartilhamento de recursos.

Os threads compartilham a memria e os recursos do processo aos quais pertencem, desta forma todos so executados dentro do mesmo espao de endereamento.

Economia.

mais econmico criar e realizar a troca de contexto entre threads do que entre processos.

09/04/2012

Sistemas Operacionais - Marcelo Hely

15

Threads

Muitas aplicaes atuais executam mltiplas atividades ao mesmo tempo.

O uso de threads no resulta em bom desempenho quando todos so orientados CPU (CPU-BOUND).

No entanto, os threads aceleram a aplicao se h

uma grande quantidade de computao e E/S, pois


permite que estas atividades se sobreponham

09/04/2012

Sistemas Operacionais - Marcelo Hely

16

Threads

Capacidade de resposta para o usurio.

Parte

de

programa enquanto

interativo outra

pode

continuar encontra-se

executando

parte

bloqueada ou executando uma operao demorada.

Utilizao de arquiteturas multiprocessador.

Cada thread pode estar sendo executada em processadores diferentes.

09/04/2012

Sistemas Operacionais - Marcelo Hely

17

Threads

Aplicaes do Multithreading

Editor de Textos: um thread para interagir com o usurio, outro para reformatar o documento e outro para salvar periodicamente o contedo da RAM no disco.

09/04/2012

Sistemas Operacionais - Marcelo Hely

18

Threads

Considere um navegador WEB: Muitas pginas WEB contm muitas figuras que devem ser mostradas assim que a pgina carregada; Para cada figura, o navegador deve estabelecer uma conexo separada com o servidor da pgina e requisitar a figura; Com mltiplas threads, muitas imagens podem ser requisitadas ao mesmo tempo melhorando o desempenho;

09/04/2012

Sistemas Operacionais - Marcelo Hely

19

Threads

Aplicaes do Multithreading

Servidor WEB: thread despachante obtm requisies de trabalho que chegam pela rede e as entrega a um thread operrio que providencia a solicitao.

09/04/2012

Sistemas Operacionais - Marcelo Hely

20

Threads

Cdigo para o exemplo anterior


(a) Thread Despachante (b) Thread Operrio

09/04/2012

Sistemas Operacionais - Marcelo Hely

21

Threads

Threads de Usurio A criao e o escalonamento dos threads de usurio so executados no espao do usurio, sem a interveno do kernel.

O kernel executa somente o gerenciamento normal de processos monothread.

So implementados por uma biblioteca de threads.

Um pacote de thread de usurio pode ser implementado em um SO que no suporte thread.

09/04/2012

Sistemas Operacionais - Marcelo Hely

22

Threads

09/04/2012

Sistemas Operacionais - Marcelo Hely

23

Threads

So,

normalmente,

rpidos

de

criar

gerenciar. No entanto, perdem prioridade para um thread de kernel.

Exemplo de biblioteca de threads:

Threads no Solaris, Pthreads no POSIX.

09/04/2012

Sistemas Operacionais - Marcelo Hely

24

Threads

Threads de Kernel (de ncleo) So suportados diretamente pelo SO.

A criao, gerenciamento e escalonamento so executados pelo kernel no espao do kernel.

So, geralmente, mais lentos para criar e gerenciar. Se um thread de kernel executar uma chamada ao sistema bloqueante, ainda assim, o kernel poder escalonar outro thread na aplicao para execuo. Exemplo de SOs que suportam threads de kernel: Windows NT, Solaris e Digital UNIX.

09/04/2012

Sistemas Operacionais - Marcelo Hely

25

Threads

09/04/2012

Sistemas Operacionais - Marcelo Hely

26

Anda mungkin juga menyukai