Conteúdo verificado

Computador

Você sabia ...

Esta seleção wikipedia foi escolhido por voluntários que ajudam Crianças SOS da Wikipedia para este Seleção Wikipedia para as escolas. Para comparar instituições de caridade de patrocínio esta é a melhor ligação de patrocínio .

Computador
Acer Aspire 8920 Gemstone por Georgy.JPG Columbia Supercomputer - NASA avançada Supercomputing Facility.jpg Intertec Superbrain.jpg
2010-01-26-technikkrempel-by-RalfR-05.jpg Pensando Connection Machines Máquina CM-5 Frostburg 2.jpg G5 fornecimento Wikipedia via Gigabit no der Lange Nacht Wissenschaften 2006, em Dresden.JPG
DM IBM S360.jpg Acorn BBC Master Series Microcomputer.jpg Dell PowerEdge Servers.jpg

Um computador é um dispositivo de uso geral que pode ser programado para realizar um conjunto finito de operações aritméticas ou lógicas. Uma vez que uma sequência de operações pode ser prontamente alterado, o computador pode resolver mais do que um tipo de problema.

Convencionalmente, um computador consiste em, pelo menos, um elemento de processamento, tipicamente uma unidade de processamento central (CPU) e uma forma de memória. O elemento de processamento realiza operações aritméticas e lógicas, e uma unidade de sequenciamento e controle que pode alterar a ordem das operações com base nas informações armazenadas. Dispositivos periféricos permitem que a informação a ser recuperada a partir de uma fonte externa, e o resultado das operações salva e recuperada.

O primeiro electrónico computadores digitais foram desenvolvidos entre 1940 e 1945 no Reino Unido e Estados Unidos. Originalmente, eles eram do tamanho de um quarto grande, consumir tanta energia como várias centenas de computadores pessoais (PCs) modernos. Nesta época mecânico computadores analógicos foram usadas para aplicações militares.

Os computadores modernos baseados em circuitos integrados são milhões a bilhões de vezes mais capazes do que as primeiras máquinas, e ocupam uma fração do espaço. Computadores simples são pequenos o suficiente para caber em dispositivos móveis, e computadores móveis pode ser alimentado por pequenas baterias. Os computadores pessoais em suas diversas formas são ícones da Era da Informação e são o que a maioria das pessoas pensam como "computadores". No entanto, o computadores embutidos encontrados em muitos dispositivos de MP3 players para aviões de caça e de brinquedos a robôs industriais são os mais numerosos.

História da computação

O Tear Jacquard, em exposição no Museu de Ciência e Indústria de Manchester, na Inglaterra, foi um dos primeiros dispositivos programáveis.

O primeiro uso da palavra "computador" foi gravado em 1613 em um livro chamado "The yong mans rabiscos" pelo Inglês escritor Richard Braithwait I haue ler o computador mais verdadeira do Times, eo melhor aritmético que euer respirava, e ele reduceth teus dayes para um número curto. Ele se refere a uma pessoa que realizou os cálculos, ou cálculos, ea palavra continuou com o mesmo significado até meados do século 20. A partir do final do século 19 a palavra começou a tomar sobre o seu significado mais familiar, uma máquina que realiza cálculos.

De função limitada primeiros computadores

A história do computador moderno começa com duas tecnologias separadas, cálculo e programação automatizada. No entanto nenhum dispositivo pode ser identificado como o computador mais antigo, em parte devido à aplicação inconsistente de que prazo. Alguns dispositivos são vale a pena mencionar, porém, como alguns auxílios mecânicos para a computação, que foram muito bem-sucedida e sobreviveram por séculos, até o advento da calculadora eletrônica , como o sumério ábaco , projetado em torno de 2500 aC, dos quais um descendente venceu uma competição de velocidade contra um secretária moderna máquina de calcular no Japão em 1946, a réguas de cálculo, inventado na década de 1620, as quais foram realizadas em cinco Missões espaciais Apollo, incluindo para a lua e sem dúvida o astrolabio eo Mecanismo de Antikythera, um antigo computador astronômico construído pelos gregos em torno de 80 BC. O matemático grego Heron de Alexandria (c. 10-70 AD) construiu um teatro mecânica que realizada uma peça com duração de 10 minutos e foi operado por um sistema complexo de cordas e tambores que pode ser considerado como um meio de decidir quais as partes do mecanismo que realizada ações e quando. Esta é a essência da programação.

Por volta do final do século 10, o monge francês Gerbert d'Aurillac trouxe de volta a partir de Espanha, os desenhos de uma máquina inventada pelo Mouros que responderam Sim ou Não para as perguntas foi perguntado. Mais uma vez, no século 13, os monges Albertus Magnus e Roger Bacon construiu a falar andróides sem qualquer desenvolvimento (Albertus Magnus reclamou que ele tinha desperdiçado quarenta anos de sua vida, quando Tomás de Aquino , apavorado com sua máquina, destruído).

Em 1642, o Renascimento viu a invenção do calculadora mecânica, um dispositivo que poderia realizar todas as quatro operações aritméticas sem depender de inteligência humana. A calculadora mecânica estava na origem do desenvolvimento de computadores de duas maneiras distintas. Inicialmente, foi na tentativa de desenvolver calculadoras mais poderosas e mais flexíveis que o computador foi teorizada pela primeira vez por Charles Babbage e, em seguida desenvolvidos. Em segundo lugar, o desenvolvimento de uma low-cost calculadora eletrônica , sucessora da calculadora mecânica, resultou no desenvolvimento de Intel do primeiro disponível comercialmente microprocessador de circuito integrado.

Primeiros computadores de uso geral

Em 1801, José Marie Jacquard feita uma melhoria para o tear têxtil através da introdução de uma série de cartões perfurados de papel como um modelo que permitiu que seu tear para tecer intrincados padrões automaticamente. O tear Jacquard resultante foi um passo importante no desenvolvimento de computadores, porque o uso de cartões perfurados para definir padrões de tecidos pode ser visto como um início, embora limitado, forma de programação.

A imagem mais famosa do Precoce História da Computação

Este retrato de Jacquard foi tecido de seda em um tear Jacquard e exigiu 24.000 cartões perfurados para criar (1839). Só foi produzido por encomenda. Charles Babbage possuiu um desses retratos; que o inspirou na utilização de cartões perfurados em sua motor analítico
O Zuse Z3 de 1941, considerado o primeiro trabalho, máquina de computação totalmente automático programável do mundo.

