Juliano Benvenuto Piovezan. Desenvolvimento de uma Linguagem para Ensino de Programação Paralela

Tamanho: px
Começar a partir da página:

Download "Juliano Benvenuto Piovezan. Desenvolvimento de uma Linguagem para Ensino de Programação Paralela"

Transcrição

1 Juliano Benvenuto Piovezan Desenvolvimento de uma Linguagem para Ensino de Programação Paralela Florianópolis 2008

2 Juliano Benvenuto Piovezan Desenvolvimento de uma Linguagem para Ensino de Programação Paralela Trabalho de Conclusão de Curso apresentado como requisito parcial para obtenção do grau de bacharel em Ciências da Computação. Orientador: José Mazzuco Júnior Co-orientador: Ricardo Azambuja Silveira Florianópolis 2008

3 Sumário 1 Introdução p Apresentação p Objetivos p Objetivo Geral p Objetivos Específicos p. 5 2 Metodologia p Sumário Provisório p Introdução p Programação Concorrente p Descrição da Linguagem p Máquina Alvo p Construção do Compilador p Conclusão p Anexos p Identificação das Fontes p. 7 3 Cronograma p Análise Léxica e Sintática p Análise Semântica p Gerador de Código p Testes p. 10

4 3.5 Redação do Texto Científico p Conclusão p. 11 Referências Bibliográficas p. 12

5 4 1 Introdução 1.1 Apresentação No segundo trimestre de 2005 apareciam no mercado de desktops os primeiros processadores com múltiplos núcleos 1. Mais precisamente, o primeiro processador a aparecer no mercado para computadores pessoais com tal característica fora o Pentium D, fabricado pela Intel Corporation. Seguindo a tendência, a AMD (Advanced Micro Devices) lançaria, pouco tempo depois, sua versão com dois núcleos para o Athlon 64, o Athlon 64 X2. Desde então, novas tecnologias vêm sendo desenvolvidos, como a microarquitetura Intel Core, que apresentou avanços significativos, principalmente quanto ao número de núcleos e um melhor gerenciamento dos recursos, como a divisão da memória cache entre os núcleos. Com a expectativa da produção de chips com a tecnologia de 32 nm, podendo-se chegar a 22 nm até 2011, espera-se que o número de núcleos nos processadores cresça exponencialmente durante os próximos anos. De acordo com estudos do Forrester Research, espera-se processadores com 64 núcleos para servidores até 2009, e para computadores pessoais até 2012 [1]. A tecnologia com múltiplos núcleos surgiu como solução para o problema do aquecimento excessivo, enfrentado em decorrência da tentativa do aumento da freqüência. Estudos demonstraram que a freqüência máxima segura, para os processadores produzidos com a tecnologia de 65 nm, era de 4 Ghz, a qual fora alcançada na metade da década atual. Iniciava, então, uma nova corrida entre as fabricantes, não mais pelo aumento da freqüência, mas sim por uma solução para tal problema. O ponto chave da fabricação de processadores com múltiplos núcleos está na paralelização de processos, ou seja, execução de várias tarefas no mesmo instante de tempo. Nos processadores com único núcleo, a paralelização é feita atráves de software, pelo Sistema Operacional, através de algoritmos de escalonamento. Enquanto que, para os processadores de múltiplos núcleos, a paralelização é definida a nível de hardware, permitindo uma diminuição na freqüência sem perda de eficiência. 1 multi-core

