Sistemas Distribuídos - Multithreading
Upcoming SlideShare
Loading in...5
×
 

Sistemas Distribuídos - Multithreading

on

  • 2,280 views

 

Statistics

Views

Total Views
2,280
Views on SlideShare
2,280
Embed Views
0

Actions

Likes
0
Downloads
83
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Parabéns ao Prof.Adriano.
    Gostei das figuras , elas me ajudaram a entender melhor as estruturas de dados ,além de que , todo conteúdo está muito rico.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sistemas Distribuídos - Multithreading Sistemas Distribuídos - Multithreading Presentation Transcript

    • MultithreadingProf. Adriano Teixeira de Souza
    •  Thread (lightweight process) é uma unidade básica de utilização da CPU, compreendendo um id, um contador de programa, registradores e pilha Compartilha seção de código, seção de dados e outros recursos do SO pertencentes ao um mesmo processo Prof. Adriano Teixeira de Souza
    •  Capacidade de Resposta Compartilhamento de Recursos Economia na criação de processos Uso de Arquiteturas Multiprocessador Prof. Adriano Teixeira de Souza
    •  Threads de Usuário ◦ Implementadas por bibliotecas Threads de Kernel ◦ Suportadas diretamente pelo SO Prof. Adriano Teixeira de Souza
    •  A maioria das linguagens de programação não permite programação de atividades concorrentes Normalmente as linguagens disponibilizam chamadas ao SO ◦ A biblioteca Win32 fornece um conjunto de APIs para efetuar multithreading em aplicações nativas Windows ◦ Pthreads fornece uma biblioteca para threads em sistemas POSIX, como linux ◦ C-threads no Mach ◦ Threads no Solaris Prof. Adriano Teixeira de Souza
    •  Historicamente a linguagem ADA (DoD) disponibilizou primitivas de concorrência porém a linguagem não popularizou-se no meio acadêmico e comercial Java notavelmente é a única linguagem de uso geral e popular a disponibilizar as primitivas de concorrência para o programador de aplicativos (threads) ◦ Linguagens como C, C++ e Delphi fazem chamadas a primitivas de multithreading do SO Todo programa java possui pelo menos um thread de controle ◦ main executa num thread na JVM Prof. Adriano Teixeira de Souza
    •  Explicitamente pode-se criar uma classe derivada da classe Thread, do package java.lang É necessário redefinir o método run(), que realmente realiza o trabalho O método start() cria efetivamente a thread ◦ Aloca memória e inicializa um novo thread na JVM ◦ Chama run() para tornar o thread passível de execução Construtores: ◦ public Thread (String threadName) ◦ public Thread() Prof. Adriano Teixeira de Souza
    •  Alternativamente pode-se criar uma classe que implementa a interface Runnable public interface Runnable { public abstract void run(); } Toda classe que implementa Runnable deve definir o método run() class Teste implements Runnable { public void run() { } } Prof. Adriano Teixeira de Souza
    •  start(): inicia a execução da thread (método run) suspend(): suspende a execução da thread que está executando sleep(): faz a thread que está executando dormir por um tempo determinado yield(): faz a thread que está executando dormir por um tempo indeterminado resume(): resume a execução de uma thread suspensa stop(): termina a execução de uma thread; a thread não pode ser mais executada. Prof. Adriano Teixeira de Souza
    •  join(): método que espera o término da THREAD para qual foi enviada a mensagem para ser liberada. interrupt(): método que interrompe a execução de uma THREAD. interrupted(): método que testa se uma THREAD está ou não interrompida. Prof. Adriano Teixeira de Souza
    • nascimento start pronto Notify Notifyall Conclusão E/S yeld Despachar (alocar Processador)Tempo expira wait Inicia E/S executando esperando bloqueado completo sleep adormecido morto morto Prof. Adriano Teixeira de Souza
    •  Além do programa multithread, outros threads executam assincronamente para a JVM ◦ Gerência de memória: coleta de lixo ◦ Eventos de temporização ◦ Controles gráficos Prof. Adriano Teixeira de Souza
    •  Tipicamente a JVM é implementada sobre um SO host, ocultando detalhes de implementação Não indica como threads serão mapeados ◦ Windows NT modelo 1-1 ◦ Solaris 2 modelo N-1 e M-n posteriormente Prof. Adriano Teixeira de Souza
    • Prof. Adriano Teixeira de Souza
    • Prof. Adriano Teixeira de Souza