1 / 13

Programação Concorrente

Programação Concorrente. Eduardo Nicola F. Zagari Principles of Concurrent and Distributed Programming - Ben-Ari. O que é Programação Concorrente. Introdução E/S e Computação sobrepostas Multiprogramação Multitarefa. Introdução. Programa “ordinário”: instruções executadas seqüencialmente

elon
Download Presentation

Programação Concorrente

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação Concorrente Eduardo Nicola F. Zagari Principles of Concurrent and Distributed Programming - Ben-Ari

  2. O que é Programação Concorrente • Introdução • E/S e Computação sobrepostas • Multiprogramação • Multitarefa

  3. Introdução • Programa “ordinário”: instruções executadas seqüencialmente • Programa Concorrente: conjunto de programas seqüenciais (processos) executados em um pseudo-parelelismo • Pseudo-parelelismo: paralelismo abstrato • não necessariamente vários processadores

  4. E/S e Computação Sobrepostas • Digitação de 60 palavras por minuto • Impressão de 200 caracteres por segundo • Processamento de 1 caracter a cada 10 s. • Uso da abstração da programação concorrente

  5. E/S e Computação Sobrepostas E/S Aguarda E/S Principal Início E/S Fim E/S Tempo

  6. Multiprogramação • Generalização: E/S de um processo é feita sobreposta com a computação de outro. • Programa típico: Loop Read; Process; Write; End-loop. • Multiprogramação: execução concorrente de vários processos independentes em um processador

  7. Multiprogramação • Generalização adicional: Compartilhamento de tempo (time-sharing) • compartilhamento do processador entre computações. • Escalonador • Sistemas de tempo compartilhado: bons tempos de resposta, mesmo em sistemas com grandes processos

  8. Multiprogramação • Multiprogramação em computadores pessoais • processos concorrentes usando diferentes recursos • Enfim: abstração de programação concorrente é aplicável à multiprogramação

  9. Multitarefa • Generalização do conceito de multiprogramação: • solução de um problema pela decomposição em vários processos concorrentes • Problema: o tamanho do grão • tarefas menores, maior potencial de concorrência, mas maior o overhead

  10. Multitarefa • Concorrência de grão pequeno E := (A*B) + (C*D) ou for I in 1..100 loop A(I) := B(I) + C(I)*D(I); end loop; • Depende muito da arquitetura

  11. Multitarefa • Concorrência em programas independentes • Ex.: pipes no Unix sort | remove_duplicates | format | print

  12. Multitarefa • Concorrência de grão grande • usada em sistemas de tempo-real embarcados • usada para melhor desempenho em sistemas multiprocessados e multicomputadores. • Ex.: processador de texto • Ler caracteres e colecionar palavras • Colecionar palavras para preencher uma linha • Hifenizar, se necessário • Introduzir espaços para justificar a linha com a margem direita • Colecionar linhas o bastante para encher uma página • Imprimir a página

  13. Multitarefa • Algoritmo Mergesort procedure Merge_Sort is A: array(1..N) of Integer; procedure Sort(Low, High: Integer); procedure Merge; begin Sort( 1, N/2); Sort(N/2 + 1, N); Merge; end;

More Related