53
Teoria da Computação.

Aula de informática teoria da computação (2)

Embed Size (px)

Citation preview

Page 1: Aula de informática   teoria da computação (2)

Teoria da

Computação.

Page 2: Aula de informática   teoria da computação (2)

Computação pode ser definida como a solução de um problema ou, formalmente, o cálculo de uma função, através de um algoritmo. A teoria da computação, um subcampo da ciência da computação e matemática, busca determinar quais problemas podem ser computados em um dado modelo de computação.

Page 3: Aula de informática   teoria da computação (2)

Por milhares de anos, a computação foi feita com lápis e papel, ou giz e quadro, ou mentalmente, às vezes com a ajuda de tabelas.

A teoria da computação começou no início do século XX, antes dos computadores eletrônicos modernos terem sido inventados.

Page 4: Aula de informática   teoria da computação (2)

Naquela época, matemática tentavam descobrir quais problemas de matemática poderiam ser resolvidos através de métodos simples e quais não poderiam. O primeiro passo era definir o que exatamente eles chamavam "método simples" de solução de problemas. Em outras palavras, era necessário um modelo formal de computação. Muitos modelos computacionais diferentes foram desenvolvidos por estes primeiros pesquisadores.

Page 5: Aula de informática   teoria da computação (2)

A Inteligência artificial (AI, do inglês artificial intelligence) também veio implementar esses modelos computacionais. Ela estuda a forma de desenhar programas de computador que exibem características que comumente associamos com o comportamento humano inteligente, ela se propõe a combinar os métodos de busca com grandes bases de conhecimentos especializados.

Page 6: Aula de informática   teoria da computação (2)

Inteligência Artificial

A questão sobre o que é inteligência artificial, mesmo como definida anteriormente, pode ser separada em duas partes: "qual a natureza do artificial" e "o que é inteligência?” A primeira questão é de resolução relativamente fácil, apontando, no entanto para a questão de o que poderá o homem construir.

Page 7: Aula de informática   teoria da computação (2)

A segunda questão é consideravelmente mais difícil, levantando a questão da consciência, identidade e mente (incluindo a mente inconsciente) juntamente com a questão de que componentes estão envolvidos no único tipo de inteligência que se aceita como estando ao alcance do nosso estudo: a inteligência do ser humano. Os estudos de animais e de sistemas artificiais que não são modelos triviais começam a ser considerado como matéria de estudo na área da inteligência.

Page 8: Aula de informática   teoria da computação (2)

As primeiras máquinas mecânicas de calcular

  A primeira considerada máquina de calcular foi

desenvolvida por Wilhelm Schickard (1592-1635). Esta fazia multiplicação e divisão, mas foi perdida durante a Guerra dos Trinta Anos.

A primeira calculadora que fazia somas e subtrações foi inventada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal (1623-1662).

Page 9: Aula de informática   teoria da computação (2)

Pascal, que aos 18 anos trabalhava com seu pai em um escritório de coleta de impostos na cidade de Rouen (uma cidade da região francesa da Alta Normandia, em França. É a capital do departamento do Seine-Maritime e da região da Alta-Normandia, localizando-se na foz do rio Sena. Tem cerca de 530 mil habitantes. Era designada por Rotomagus pelos romanos.), desenvolveu a máquina para auxiliar o seu trabalho de contabilidade.

Page 10: Aula de informática   teoria da computação (2)

Pascal recebeu uma patente do rei da França para que lançasse sua máquina no comércio. A comercialização de suas calculadoras não foi satisfatória devido a seu funcionamento pouco confiável, apesar de Pascal ter construído cerca de 50 versões. As máquinas de calcular, descendente da Pascalina, ainda hoje podem ser encontradas em uso por algumas lojas de departamentos.

Page 11: Aula de informática   teoria da computação (2)

Em 1671, o filósofo e matemático alemão de Leipzig, Gottfried Wilhelm Leibniz (21 de junho de 1646 - 14 de novembro de 1716) introduziu o conceito de realizar multiplicações e divisões através de adições e subtrações sucessivas. Em 1694, a máquina foi construída, no entanto, sua operação apresentava muita dificuldade e sujeita a erros.

Page 12: Aula de informática   teoria da computação (2)

Em 1820, o francês natural de Paris, Charles Xavier Thomas, conhecido como Thomas de Colmar, (1785-1870) projetou e construiu uma máquina capaz de efetuar as 4 operações aritméticas básicas: a Arithmometer. Esta foi à primeira calculadora realmente comercializada com sucesso e fazia multiplicações com o mesmo princípio da calculadora de Leibnitz e com a assistência do usuário, efetuava as divisões.

