Fluxos de Controle
09/04/2012
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
O processo uma unidade de gerenciamento de recursos, pois so usados para agrupar recursos.
09/04/2012
Threads
09/04/2012
Threads
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):
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
Threads
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
Threads
09/04/2012
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
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
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
11
Threads
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
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
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.
09/04/2012
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
15
Threads
O uso de threads no resulta em bom desempenho quando todos so orientados CPU (CPU-BOUND).
09/04/2012
16
Threads
Parte
de
programa enquanto
interativo outra
pode
continuar encontra-se
executando
parte
09/04/2012
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
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
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
20
Threads
09/04/2012
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.
09/04/2012
22
Threads
09/04/2012
23
Threads
So,
normalmente,
rpidos
de
criar
09/04/2012
24
Threads
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
25
Threads
09/04/2012
26