Foi a fusão de cálculo automático com capacidade de programação que produziu os primeiros computadores reconhecíveis. Em 1837, Charles Babbage foi o primeiro a conceituar e projetar um totalmente programável computador mecânico, o máquina analítica. Finanças limitadas e incapacidade de Babbage para resistir a mexer com o projeto significava que o dispositivo nunca foi concluída-no entanto, seu filho, Henry Babbage, completou uma versão simplificada da unidade de computação da máquina analítica (a usina) em 1888. Ele deu uma demonstração bem sucedida de sua usar em mesas de computação em 1906. Esta máquina foi dado ao Museu da Ciência em South Kensington, em 1910.

No final de 1880, Herman Hollerith inventou a gravação de dados em um meio legível por máquina. Usos anteriores do media legíveis por máquina tinha sido para o controle, não dados. "Depois de alguns ensaios iniciais com fita de papel, ele se estabeleceu em cartões perfurados ... "Para processar esses cartões perfurados que ele inventou o tabulator, eo máquinas perfuradoras. Estes três invenções eram a fundação da indústria de processamento de informação moderna. Grande escala de processamento de cartões perfurados de dados automatizada foi realizada pela 1890 United States Census pela companhia de Hollerith, que mais tarde tornou-se o núcleo da IBM . Até o final do século 19 uma série de idéias e tecnologias, que viria a revelar-se útil na realização de computadores práticos, tinham começado a aparecer: Álgebra booleana, o tubo de vácuo (válvula thermionic), cartões perfurados e fita, ea teletipo.

Durante a primeira metade do século 20, muitos científica as necessidades de computação foram recebidos por cada vez mais sofisticados computadores analógicos, que usaram um modelo mecânico ou eléctrico directo do problema como uma base para computação. No entanto, estes não eram programáveis e, geralmente, não tinham a versatilidade e precisão dos modernos computadores digitais.

Alan Turing é amplamente considerado como o pai da moderna ciência da computação . Em 1936, Turing proporcionou uma formalização influente do conceito de algoritmo e com a computação Máquina de Turing, proporcionando um modelo para o computador digital eletrônico. De seu papel na criação do computador moderno, A revista Time em nomear Turing um dos 100 pessoas mais influentes do século 20, diz: "O fato é que todo aquele que bate em um teclado, abrindo uma planilha ou um programa de processamento de texto, está trabalhando em uma encarnação de uma máquina de Turing".

O ENIAC, que se tornou operacional em 1946, é considerado como sendo o primeiro computador electrónico para uso geral.
EDSAC foi um dos primeiros computadores para executar o programa armazenado ( arquitetura de von Neumann).

O Atanasoff-Berry Computer (ABC) foi o primeiro computador digital eletrônico do mundo, embora não programável . Atanasoff é considerado um dos pais do computador. Idealizado em 1937 pelo professor de física Iowa State College John Atanasoff, e construído com a ajuda do estudante de graduação Clifford Berry, a máquina não era programável, sendo projetado apenas para resolver sistemas de equações lineares. O computador fez uso de computação paralela. A 1.973 decisão do tribunal em uma disputa de patentes descobriu que a patente para 1946 ENIAC computador derivado do Computador Atanasoff-Berry.

O primeiro computador controlado por programa foi inventado por Konrad Zuse, que construiu o Z3, uma máquina de computação eletromecânica, em 1941. O primeiro computador eletrônico programável foi o Colossus, construído em 1943 por Flores Tommy.

George Stibitz é reconhecido internacionalmente como um pai do computador digital moderno. Enquanto trabalhava nos Laboratórios Bell em novembro de 1937, Stibitz inventou e construiu uma calculadora de relé ele apelidado de "Modelo K" (de "mesa da cozinha", em que ele tinha montado ele), que foi o primeiro a usar binários circuitos para executar uma operação aritmética. Modelos posteriores adicionou maior sofisticação incluindo aritmética complexa e programação.

Uma sucessão de cada vez mais poderoso e flexível dispositivos de computação foram construídos na década de 1930 e 1940, adicionando gradualmente os principais recursos que são vistos em computadores modernos. O uso de digital eletrônica (em grande parte inventada por Claude Shannon em 1937) e programação mais flexível foram passos de importância vital, mas a definição de um ponto ao longo desta estrada como "o primeiro computador eletrônico digital" é difícil Shannon 1940 realizações notáveis incluem.:

  • Konrad Zuse de eletromecânicos "máquinas z". O Z3 (1941) foi a primeira máquina a trabalhar com binário aritmético, incluindo aritmética de ponto flutuante e uma medida da capacidade de programação. Em 1998, o Z3 foi provado ser Turing completo, portanto, ser o primeiro computador operacional do mundo.
  • A não programável Atanasoff-Berry Computer (iniciada em 1937, concluída em 1941), que usado com base do tubo de vácuo computação, números binários, e memória capacitor regenerativo. O uso de memória regenerativa permitiu-lhe ser muito mais compacto do que seus pares (sendo aproximadamente o tamanho de uma grande mesa ou bancada), uma vez que os resultados intermediários pode ser armazenado e, em seguida, alimentado de volta para o mesmo conjunto de elementos de computação.
  • A secreto britânico Computadores Colossus (1943), que tiveram de programação limitada, mas demonstrou que um dispositivo com milhares de tubos poderiam ser razoavelmente confiável e eletronicamente reprogramável. Foi utilizado para quebrando os códigos do tempo de guerra alemães.
  • O Harvard Mark I (1944), um computador electromecânico em larga escala com programabilidade limitada.
  • O Exército dos EUA Laboratório de Pesquisa Balística ENIAC (1946), que usou decimal aritmética e às vezes é chamado o primeiro propósito geral eletrônica computador (desde Konrad Zuse de Z3 de 1941 usado electromagnéticos em vez de eletrônica ). Inicialmente, no entanto, o ENIAC tinha uma arquitectura, a qual exigida uma religação plugboard para mudar sua programação.

Arquitetura de programa armazenado

