Mapa mental
Programação Concorrente
Conteúdo do mapa
Programação Concorrente
Vantagem
- aproveita o tempo do processado
- Aplicações paralelas podem te execução benéfica
- Execução em multiiprocessadores será mais rápido
- Melhora a utilização de periféricos
Desvantagens
- Identificar código para rescrever aplicação
- Nem toda aplicação pode ser concorrente
- Mais complexo
Threads
- compartilham os recursos de um processos
- código e dados
- tem seu próprio contexto de execução e sua pilha
- A gerência é mais leve
- Criação destruição sincronização
- Troca de contexto
- Mias rápida
- informações da MMU não precisa ser modificada
- Mesma tabela de páginas
- informações da MMU não precisa ser modificada
- Mias rápida
- Implementação
- Nível usuário
- Biblioteca
- N:1 (many-to-one)
- SO divide tempo entre processos e as bibliotecas em threads
- Chaveamento rápido
- menor custo para criação e destruição
- E/S bloqueia a threads
- threads do mesmo processo não pode exe. paralemente
- Nível sistema
- Implementado diretamente pelo SO
- 1:1 (One-to-one)
- Executadas por chamadas de sistema
- Misto
- M:N (many-to-many)
- Através de uma biblioteca as threads do programa para serem exe. em uma ou mais threads
- Nível usuário
- compartilham os recursos de um processos
Especificações
- Parbegin e parend
- Especifica paralelismo
- Não resolve todos casos
- implementado como nova estrutura de controle e na forma de bibliotecas
- Especifica paralelismo
- Podem ser implementados em forma de bibliotecas
- Fork()
- Cria um segundo fluxo
- Exit()
- Encerra
- Wait()
- fluxo de controle espera pelo final de outro
- Fork()
- Parbegin e parend
Problema da seção critica
- Acesso silmutanio
- Quando um processo esta em sua seção critica os outros não podem entrar em sua seção
- Solução
- estará correta quando
- Progresso
- Um processo não pode ser impedido de entrar na seção critica caso nenhum outro processo esteja nela
- espera limitada
- não pode ter seu acesso a seção critica postergado
- exclusão mutua
- Progresso
- Desabilitar as interrupções antes da seção critica e habilita-las posteriormente
- Desabilitar interrupções
- Condição corrida (race condition)
- Depende da ordem em que os acessos são feitos
- Protocolo de acesso
- busy-waiting (espera ocupada)
- Aguarda num laço vazio
- estará correta quando
- Solução erradas
- Deadlock
- condições necessárias
- Exclusão mútua, segura e espera , recursos não preeptados, fila de espera circular
- condições necessárias
- Se houver prioridade aumenta a chance de dealock
- Deadlock
Spin-Lock
- Usado instruções de maquinas
- Test-and-set, Swap, Compare on store
- Seção critica protegida por int lock=0
- Vantagens
- Simplicidade
- Não é necessario desabilitar interrupções
- intruções disponiveis em processos atuais
- Desvantagens
- Espera ocupada
- postergação idefinida
- Usado em pequenas seções criticas, seção critica opupada baixa
- Usado instruções de maquinas
Semáforo
- Composto por um registro de valor inteiro e uma fila de processo
- Semáforo inicia em 1
- 0 ocupado (lock)
- 1 livre (unlock)
- Usado para relações de precedência entre processos
- Pode-se ordenado por critério de prioridade
- multiprocessadores não basta desabilatar as interrupções tem que usar spin-loks
Menssagens
- Sem memória compartilhada
- Send e Recive
- endereçamento
- Direto
- Especifica o numero do processo
- Indireto
- Caixa postais
- processo não precisa saber o endereço dos demais procesoss
- Direto
- Mensagem podem ser armazenadas em buffer
- Assim não bloqueia a comunicação
- Rendezvous
- porcesso que executou send é bloqueado até que o outro processo execute receive
- RPC - remote procedure call
- empacota parâmetros de entrada em uma mensagem
Produto-consumidor
- buffer
- dados armazenados temporariamente
- circular
- Cheio
- produtor espera
- Vazio
- consumidor espera
- Problemas podem ser resolvidos com mensagens
- buffer
Informações
- Descrição
- Computação Mapa Mental sobre Programação Concorrente, criado por GABRIEL GHILARDI em 18-11-2018.
- Criado por
- GABRIEL GHILARDI · nov 2018
- Atualizado
- 18 nov 2018
- Visualizações
- 1
- Histórico
-
- Criado por GABRIEL GHILARDI · 9 ago 2018
- Copiado por GABRIEL GHILARDI · 18 nov 2018
- Avaliação