Limitações dos Computadores

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Limitações dos Computadores"

Transcrição

1 Limitações dos Computadores Baseado em Computers Ltd. What they really can t do, David Harel. Oxford University Press, Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 2004/07 Sérgio Sobral Nunes mail: web:

2 Algoritmos

3 Contexto Os computadores são máquinas poderosas. Permitem controlar aviões, instalações complexas, elevados fluxos de dados em redes de comunicação. Apesar da elevada complexidade, todos os computadores podem ser vistos como uma grande colecção de interruptores (ou bits), ligados ou desligados. Estes interruptores são controlados por algoritmos, programas ou processos computacionais, que respondem a dados recebidos. Sérgio Nunes Comunicações e Redes de Computadores 3

4 Algoritmo - Analogia Entrada Ingredientes Software Receita Hardware Forno Utensílios Bolo Saída Sérgio Nunes Comunicações e Redes de Computadores 4

5 Problemas Algorítmicos Os algoritmos são desenhados para resolver problemas algorítmicos. Especificação de todas as entradas legais Qualquer entrada legal + Algoritmo Caracterização da saída desejada como função da entrada. A saída pretendida Sérgio Nunes Comunicações e Redes de Computadores 5

6 Exemplos de Problemas Entrada: Dois inteiros, A e B. Saída: O número A + 4B Entrada: Um inteiro positivo N. Saída: O somatório dos inteiros de 1 a N. Entrada: Um inteiro positivo N. Saída: Sim se N é primo e Não se não é. Entrada: Dois textos em português. Saída: Uma lista das palavras comuns aos dois textos. Sérgio Nunes Comunicações e Redes de Computadores 6

7 Validação dos Algoritmos Validar um algoritmo é uma tarefa complexa. Validação parcial não é aceitável, é necessário validar o algoritmo para todas as entradas legais. Erros de sintaxe a escrita dos programas contém erros. Erros de lógica a estratégia gizada no algoritmo está errada. Sérgio Nunes Comunicações e Redes de Computadores 7

8 Máquina de Turing Em 1936, Alan Turing apresentou o modelo conceptual de um computador especialmente pensado para a análise da natureza e limites da computação. A Máquina de Turing é composta por uma fita infinita com posições e uma cabeça de leitura/escrita. A fita pode ser deslocada em ambas as direcções e cada posição pode ser lida ou escrita. Sérgio Nunes Comunicações e Redes de Computadores 8

9 Máquina de Turing A Máquina de Turing tornou-se o modelo teórico base para o desenvolvimento de uma teória da computação. Apesar de serem extremamente simples (facilitando o desenvolvimento de teorias), as Máquinas de Turing capturam tudo o que pode ser feito computacionalmente. Tudo o que pode ser feito num computador actual, pode ser feito numa Máquina de Turing. Nenhum computador físico existente consegue fazer mais do que uma Máquina de Turing. Se uma Máquina de Turing consegue resolver um problema, o problema designa-se de computável. Caso contrário é um problema não computável. Sérgio Nunes Comunicações e Redes de Computadores 9

10 Problemas Impossíveis

11 Problemas Impossíveis Existem problemas que não podem ser resolvidos por nenhum computador, presente ou futuro, qualquer que seja o programa a ser executado, mesmo com recursos ilimitados (tempo, armazenamento, outros). O conjunto de todos os problemas algorítmicos pode ser dividido em dois subconjuntos: problemas computáveis e problemas não computáveis. Todos os problemas com um conjunto finito de entradas são computáveis. No limite podemos escrever a saída a apresentar para cada entrada. Sérgio Nunes Comunicações e Redes de Computadores 11

12 Problemas Não Computáveis Problema da Paragem, 1936 (Halting Problem) Dada a descrição de um programa e a entrada inicial, determinar se o programa, quando executado com a entrada definida, alguma vez termina (halts) ou, alternativamente, executa para sempre. Demonstra-se que não existe um algoritmo para este problema. Teorema da Incompletude de Gödel, 1931 Num sistema lógico formal consistente, existem afirmações verdadeiras que não podem ser provadas. Sérgio Nunes Comunicações e Redes de Computadores 12