6 5 Embora o mercado dos processadores com múltiplos núcleos tenha se firmado, um sério problema assola a indústria: a baixa taxa de utilização dos núcleos. Uma das causas para este fenômeno está no fato de que muitos programadores não conhecem os princípios básicos de programação paralela, continuando a produzir os programas de forma seqüêncial, sem fazer uso dos benefícios do paralelismo. Com isso, grandes empresas, como Intel e Microsoft, têm investido massissamente para capacitação de pessoas e também na criação de linguagens de programação que se adequem ao mundo paralelo. Em meados deste ano, as duas gigantes doaram, conjuntamente, 20 milhões de dólares, a serem divididos pela Universidade da Califórnia e pela Universidade de Illinois em pesquisas, como a criação de linguagens de programação que auxiliem a programação paralela [2]. A mesma Intel desenvolveu uma biblioteca denominada Threading Building Blocks (TBB), a qual visa isolar o programador de certos problemas que envolvem a programação paralela, como as incompatibilidades entre Sistemas Operacionais. Verifica-se, então, que a programação paralela possuirá um importante papel no desenvolvimento de sistemas computadorizados. Baseado nisso, esse trabalho terá como foco o desenvolvimento de uma linguagem a ser utilizado no ensino de conceitos básicos da programação concorrente. Servirá como base um trabalho já realizado por Alan Burns e Geoff Davies, que desenvolveram a linguagem conhecida como Pascal-FC, um subconjunto da conhecida linguagem Pascal, com adição de estruturas de sincronismo, como semáforos, monitores e variáveis de condição 2 [3]. 1.2 Objetivos Objetivo Geral Este trabalho tem como objetivo o desenvolvimento de uma linguagem que permita o ensino de programação paralela Objetivos Específicos Criação de linguagem que permita a criação de execução concorrente; Inlcuir de estruturas de sincronização; Definir uma sintaxe simples, como as utilizadas por linguagens de script, exemplo Ruby; Tornar a linguagem multi plataforma. 2 condition variable

7 6 2 Metodologia 2.1 Sumário Provisório Pretende-se, no trabalho, dar uma visão geral sobre os benefícios da programação paralela, bem como os desafios a serem enfrentados, como sincronização de threads, condições de corrida, entre outros. Além de uma especificação formal das principais características da linguagem, uma visão geral sobre a Máquina Virtual JAVA, a qual será utilizada como máquina alvo para a linguagem. As próximas subseções demonstram a estruturação provisória do sumário Introdução Uma breve introdução sobre o assunto de programação concorrente, além de informações sobre o contexto no mercado atual. Como seções, serão apresentados os objetivos específicos e o objetivo geral Programação Concorrente Neste capítulo serão apresentados benefícios e dificuldades encontradas na utilização de paralelismo. Será discutido em profundidade o problema de condição de corrida, bem como as melhores soluções para tal. Além disso, problemas com deadlock será outro assunto abordado neste capítulo Descrição da Linguagem Toda a estrutura básica da linguagem será especificada neste capítulo. Incluindo declaração de variáveis, tipos básicos presentes e estruturas de controle. Será definido também o conceito de processo na linguagem, a ativação concorrente dos mesmos, entre outras especificações.

8 Máquina Alvo Neste capítulo será apresentado detalhes com relação à máquina virtual, para a qual o compilador irá gerar código. Será dada uma visão geral, como a estrutura básica da máquina, seu conjunto de instruções, além de outros detalhes Construção do Compilador A construção do compilador será detalhada nesta parte do trabalho. Aspectos como ferramentas utilizadas, tipo do analisador sintático utilizado, detalhes da implementação, entre outros Conclusão Neste capítulo serão apresentadas as conclusões referentes ao trabalho, bem como trabalhos futuros que poderão ser realizados com base neste trabalho Anexos Nos anexos será apresentado a especificação formal da linguagem, além de outros assuntos pertinentes. 2.2 Identificação das Fontes Após pesquisas com relação à bibliografia clássica nos assuntos relacionados a linguagens de programação, construção de compiladores e programação paralela, chegou-se a seguinte lista de referências: 1. HOARE, C. A. R. Monitors: An operating system structuring concept. Advanced Research Projects Agency, FINKEL, R. A. Advanced Programming Language Design. [S.l.]: Addison-Wesley, HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introduction to Automata Theory, Language, and Computation. 2nd edition. ed. [S.l.]: Addison Wesley, 2001.

9 8 4. AHO, A. V.; SETHI, R.; ULLMAN, J. D. Compilers: Principles, Techniques and Tools. [S.l.]: Addison-Wesley Publishing, TURBAK, F.; GIFFORD, D. Design Concepts in Programming Languages. [S.l.]: The MIT Press, FRIEDMAN, D. P.; WAND, M. Essentials of Programming Languages. 3rd. ed. [S.l.]: The Mit Press, HOARE, C. A. R. Hints on programming language design. Advanced Research Projects Agency, LINDHOLM, T.; YELLIN, F. The Java Virtual Machine Specification. [S.l.]: Sun Microsystems, Inc., TANENBAUM, A. S. Modern Operating Systems. 2nd edition. ed. [S.l.]: Person Education Inc., PETERSON, J.; SILBERSCHATZ, A. Operating Systems Concepts. 7th edition. ed. [S.l.]: John Wiley & Sons, Inc., DAVIES, G. Pascal-FC Language Reference Manual. 5th. ed. [S.l.], FLANAGAN, D.; MATSUMOTO, Y. The Ruby Programming Language. [S.l.]: O Reilly, 2008.