Page 13: Aula de informática   teoria da computação (2)

A revolução industrial   Em 1801, na França, durante a Revolução

Industrial, Joseph Marie Jacquard, mecânico francês, (1752-1834) inventou um tear mecânico controlado por grandes cartões perfurados. Sua máquina era capaz de produzir tecidos com desenhos bonitos e intrincados. Foi tamanho o sucesso que Jacquard foi quase morto quando levou o tear para Lyons: as pessoas tinham medo que o tear lhes fizesse perder o emprego. Em 7 anos, já havia 11 mil teares desse tipo operando na França.

Page 14: Aula de informática   teoria da computação (2)

Babbage e Ada   O brilhante matemático inglês Charles Babbage (26 de

dezembro de 1791 - 18 de outubro de 1871) é conhecido como o "Pai do Computador". Babbage projetou o chamado "Calculador Analítico", (Dispositivo criado por Babbage que teria sido um computador moderno em pleno desenvolvimento com um reconhecido ciclo de IPOS - entrada, processamento, saída e armazenamento), e teria utilizado cartões perfurados de Jacquard para entrada de dados.

Muito próximo da concepção de um computador atual.

Page 15: Aula de informática   teoria da computação (2)

O projeto, totalmente mecânico, era composto de uma memória, um engenho central, engrenagens e alavancas usadas para a transferência de dados da memória para o engenho centrais e dispositivos para entrada e saída de dados. O calculador utilizaria cartões perfurados e seria automático.

Por algum tempo, o governo britânico financiou Babbage para construir a sua invenção.

Page 16: Aula de informática   teoria da computação (2)

Em parceria com Charles Babbage, Ada Augusta (1815-1852) ou Lady Lovelace, filha do poeta Lord Byron, era matemática amadora entusiasta. Ela tornou-se a pioneira da lógica de programação, escrevendo séries de instruções para o calculador analítico. Ada inventou o conceito de subrotina, descobriu o valor das repetições - os laços (loops) e iniciou o desenvolvimento do desvio condicional.

Page 17: Aula de informática   teoria da computação (2)

Babbage teve muitas dificuldades com a tecnologia da época, que era inadequada para se construir componentes mecânicos com a precisão necessária. Com a suspensão do financiamento por parte do governo inglês, Babbage e Ada utilizaram a fortuna da família Byron até a falência, sem que pudessem concluir o projeto e o calculador analítico nunca foi construído.

Page 18: Aula de informática   teoria da computação (2)

A lógica booleana   As máquinas do início do século XIX utilizavam base

decimal (0 a 9), mas foram encontradas dificuldades em implementar um dígito decimal em componentes eletrônicos, pois qualquer variação provocada por um ruído causaria erros de cálculo consideráveis.

O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana, onde as variáveis assumem apenas valores 0 e 1 (verdadeiro e falso), e passou a ser utilizada a partir do início do século XX.

Page 19: Aula de informática   teoria da computação (2)

Hollerith e sua máquina de perfurar cartões   Por volta de 1890, Dr. Herman Hollerith (1860-1929)

foi o responsável por uma grande mudança na maneira de se processar os dados dos censos da época.

Os dados do censo de 1880, manualmente processados, levaram 7 anos e meio para serem compilados. Os do censo de 1890 foram processados em 2 anos e meio, com a ajuda de uma máquina de perfurar cartões e máquinas de tabular e ordenar, criadas por Hollerith e sua equipe.

Page 20: Aula de informática   teoria da computação (2)

As informações sobre os indivíduos eram armazenadas por meio de perfurações em locais específicos do cartão. Nas máquinas de tabular, um pino passava pelo furo e chegava a uma jarra de mercúrio, fechando um circuito elétrico e causando um incremento de 1 em um contador mecânico.

Mais tarde, Hollerith fundou uma companhia para produzir máquinas de tabulação. Anos depois, em 1924, essa companhia veio a se chamar IBM.

Page 21: Aula de informática   teoria da computação (2)

O primeiro computador   O primeiro computador eletromecânico, o

chamado Z-1, usava relês e foi construído pelo alemão Konrad Zuse (1910-1995) em 1936. Zuse tentou vendê-lo ao governo para uso militar, mas foi subestimado pelos nazistas, que não se interessaram pela máquina.

Page 22: Aula de informática   teoria da computação (2)

A guerra e os computadores   Com a II Guerra Mundial, as pesquisas