13 Problema da Paragem O problema da paragem permite explicar porque é que os computadores não conseguem prever problemas e evitar crashes ou bloqueios. Existe um programa que, para uma qualquer máquina de Turing e uma qualquer entrada de dados, determine se a máquina pára (halts)? Prova Assume-se a existência de um algoritmo Halt(p,d) que determina se o programa p perante a entrada d pára ( sim ) ou não, entrando em ciclo infinito ( não ). Um outro algoritmo Trouble(p) invoca o algoritmo Halt usando a entrada recebida e escreve sim se o Halt(p,p) determinar não, caso contrário entra num ciclo infinito. Correspondendo T ao algoritmo Trouble, o que acontece com Halt(T,T)? Se Halt(T,T)= não Touble(T)= sim Halt(T,T) deveria ter sido sim. Se Halt(T,T)= sim Touble(T) entra em ciclo Halt(T,T) deveria ter sido não. Sérgio Nunes Comunicações e Redes de Computadores 13

14 Problemas Não Viáveis

15 Problemas Não Viáveis Mesmo que o problema seja computável, e um algoritmo correcto exista, a execução pode ser demasiado dispendiosa no uso dos recursos, tornando-se impraticável. Um programa de computador consume recursos, nomeadamente tempo (acções executadas) e espaço (armazenamento dos dados utilizados). Diferentes algoritmos para o mesmo problema podem variar significativamente nos recursos consumidos. A diferença entre funções polinomiais (N 2 ) e funções exponenciais (2 N ) é crucial. Sérgio Nunes Comunicações e Redes de Computadores 15

16 Ordens de Complexidade Algoritmo para Ordenação O(N 2 ) Ordenar de forma crescente um conjunto de números. Percorrer a lista de números e obter o menor. Trocar este valor com aquele na primeira posição. Voltar ao primeiro passo excluindo o elemento inicial. Caixeiro Viajante O(N!) Para um conjunto de cidades, descobrir qual é a ordem de visitas que permite percorrer um caminho total mais curto visitando cada cidade apenas uma vez? Testar todas as combinações possíveis e verificar qual a mais curta. Sérgio Nunes Comunicações e Redes de Computadores 16

17 Complexidade de um Algoritmo O(N) - linear para todos os N fazer Instrução O(N 2 ) polinomial desde 1 até N fazer desde 1 até N fazer Instrução O(2 N ) exponencial para um número, testar todas as combinações de dois números (A,B) em que AxB=N O(N) O(N^2) O(2^N) O(N!) O(N!) factorial para N elementos testar todas as combinações possíveis Sérgio Nunes Comunicações e Redes de Computadores 17

18 Problema do Caixeiro Viajante Dado um conjunto de cidades e o custo de viajar entre cada par de cidades, determinar o percurso mais barato de modo a visitar todas as cidades apenas uma vez e voltar ao ponto de origem. A abordagem simples requer a análise de n! permutações. Considerando um milisegundo para analisar cada permutação. 5 cidades 0.1 segundos 10 1 hora anos anos 23 mais do que a idade do universo Sérgio Nunes Comunicações e Redes de Computadores 18

19 Criptografia Problemas difíceis de resolver em tempo útil são importantes na área da criptografia. O método RSA, uma implementação do conceito de criptografia com chaves públicas, recorre a dois conceitos chave: factorização de um número e verificação da primalidade de um número. Enquanto que o teste é possível ser realizado de forma rápida. A factorização de números grandes é um problema para o qual não existem soluções rápidas. Sérgio Nunes Comunicações e Redes de Computadores 19

20 Riscos da Criptografia Mecanismos como o da criptografia têm por base duas assunções fundamentais: Os computadores são demasiado lentos. Somos ignorantes para lidar com estes problemas. Quando houver uma mudança significativa numa destas áreas, os sistemas que utilizam criptografia estão em risco. A invenção de novos paradigmas pode trazer novas abordagens aos problemas actuais. O aumento no desempenho dos computadores pode tornar viável as soluções actuais. Sérgio Nunes Comunicações e Redes de Computadores 20