10 9 3 Cronograma A tabela 4.1 apresenta o cronograma que deverá ser seguido durante do desenvolvimento do projeto. Os meses especificados se referem ao no de Cronograma Jan. Fev. Marc. Abr. Maio Jun. Jul. Ag. Set. Out. Nov. Implementação X Analisador Léxico Implementação X Analisador Sintático Implementação Analisador Semântico X X X Implementação X X X X X do Gerador de Código Testes X X X X X X X X X X Redação do X X X X X Texto Técnico Apresentação X Tabela 3.1: Cronograma 3.1 Análise Léxica e Sintática Uma vez que a implementação dos analisadores léxico e sintático é feita de forma automatizada, a implementação dos mesmos não tomará muito tempo. Com o tempo restante, tais analisadores passarão por uma bateria de testes, que será explicado mais adiante.

11 Análise Semântica A análise semântica é conhecida por ser a etapa mais complicada no projeto de compiladores. Com isso, deverá despender um maior tempo em sua implementação. Com isso estima-se uma duração de 3 meses para seu término. 3.3 Gerador de Código Estima-se que a geração de código ocupe 5 meses do tempo, considerando a possibilidade de ocorrência de problemas durante sua implementação. 3.4 Testes Seguindo o proposto pela programação extrema 1, especificamente no desenvolvimento orientado a testes - TDD, testes serão realizados durante todo o projeto. Segundo [4], TDD é uma técnica de projeto que garante que todo o código fonte foi completamente testado de forma unitária. Por conseqüência, a ocorrência de problemas diminui consideravelmente, e caso venha a ocorrer, novos testes devem ser definidos para cobrir o problema. 3.5 Redação do Texto Científico Espera-se produzir parte do texto científico no início do projeto, continuando após o início da implementação do gerador de código e finalizando o mesmo no último mês antes da apresentação. Uma vez que o tempo gasto na implementação dos analisadores léxico e sintático será mínimo, o primeiro mês proporcionará um tempo suficiente para redação de boa parte do texto. 1 XP - extreaming Programming

12 11 4 Conclusão Este trabalho teve como objetivo prover uma introdução ao trabalho a ser produzido como conclusão de curso. Fora apresentado o contexto atual e futuro em relação ao projeto, bem como seus objetivos gerais e específicos. As principais fontes de informação foram definidas, além de um sumário provisório. Por fim, fora apresentado o cronograma a ser seguido.

13 12 Referências Bibliográficas [1] STATEN, J.; RYMER, J. R. The multicore programming era is here. Forrester Research, [2] SERVICE, I. N. Microsoft e Intel investem US$ 20 milhões em computação paralela. Disponível em: < [3] DAVIES, G. Pascal-FC Language Reference Manual. 5th. ed. [S.l.], [4] AMBLER, S. Agile Database Techniques: Effective Strategies for the Agile Software Developer. [S.l.]: Wiley, 2003.

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC   URL: INE5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Plano de Ensino OBJETIVO GERAL: Estudar a teoria das linguagens

Leia mais

Linguagens e Compiladores

Linguagens e Compiladores Linguagens e Compiladores Aula 1: a) Critérios b) Noções de Compiladores e Interpretadores c) Usos da tecnologia de compilação d) Compiladores, filtros e pré-processadores e) Estruturação lógica de compiladores

Leia mais

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 PCS3616 Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 Linguagens e Compiladores Programação em linguagem de alto nível Escola Politécnica da Universidade de São Paulo Roteiro 1.

Leia mais

COMPILADORES PROGRAMA E BIBLIOGRAFIA

COMPILADORES PROGRAMA E BIBLIOGRAFIA COMPILADORES PROGRAMA E BIBLIOGRAFIA Mariza A. S. Bigonha e Roberto S. Bigonha UFMG 27 de maio de 2008 Todos os direitos reservados Proibida cópia sem autorização dos autores OBJETIVOS DO CURSO Ensinar

