Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Programação Concorrente, Notas de estudo de Sistemas Operacionais

Notas de aula - Programação Concorrente

Tipologia: Notas de estudo

2019

Compartilhado em 09/10/2019

MatheusToledo
MatheusToledo 🇧🇷

1 documento

1 / 54

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação Concorrente
Capítulo 3
Prof. Saulo Cunha Campos
FAGOC
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Pré-visualização parcial do texto

Baixe Programação Concorrente e outras Notas de estudo em PDF para Sistemas Operacionais, somente na Docsity!

Programação Concorrente

Capítulo 3

Prof. Saulo Cunha Campos

FAGOC

Programação concorrente

• A programação concorrente também é

conhecida como programação

concomitante ou programação paralela

(nomes mais corretos).

Programação concorrente

• Programação concorrente: Instruções são

executadas por diversos processos

simultâneos que cooperam entre si.

• Um processo é dito cooperante quando é

capaz de afetar, ou ser afetado (mudado),

pela execução de outro processo.

• Os processos se relacionam através de

trocas de mensagens e áreas de memória

(variáveis) compartilhadas – Sincronização.

Programação concorrente

• Um programa seqüencial pode ser

instanciado 10 vezes, ao mesmo tempo,

porém serão criados 10 processos

independentes entre si.

• Um programa concorrente pode ser

instanciado 1 única vez, e gerar 10

processos, ao mesmo tempo, que

cooperam (dependem) entre si.

Programação concorrente

• A programação concorrente é mais eficiente,

porém é importante salientar diferenças entre

“execução simultânea” e estar em “estado de

execução simultânea”.

  • Paralelismo real : Só ocorre em maquinas

multiprocessadas.

  • Paralelismo aparente : Ocorre em maquinas

monoprocessadas.

Definição do paralelismo

• Definição da quantidade de processos;

• A tarefa que cada processo deve executar;

• Dependência entre as tarefas;

Definição do paralelismo

• Várias linguagens de suportam programação

paralela possuem comandos para realizar

sincronização de um trecho de código. Estes

comandos são conhecidos com parbegin /

parend.

• Parbegin indica que a execução sequencial

deve ser dividida em várias sequencias de

execução em paralelo.

• Parend indica que certas sequencias de

execução paralelas devem se juntar para a

execução sequencial continuar;

Definição do paralelismo

Exemplo: Definição do paralelismo

  • Em um sistema de processamento paralelo, a mesma

expressão poderia ser executada da seguinte maneira:

  1. parbegin temp 1 := - b; temp 2 := b ** 2 ; temp 3 := 4 * a; temp 4 := 2 * a;
  2. parend
  3. temp 5 := temp 3 * c;
  4. temp 5 := temp 2 - temp 5 ;
  5. temp 5 := temp 5 **. 5 ;
  6. temp 5 := temp 1 + temp 5 ;
  7. x := temp 5 / temp 4

Programação concorrente

  • Considere um programa seqüencial que faz a leitura de um

arquivo no disco e envia seu conteúdo para impressora.

Programação concorrente

Seção crítica

• Para que processos possam trocar

informações, uma das formas mais

comuns, é compartilhando áreas de

memórias.

• O compartilhamento de memória pode ser

total ou parcial.

• O acesso a uma estrutura compartilhada

por processos é chamada de seção

crítica.

Seção Crítica

Exemplo do servidor de impressão

Processo A (Escritor) Processo B (Leitor) D C B A Adiciona um novo arquivo no fim da lista Ler o primeiro arquivo da fila e retira-o da lista Lista encadeada de arquivos Memória Compartilhada

Seção Crítica

Código do processo Escritor