21 Novas Abordagens Novos paradigmas para o desenvolvimento de algoritmos tentam ultrapassar (minimizar) estas limitações. Computação Paralela Múltiplos computadores a trabalhar em paralelo sobre o mesmo problema. Computação Aleatória Utilização de valores aleatórios durante os passos do algoritmo. Computação Quântica Abordagem baseada nos conceitos da mecânica quântica. Computação Molecular Utilização de moléculas para a resolução de problemas. Sérgio Nunes Comunicações e Redes de Computadores 21

22 A questão sobre se os computadores sabem ou não pensar é equivalente à questão sobre se os submarinos sabem ou não nadar. E. W. Dijkstra

23 Bibliografia Principal David Harel Computers Ltd. what they really can t do. Oxford University Press, A. K. Dewdney The New Turing Omnibus. A. K. Freeman, Sérgio Nunes Comunicações e Redes de Computadores 23

INFORMÁTICA E TEORIA DA COMPUTAÇÃO

INFORMÁTICA E TEORIA DA COMPUTAÇÃO CAPA INFORMÁTICA E TEORIA DA COMPUTAÇÃO 2014 SUMARÉ Índice Informática... 02 Etimologia... 02 Origem e Concepção... 03 Teoria da Computação... 03 Conclusão... 04 Informática A informática é um termo usado

Leia mais

ECO039 Linguagens Formais

ECO039 Linguagens Formais Prof a.dra.thatyana de Faria Piola Seraphim Universidade Federal de Itajubá thatyana@unifei.edu.br Introdução ˆ As três principais áreas da teoria da computação (Autômatos, Computabilidade e Complexidade)

Leia mais

Sumário. Objectivos Técnicas Casos Notáveis Exemplo Conclusões. Testes de Software 2

Sumário. Objectivos Técnicas Casos Notáveis Exemplo Conclusões. Testes de Software 2 Testes de Software Sumário Objectivos Técnicas Casos Notáveis Exemplo Conclusões Testes de Software 2 Objectivos Verificação o programa está de acordo com a especificação (construímos bem o produto?) Validação

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Complexidade de Algoritmos Computabilidade: Um problema é computável

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 02 Um pouco da história da computação humberto@bcc.unifal-mg.edu.br Última aula... Fundamentos de Matemática; Medida do Tempo de Execução

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

Engenharia de Software

Engenharia de Software Conceitos básicos sobre E.S: Ambiência Caracterização do software Fases de desenvolvimento 1 Introdução Aspectos Introdutórios Crise do Software Definição de Engenharia do Software 2 Crise do Software

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

Leia mais

Curso Técnico Superior Profissional em Desenvolvimento Web

Curso Técnico Superior Profissional em Desenvolvimento Web Curso Técnico Superior Profissional em Desenvolvimento Web PROVA DE AVALIAÇÃO DE CAPACIDADE REFERENCIAL DE CONHECIMENTOS E APTIDÕES Áreas relevantes para o curso de acordo com o n.º 4 do art.º 11.º do

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto APRESENTAÇÃO Os computadores chegaram aos diversos níveis das organizações Nestes contexto: Que linguagem entendem? Que produtos podem usar? Dúvidas

Leia mais

Introdução à Bioinformática. Prof. IVAné@

Introdução à Bioinformática. Prof. IVAné@ Introdução à Bioinformática Prof. IVAné@ Bioinformática União da ciência da computação com a biologia molecular É uma área nova Há 10 anos atrás o termo nem existia Depois da descoberta de Watson e Crick

Leia mais

Transcrição Automática de Música

Transcrição Automática de Música Transcrição Automática de Música Ricardo Rosa e Miguel Eliseu Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Leiria Departamento de Engenharia Informática A transcrição automática de

Leia mais

Paulo César Especialista de Soluções da ATM informática paulo.cesar@atminformatica.pt