Leia mais

Concurso público de provas e títulos para professor adjunto

Concurso público de provas e títulos para professor adjunto Concurso público de provas e títulos para professor adjunto Número de vagas: 03 Área: Ciência da Computação Matéria Específica: Ciência da Computação Informações complementares: Critérios de seleção de

Leia mais

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais. Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção

Leia mais

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES João Ricardo Kohler Abramoski (PAIC/FUNDAÇÃO ARAUCÁRIA), Sandra Mara Guse Scós Venske (Orientadora), e-mail: ssvenske@unicentro.br

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 Código: MAB366 Créditos: 04 Carga Horária: 60 horas Professor: Antonio Carlos Gay Thomé thome@nce.ufrj.br

Leia mais

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Identificação: Disciplina: INE5645 - Programação Paralela e Distribuída Carga horária: 72 horas-aula Teóricas: 36 Práticas: 36 Período: 2º semestre de 2014 (em

Leia mais

Ficha da Unidade Curricular

Ficha da Unidade Curricular Ficha da Unidade Curricular Curso: Engenharia Informática Ano Lectivo: 2008/09 Unidade Curr.: Processamento de Linguagens Ano Curricular: 3º Créditos: 6 Responsável: Maria João Varanda Regime: Anual X

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Prof. Eduardo Simões de Albuquerque Instituto de Informática UFG 1o. Semestre / 2006 Adaptado do material do prof. Fábio Moreira Costa Programa e Introdução Assunto do curso

Leia mais

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg. Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no

Leia mais

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Ementa Gramáticas. Linguagens Regulares, Livres-de-Contexto e Sensíveis-ao- Contexto. Tipos de Reconhecedores. Operações

Leia mais

Implementação da Especificação de Tempo Real Java para o EPOS

Implementação da Especificação de Tempo Real Java para o EPOS UNIVERSIDADE FEDERAL DE SANTA CATARINA Curso de Ciências da Computação Implementação da Especificação de Tempo Real Java para o EPOS ANDERSON LUIS ZAPELLO Florianópolis, julho de 2005 ANDERSON LUIS ZAPELLO

Leia mais

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura

Leia mais

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo. Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015 DECOM ICEB - UFOP Nome legível: Matrícula: As questões podem devem ser respondidas na própria prova, a caneta ou a lápis.

Leia mais

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Disciplina: INF01151 - Sistemas Operacionais II N Turma: A, 2 Sem/2008 Prof. Cláudio Geyer CURSOS : Ciência da

Leia mais

Teoria da Computação (BBC244)

Teoria da Computação (BBC244) Teoria da Computação (BBC244) Professor: Anderson Almeida Ferreira anderson.ferreira@gmail.com http://www.decom.ufop.br/anderson Sala COM 10 DECOM-UFOP Ementa Gramáticas. Linguagens. Operações com Linguagens.

Leia mais

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Linguagens Formais e Autômatos. Tiago Alves de Oliveira Linguagens Formais e Autômatos Tiago Alves de Oliveira Ementa Linguagens Regulares; Máquinas de Turing; O Problema da Parada da Máquina de Turing; Autômatos Finitos; Linguagens Livres de Contexto; Autômatos

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?

Leia mais

Programação Concorrente

Programação Concorrente INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 1ª Aula Apresentação da disciplina Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Objetivos do curso Introduzir o estudante nos conceitos e princípios básicos dos sistemas

Leia mais

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax: Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3201 - COMPILADORES 2. DISCIPLINA

Leia mais

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO - PLP Professor: Rômulo César romulodandrade@gmail.com romulo.andrade@upe.br www.romulocesar.com.br Professor NOME: RÔMULO CÉSAR DIAS DE ANDRADE Mini CV: Doutorando

Leia mais

Sistemas Operativos I

Sistemas Operativos I Apresentação da Cadeira Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Docentes Teóricas Luis Lino Ferreira llf@dei.isep.ipp.pt Gab. 11 (G312E) Maria João Viamonte Email: viamonte@dei.isep.ipp.pt

Leia mais

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1 Eldair F. Dornelles 2, Henrique A. Richter 3, Miquéias F. M. Trennepohl 4, Taís T. Siqueira

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi- Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Programação multithread Ferramentas de programação Prática

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018 Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade Curricular

Leia mais

DISCIPLINA: ELE213 Programação de Sistemas de Tempo Real. Créditos: 4. Caráter: Eletiva. Professor Regente: Prof. Walter Fetter Lages

DISCIPLINA: ELE213 Programação de Sistemas de Tempo Real. Créditos: 4. Caráter: Eletiva. Professor Regente: Prof. Walter Fetter Lages UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA PLANO DE ENSINO PERÍODO LETIVO 201/1 DISCIPLINA: ELE213

Leia mais

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores

Leia mais

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:

Leia mais

What is? Eduardo Viola Nicola Disciplina de IPPD

What is? Eduardo Viola Nicola Disciplina de IPPD What is? Eduardo Viola Nicola evnicola@inf.ufpel.edu.br Disciplina de IPPD Sumário 1)Introdução 2)Princípio Geral de Funcionamento 3)Exemplos de Aplicações 4)Modelo de Programação 5)Linguagens Suportadas