Vários desenvolvedores de ENIAC, reconhecendo suas falhas, veio com um design muito mais flexível e elegante, o que veio a ser conhecido como a "arquitetura de programa armazenado" ou arquitetura de von Neumann. Este projeto foi primeiro descrita formalmente por John von Neumann no papel Primeiro esboço de um relatório sobre o EDVAC, distribuídos em 1945. Uma série de projetos de desenvolvimento de computadores baseados na arquitetura de programa armazenado começou em torno deste tempo, a primeira das quais foi concluída em 1948 no Universidade de Manchester, na Inglaterra, o Manchester Pequena Escala Máquina Experimental (SSEM ou "Baby"). O Armazenamento Delay calculadora eletrônica automática (EDSAC), completou um ano após a SSEM na Universidade de Cambridge, foi a primeira aplicação prática, não-experimental do projeto de programa armazenado e foi colocada em uso imediatamente para o trabalho de pesquisa na universidade. Pouco tempo depois, a máquina descrita originalmente por papel- de von Neumann EDVAC-foi concluída, mas não vê o uso em tempo integral por um período adicional de dois anos.

Quase todos os computadores modernos implementar alguma forma de a arquitetura de programa armazenado, tornando-se o traço único pelo qual a palavra "computador" passa a ser definido. Enquanto as tecnologias utilizadas nos computadores mudaram dramaticamente desde os primeiros computadores eletrônicos, general-purpose da década de 1940, a maioria ainda usa a arquitetura de von Neumann.

Morre de um Intel 80486DX2 microprocessador (tamanho real: 12 × 6,75 milímetros) em sua embalagem

Começando na década de 1950, soviéticos cientistas Sergei Sobolev e Nikolay Brusentsov realizou uma pesquisa sobre computadores ternários, dispositivos que operam em um sistema de numeração de base de três de -1, 0 e 1 ao invés do convencional numeração binária sistema sobre o qual a maioria dos computadores são baseadas. Eles projetaram o Setun, um computador ternário funcional, em Universidade Estadual de Moscou. O dispositivo foi colocado em produção limitada na União Soviética, mas suplantado pela arquitetura binário mais comum.

Semicondutores e microprocessadores

Os computadores que usam tubos de vácuo como os seus elementos eletrônicos estavam em uso durante toda a década de 1950, mas na década de 1960 tinham sido amplamente substituído pelo máquinas-base do transistor, que eram menores, mais rápidos, mais baratos de produzir, necessária menos energia, e foram mais confiável. O primeiro computador transistorizada foi demonstrado no Universidade de Manchester em 1953. Na década de 1970, circuito integrado de tecnologia e subsequente criação de microprocessadores, tais como o Intel 4004, diminuiu ainda mais o tamanho e custo e ainda mais a velocidade aumentada ea confiabilidade dos computadores. No final de 1970, muitos produtos, tais como gravadores de vídeo contido computadores dedicados chamados microcontroladores, e eles começaram a aparecer como um substituto para controles mecânicos nos aparelhos domésticos, como máquinas de lavar roupas. A década de 1980 testemunhou computadores domésticos e computadores pessoais agora onipresente. Com a evolução da Internet, os computadores pessoais estão se tornando tão comum quanto a televisão eo telefone na casa.

Moderno smartphones são totalmente programáveis computadores em seu próprio direito, ea partir de 2009 pode muito bem ser a forma mais comum de tais computadores em existência.

Programas

A característica definidora dos computadores modernos que os distingue de todas as outras máquinas é que eles podem ser programados . Isto quer dizer que algum tipo de instruções (a programa) pode ser dado ao computador, e que será processada. Os computadores modernos baseados na von Neumann arquitetura muitas vezes têm o código de máquina, sob a forma de um linguagem de programação imperativa.

Em termos práticos, um programa de computador pode ser apenas algumas instruções ou estender a muitos milhões de instruções, assim como os programas de processadores de texto e navegadores da Web, por exemplo. Um computador moderno típico pode executar milhares de milhões de instruções por segundo ( gigaflops) e raramente comete um erro ao longo de muitos anos de operação. Programas de computador grandes que consistem em vários milhões de instruções pode levar equipes de programadores anos para escrever, e devido à complexidade da tarefa quase certamente conter erros.

Arquitetura programa armazenado

Réplica da Pequena Escala Máquina Experimental (SSEM), o primeiro do mundo computador de programa armazenado, no Museu de Ciência e Indústria em Manchester, Inglaterra

Esta seção aplica-se a mais comum RAM máquina baseados em computadores.

Na maioria dos casos, as instruções do computador são simples: acrescentar um número a outro, mover alguns dados de um local para outro, enviar uma mensagem para algum dispositivo externo, etc. Estas instruções são lidas a partir do computador de memória e são geralmente realizadas ( executado) na ordem em que foram dadas. No entanto, geralmente há instruções especializadas para dizer ao computador para saltar para a frente ou para trás para algum outro lugar no programa e para continuar a execução de lá. Estes são chamados de instruções "Jump" (ou ramos). Além disso, as instruções de salto pode ser feita a acontecer condicionalmente modo que diferentes sequências de instruções podem ser utilizadas, dependendo do resultado de algum cálculo anterior ou algum evento externo. Muitos computadores apoiar diretamente sub-rotinas, proporcionando um tipo de salto que "lembra" o local em que saltou de e outra instrução para retornar à instrução seguinte ao instrução de salto.

A execução do programa pode ser comparado a leitura de um livro. Enquanto uma pessoa normalmente ler cada palavra e linha em seqüência, eles podem às vezes saltar de volta para um lugar no início do texto ou pular seções que não são de interesse. Da mesma forma, um computador pode, por vezes, voltar e repetir as instruções de alguma parte do programa uma e outra vez até que alguma condição interna é atendida. Isso é chamado de fluxo de controle dentro do programa e é o que permite que o computador para executar tarefas repetidamente sem intervenção humana.

Comparativamente, uma pessoa usando um bolso calculadora pode executar uma operação aritmética básica, tais como a adição de dois números com apenas alguns botões pressionados. Mas, para somar todos os números de 1 a 1.000 levaria milhares de prensas de botão e um monte de tempo, com uma certeza perto de cometer um erro. Por outro lado, um computador pode ser programado para fazer isto com apenas algumas instruções simples. Por exemplo:

       mov No. 0, soma;  definir soma a 0 mov No. 1, num;  definir num para um loop: adicionar num, soma;  adicionar num para resumir adicionar No. 1, num;  adicionar 1 a num cmp num, # 1000;  comparar a 1000 num loop de ble;  se num <= 1000, voltar a parada 'loop';  fim do programa.  parar de correr 