Paulo César Especialista de Soluções da ATM informática paulo.cesar@atminformatica.pt Desktop Virtual Paulo César Especialista de Soluções da ATM informática paulo.cesar@atminformatica.pt Tendo em conta que a Virtualização será um dos principais alvos de investimento para o ano 2009 (dados

Leia mais

Sistemas Distribuídos e Tolerância a Falhas

Sistemas Distribuídos e Tolerância a Falhas Processamento de erros Detectar / Recuperar/ Mascarar 1º passo: Detecção. A detecção de um erro pode ser realizada por mecanismos como: - códigos de detecção de erros, - timeouts - watchdogs - verificações

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks )

RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks ) RAID O que é um RAID? RAID RAID (Redundant Array of Independent Disks ) Matriz Redundante de Discos Independentes Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID Surgiu

Leia mais

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03 Agenda 1. Arquitetura de Software 1.1.Introdução 1.2.Vantagens da Arquitetura de Software

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável na prática. Na maioria das vezes, a escolha

Leia mais

CI165 Introdução. André Vignatti. 31 de julho de 2014

CI165 Introdução. André Vignatti. 31 de julho de 2014 Introdução 31 de julho de 2014 Antes de mais nada... Os slides de 6 aulas (introdução, insertion sort, mergesort, quicksort, recorrências e limitantes de ordenação) foram originalmente feitos pelos Profs.

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

Fulano de Tal. Relatório Combinado Extended DISC : Análise Comportamental x Feedback 360 FINXS 09.12.2014

Fulano de Tal. Relatório Combinado Extended DISC : Análise Comportamental x Feedback 360 FINXS 09.12.2014 Relatório Combinado Extended DISC : Análise Comportamental x Feedback 360 Este relatório baseia-se nas respostas apresentadas no Inventário de Análise Pessoal comportamentos observados através questionário

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Sistemas de Representação e Raciocínio

Sistemas de Representação e Raciocínio Sistemas de Representação e Raciocínio Introdução à Inteligência Artificial Profa. Josiane Baseado no material de David Poole, Alan Mackworth e Randy Goebel Abril/2007 Inteligência Artificial Objetivo

Leia mais

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com Chord Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos Objectivo Motivação Peer-To-Peer Chord Descrição Geral Características Distintivas Comparação DNS Modelo do Sistema

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001 47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

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

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

Computabilidade em sistemas dinâmicos

Computabilidade em sistemas dinâmicos 1 Computabilidade em sistemas dinâmicos Daniel da Silva Graça 1,2 1 DM/FCT, Universidade do Algarve, Portugal 2 SQIG, Instituto de Telecomunicações, Portugal 30 de Julho de 2009 2 Introdução Informalmente

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação da Informação Um dispositivo eletrônico, armazena e movimenta as informações internamente

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação O QUE É UM PROGRAMA? Para executar uma dada tarefa é geralmente necessário entender o sistema onde ela é realizada. Por exemplo, para fazer um bolo temos um sistema composto por: Ingredientes Cozinheiro

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

E se conseguisse reduzir os seus custos de energia até 20%?

E se conseguisse reduzir os seus custos de energia até 20%? E se conseguisse reduzir os seus custos de energia até 20%? Uma solução eficaz de Gestão Energética para o Retalho Eficiência Energética no Retalho Será que está a gastar mais em energia do que necessita?

Leia mais

Os limites da computação algorítmica

Os limites da computação algorítmica Capítulo 12 Os limites da computação algorítmica 12.1. Problemas que não podem ser resolvidos pelas MT. 12.2. Problemas indecidíveis para LRE 12.3. Problema da correspondência de Post 12.4. Problemas indecidíveis

Leia mais

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

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

De Arte a Ciência: Regras para o Desenho de Software

De Arte a Ciência: Regras para o Desenho de Software De Arte a Ciência: Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho um padrão de desenho universal associado ao princípio fundamental e aos requisitos axiomáticos.

Leia mais

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

Leia mais

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

