Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programação Concorrente (Condição de corrida
(race condition) (Não…
Programação Concorrente
Computação Concorrente
"Atividade de construir programas de computador que incluem linhas de controle distintas, as quais podem executar simultaneamente e cooperam para a execução de uma tarefa única"
Programação Concorrente
Motivação
-
Evolução do software
O sistema operacional gerencia a atribuição da execução
dos programas sobre os diferentes processadores,
sejam eles físicos ou lógicos
Para explorar o potencial das
novas arquiteturas de
computadores, é preciso saber
desenvolver software que melhor
aproveite os recursos
de hardware
-
"É aquela que divide uma tarefa em partes que são tratadas por diferentes fluxos de execução que cooperam entre si e podem ser executados de forma concorrente ou simultânea, dependendo da arquitetura do hardware"
-
-
-
-
-
-
Deadlock
"A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause"
Ocorre quando um ou mais processos ficam bloqueados
indefinidamente à espera da liberação de um recurso
compartilhado que outro processo detém em exclusão mútua
-
Enquanto o recurso não for liberado pelo processo que o detém, nenhum dos demais processos pode executar
-
-
Como tratar deadlocks?
-
-
Não tratando a situação de deadlock pelo fato de
ser rara, apesar de potencialmente possível
-
Livelock
Causas
Um processo em execução fica impedido de prosseguir porque realiza uma operação que continuamente falha
-
Distingue-se de deadlocks em que os processos continuam em execução, não bloqueados