aumentaram nessa área. Nos Estados Unidos, a Marinha, em conjunto com a Universidade de Harvard e a IBM, construiu em 1944 o Mark I, um gigante eletromagnético. Num certo sentido, essa máquina era a realização do projeto de Babbage.

Mark I ocupava 120 m3, tinha milhares de relês e fazia muito barulho. Uma multiplicação de números de 10 dígitos levava 3 segundos para ser efetuada.

Page 23: Aula de informática   teoria da computação (2)

Em segredo, o exército norte-americano também desenvolvia seu computador. Esse usava apenas válvulas e tinha por objetivo calcular as trajetórias de mísseis com maior precisão.

O engenheiro John Presper Eckert (1919-1995) e o físico John Mauchly (1907-1980) projetaram o ENIAC: Eletronic Numeric Integrator And Calculator. Com 18.000 válvulas, o ENIAC conseguia fazer 500 multiplicações por segundo, porém só ficou pronto em 1946; vários meses após o final da guerra. Os custos para a manutenção e conservação do ENIAC eram proibitivos, pois dezenas a centenas de válvulas queimavam a cada hora e o calor gerado por elas necessitava ser controlado por um complexo sistema de refrigeração, além dos gastos elevadíssimos de energia elétrica.

Page 24: Aula de informática   teoria da computação (2)

Em sua proposta, Von Neumann sugeriu que as instruções fossem armazenadas na memória do computador. Até então elas eram lidas de cartões perfurados e executadas, uma a uma. Armazená-las na memória, para então executá-las, tornaria o computador mais rápido, já que, no momento da execução, as instruções seriam obtidas com rapidez eletrônica.

A maioria dos computadores de hoje em dia segue ainda o modelo proposto por von Neumann.

Page 25: Aula de informática   teoria da computação (2)

Esse modelo define um computador seqüencial digital em que o processamento das informações é feito passo a passo, caracterizando um comportamento determinístico (ou seja, os mesmos dados de entrada produzem sempre a mesma resposta).

Page 26: Aula de informática   teoria da computação (2)

Gerações de computadores   A arquitetura de um computador depende do seu

projeto lógico, enquanto que a sua implementação depende da tecnologia disponível.

As três primeiras gerações de computadores refletiam a evolução dos componentes básicos do computador (hardware) e um aprimoramento dos programas (software) existentes.

Os computadores de primeira geração (1945–1959) usavam válvulas eletrônicas, quilômetros de fios, eram lentos, enormes e esquentavam muito.

Page 27: Aula de informática   teoria da computação (2)

A segunda geração (1959–1964) substituiu as válvulas eletrônicas por transistores e os fios de ligação por circuitos impressos, o que tornou os computadores mais rápidos, menores e de custo mais baixo.

A terceira geração de computadores (1964–1970) foi construída com circuitos integrados, proporcionando maior compactação, redução dos custos e velocidade de processamento da ordem de microssegundos. Tem início a utilização de avançados sistemas operacionais.

Page 28: Aula de informática   teoria da computação (2)

A quarta geração, de 1970 até hoje, é caracterizada por um aperfeiçoamento da tecnologia já existente, proporcionando uma otimização da máquina para os problemas do usuário, maior grau de miniaturização, confiabilidade e velocidade maior, já da ordem de nanosegundos (bilionésima parte do segundo).

Page 29: Aula de informática   teoria da computação (2)

Lógicas nos Computadores   Lógica é extensivamente usada em áreas como

Inteligência Artificial, e Ciência da computação. Nas décadas de 50 e 60, pesquisadores previram

que quando o conhecimento humano pudesse ser expresso usando lógica com notação matemática, supunham que seria possível criar uma máquina com a capacidade de pensar, ou seja, inteligência artificial. Isto se mostrou mais difícil que o esperado em função da complexidade do raciocínio humano.

Page 30: Aula de informática   teoria da computação (2)

Programação lógica é uma tentativa de fazer computadores usarem raciocínio lógico e a linguagem de programação Prolog é comumente utilizada para isto.

Na lógica simbólica e lógica matemática, demonstrações feitas por humanos podem ser auxiliadas por computador. Usando demonstração automática de teoremas os computadores podem achar e checar demonstrações, assim como trabalhar com demonstrações muito extensas.

Na ciência da computação, a álgebra booleana é à base do projeto de hardware.

Page 31: Aula de informática   teoria da computação (2)

Hardware   Num computador, essa é a parte física

propriamente dita (uma tradução de hardware poderia ser lataria), ou seja, a máquina em si, que é dividida em vários componentes. O hardware se distingue dos dados que o computador opera e do software que fornece instruções, baseadas nos dados, para o hardware.