Leia mais

Paradigmas de Computação

Paradigmas de Computação UCE- Computação Paralela e Distribuída Paradigmas de Computação João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://alba.di.uminho.pt/... 1 Paradigmas de Computação paralela Resultados da Aprendizagem

Leia mais

Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica

Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha

Leia mais

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER COMPARAÇÃO DE DESEMPENHO NA PROGRAMAÇÃO PARALELA HÍBRIDA (MPI + OPENMP) NA BUSCA DE TEXTO EM ARQUIVOS 1 COMPARISON OF PERFORMANCE IN HYBRID PARALLEL PROGRAMMING (MPI + OPENMP) IN SEARCH OF TEXT IN FILES

Leia mais

Hardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU

Hardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU Hardware UCP Unidade Central de Processamento AMD Disciplina: Organização e Arquitetura de Computadores Prof. Luiz Antonio do Nascimento Faculdade Nossa Cidade Organização Funcional de um Computador Unidade

Leia mais

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA

Leia mais

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação - Definições - Ementa - Objetivos - Unidades de Ensino - Bibliografia - Processo de Avaliação Paulo César do Amaral Pereira SISTEMA COMPUTACIONAL

Leia mais

Intel Thread Building Blocks (TBB)

Intel Thread Building Blocks (TBB) Intel Thread Building Blocks (TBB) MCZA020-13 - Programação Paralela Emilio Francesquini e.francesquini@ufabc.edu.br 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Disclaimer

Leia mais

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Introdução aos Conceitos de Computação Paralela através da estimativa de Pi Diego da Silva Pereira 1 1 Professor de Redes de Computadores IFRN Câmpus Currais Novos. e-mail: diego.pereira@ifrn.edu.br Resumo:

Leia mais

Apresentação da disciplina. Programação em ambiente Linux prof: Taisy Silva Weber

Apresentação da disciplina. Programação em ambiente Linux prof: Taisy Silva Weber Apresentação da disciplina Programação em ambiente Linux prof: Taisy Silva Weber Página da disciplina endereço http://www.inf.ufrgs.br/~taisy/disciplinas/ conteúdo da página: listas de exercícios conceitos

Leia mais

SCC-5832 Teoria da Computação

SCC-5832 Teoria da Computação Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: CÓDIGO: CURSOS/PRE-REQUISITO: CIC Linguagens formais e autômatos N COMPILADORES INF01147

Leia mais

Ferramentas para Programação em Processadores Multi-Core

Ferramentas para Programação em Processadores Multi-Core Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática

Leia mais

Síntese de programas utilizando a linguagem Alloy

Síntese de programas utilizando a linguagem Alloy Universidade Federal de Pernambuco Centro de Informátiva Graduação em Ciência da Computação Síntese de programas utilizando a linguagem Alloy Proposta de Trabalho de Graduação Aluno: João Pedro Marcolino

Leia mais

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki Ruby e JRuby em... Paralelos e Distribuídos Felipe Barden 151343 Lucas Fialho Zawacki 172072 Sobre o que vamos falar? A linguagem Ruby e suas aplicações em programação paralela e distribuída. A implementação

Leia mais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com

Leia mais

Paralelização do Método de Jacobi em Memória Compartilhada 1

Paralelização do Método de Jacobi em Memória Compartilhada 1 Paralelização do Método de Jacobi em Memória Compartilhada 1 Claudio Schepke cschepke@inf.ufrgs.br 1 PPGC - Instituto de Informática - UFRGS Introdução ao Processamento Paralelo e Distribuído Professor

Leia mais

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO

Leia mais

UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA

UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA PROPOSTA DE TRABALHO

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Prof. Carlos Eduardo de B. Paes Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Objetivos

Leia mais

Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente

Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente Uma proposta de implementação de árvores rubro-negras em Haskell de forma concorrente AUTOR: THAÍS S. HÜBNER BOLSISTA PBIP/UFPEL EMAIL: TSHUBNER@INF.UFPEL.EDU.BR ORIENTADOR ANDRÉ RAUBER DU BOIS Sumário

Leia mais

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary

Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional. Professor: Francisco Ary Organização de Computadores Computação paralela; Sistema de entrada e saída (I/O); Suporte a Sistema operacional Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional executar

Leia mais

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO DISCIPLINA: Linguagens de Programação CÓDIGO: 2ECOM.031 Data de Elaboração: Janeiro/2012 Carga Horária: Total: 30 h/a; Semanal: 02 aulas; Créditos: 02 Modalidade: Prática Classificação do Conteúdo pelas

Leia mais

Programação concorrente (processos e threads)

Programação concorrente (processos e threads) Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo

Leia mais

SSC510 Arquitetura de Computadores. 6ª aula

SSC510 Arquitetura de Computadores. 6ª aula SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas

Leia mais

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008 Reinventando a Computação Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti Universidade de São Paulo 28 de novembro de 2008 Introdução Dr.

Leia mais

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins

Leia mais

CP Compiladores I Prof. Msc.. Carlos de Salles

CP Compiladores I Prof. Msc.. Carlos de Salles CP 5017.9 Prof. Msc.. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão

Leia mais

Arquitetura de Microprocessadores

Arquitetura de Microprocessadores Arquitetura de Computadores UNIDADE 4 Arquitetura de 26-02-2019 Sumário Técnicas de processamento paralelo; Pipeline; Hyper-Threading; Processadores de vários núcleos; O aumento de velocidade de processamento

Leia mais

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela Professor: Francisco Ary Computação Paralela Capacidade de um sistema computacional ser executado de forma simultânea,

Leia mais

SCC Introdução à Teoria da Computação

SCC Introdução à Teoria da Computação SCC-0505 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores 1- Introdução Prof. Sílvio Fernandes Arquitetura

Leia mais

Programação Concorrente. Prof. Hugo Vieira Neto

Programação Concorrente. Prof. Hugo Vieira Neto Programação Concorrente Prof. Hugo Vieira Neto Concorrência Um programa concorrente descreve diversas atividades que ocorrem simultaneamente, de modo diferente de programas comuns, que descrevem apenas

Leia mais

Informática Aplicada. Introdução

Informática Aplicada. Introdução Informática Aplicada Introdução Breve histórico da computação moderna Principais eventos 1000ac - Ábaco 1614 - Logaritmos (John Napier) 1623 - Sistema Binário (Francis Bacon) 1642 - Máquina de Turing 1946

Leia mais

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.

Leia mais

Parallel Computing Paradigms

Parallel Computing Paradigms João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... Web: Elearning 1 At the end of the course, students should be able to: Design and optimise parallel applications that can efficiently run on a wide

Leia mais

HCT1 HISTÓRIA DA CIÊNCIA E TECNOLOGIA. Professor: Kleber Manrique Trevisani Aluno: João Jakybalis Neto

HCT1 HISTÓRIA DA CIÊNCIA E TECNOLOGIA. Professor: Kleber Manrique Trevisani Aluno: João Jakybalis Neto HCT1 HISTÓRIA DA CIÊNCIA E TECNOLOGIA Professor: Kleber Manrique Trevisani Aluno: João Jakybalis Neto INTEL 4004 LANÇADO EM 1971 COM CAPACIDADE DE PROCESSAMENTO DE 8 bits. Lançado em 1974 Primeiro sucesso

Leia mais

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 Jessica De Almeida Berlezi 2, Janiel Ceretta Foletto 3, Edson Luiz Padoin 4, Rogério S. M. Martins 5. 1 Trabalho realizado

Leia mais

Organização de Sistemas de Computadores

Organização de Sistemas de Computadores Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =

Leia mais

Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação

Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação Tema nº1: Entrada e saída de dados Assunto: Elemos básicos sobre Arquitetura de Computadores Conceito de Hardware,

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA832 DISCIPLINA: SISTEMAS DISTRIBUÍDOS CARGA HORÁRIA: 60h EMENTA: Conceitos e

Leia mais

Construção de Compiladores

Construção de Compiladores Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de

Leia mais

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise

Leia mais

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS Acadêmico: Roger Anderson Schmidt Orientador : Marcel Hugo Supervisor : Ricardo de Freitas Becker Empresa

Leia mais

The future is parallel but it may not be easy

The future is parallel but it may not be easy The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de

Leia mais

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo,

Leia mais

Paradigmas de Linguagem de Programação. Aspectos Básicos

Paradigmas de Linguagem de Programação. Aspectos Básicos Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador

Leia mais

INE 5645 Programação Paralela e Distribuída. Prof. João Bosco M. Sobral INE-UFSC

INE 5645 Programação Paralela e Distribuída. Prof. João Bosco M. Sobral INE-UFSC INE 5645 Programação Paralela e Distribuída Prof. João Bosco M. Sobral INE-UFSC bosco@inf.ufsc.br INE 5645 - Conteúdo Programático UNIDADES I. Introdução II. Programação Paralela III. Controle de Concorrência

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA DEPARTAMENTO: Fundamentos da Computação CURSO: Ciência da Computação DISCIPLINA: Organização e Arquitetura de Computadores

Leia mais

Computadores não funcionam sem Sistemas Operacionais (SO); Diversas técnicas de programação, como programação paralela, surgiram nos SO;

Computadores não funcionam sem Sistemas Operacionais (SO); Diversas técnicas de programação, como programação paralela, surgiram nos SO; BC1518 - Sistemas Operacionais Apresentação da Disciplina Plano de trabalho 3 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Motivação Apresentação Programa

Leia mais

SCC Teoria da Computação e Linguagens Formais

SCC Teoria da Computação e Linguagens Formais SCC-0205 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

Leia mais

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25 Universidade Federal do Rio Grande do Sul Escola de Engenharia - Instituto de Informática Graduação em Engenharia de Computação Ferramenta para Desenvolvimento de Sistemas Embarcados Utilizando Linguagem

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012 Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Informática 3. Ciclo de Estudos 1º 4. Unidade Curricular COMPILADORES

Leia mais

PLANO DE APRENDIZAGEM

PLANO DE APRENDIZAGEM PLANO DE APRENDIZAGEM 1. DADOS DE IDENTIFICAÇÃO Curso: Bacharelado em Sistemas de Informação Disciplina: Linguagens Formais e Compiladores Código: SIF5N191 Professor: Jamilson Ramalho Dantas e-mail: jamilson.dantas@fasete.edu.br

Leia mais

Brilliant Solutions for a Safe World

Brilliant Solutions for a Safe World Componente Biométrico - Íris Componentes do lado do servidor (multi-plataforma): Licenças do Matching Server Licenças do MegaMatcher Accelerator Extended (mecanismo de íris) Licenças do MegaMatcher Accelerator

Leia mais

Licenciatura em Informática

Licenciatura em Informática Licenciatura em Informática Unidade Curricular Arquitetura de Computadores Computer Architecture Objetivos -Compreender o hardware e software de sistema (SO); -Entender os sistemas de numeração e aritmética

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018 22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria

Leia mais

Organização de Computadores Processadores. Professor: Francisco Ary

Organização de Computadores Processadores. Professor: Francisco Ary Organização de Computadores Processadores Professor: Francisco Ary Introdução O que vimos no último encontro: O que é um computador; Arquitetura Três partes principais: Processador; Memória; e Sistema

Leia mais

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno: Carlos

Leia mais

INE5318 Construção de Compiladores. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

INE5318 Construção de Compiladores. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL: INE5318 Construção de Compiladores Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Identificação da disciplina Código: INE 5426 Nome: Construção de Compiladores

Leia mais