A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Paralela. Paralelismo por Software É um programa com capacidade de dividir tarefas em pequenas partes e executá-las em paralelo. – Threads.

Apresentações semelhantes


Apresentação em tema: "Programação Paralela. Paralelismo por Software É um programa com capacidade de dividir tarefas em pequenas partes e executá-las em paralelo. – Threads."— Transcrição da apresentação:

1 Programação Paralela

2 Paralelismo por Software É um programa com capacidade de dividir tarefas em pequenas partes e executá-las em paralelo. – Threads – Processos Filhos (folk)

3 Threads Com os processadores de alto desempenho, veio a oportunidade de poder executar vários fluxos de execução de um mesmo processo. Thread é um fluxo de execução dentro de um processo. Um Processo consistem em um ambiente de execução, contendo uma ou mais threads.

4 Threads Múltiplas threads executam concorrentemente em um processo, mesma idéia a múltiplos processos executando concorrentemente em um único processador. Threads pertencentes a um mesmo processo, compartilham os mesmos recursos e memória do processo.

5 Suporte a Threads O sistema operacional oferece suporte as threads em nível de kernel, KLT (Kernel-Level Thread). Threads podem ser implementadas através de bibliotecas especificas em determinadas linguagens ULT (User-Level Thread).

6 KLT (Kernel-Level Thread)

7 ULT (User-Level Thread).

8 Processos no Windows ALT + SHIFT + ESC

9 Threads em C Linux, Solaris (Unix) – Pthread.h Windows – Process.h – Windows.h

10 Windows.h MessageBox – Gera uma caixa de mensagem no programa. CreateThread – Utilizada para criar uma thread. SuspendThread – Pausa a execução de uma thread. ResumeThread – Reinicia a execução de uma thread pausada. TerminateThread – Termina uma thread. WaitForSingleObject – Espera a execução de um objeto. CloseHandle – Finaliza o identificador para a thread

11 TIPOS DOS DADOS DWORD - Ponteiro para um objeto. WINAPI - Ponteiro para um argumento da api windows. HANDLE - Identificador para um objeto. LPVOID - Equivalente a void*

12 MessageBox(HWND,LPCTSTR,LPCTSTR,UINT) HWND – Proprietário da janela. LPCTSTR – Mensagem na janela. LPCTSTR – Titulo da janela. UINT – Comportamento da janela. MessageBox(0,“Conteúdo",“Título",0); Int msg1 = MessageBox(NULL,“Opção ?",”Titulo",MB_YESNO + MB_ICONQUESTION);

13 CreateThread(ThreadAtt,StackSize,Addr_Funcao,argumento,flags,ThreadId); ThreadAtt – Ponteiro para estruturas de Threads, 0 para atributos padrões. StackSize – Tamanho de inicialização da pilha, 0 tamanho padrão. Addr_Funcao – Função de execução da thread. Argumento – Argumento opcional para a função. Flags – Comportamento da Thread após ser criada, 0 a thread é executada. ThreadId – Ponteiro do tipo DWORD referente a identificação da Thread. Retorna um HANDLE para a thread.

14 SuspendThread(HANDLE ) HANDLE – Thread que deverá ser suspensa. Retorna 0 se a thread foi interrompida e -1 caso não foi possível interromper a thread.

15 ResumeThread(HANDLE) HANDLE – Thread que deverá ser reiniciada. Retorna 0 se a thread foi reiniciada e -1 caso não foi possível reiniciar a thread.

16 TerminateThread(HANDLE,DWORD) HANDLE – Thread que devera ser finalizada. DWORD – Código de saída, 0 sucesso e 1 erro. Retorna 0 para thread finalizada e qualquer valor diferente de 0 se a thread não for finalizada.

17 WaitForSingleObject(HANDLE,DWORD) HANDLE – Thread que devera ser monitorado sua execução. DWORD – Tempo em milissegundos que o programa devera aguardar. – INFINITE, tempo indeterminado.

18 CloseHandle(HANDLE ) HANDLE – Handle que devera ser finalizada.


Carregar ppt "Programação Paralela. Paralelismo por Software É um programa com capacidade de dividir tarefas em pequenas partes e executá-las em paralelo. – Threads."

Apresentações semelhantes


Anúncios Google