Page 32: Aula de informática   teoria da computação (2)

O firmware, como a BIOS, do computador pessoal, por exemplo, é um software que é acoplado ao hardware, mas o firmware é de interesse dos programadores e engenheiros de computação e não é algo de que os usuários de computador precisam se preocupar.

Um computador pessoal (PC) típico contém em uma caixa horizontal ou torre, o gabinete, as seguintes partes:

Page 33: Aula de informática   teoria da computação (2)

Placa mãe que contém a CPU, a memória principal e outras partes, e tem slot para placas de expansão.

Fonte de energia - Uma caixa que contém um transformador, um regulador de tensão (voltagem) e um ou mais ventilador (es).

Controladores de armazenamentos, do tipo IDE, SCSI, Serial ATA ou outro, que controla o disco rígido, o drive de disquete, o CD-ROM, DVD e outros dispositivos; os controladores ficam diretamente na CPU (on-board) ou em placas de expansão.

Page 34: Aula de informática   teoria da computação (2)

Controladora de vídeo que produz as saídas para o Monitor e algumas vezes para outros dispositivos (como televisores e projetores). Também pode ser colocada fisicamente na própria placa mãe.

O disco rígido, o drive de disquete e outros drives para armazenamento de dados.

Portas de conexão com dispositivos externos: porta paralela, porta serial, porta PS/2, USB ou Firewire, que permitem a conexão com o mouse, a impressora e outros dispositivos.

Page 35: Aula de informática   teoria da computação (2)

Periféricos. Entre os periféricos existentes podemos citar o teclado (envia ao computador informações digitadas pelo operador), a impressora (recebe informação do computador e imprime essas informações no papel ou transparência), placa de som (recebe informações de som vindas do processador e envia aos alto-falantes), etc.

 

Page 36: Aula de informática   teoria da computação (2)

Periféricos são aparelhos ou placas que enviam ou recebem informações do computador.

Desde que pela primeira vez se ouviu falar em máquinas de calcular até os dias atuais com nossos supercomputadores que o desenvolvimento e o aperfeiçoamento dos acessórios ligados ao computador vem evoluindo cada vez mais.

Page 37: Aula de informática   teoria da computação (2)

Cada periférico tem sua função definida e executa ou envia tarefas ao computador de acordo com essa função. Dentre muitos periféricos existentes podemos citar teclado (envia ao computador informações digitadas pelo operador), mouse (permite o envio de informações por meio do acionamento de botões virtuais) impressora (recebe informação do computador e imprime essas informações no papel), placa de Som (recebe informações de som vindas do processador e envia à caixa de som), sistemas sensíveis ao toque, calor, luz, impressoras, modem, óculos de simulação, controladores de jogos (joystick), caixas de som, etc.

Page 38: Aula de informática   teoria da computação (2)

Existem três tipos de periféricos: os periféricos de entrada (enviam informação para o computador [teclado, rato, microfone]); os periféricos de saída (recebem informação do computador [monitor, impressora, colunas, headfones]); e os periféricos mistos (enviam/recebem informação para/do computador [écran tácteis, cd's, dvd's, telefones voip]).

Page 39: Aula de informática   teoria da computação (2)

Software   Software, logicial ou programa de computador é

uma seqüência de instruções a serem seguidas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado/informação ou acontecimento.

É composto por uma seqüência lógica de instruções, que é interpretada e executada por um processador. Um programa pode ser executado por qualquer dispositivo capaz de interpretar e executar as instruções de que é formado.

Page 40: Aula de informática   teoria da computação (2)

Quando um software está escrito usando instruções que podem ser executadas diretamente por um processador dizemos que está escrito em linguagem de máquina. A execução de um software também pode ser intermediada por um programa interpretador, responsável por interpretar e executar cada uma de suas instruções. Uma categoria especial e notável de interpretadores são as máquinas virtuais, como a JVM (Máquina Virtual Java), que simulam uns computadores inteiros, reais ou imaginados.

Page 41: Aula de informática   teoria da computação (2)

O dispositivo mais conhecido que dispõe de um processador é o computador. Existem outras máquinas programáveis, como telefone celular, máquinas de automação industrial, calculadora, etc.

Um programa é feito usando Linguagens de Programação, ou instruções do processador. Qualquer computador moderno tem uma variedade de programas que fazem diversas tarefas. Eles podem ser classificados em duas grandes categorias:

Page 42: Aula de informática   teoria da computação (2)

Software de sistema que incluiu o firmware (A BIOS dos computadores pessoais, por exemplo), drivers de dispositivos, o sistema operacional e tipicamente uma interface gráfica que, em conjunto, permitem ao usuário interagir com o computador e seus periféricos.

Page 43: Aula de informática   teoria da computação (2)

Software aplicativo, que permite ao usuário fazer uma ou mais tarefas específicas. Os softwares aplicativos podem ter uma abrangência de uso de larga escala, muitas vezes em âmbito mundial; nestes casos, os programas tendem a ser mais robustos e mais padronizados. Programas escritos para um pequeno mercado têm um nível de padronização menor.

Page 44: Aula de informática   teoria da computação (2)

O Programa tem que ser "carregado" na memória principal para ser executado. Após carregar o programa, o computador entra em funcionamento, executando outros programas. As instruções de um programa aplicativo podem ser passadas para o sistema ou diretamente para o hardware, que recebe as instruções na forma de linguagem de máquina.

Page 45: Aula de informática   teoria da computação (2)

Sistemas Operacionais   Sistema Operacional (como é conhecido

no Brasil), ou sistema operativo (como é conhecido em Portugal), é um conjunto de ferramentas necessárias para que um computador possa ser utilizado de forma adequada. Consiste na camada intermediária entre o aplicativo e o hardware da máquina.

Page 46: Aula de informática   teoria da computação (2)

Este conjunto é constituído por um Kernel, ou núcleo, e um conjunto de Software básicos, que executam operações simples, mas que juntos fazem uma grande diferença.

Se não existisse sistema desse tipo, todo software desenvolvido deveria saber se comunicar com os dispositivos do computador de que precisasse.

Page 47: Aula de informática   teoria da computação (2)

Quando temos um Sistema Operacional, é ele quem precisa saber lidar com os dispositivos, sabendo falar com a placa de som, a internet, os drives de CDC, DVD, Blu-Ray... Assim, um software que seja feito para funcionar neste sistema não precisará de informações específicas do equipamento. Ao invés disso, ele chamará Função do kernel e o Sistema Operacional é que fará a comunicação, repassando os resultados.

Page 48: Aula de informática   teoria da computação (2)

Cada Sistema Operacional pode ter uma Linguagem de máquina própria e distinta. Por isso é comum que softwares feitos para um Sistema Operacional não funcionem em outro.

Page 49: Aula de informática   teoria da computação (2)

Classificações  

Segundo o tipo de comercialização que adotaram, os sistemas operacionais ou sistemas operativos dividem se em quatro tipos:

Sistemas Proprietários - Aqueles que são pagos e cujo código fonte não é livremente disponibilizado. (Windows).

Sistemas Gratuitos - Aqueles que não são pagos, mas cujo código fonte também não é de livre acesso (BeOS).

Sistemas Open Source (Código Aberto) - Aqueles cujo código fonte é aberto (Unix).

Sistemas Livres - Aqueles que são Open Source, e cujo código fonte pode ser livremente alterado (Linux, BSD).

Page 50: Aula de informática   teoria da computação (2)

Microsoft Windows   Microsoft Windows é um sistema

operacional muito popular, criado pela Microsoft, empresa fundada por Bill Gates e Paul Allen.

O Windows é um produto comercial, com preços diferenciados para cada versão, embora haja uma enorme quantidade de cópias ilegais instaladas.

Page 51: Aula de informática   teoria da computação (2)

Apesar do sistema ser conhecido pelas suas falhas críticas na segurança e como plataforma de vírus e spywares, o impacto deste sistema no mundo atual é simplesmente incalculável devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática.

Page 52: Aula de informática   teoria da computação (2)

Significado do nome   A palavra windows em inglês significa janelas. A

sua interface é baseada num padrão de janelas que exibem informações e recebem respostas dos utilizadores através de um teclado ou de cliques do mouse.

Este padrão de interface não foi, no entanto, criado pela Microsoft, como veremos adiante.

O registro da marca Windows foi legalmente complicado, pelo fato de essa palavra ser de uso corrente em inglês.

Page 53: Aula de informática   teoria da computação (2)

Necessidade de um sistema operacional   Podemos dizer que um computador não possui

nenhuma utilidade prática sem pelo menos um sistema operacional instalado. Resumidamente, ele é responsável pelo funcionamento do computador, controle dos periféricos, execução de aplicativos, gerência de memória, rede, etc.

As versões do Windows estão preocupadas em atender essas necessidades no mercado empresial e doméstico, e suas características e falhas devem ser vistas neste contexto.