Uma vez disse para executar este programa, o computador irá executar a tarefa adição repetitiva sem intervenção humana. Ele quase nunca vai cometer um erro e um PC moderno pode completar a tarefa em cerca de um milionésimo de segundo.

Erros

O primeiro bug de computador real, uma mariposa encontrado preso em um relé do computador Harvard Mark II

Erros em programas de computador são chamados " bugs ". Eles podem ser benignos e não afectar a utilidade do programa, ou tem apenas efeitos subtis. Mas em alguns casos, podem fazer com que o programa ou a totalidade do sistema para" pendurar "- tornar-se insensível à entrada como cliques do mouse ou as teclas digitadas - a falhar completamente, ou para acidente. Caso contrário insetos benignos podem por vezes ser aproveitada para a intenção maliciosa por um usuário sem escrúpulos escrever um explorar, código projetado para tirar vantagem de um erro e interromper a execução adequada de um computador. Erros geralmente não são culpa do computador. Desde que os computadores apenas executar as instruções que são dadas, erros são quase sempre o resultado de erro do programador ou um descuido fez no projeto do programa.

Grace Hopper é creditado por ter primeiro usou o termo "bugs" em computação depois de uma mariposa morta foi encontrada curto-circuito de um relé no Computador Harvard Mark II em setembro 1947.

Código de máquina

Na maioria dos computadores, as instruções individuais são armazenados como código de máquina com cada instrução está sendo dado um número único (o seu código de operação ou opcode para o short). O comando para adicionar dois números juntos teria um código de operação, o comando para multiplicá-los teria um código de operação diferente e assim por diante. Os computadores mais simples são capazes de executar qualquer um de um punhado de instruções diferentes; os computadores mais complexos têm várias centenas para escolher, cada um com um código numérico único. Uma vez que a memória do computador é capaz de armazenar números, que também pode armazenar os códigos de instrução. Isto leva ao facto importante que os programas de inteiros (que são apenas listas de estas instruções) pode ser representada como listas de números e si pode ser manipulado no interior do computador, da mesma maneira como dados numéricos. O conceito fundamental de armazenar programas na memória do computador juntamente com o dado com que operam é o cerne da von Neumann, ou programa armazenado, arquitetura. Em alguns casos, um computador pode armazenar parte ou a totalidade do seu programa na memória que é mantido separado a partir dos dados que opera. Isso é chamado de Arquitectura de Harvard após o Harvard Mark I computador. Computadores de von Neumann modernos mostrar alguns traços da arquitetura de Harvard, em seus projetos, tais como em caches de CPU .

Embora seja possível escrever programas de computador como uma longa lista de números ( linguagem de máquina) e enquanto esta técnica foi utilizada com muitos computadores antigos, é extremamente tedioso e potencialmente sujeito a erros de fazê-lo na prática, especialmente para programas complicados. Em vez disso, cada instrução básica pode ser dado um nome curto que é indicativo da sua função e fácil de lembrar - um mnemonic tais como ADD, SUB, MULT ou saltar. Estes mnemônicos são conhecidas coletivamente como um computador de linguagem assembly. Conversão de programas escritos em linguagem assembly em algo que o computador pode realmente entender (linguagem de máquina) é geralmente feito por um programa de computador chamado de assembler.

A década de 1970 cartão perfurado contendo uma linha a partir de uma Programa FORTRAN. O cartão lê: "Z (1) = Y + W (1)" e é rotulado de "PROJ039" para fins de identificação.

Linguagem de programação

As linguagens de programação fornecem várias maneiras de especificar os programas de computador para funcionar. Ao contrário linguagens naturais, as linguagens de programação são projetados para permitir qualquer ambiguidade e ser concisa. Eles são línguas puramente escritas e muitas vezes são difíceis de ler em voz alta. Eles são geralmente quer traduzida em por um código de máquina ou um compilador montador antes de ser executado, ou traduzida diretamente em tempo de execução por um intérprete. Por vezes, os programas são executados através de um método híbrido entre as duas técnicas.

Linguagens de baixo nível

As linguagens de máquina e as línguas de montagem que os representam (coletivamente denominados linguagens de programação de baixo nível) tendem a ser exclusivo para um determinado tipo de computador. Por exemplo, uma Arquitetura ARM computador (como pode ser encontrado em uma Ou um PDA videogame de mão) não podem entender a linguagem de máquina de um Intel Pentium ou o AMD Athlon 64 computador que pode estar em um PC .

Linguagens de alto nível

Embora consideravelmente mais fácil do que em linguagem de máquina, escrevendo programas longos em linguagem assembly é muitas vezes difícil e também é sujeito a erros. Portanto, os programas mais práticos são escritos em mais abstrato linguagens de programação de alto nível que são capazes de expressar as necessidades do programador de forma mais conveniente (e, assim, ajudar a reduzir o erro do programador). Linguagens de alto nível são geralmente "compilado" em linguagem de máquina (ou às vezes em linguagem assembly e, em seguida, em linguagem de máquina) usando outro programa de computador chamado compilador. Linguagens de alto nível são menos relacionadas com o funcionamento do computador de destino de linguagem assembly, e mais relacionado com a linguagem ea estrutura do problema (s) a ser resolvido pelo programa final. Por conseguinte, é muitas vezes possível utilizar diferentes compiladores para traduzir o mesmo programa de linguagem de alto nível em linguagem de máquina de muitos tipos diferentes de computador. Isso faz parte dos meios pelos quais o software como jogos de vídeo podem ser feitas disponíveis para diferentes arquiteturas de computadores, tais como computadores pessoais e vários consoles de videogame .

A concepção do programa

A concepção do programa de pequenos programas é relativamente simples e envolve a análise do problema, recolha de entradas, utilizando as construções de programação dentro línguas, ou conceber, utilizando procedimentos e algoritmos estabelecidos, que fornece os dados para dispositivos de saída e soluções para o problema, conforme aplicável. Como os problemas se tornam maiores e mais complexos, recursos como subprogramas, módulos, documentação formal, e novos paradigmas como programação orientada a objetos são encontrados. Programas de grandes dimensões, envolvendo milhares de linha de código e mais exigem metodologias formais de software. A tarefa de desenvolver grande sistemas de software apresenta um desafio intelectual significativa. Produção de software com uma confiabilidade aceitavelmente alta dentro de um cronograma e um orçamento previsíveis tem sido historicamente difícil; a disciplina acadêmica e profissional dos engenharia de software se concentra especificamente sobre este desafio.

Componentes

Um computador de uso geral tem quatro componentes principais: a unidade aritmética e lógica (ALU), o unidade de controlo, a memória, e os dispositivos de entrada e de saída (colectivamente denominados I / O). Estas partes são interligadas por ônibus, muitas vezes feitas de grupos de fios.

Dentro de cada uma destas partes são milhares de trilhões de pequeno circuitos elétricos, que pode ser ligado ou desligado por meio de um interruptor eletrônico. Cada circuito representa um bit (dígito binário) de informação de modo que, quando o circuito está em que representa um "1", e quando desligada, representa um "0" (na representação positiva lógica). Os circuitos estão dispostos em portas lógicas de modo a que um ou mais dos circuitos pode controlar o estado de um ou mais dos outros circuitos.

A unidade de controle, ALU, registra, e básicos I / O (e muitas vezes outro hardware intimamente ligada com estes) são conhecidas coletivamente como uma unidade central de processamento (CPU). CPUs iniciais foram feitos de muitos componentes separados, mas uma vez que as CPUs meados de 1970 tipicamente foram construídos em um único circuito integrado chamado de microprocessador.

Unidade de controle

O diagrama mostra como um especial MIPS instrução arquitectura iria ser descodificados pelo sistema de controlo.

A unidade de controle (muitas vezes chamado de um sistema de controlo ou controlador central) gere vários componentes do computador; ele lê e descodifica (interpreta) as instruções de programa, transformando-os numa série de sinais de comando que activam outras partes do computador. Os sistemas de controle em computadores avançados podem alterar a ordem de algumas instruções, a fim de melhorar o desempenho.

Um componente chave comum para todos os processadores é a contador de programa, uma célula de memória especial (a cadastre-se) que mantém o controle dos quais local na memória a próxima instrução é para ser lido.

A função do sistema de controlo é como se segue-notar que esta é uma descrição simplificada, e alguns destes passos podem ser executados simultaneamente ou numa ordem diferente, dependendo do tipo de CPU:

  1. Ler o código para a próxima instrução da célula indicado pelo contador de programa.
  2. Descodificar o código numérico para a instrução para um conjunto de comandos ou sinais de cada um dos outros sistemas.
  3. Incrementar o contador de programa para que ele aponta para a próxima instrução.
  4. Leia todos os dados que a instrução requer a partir de células na memória (ou, talvez, de um dispositivo de entrada). A localização destes dados necessária é tipicamente armazenada no código de instrução.
  5. Fornecer os dados necessários para uma ULA ou registre-se.
  6. Se a instrução requer uma ALU ou hardware especializado para completar, instruir o hardware para efectuar a operação pedida.
  7. Faça o resultado da ALU de volta a um local de memória ou para um registo ou talvez um dispositivo de saída.
  8. Pule de volta para o passo (1).

Uma vez que o contador de programa é (conceptualmente) apenas um outro conjunto de células de memória, ele pode ser alterado por cálculos feitos no ULA. Adicionando 100 para o contador de programa faria com que a instrução seguinte a ser lida a partir de um local 100 locais na parte inferior do programa. Instruções que modificam o contador de programa são muitas vezes conhecidos como "saltos" e permitir loops (instruções que são repetidas pelo computador) e de execução de instrução frequentemente condicional (ambos os exemplos de fluxo de controle).

A sequência de operações de que a unidade de controlo passa para processar uma instrução é, em si, como um programa de computador curto, e, de facto, em alguns modelos mais complexos de CPU, há um outro computador ainda menor chamado um microsequencer, que dirige uma programa de microcódigo que faz com que todos esses eventos acontecer.

Unidade lógica aritmética (ALU)

A ALU é capaz de executar duas classes de operações aritméticas e lógicas:.

O conjunto de operações aritméticas que um particular, apoia a ALU pode ser limitada a adição e subtração, ou pode incluir multiplicação, divisão, trigonometria funções como seno, cosseno, etc., e raízes quadradas . Alguns só podem operar em números inteiros ( números inteiros ), enquanto outros usam ponto flutuante para representar números reais , embora com precisão limitada. No entanto, qualquer computador que é capaz de executar as operações mais simples apenas pode ser programado para quebrar as operações mais complexas em passos simples que podem ser executadas. Portanto, qualquer computador pode ser programado para executar qualquer operação, embora a aritmética que vai demorar mais tempo para fazê-lo se a sua ALU não suporta diretamente a operação. Uma ALU também pode comparar números e retorno valores lógicos booleanos (verdadeiro ou falso), dependendo se é igual a, maior do que ou menor do que o outro ("64 é maior do que 65?").

Operações lógicas envolvem lógica booleana : E, OU, XOR e NOT. Estes podem ser úteis para a criação complicado instruções condicionais e processamento de lógica booleana .

Computadores superescalares pode conter múltiplas ALUs, permitindo-lhes processar várias instruções simultaneamente. Processadores gráficos e computadores com SIMD e MIMD recursos muitas vezes contêm ALUs que podem realizar operações aritméticas em vetores e matrizes .

Memória

Memória de núcleo magnético era a memória do computador de escolha em toda a década de 1960, até que foi substituída pela memória de semicondutor.

Uma memória de computador pode ser visto como uma lista dos números de células nas quais podem ser colocadas ou lidos. Cada célula tem um "endereço" numerada e pode armazenar um único número. O computador pode ser instruído para "colocar o número 123 na célula numerada 1357" ou para "adicionar o número que está na célula 1357 para o número que está na célula 2468 e colocar a resposta na célula 1595". As informações armazenadas na memória podem representar praticamente qualquer coisa. Letras, números, mesmo instruções de computador pode ser colocada em memória, com igual facilidade. Uma vez que a CPU não diferencia entre diferentes tipos de informação, é responsabilidade do software para dar significado ao que a memória vê como nada além de uma série de números.

Em quase todos os computadores modernos, cada célula de memória é configurada para armazenar números binários em grupos de oito bits (um chamado byte). Cada byte é capaz de representar 256 números diferentes (2 ^ 8 = 256); ou de 0 a 255 ou 127 a -128. Para armazenar um maior número, podem ser utilizados vários bytes consecutivos (tipicamente, dois, quatro ou oito). Quando são necessários números negativos, eles são normalmente armazenados em notação de complemento de dois. Outros arranjos são possíveis, mas geralmente não são vistos fora de aplicações especializadas ou contextos históricos. Um computador pode armazenar qualquer tipo de informação em memória se ela pode ser representada numericamente. Os computadores modernos têm bilhões ou mesmo trilhões de bytes de memória.

A CPU contém um conjunto especial de células de memória chamado registros que podem ser lidos e escritos a muito mais rapidamente do que a área de memória principal. Existem tipicamente entre duas e cem registos, dependendo do tipo de CPU. Registros são usados para os itens de dados mais freqüentemente necessários para evitar ter que acessar a memória principal sempre que dados são necessários. Como os dados são constantemente sendo trabalhado, reduzindo a necessidade de acessar a memória principal (que é muitas vezes lento em comparação com as unidades de ALU e de controle) aumenta consideravelmente a velocidade do computador.

Memória principal do computador vem em duas variedades principais: memória de acesso aleatório ou RAM e memória só de leitura ou ROM. RAM pode ser lido e escrito a qualquer hora do CPU comandos, mas ROM é pré-carregado com dados e software que nunca muda, pois a CPU só pode ler a partir dele. ROM é normalmente usado para armazenar instruções de arranque iniciais do computador. Em geral, o conteúdo da RAM são apagados quando a energia para o computador está desligado, mas ROM conserva seus dados indefinidamente. Em um PC, a ROM contém um programa especializado chamado de BIOS que orquestra o carregamento do computador sistema operativo a partir da unidade de disco rígido para a RAM sempre que o computador é ligado ou reiniciado. Em computadores embarcados, que frequentemente não têm unidades de disco, todo o é necessário software pode ser armazenado na ROM. Software armazenados em ROM é muitas vezes chamado firmware, porque é teoricamente mais como hardware de software. A memória flash borra a distinção entre ROM e RAM, uma vez que mantém seus dados quando desligado, mas também é regravável. É tipicamente muito mais lento do ROM convencional e RAM no entanto, que a sua utilização é restrita a aplicações em alta velocidade é desnecessário.

Em computadores mais sofisticados pode haver um ou mais de RAM memórias cache , que são mais lentos do que os registos, mas mais rápido do que a memória principal. Geralmente computadores com esse tipo de cache são projetados para mover dados frequentemente necessários para o cache automaticamente, muitas vezes sem a necessidade de qualquer intervenção por parte do programador.

Entrada / saída (I / O)

Os discos rígidos são dispositivos de armazenamento comuns utilizados com computadores.

I / O é o meio pelo qual um computador trocas de informações com o mundo exterior. Os dispositivos que proporcionam a entrada ou saída para o computador são chamados periféricos. Em um computador pessoal típico, periféricos incluem dispositivos de entrada como o teclado e do mouse e dispositivos de saída tais como os de vídeo e impressora. unidades de disco rígido, unidades de disquete e unidades de disco óptico servir como ambos os dispositivos de entrada e saída. Redes de computadores é outra forma de I / O.

Dispositivos I / O são muitas vezes complexas computadores em seu próprio direito, com a sua própria CPU e memória. A unidade de processamento gráfico pode conter cinqüenta ou mais pequenos computadores que executam os cálculos necessários para exibirgráficos em 3D. Moderno computadores desktop contêm muitos computadores menores que auxiliam o principal CPU na realização de I / O.

Multitarefa

Embora um computador pode ser visto como a executar um programa armazenado gigantesco na sua memória principal, em alguns sistemas é necessário para dar a aparência de executar vários programas simultaneamente. Isto é conseguido por multitarefa isto é, tendo o interruptor computador rapidamente entre executar cada programa, por sua vez.

Um meio pelo qual isto é feito é com um sinal especial chamado de interrupção, o que pode causar periodicamente o computador para parar de executar instruções onde era e fazer outra coisa em seu lugar. Ao lembrar onde foi executado antes da interrupção, o computador pode retornar à tarefa que mais tarde. Se vários programas estão em execução "ao mesmo tempo", então o gerador de interrupção pode estar causando várias centenas de interrupções por segundo, fazendo com que um programa de mudar a cada vez. Desde que os computadores modernos normalmente executar instruções várias ordens de grandeza mais rápido do que a percepção humana, pode parecer que muitos programas estão em execução ao mesmo tempo, mesmo que apenas um está sempre executando em um dado instante. Este método de multitarefa é às vezes chamado de "time-sharing", já que cada programa é alocado a "fatia" de vez em vez.

Antes da era dos computadores baratos, o principal uso para o multitasking era permitir que muitas pessoas a compartilhar o mesmo computador.

Aparentemente, multitarefa causaria um computador que está alternando entre vários programas sejam executados mais lentamente, em proporção direta com o número de programas que estão sendo executados, mas a maioria dos programas passam muito do seu tempo à espera de dispositivos de entrada / saída lentas para completar suas tarefas. Se um programa está aguardando o usuário a clicar no mouse ou pressione uma tecla no teclado, então ele não vai tomar uma "fatia de tempo" até que o evento está aguardando ocorreu. Isso libera tempo para outros programas para executar de modo que muitos programas podem ser executados simultaneamente sem perda de velocidade inaceitável.

Multiprocessamento

Cray projetou muitos supercomputadores que costumavam multiprocessamento pesadamente.

Alguns computadores são projetados para distribuir seu trabalho em várias CPUs em uma configuração de multiprocessamento, uma técnica já empregou apenas em máquinas grandes e poderosos, como supercomputadores, mainframes e servidores. Multiprocessadores e computadores multi-core (várias CPUs em um único circuito integrado) pessoais e laptops estão agora amplamente disponíveis, e estão sendo cada vez mais utilizada nos mercados de gama baixa, como resultado.

Supercomputadores, em particular, muitas vezes têm arquiteturas altamente únicas que diferem significativamente da arquitetura básica de programa armazenado e de computadores de uso geral. Eles, muitas vezes apresentam milhares de CPUs, interconexões de alta velocidade personalizadas e hardware de computação especializada. Tais modelos tendem a ser útil apenas para tarefas especializadas devido à grande escala de organização do programa necessário para utilizar com sucesso a maior parte dos recursos disponíveis de uma só vez. Supercomputadores normalmente ver o uso em grande escala simulação, renderização de gráficos, e criptografia aplicações, bem como com outros chamados " tarefas embaraçosamente paralelos ".

Redes e Internet

A visualização de uma porção dasrotas na Internet.

Os computadores foram usados ​​para coordenar informações entre vários locais desde os anos 1950. Os militares dos EUA sistema SAGE foi o primeiro exemplo em grande escala de um tal sistema, o que levou a uma série de special-purpose sistemas comerciais como o Sabre.

Na década de 1970, engenheiros de computação em instituições de pesquisa em todo os Estados Unidos começaram a ligar os seus computadores usando tecnologia de telecomunicações. O esforço foi financiado pela ARPA (agora DARPA), ea rede de computadores que resultou foi chamado a ARPANET. As tecnologias que fez a propagação Arpanet possível e evoluiu.

Com o tempo, a rede se espalhou para além das instituições acadêmicas e militares e tornou-se conhecida como a Internet. O surgimento das redes envolveu uma redefinição da natureza e os limites do computador. Sistemas operacionais e aplicativos foram modificados para incluir a capacidade de definir e acessar os recursos de outros computadores na rede, tais como dispositivos periféricos, informações armazenadas, e semelhantes, como extensões dos recursos de um computador individual. Inicialmente estas instalações estavam disponíveis principalmente para pessoas que trabalham em ambientes de alta tecnologia, mas na década de 1990 a disseminação de aplicações como e-mail e da World Wide Web , combinado com o desenvolvimento de tecnologias de rede baratos, rápidos, como Ethernet e ADSL via redes de computadores tornar-se quase onipresente. Na verdade, o número de computadores que estão em rede está crescendo fenomenal. Uma proporção muito grande de computadores pessoais se conectar regularmente à Internet para se comunicar e receber informações. Networking rede "Wireless", muitas vezes utilizando redes de telefonia móvel, significou está se tornando cada vez mais onipresente, mesmo em ambientes de computação móvel.

Arquitetura de computadores paradigmas

Há muitos tipos dearquiteturas de computadores:

  • Computador quânticovscomputador Chemical
  • Processador escalar vsprocessador Vector
  • Non-Uniform Memory Access computadores (NUMA)
  • Registre máquina vsmáquina Stack
  • Arquitetura Harvard vsarquitetura de von Neumann
  • Arquitetura celular

A arquitetura computador quântico detém a maior promessa de revolucionar a computação.

Portas lógicas são uma abstração comum, que pode aplicar-se a maioria dos acimadigitais ouanalógicas paradigmas.

A capacidade de armazenar e executar listas de instruções chamados programas de computadores torna extremamente versátil, distinguindo-os de calculadoras . O tese de Church-Turing é um enunciado matemático desta versatilidade: qualquer computador com uma capacidade mínima (sendo Turing-completo) é, em princípio, capaz de realizar as mesmas tarefas que qualquer outro computador pode executar. Portanto, qualquer tipo de computador ( netbook, computador, autômato celular, etc.) é capaz de realizar as mesmas tarefas computacionais, dado tempo suficiente e capacidade de armazenamento.

Equívocos

Um computador não precisa ser eletrônico , nem mesmo ter um processador , nem RAM, nem mesmo um disco rígido. Enquanto o uso popular da palavra "computador" é sinônimo de um computador eletrônico pessoal, a definição moderna de um computador é, literalmente, " Um dispositivo que calcula , especialmente um programável [geralmente] máquina eletrônica que realiza operações matemáticas ou lógicas de alta velocidade ou que monta, lojas, correlaciona-se, ou não processa a informação ". Qualquer dispositivo que processa a informação se qualifica como um computador, especialmente se o tratamento é proposital.

Tecnologia necessária

Historicamente, os computadores evoluíram a partir de computadores mecânicos e, eventualmente, a partir de tubos de vácuo para transistores. No entanto, sistemas computacionais conceitualmente como flexível como um computador pessoal pode ser construído a partir de quase qualquer coisa. Por exemplo, um computador pode ser feita de bolas de bilhar ( bilhar bola de computador); um exemplo muito citado. Mais realisticamente, computadores modernos são feitos de transistores feitos de photolithographed semicondutores .

Não há investigação activa para tornar os computadores de muitos novos tipos promissores da tecnologia, tais como computadores óticos, computadores de DNA, computadores neurais e computadores quânticos . A maioria dos computadores são universais, e são capazes de calcular qualquer função computável, e são limitadas apenas por sua capacidade de memória e velocidade de operação. No entanto diferentes modelos de computadores podem proporcionar um desempenho muito diferente para problemas específicos; por exemplo, os computadores quânticos pode potencialmente quebrar alguns algoritmos de criptografia modernos (por factoring quantum) muito rapidamente.

Outros tópicos

  • Glossário de computadores

Inteligência artificial

Um computador vai resolver os problemas exatamente da forma como ele é programado para, sem levar em conta a eficiência, soluções alternativas, possíveis atalhos, ou possíveis erros no código. Programas de computador que aprender e se adaptar fazem parte do campo emergente da inteligência artificial e aprendizagem de máquina.

Equipamento

O termo hardware abrange todos esses componentes de um computador que são objectos materiais. Circuitos, monitores, fontes de alimentação, cabos, teclados, impressoras e ratos são todos os hardwares.

História de hardware de computação

Primeira geração (mecânica / eletromecânica) Calculadoras La Pascaline,Arithmometer,motor de diferença,Norden bombsight
Dispositivos programáveisJacquard tear,máquina analítica,Harvard Mark I, Z3
Segunda geração (tubos de vácuo) Calculadoras Atanasoff-Berry Computer,IBM 604,UNIVAC 60,UNIVAC 120
Dispositivos programáveisColossus,ENIAC,Manchester Pequena Escala Experimental Machine,EDSAC,Manchester Mark 1,Ferranti Pegasus,Ferranti Mercury,CSIRAC,EDVAC,UNIVAC I,IBM 701,IBM 702,IBM 650,Z22
Terceira geração (transistores discretos e SSI, MSI, LSIcircuitos integrados)MainframesIBM 7090,7080 IBM,o IBM System / 360,GRUPO
MinicomputadorPDP-8,PDP-11,IBM System / 32,IBM System / 36
Quarta geração (circuitos integrados VLSI)MinicomputadorVAX,IBM System i
4 bits microcomputadorIntel 4004,Intel 4040
8 bits microcomputadorIntel 8008,Intel 8080,6800 Motorola,Motorola 6809,Tecnologia MOS 6502,Zilog Z80
16 bits microcomputadorIntel 8088,Zilog Z8000,WDC 65816/65802
32 bits microcomputadorIntel 80386,Pentium,Motorola 68000,arquitetura ARM
64 bits microcomputadorAlpha, MIPS, PA-RISC,PowerPC,SPARC,x86-64
Computador embutidoIntel 8048,Intel 8051
Computador pessoal Computador de mesa,computador para casa,computador portátil,assistente digital pessoal (PDA),computador portátil,Tablet PC,computador Wearable
Teórico / experimental Computador quântico,computador Chemical,computação de DNA,computador óptico,computador baseado Spintronics

Outros tópicos de hardware

Dispositivo periférico (entrada / saída) Entrada Mouse,teclado,joystick,scanner de imagens,webcam,mesa digitalizadora,microfone
Saída Monitor,impressora,alto-falante
Tanto Unidade de disquete,unidade de disco rígido,unidade de disco óptico, teleimpressor
Busses de computadorCurto alcance RS-232, SCSI,PCI, USB
De longo alcance (rede de computadores)Ethernet,ATM,FDDI

Software

Softwarerefere-se a partes do computador que não têm uma forma material, tais como programas, dados, protocolos, etc. Quando o software é armazenado em hardware que não pode ser facilmente modificada (tal comoBIOSROM numPC IBM compatível), é às vezes chamado de "firmware".

Sistema operacional UnixeBSDUNIX System V,IBM AIX,HP-UX,Solaris (SunOS),IRIX,Lista de sistemas operacionais BSD
GNU/Linux Lista de distribuições de Linux,Comparação entre distribuições Linux
Microsoft Windows Windows 95, Windows 98, Windows NT,Windows 2000,Windows Me,Windows XP,Windows Vista,Windows 7,Windows 8
DOS86-DOS (QDOS),PC-DOS,MS-DOS,DR-DOS,FreeDOS
Mac OS Mac OS clássico, Mac OS X
Embarcados eem tempo realLista de sistemas operacionais embutidos
Experimental Ameba,Oberon /Bluebottle,Plan 9 from Bell Labs
Biblioteca Multimídia DirectX,OpenGL,OpenAL
Biblioteca de programaçãoBiblioteca padrão C,Standard Template Library
Dados Protocolo TCP / IP,Kermit,FTP,HTTP,SMTP
Formato de arquivo HTML,XML,JPEG,MPEG,PNG
Interface de usuário Interface gráfica do usuário (WIMP) Microsoft Windows,GNOME,KDE,QNX Photon,CDE,GEM, Água
Interface de usuário baseada em textoInterface de linha de comando,interface de usuário de texto
Aplicação Suíte de escritórioProcessamento de texto,editoração eletrônica,programa de apresentação,sistema de gerenciamento de banco de dados, programação e Hora de gestão,folha de cálculo,software Contabilidade
Acesso À Internet Browser,cliente de e-mail,servidor Web,agente de transferência de correio, Mensagem instantânea
Design e manufaturaComputer-aided design,manufatura auxiliada por computador, gestão de plantas, fabricação robótico, gestão da cadeia de suprimentos
Gráficos Raster editor,editor de gráficos vetoriais,modelador 3D,editor de animação,computação gráfica 3D,edição de vídeo,processamento de imagem
Auditivo Editor de áudio digital,reprodução de áudio, Misturar,síntese de áudio,música Computador
Engenharia de software Compiler,Assembler,Intérprete,Debugger,editor de texto,ambiente de desenvolvimento integrado,análise de desempenho Software,Controle de revisão,gerenciamento de configuração de software
Educacional Edutainment,jogo Educação,jogo sério,simulador de voo
Jogos Estratégia, Arcade,Quebra-cabeça, Simulação,First-person shooter,Plataforma,Massively Multiplayer,ficção interativo
Diversos Inteligência artificial,software antivírus,scanner de malware,Installer /sistemas de gestão de pacotes,Gestor de ficheiros

Idiomas

Existem milhares de línguas diferentes, alguns de programação destina-se a ser de uso geral, outros úteis apenas para aplicações altamente especializadas.

Linguagens de programação
Listas de linguagens de programaçãoTimeline de linguagens de programação,Lista de linguagens de programação por categoria,lista de gerações de linguagens de programação,Lista de linguagens de programação,linguagens de programação baseadas em não-Inglês
Comumente usadolinguagens assembly ARM, MIPS, x86
Comumente utilizadolinguagens de programação de alto nívelAda,BASIC,C,C ++, C #, COBOL,Fortran,Java,Lisp,Pascal,Object Pascal
Comumente utilizadolinguagens de scriptScript de Bourne,JavaScript,Python, Ruby, PHP,Perl

Profissões e organizações

Como o uso de computadores se espalhou por toda a sociedade, há um número crescente de carreiras que envolvem computadores.

Profissões relacionados com a informática
Hardware-relacionado Engenharia elétrica,engenharia eletrônica,engenharia informática,engenharia de telecomunicações,engenharia óptica, Nanoengineering
Relacionados com o software Ciência da Computação,Engenharia da Computação,editoração eletrônica,interação humano-computador, tecnologia da informação,sistemas de informação,ciência da computação,engenharia de software,indústria de jogos de vídeo,Web design

A necessidade de computadores para trabalhar bem em conjunto e para ser capaz de trocar informações gerou a necessidade de muitas organizações de normalização, clubes e sociedades de ambos natureza formal e informal.

Organizações
Grupos de padrõesANSI,IEC,IEEE,IETF,ISO,W3C
Sociedades profissionaisACM,AIS,IET,IFIP, BCS
Livre /grupos de software de código abertoDa Free Software Foundation,Fundação Mozilla,Apache Software Foundation
Retirado de " http://en.wikipedia.org/w/index.php?title=Computer&oldid=539872357 "