Programação Concorrente



Documentos relacionados
Arquitetura de Computadores I

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber

Ferramentas para Programação em Processadores Multi-Core

Introdução a Threads Java

Programação Concorrente Introdução

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

2 Formalidades referentes ao trabalho

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Sistemas Operacionais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

PROVA DE CONHECIMENTOS ESPECÍFICOS PROGRAMADOR DE COMPUTADOR. Analise as seguintes afirmativas sobre os modelos de processos de software:

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Introdução ao Processamento Paralelo

Sistemas Operacionais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Arquitetura de Computadores. Ivan Saraiva Silva

Sistemas Operacionais Processos e Threads

Arquitetura dos Sistemas de Informação Distribuídos

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

28/9/2010. Unidade de Controle Funcionamento e Implementação

SISTEMAS DISTRIBUÍDOS

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Introdução aos Computadores

Sistemas Operacionais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados

Microarquiteturas Avançadas

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Sistemas distribuídos:comunicação

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

MC102 Algoritmos e Programação de Computadores

ARQUITETURA DE COMPUTADORES

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

EXECUTIVE EDUCAÇÃO EXECUTIVA NOSSA ABORDAGEM.

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Tecnologia e Sistemas de Informações Tipos de SI

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Introdução à Arquitetura de Computadores IFES Campus Serra

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

SISTEMAS OPERACIONAIS. Prof. André Dutton

Sistemas Operacionais

Revisão Ultima aula [1/2]

Informática I. Aula 6. Aula 6-12/09/2007 1

Sistemas Operacionais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Visão Geral de Pipelining

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS

Visão Geral de Sistemas Operacionais

Figura 01 Kernel de um Sistema Operacional

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Arquitetura de Computadores - Revisão -

Pesquisador em Saúde Pública Prova Discursiva INSTRUÇÕES

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Programa de Educação Ambiental e de Comunicação Social. Projeto de Implantação de Depósito de Celulose. Klabin S.A

Estruturas do Sistema de Computação

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Arquiteturas RISC. (Reduced Instructions Set Computers)

Sistemas Operacionais Sincronização e Comunicação entre Processos

O modelo do computador

Sistemas Distribuídos

HISTÓRICO DAS REVISÕES N.ºREVISÃO DATA IDENTIFICAÇÃO DO DOCUMENTO 00 16/04/2007 Emissão inicial

Tipos de sistemas operacionais

Processos Prof. João Paulo de Brito Gonçalves

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Sistemas Operacionais

Organização e Arquitetura de Computadores I

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

Sistema Operacional Ex: Complexo Computador multiusuário com vários terminais Tem que administrar todos os pedidos de usuários e assegurar que eles

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Transcrição:

Programação Concorrente Conceito de Programa e Execução Graduação em Ciência da Computação Universidade do Vale do Rio dos Sinos Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Programa Compreensão do conceito de O que é um programa? O que é concorrência? O que é programação concorrente? Concorrência e paralelismo representam a mesma coisa? Programar concorrente é diferente de programar seqüencial? O que é uma tarefa? O que é sincronização? Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é um programa? Um conjunto de instruções ao indicando uma a ser executada I1: MOV DX, 0 I2: MOV AX, [313] I3: DEC AX I4: ADD DX, AX I5: CMP AX, 0 I6: JNE I3 I7: MOV AX, [313] I8: CALL RotinaImpressão Escrita em memória Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é um programa? Um conjunto de instruções ao indicando uma a ser executada I1: MOV DX, 0 I2: MOV AX, [313] I3: DEC AX I4: ADD DX, AX I5: CMP AX, 0 I6: JNE I3 I7: MOV AX, [313] I8: CALL RotinaImpressão Controle através de sincronizações entre instruções Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é concorrência? Tradicionalmente: Disputa por recursos. E também: Concorrer: juntar se para uma ação ou fim comum; contribuir, cooperar. Outra abordagem: Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é programação concorrente? Técnica de programação que explora a de atividades definidas por uma aplicação. de dados para evolução da execução Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Concorrência e paralelismo representam a mesma coisa? Atividades paralelas são atividades concorrentes, contudo são tratadas sobre conjuntos de recursos independentes. Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Programar concorrente é diferente de programar seqüencial? NÃO O problema da programação continua sendo: dado um problema, definir as instruções a serem executadas pelo computador SIM Novos itens devem ser tratados, como identificar as atividades concorrentes, o compartilhamento dos recursos (dados) e a estrutura da colaboração entre tarefas Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é tarefa? Tarefa Unidade de trabalho Conjunto de instruções que descrevem uma tarefa específica no contexto de um programa. Uma instrução (ou uma função,...) na programação seqüêncial. Uma abstração na programação concorrente. Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

O que é sincronização? Sincronização Troca de informações entre duas tarefas Mecanismo que permite controlar o compartilhamento de dados entre tarefas. Implícita na programação seqüêncial. Explícita na programação concorrente. Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Mecanismos de Sincronização Relações de Dependência Compartilhamento de buffer (produtor/cosumidor) Caixa de banco Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Mecanismos de Sincronização Relações de Dependência Programação seqüêncial Programação dinâmica Métodos interativos Cálculos com matrizes... Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Mecanismos de Sincronização Relações de Dependência Predição de desempenho Não é possível prever o momento em que uma tarefa será executada É possível conhecer o instante em que uma tarefa será executada a partir do conhecimento de suas dependências Resultado final Dependente de decisões tomadas fora do programa, refletindo no escalonamento das tarefas Dependente da ordem estabelecida no programa para execução das tarefas Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Exemplo 1 Baskara( IN a, b, c; OUT x1, x2 ) {... x1 = ( b + sqrt(b 2 4*a*c)) / 2*a; x2 = ( b sqrt(b 2 4*a*c)) / 2*a;... } Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Exemplo 2 Fibonacci( IN n, OUT res ) { if( n <= 2 ) res = 1; else { Fibonacci( n 1, r1 ); Fibonacci( n 2, r2 ); Sync; res = r1 + r2; } Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Exemplo 2 Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS

Tarefa e Sincronização Generalizando Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS