Programação com correntes
Prof. Dr. Aleardo Manacero Jr.
2º Semestre de 2013
Indice
Datas das Provas 4
Bibliografia 4
Programa 4
Introdução 5
Revisão de Lógica 6
Leis de Lógica 6
Predicados 7
Quantificadores 7
Notação de Programas 8
Declarações 8
Comandos sequenciais 8
Atribuições: 8
Decisão: 8
Repetição: 9
Exemplos do comando for 9
Comandos Concorrentes 9
Processos 10
Comando await 11
Semântica de Programas 12
Estado de um programa 12
Processo 12
Comando 12
Execução de um programa concorrente 12
História de um Programa 12
Propriedade 12
Propriedade de segurança (safety) 12
Propriedade de vivacidade (liveness) 12
Correção parcial 12
Terminação 13
Correção total 13
Conjunto de leitura 13
Conjunto de escrita 13
Independência de processos paralelos 13
Características de máquinas: 13
Propriedades de independência 13
Referência crítica 13
Atomicidade 13
Propriedade de No-Máximo-Um 14
Lógica de Hoare (PL) 14
Axiomas em PL 15
Skip (Não faça nada) 15
Atribuição 15
Regras de inferência em PL 15
Composição 15
Decisão (IF) 15
Decisão (IF/ELSE) 15
Repetição (While) 15
Regra da Consequência; 16
Equivalência e simulação de processos 16
Equivalência parcial: 16
Simulação 16
Barreira de Sincronismo 21
Solução trivial 22
Flags e Coordinators 22
Barreira em Arvore 23
Barreiras Simétricas 24
Borboleta 24
Datas das Provas
Prova 1 16/10/2013
Prova 2 20/12/2013
Recuperação 08/01/2014
Bibliografia
G. Andrews Concurrent Programming (1991) [1]
G. Andrews Poundations of Parallel (1999) [2]
Site www.dcce.ibilce.unesp.br/~aleardo/cursos/pconc
Programa
Verificação de Programas Corretos (No primeiro livro o material é melhor)
Técnicas de Concorrência
Memória compartilhada
Memória distribuída
Introdução
Nosso objetivo é estudar as ferramentas que nos permitam saber se um programa está matematicamente correto e também que nos permitam construir programas corretos principalmente focando nos