A Abstração de Programação Concorrente

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999:
gerador de código intermediário
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
CPU: Controle e processamento
Programas e Microprogramas
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Arquitetura e organização de computadores.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Engenharia de Software
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Programação Concorrente
Arquitetura e Organização de Computadores 2
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
INE 5645 – Programação Paralela e Distribuída
Análise de Perigos MO828 – Eng. Software II Prof
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Arquiteturas Diferentes
Chapter 4: Threads.
Introdução a Informática
CISC e RISC.
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Arquitetura de Computadores
Problemas NP-completo
Sincronização e Comunicação entre Processos
Prof. Msc. Raul Paradeda Aula 2 Introdução
Algoritmos Prof. Kelly E. Medeiros.
Paradigmas de programação
Unidade 3 Controle de Concorrência
INE 5645 – Programação Paralela e Distribuída
Unidade Central de Processamento
Unidade Central de Processamento
Circuitos Seqüenciais Contadores
Introdução a Programação COM 100 Aula 07 Procedimentos.
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Arquitetura de computadores
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Arquitetura de computadores
Avaliação da Linguagem de Programação
Alexandre Mota/Augusto Sampaio {acm,
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Sistemas rr-09-r.01 UC: Organização e Arquitetura de Computadores Docente: Prof. MSc. Marcelo Siedler.
Geração de Código aula-12-geração-de-código.pdf.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Técnicas de Programação - TPR
Organização e Arquitetura de Computadores
Experimentação Algorítmica
Arquiteturas RISC x CISC
Back-End Compilação aula-11-back-end.pdf.
A Linguagem de Máquina – Desvios e Laços
MC ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Algoritmos e Programação I
Fundamentos de linguagens de programação
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Algoritmos e Programação MC102
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Linguagens de Programação
Arquitetura de Computadores
Algoritmos e Programação I
Estilos Arquiteturais
Introdução à lógica de programação
Influencias sobre o Projeto da Linguagem
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

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

A Abstração de Programação Concorrente Introdução Intercalamento Instruções Atômicas

Introdução Descrições científicas são baseadas em abstrações cria-se o modelo ideal e se estuda o sistema complexo em um nível mais alto. Na computação, linguagens de programação são abstrações, projetadas para ignorar detalhes de instruções de máquinas específicas e arquiteturas.

Intercalamento Abstração de programação concorrente é o estudo de seqüências de execução intercaladas das instruções atômicas de processos seqüenciais Problema: explosão combinatorial de possibilidades de estados dos programas Interações entre processos: contenção comunicação

Intercalamento Tempo de execução absoluto não é relevante ( e sim a seqüência de execução): as seqüências de execução são suficientes para tratar as propriedades que não as de requisito de tempo absoluto sistemas estão sempre sendo atualizados com componentes mais rápidos e mesmo com algoritmos otimizados exceto as questões de tempo de resposta, é possível tratar com tempo no modelo seqüencial

Intercalamento em vários processadores Esta abstração deve ser estendida para o caso de que todas as seqüências de execução de todos os processos sejam intercaladas em uma única seqüência. I1 Caso 2 I2 I1 Caso 1 I2 Tempo

Intercalamento Requer-se de um programa concorrente que ele seja correto sob TODOS os intercalamentos Debug convencional não funciona... Provar que o programa está errado é fácil... ... difícil é mostrar que ele está correto!

Instruções Atômicas Na aplicação da abstração de programação concorrente é extremamente importante definir exatamente quais instruções estão sendo intercaladas. Ex.: task body P2 is begin N := N + 1; end P2; N: Integer := 0; task body P1 is begin N := N + 1; end P1;

Instruções Atômicas Uso de registradores Compilador com instrução INC Proc Instrução Valor de N Início 0 P1 Inc N 1 P2 Inc N 2 Uso de registradores Proc Instrução N Reg1 Reg2 Início 0 - - P1 Load Reg, N 0 0 - P2 Load Reg, N 0 0 0 P1 Add Reg, #1 0 1 0 P2 Add Reg, #1 0 1 1 P1 Store Reg, N 1 1 1 P2 Store Reg, N 1 1 1

Instruções Atômicas Conclusão: a corretude do programa concorrente depende das instruções atômicas usadas pelo computador.