Leia mais

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1 Projeto e Análise de Algoritmos Profa. Juliana Kaizer Vizzotto Projeto e Análise de Algoritmos - Aula 1 Roteiro Introdução Exemplo: ordenação Introdução Análise de Algoritmos Estudo teórico da performance

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais RAID Marcelo Diniz http://marcelovcd.wordpress.com/ O que é RAID? RAID RAID (Redundant Array of Independent Disks ) Matriz Redundante de Discos Independentes Recuperar informação

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Na época dos nossos bisavós os computadores já existiam, apesar de extremamente rudimentares. Eram os computadores mecânicos, que realizavam cálculos

Na época dos nossos bisavós os computadores já existiam, apesar de extremamente rudimentares. Eram os computadores mecânicos, que realizavam cálculos Na época dos nossos bisavós os computadores já existiam, apesar de extremamente rudimentares. Eram os computadores mecânicos, que realizavam cálculos através de um sistema de engrenagens, accionado por

Leia mais

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

Introdução às Máquinas de Turing (TM)

Introdução às Máquinas de Turing (TM) Comparação com computadores: Introdução às Máquinas de Turing (TM) um modelo matemático simples de um computador Semelhanças: lê e escreve em posições arbitrarias de memoria Diferenças: sem limite no tamanho

Leia mais

1 O que é um computador? Definição uma máquina que lê dados, efectua cálculos e fornece resultados.

1 O que é um computador? Definição uma máquina que lê dados, efectua cálculos e fornece resultados. 1 O que é um computador? Definição uma máquina que lê dados, efectua cálculos e fornece resultados. 1.1 - Processos básicos do computador Entrada de dados ler ou receber os valores iniciais ou constantes

Leia mais

Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos?

Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos? &DStWXOR±5HSUHVHQWDomRGH1~PHURVH(UURV,QWURGXomR Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos? 7LSRVGH(UURV Erros inerentes à matematização do fenómeno físico: os sistemas

Leia mais

Tabela de símbolos: tabelas de espalhamento

Tabela de símbolos: tabelas de espalhamento Tabela de símbolos: tabelas de espalhamento Marcelo K. Albertini 14 de Janeiro de 2014 2/28 Resumo de complexidades Análises para operação efetuada após N inserções pior caso caso médio keys chave get

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

2.3. ORGANIZAÇÕES E GESTÃO DOS SISTEMAS DE INFORMAÇÃO

2.3. ORGANIZAÇÕES E GESTÃO DOS SISTEMAS DE INFORMAÇÃO 2.3. ORGANIZAÇÕES E GESTÃO DOS SISTEMAS DE INFORMAÇÃO As Empresas e os Sistemas Problemas locais - impacto no sistema total. Empresas como subsistemas de um sistema maior. Uma empresa excede a soma de

Leia mais

Desenvolvimento de Interfaces Prototipação

Desenvolvimento de Interfaces Prototipação Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Centro de Engenharia e Ciências Tecnológicas CECT Curso de Ciência da Computação Desenvolvimento

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

Leia mais

Manual de Utilizador. CNCVisual. Julho de 2006. Âmbito do Projecto de 5º Ano de Engenharia Mecânica. Autor: Bruno Lameiro

Manual de Utilizador. CNCVisual. Julho de 2006. Âmbito do Projecto de 5º Ano de Engenharia Mecânica. Autor: Bruno Lameiro Manual de Utilizador CNCVisual Julho de 2006 Âmbito do Projecto de 5º Ano de Engenharia Mecânica Autor: Bruno Lameiro Introdução: A existência do manual de utilizador da aplicação CNCVisual tem como objectivo

Leia mais

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

Qualidades. Atributos de Qualidade. Atributos de Qualidade. Categorias de Qualidades. Arquitecturas de Software

Qualidades. Atributos de Qualidade. Atributos de Qualidade. Categorias de Qualidades. Arquitecturas de Software Arquitecturas de Software Atributos de Qualidade António Rito Silva Rito.Silva@inesc-id.pt Qualidades Nenhuma qualidade pode ser maximizada num sistema sem sacrificar uma outra qualidade ou qualidades

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

SISTEMAS DISTRIBUÍDOS E TOLERÂNCIA A FALHAS

SISTEMAS DISTRIBUÍDOS E TOLERÂNCIA A FALHAS SISTEMAS DISTRIBUÍDOS E TOLERÂNCIA A FALHAS Automatic detection of firewall misconfigurations using firewall and network routing policies Flávio Amorim nº3409 Fábio Campos nº3481 ESTRUTURA DA APRESENTAÇÃO

Leia mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

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:

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: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador? Backup O backup tem dois objetivos principais: Permitir a recuperação de arquivos individuais é a base do típico pedido de recuperação de arquivo: Um usuário apaga acidentalmente um arquivo e pede que

Leia mais

Hashing. Estruturas de Dados. Motivação

Hashing. Estruturas de Dados. Motivação Estruturas de Dados Hashing Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia). Motivação

Leia mais

Simulação Computacional de Sistemas, ou simplesmente Simulação

Simulação Computacional de Sistemas, ou simplesmente Simulação Simulação Computacional de Sistemas, ou simplesmente Simulação Utilização de métodos matemáticos & estatísticos em programas computacionais visando imitar o comportamento de algum processo do mundo real.

Leia mais

Qualidade em e-serviços multicanal

Qualidade em e-serviços multicanal Qualidade em e-serviços multicanal Em anos recentes temos assistido a um grande crescimento dos serviços prestados pela internet (e-serviços). Ao longo deste percurso, os e-serviços têm também adquirido

Leia mais

Especialização em Engenharia de Software e Banco de Dados

Especialização em Engenharia de Software e Banco de Dados Especialização em Engenharia de Software e Banco de Dados Disciplina: Engenharia de Software Tópico: Introdução Prof. Rodolfo Miranda de Barros rodolfo@uel.br Grandes verdades sobre o desenvolvimento e

Leia mais

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA Detecção e investigação de ameaças avançadas. INFRAESTRUTURA DESTAQUES A infraestrutura do RSA Security Analytics Arquitetura modular para coleta distribuída Baseada em metadados para indexação, armazenamento

Leia mais

Outras Máquinas de Turing

Outras Máquinas de Turing Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal

Leia mais

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO 6.1 - INTRODUÇÃO CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO Existem problemas que podem ter mais de um caminho a ser seguido para seleção correta, ou existem restrições em suas soluções. O sujeito que irá executar

Leia mais

Programação Recursiva versão 1.02

Programação Recursiva versão 1.02 Programação Recursiva versão 1.0 4 de Maio de 009 Este guião deve ser entregue, no mooshak e no moodle, até às 3h55 de 4 de Maio. AVISO: O mooshak é um sistema de avaliação e não deve ser utilizado como

Leia mais

Conceitos de Segurança em Sistemas Distribuídos

Conceitos de Segurança em Sistemas Distribuídos Conceitos de Segurança em Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 30 de novembro de 2011

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Figura 1.1: Exemplo de links patrocinados no Google

Figura 1.1: Exemplo de links patrocinados no Google 1 Links Patrocinados 1.1 Introdução Links patrocinados são aqueles que aparecem em destaque nos resultados de uma pesquisa na Internet; em geral, no alto ou à direita da página, como na Figura 1.1. Figura

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 1: Apresentação António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de Informática, Faculdade Engenharia,

Leia mais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Interface Homem Máquina para Domótica baseado em tecnologias Web Interface Homem Máquina para Domótica baseado em tecnologias Web João Alexandre Oliveira Ferreira Dissertação realizada sob a orientação do Professor Doutor Mário de Sousa do Departamento de Engenharia

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Computação quântica:! realizações e desafios! Ernesto F. Galvão Instituto de Física - UFF

Computação quântica:! realizações e desafios! Ernesto F. Galvão Instituto de Física - UFF Computação quântica:! realizações e desafios! Ernesto F. Galvão Instituto de Física - UFF XV Escola Regional de Informática PR 2009 Resumo Introdução de Turing à computação quântica Mecânica quântica para

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers)

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais