Introdução à Computação

Tradução do capítulo 1 de
"
A Balanced Introduction to Computer Science and Programming"
de David Reed, Creighton University, Prentice Hall



Capítulo 1: Fundamentos sobre computadores

O computador, tal como o concebemos hoje, é uma novidade tecnológica relativamente recente. Os primeiros computadores eletrônicos foram construídos na década de 1940 e os computadores de mesa tornaram-se acessíveis a todos somente a partir do final da década de 1970. Em um curto espaço de tempo, os computadores se tornaram parte essencial da realização de negócios e de como as pessoas interagem. Mas, enquanto muitas pessoas usam os computadores para o trabalho e para o lazer, poucas tem sequer uma noção básica de como eles funcionam.

Este capítulo apresenta uma visão geral da tecnlogia usada em computadores, destacando o que são os computadores, como eles são organizados e o que eles podem fazer. O capítulo não trata exaustivamente de todos estes temas - muitos dos tópicos introduzidos aqui serão vistos novamente em capítulos seguintes. No entanto, o conhecimento apresentado deve fornecer um bom entendimento sobre os conceitos básicos sobre computação.

O que é um computador?

Quando você pensa na palavra computador, você muito provavelmente imagina uma máquina sobre uma mesa que é usada para criar documentos, enviar mensagens de correio eletrônico ou navegar na internet. Este tipo de computador pode ser chamado de "computador pessoal", pois foi projetado para ser usado por uma única pessoa, ou ainda pode ser chamada de computador de mesa (desktop computer), pois ele é pequeno o suficiente para caber em cima de uma mesa. Enquanto o computador pessoal é a imagem mais comum que se faz dos computadores atualmente, ele não é de maneira alguma o único tipo de computador existente. Alguns computadores, conhecidos como "supercomputadores", são grandes o suficiente para ocuparem uma sala inteira e terem o poder computacional para realizar rtilhões de cálculos por segundo. Outros computadores são bem menores, tais como os computadores portáteis (laptops) que cabem em uma pequena maleta ou mesmo os computadores de mão (palmtops) que cabem na sua mão. Além disso, existem milhões de pequenos computadores embarcados nos dispositivos que usamos cotidianamente, tais como os existentes em automóveis, aparelhos de ar-condicionado e fornos de micro-ondas.

diferentes computadores

O que todas estas máquina tem em comum, o que fazem delas computadores, é que elas recebem,armazenam e processam informação. Um computador pessoal é capaz de ler dados, armazenar em arquivos e processar aqueles dados para produzir um documento, ou uma planilha eletrônica, ou uma mensagem de correio eletrônico. Da mesma maneira, um computador embarcado no sistema de freios de um carro é capaz de "sentir" a rotação das rodas, processar estes dados para computar o padrão ideal de acionamento dos freios e direcionar o carro para uma parada segura.

Apesar do fato de os computadores estarem em todos os lugares atualmente, poucas pessoas tem sequer um conhecimento básico de como os computadores são organizados e como realizam suas tarefas. Até mesmo o processo de comprar um computador pessoal pode ser uma experiência exteneuante envolvendo informação altamente técnica e um jargão obscuro da computação. Por exemplo, a tabela a seguir é baseada em especificações apresentados em propagandas para dois sistemas de computação pessoal por dois fabricantes tradicionais de computadores (agosto de 2002). O sistema 1 é sistema de computação bem simples (low-end), barato mas limitado em recursos e utilizando tecnologia um pouco ultrapassada. O sistema 2 é um computador mais sofisticado (high-end), que maximiza o desempenho usando tecnologia bem recente mas a um alto custo. Entender os compromissos entre estes dois modelos requer uma significativa quantidade de conhecimento sobre computadores. E esta tabela é apenas uma versão simplificada das opções para uma única categoria de sistema de computação de uma única empresa!


    Sistema 1   Sistema 2


CPU
1.4GHz Intel Celeron
2.533GHz Intel Pentium 4


Cache
256KB Cache
512KB Cache
RAM
128MB RAM
1GB RAM
Disco rígido

20GB

120GB
Disco flexível

3.5" 1.44MB

3.5" 1.44MB
CD-ROM/DVD
40x/12x/48x CDRW
DVD-RAM/DVD-R Drive and 48x/24x/48x CDRW


Teclado

Teclado multifunção

Teclado multifunção
Mouse

Mouse ótico

Mouse ótico
Monitor

17" Color

18" LCD Display
Altofalantes

Altofalantes
Sistema de som com 5 partes
Modem

56K Modem
56K Modem
Placa de rede

10/100 Ethernet

10/100 Ethernet


Sistema Operacional
Microsoft Windows XP Home Edition
Microsoft Windows XP Home Edition
Applicações
Microsoft Works Suite 2002
Microsoft Office XP Small Business
Quicken New User Edition
Norton Anti-Virus Software

Um primeiro passo para se entender o que são os computadores e como eles funcionam é distinguir entre hardware e software. O termo hardware refere-se aos componentes físicos do compuador, tais como monitor, teclado, disco rígido, etc. Software refere-se aos programas que são executados pelo computador, realizadno tarefas tais como edição de textos ou acessando a Internet. Na tabela acima, as três primeiras seções (começando com CPU e terminando com placa de rede) se refere aos componentes de hardware dos sistemas. A última seção (contendo sistema operacional e aplicações) se refere aos componentes de software.

Hardware

Como os computadores podem assumir diversas formas, é difícil apresentar uma única  imagem do hardware de um computador. Mesmo se resumindo aos computadores de mesa, a aparência e a seleção dos componentes pode variar consideravelmente. A figura abaixo mostra um computador de mesa bastante comum com seus componentes de hardware rotulados.

hardware de computador pessoal

Enquanto os componentes específicos e sua aparência possam variar bastante de computador para computador, todos os computadores modernos possuem a mesma estrutura. Esta estrutura é connhecida como a arquitetura de von Neumann, em homenagem ao pioneiro da ciência da computação John von Neumann que a formalizou no início da década de 1950. A arquitetura de von Neumann identifica três componentes essenciais que trabalham juntos para funcionarem com um computador (isto é, um dispositivo que recebe, armazena e processa informação). A Unidade Central de Processamento (UCP) (ou Central Processing Unit - CPU) realiza o processamento da informação e serve como o cérebro do computador. A memória armazena a informação para processamento, bem como as instruções do programa, que especificam os passos do processamento que deverão ser executados. Os dispositivos de entrada e saída  (Input/Output devices) permitem que o usuário se comunique com o computador, entrando comandos e vendo resultados. Cada um destes componentes é discutido em mais detalhes a seguir.

Arquitetura de von Neumann

Unidade Central de Processamento (CPU)

A Unidade Central de Processamento (CPU) é o cérebro do computador, responsável pelo controle das funções internas da máquina. A CPU é responsável por duas tarefas muito importantes. Primeiro, ela contém os circuitos para a realização de uma variedade de cálculos (tais como adição ou multiplicação de números) e manipulações (tais como deslocamentos ou combinações de padrões de bits). Assim, quando a informação precisa ser processada, é a CPU que efetivamente executa o processamento. Segundo, a CPU é responsável pela busca e execução das instruções que especificam as tarefas a serem cumpridas pelo computador.

Antes da aceitação do modelo de von Neumann, os computadores eram projetados e construídos para realizar uma única tarefa, tal como computar a trajetória de um foguete específico sob certas condições atmosféricas. Se você queria realizar uma tarefa diferente, você tinha que reconectar e reconfigurar a máquina! Utilizando a arquitetura de von Neumann, no entanto, uma série de computações necessárias para se realizar uma dada tarefa pode ser especificada como um programa e armazenado em memória. A CPU busca as instruções do programa a partir da memória e executa os cálculos/manipulações especificadas a fim de realizar uma dada tarefa. Para realizar uma tarefa diferente basta carregar um novo programa na memória. Na verdade, a arquitetura de von Neumann permite que vários programas residam na memória ao mesmo tempo, possibilitando que a CPU lide com diferentes tarefas, tais como ficar executando um navegador para internet e um editor de texto praticamente ao mesmo tempo.

A CPU é de longe a parte mais complexa de um sistema de computação. O processador Intel Pentium 4, por exemplo, contém circuitos eletrônicos com mais de 42 milhões de componentes individuais. Todos estes circuitos são empacotados em um pequeno chip de silício envolto em plástico com pinos metálicos para conectar o chip com os outros componentes de hardware. Dentre as CPUs mais comuns pode-se citar o Pentium m 4 da empresa Intel, o Athlon da empresa AMD e o PowerPC G4 da Motorola.

chips de CPU

Cada um dos computadores apresentados na tabela discutida anteriormente contém uma CPU fabricada pela empresa Intel. Eles diferem em velocidade e poder computacional.

Memória

A memória é a parte do computador que aramazena programas e dados. Os computadores modernos são dispositivos digitais, o que significa que eles armazenam e processam dados como valores discretos ao invés de contínuos. O elemento básico da memória digital é o digito binário ou bit, que pode representar um de dois valores. Usualmente os dois valores de um bit são escritos como 0 e 1, mas os valores podem ser tanto representados como ligado e desligado, aberto e fechado, volts e não volts, etc.


Evidentemente, um simples bit não é muito útil para se armazenar informações, pois somente pode diferenciar entre dois valores. Se você combinar dois bits, no entanto, existem quatro diferentes padrões que podem ser usados para representa valores: 00, 01, 10 e 11. Três bits são capazes de representar oito valores diferentes usando-se os padrões: 000, 001, 010, 011, 100, 101, 110 e 111.  Em geral, uma coleção de N bits pode representar 2N valores diferentes.

1 bit	--> 2 valores        0 1
2 bits --> 4 valores 00 01 10 11
3 bits --> 8 valores 000 001 010 011 100 101 110 111
4 bits --> 16 valores 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 ...
5 bits --> 32 valores 00000 00001 00010 00011 00100 00101 00110 00111 ...
6 bits --> 64 valores 000000 000001 000010 000011 000100 000101 000110 ...
7 bits --> 128 valores 0000000 0000001 0000010 0000011 0000100 0000101 ...
8 bits --> 256 valores 00000000 00000001 00000010 00000011 00000100 ...
9 bits --> 512 valores 000000000 000000001 000000010 000000011 000000100 ...
10 bits --> 1.024 valores 0000000000 0000000001 0000000010 0000000011 ...
.
.
.
N bits --> 2N valores

Enquanto o bit é o elemento básico da memória digital, a capacidade de memória é usualmente especificada em bytes. Um byte é uma coleção de 8 bits e assim, é capaz de representar  28 = 256 valores diferentes (o que é suficiente para muitos intervalos de valores, por exemplo, os caracteres do teclado). Pode-se definir coleções de bytes usando prefixos: um kilobyte (KB) corresponde a aproximadamente um mil bytes de memória, um megabyte (MB) é aproximadamente 1 milhão de bytes de memória e um gigabyte (GB) é aproximadamente 1 bilhão de bytes de memória. Mais especificamente,

byte  --> 8 bits
kilobyte (KB) --> 210 bytes = 1.024 bytes ( = 8.192 bits)
megabyte (MB) --> 220 bytes = 1.048.576 bytes ( = 8.388.608 bits)
gigabyte (GB) --> 230 bytes = 1.073.741.824 bytes ( = 8.589.934.592 bits)

Como um byte é suficiente para se armazenar um único caracter, é muitas vezes conveniente pensar a capacidade da memória em termos de texto. Um kilobyte (KB) é capaz de armazenar mais de um milhar de caracteres de texto (por exemplo, uma redação), um megabyte (MB) é capaz de armazenar mais de um bilhão de caracteres de texto (por exemplo, um livro) e um gigabyte é capaz de armazenar mais de um bilhão de caracteres de texto (por exemplo, uma pequena biblioteca). Enquanto estas capacidades pode parecer grandes em termos de texto, armazenar outros tipos de dados pode demandar muito mais memória. Por exemplo, uma fotografia em alta resolução pode precisar de vários magabytes para ser armazenada, um aúdio de uma canção pode precisar mais de 50 megabytes e para armazenar um filme em video completo pode ser preciso gigabytes de memória.

Apesar de podermos pensar a memória como uma única unidade lógica, os computadores tendem a incorporar diversos tipos de memória, cada uma com seu desempenho e custo característicos. A tecnologia mais rápida para armazenar bits usa circuitos eletrônicos, com 1 e 0 representadoo como a presença ou ausência de voltagem no circuito. Memória Cache (que pode estar empacotada diretamente dentro do chip da CPU) e RAM (abreviatura para Memória de Acesso Randômico, que é empacotada separadamente em seu próprio chip) são exemplos deste tipo de memória eletrônica. Como os valores são armazenados nos circuitos na forma de voltagens, o acesso é essencialmente limitado pela velocidade da eletricidade e proximidade da CPU. A memória cache, que é empacotada diretamente no chip da CPU e utiliza tecnlogia mais avançada para implementação, usualmente é mais rápida do que a memória RAM e assim é usada para armazenar os dados mais críticos (por exemplo, os que estão sendo mais usados em um dado momento).  No entanto, a cache é mais cara do que a RAM, assim custo e desempenho são balanceados usando-se uma pequena quantidade (geralmente em termos de kilobytes) de cache e uma grande quantidade (usualmente medida em megabytes) de RAM.

As memórias Cache e RAM juntas formam a memória principal (ou memória primária) de um computador. Este nome se refere ao fato de elas serem os principais elementos de armazenamento da CPU, a única memória que pode ser acessada diretamente pela CPU. Antes que qualquer dado ou instrução possa ser acessada pela CPU, é preciso que seja carregado na memória primária(seja na cache ou RAM, ou em ambas). Mas enquanto a memória principal é rápida, seu custo limita a quantidade que pode ser usada na prática. Além disso, a memória principal é volátil, o que significa que ela requer um fluxo constante de eletricidade para manter os valores armazenados. Quando você desliga um computador, os valores armazenados na cache e na RAM são perdidos. Assim, os  computadores computadores precisam de uma memória secundária que seja mais barata e permanente.

A memória secundária é implementada em uma variedade de tecnologias. Um disco rígo é uma superfície circular rotativa de metal que armazena bits como setores magnetizados ou não-magnetizados. Apesar desta tecnologia ser consideravelmente mais lenta do que a memória construída com circuitos eletrônicos, ela é muito mais barata e é capaz de manter os dados mesmo sem eletricidade. Assim, um disco rígido é capaz de armazenar de maneira permanente uma vasta quantidade de informação (usualmente medida em gigabytes), que podem ser transferidos para a memória principal quando necessário. Discos flexíveis e CDs são exemplos de memória secundária barata e portátil. Um disco flexível é uma versão pequena e portátil de um disco rígido, armazenando até 1,44 MB de dados em um disco plástico de 3,5 polegadas. Um CD (Compact Disk) é uma disk de metal que armazena até 700 MB de dados como padrões em uma superfície refletora. Usando a tecnologia CD-ROM (Compact Disk Read Only Memory), os padrões podem ser queimados na superfície do disco com um laser, o que implica que o disco somente pode ser escrito uma vez. Usando a tecnologia CDRW (Compact Disk ReWritable), podem ser formados padrões  em uma  camada sensível  à luz na superfície do disco, permitindo que os dados possam ser sobreescritos repetidamente.

tecnologias de memória

Cada um dos computadores da tabela discutida anteriormente contém diferentes tipos de memória, desde de memória cache até disco  flexível e CD. Eles diferem principalmente  na quantidade disponível de cada tipo de memória e alguns detalhes técnicos.

Dispositivos de Entrada/Saída (E/S)

Obviamente, um computador não é muito útil se não é capaz de se comunicar com o mundo exterior. Os dispositivos de entrada permitem que o computador receba dados de uma fonte externa, seja uma pessoa ou outra máquina. Exemplos de dispositivos de entrada são teclados, mouses, microfones e digitalizadores (scanners). De maneira similar, os dispositivos de saída permitem que o computador exiba ou distribua seus resultados. Exemplos de dispositivos de saída são monitores de video, impressoras e altofalantes. Os dispositivos que permitem ao computador se comunicar com outros computadores, seja em uma rede local ou através da internet, são ditos dispositivos de entrada e de saída. Exemplos destes incluem modems, placas de rede e placas de rede sem fio.

Como os dispositivos de entrada e saída conectam um computador e seu usuário, a tecnologia nesta área está mudando constantemente para tornar a interação com o computador mais fácil. Por exemplo, a introdução do mouse como um dispositivo de entrada foi essencial para a popularização dos computadores na década de 1980. Da mesma maneira, avanços na tecnologia de telas planas tornou os computadores portáteis cada vez mais compactos e mais baratos durante a década de 1990. Hoje, a tecnologia de redes sem fio está se tornando cada vez mais presente, permitindo o acesso ao correio eletrônico e à Web através de Assistentes Pessoais Digitais (Personal Digital Assistants - PDAs) e telefones celulares.

Cada um dos exempos de sistemas de computação discutidos na tabela anterior incluem uma variedade de dispositivos de entrada/saída, incluindo teclado e mouuse para entrada, uma tela e altofalantes para saída e um modem e placa de rede para comunicações.


Software

Enquanto o hardware se refere aos componentes físicos do computador, o termo software se refere aos programas são executados no hardware. Um programa é uma coleção de instruções para o computador que determinam como ele deve realizar uma dada tarefa. Por exemplo, editores de texto como o Microsoft Word e OpenOficce Writer contém instruções para criar e gerencias documentos; programas gráficos como o Adobe Photoshop e o Macromedia Flash contém instruções para a criação e exibição de imagens gráficas; navegadores Web tais como o Microsoft Internet Explorer e Netscape Communicatior contém instruções para o acesso e exibição de páginas Web. Programas como estes são chamados de aplicativos, pois cada um foi projetado para executar tarefas de uma particular área de aplicação. Como os computadores são utilizados em uma grande variedade de áreas de aplicação, não é de se surpreeender que exista uma grande variedade de aplicativos disponíveis.

O software mais complexo e mais integrado ao computador é o seu sistema operaciona. Um sistema operacional é uma coleção de programas que controlam como a CPU se comunica com os outros componentes de hardware e também torna o computador mais fácil de ser utilizado pelas pessoas. O sistema operacional gerencia a execução de todos os programas aplicativos, controlando como os dados e as instruções são carregadas na memória principal e acessadas pela CPU. Ele conecta todos os componentes de hardware com o software, permitindo que os aplicativos, de maneira transparente, imprimam ou recebem entrada a partir do teclado. Além disso, o sistema operacional oferece uma interface para o usuário interagir com o computador. A maioria dos sistemas operacionais, incluindo o Microsoft Windoes e o Mac OS X, utiliza uma Interface Gráfica com o Usuário (Graphical User Interface - GUI) na qual arquivos e programas são representados por icons, várias tarefas podem ser realizadas em janelas separadas e a entrada do usuário pode ser especificada usando menus e clicks do mouse.

Cada um dos sistemas de computação mostrada na tabela discutida anteriormente vem com o sistema operacional Microsoft Windows XP e um conjunto de aplicativos.


Perguntas para revisão:

  1. Qual a diferença entre hardware e software?
  2. Descreva os três componentes essenciais que fazem parte da arquitetura de von Neumann ?
  3. Os computadores modernos possuem diferentes tipos de memória, tais como, cache, RAM, disco rígido e disco flexível. Por que são usados diferentes tipos de memórias? Por que seria uma desvantagem usar apenas, por exemplo, memória cache, ou somente disco rígido?
  4. A memória dos computadores é usualmente grupadas em bytes, como por exemplo 128 megabytes de RAM ou 20 gigabytes de disco rígido. Quanto de capacidade de memória representa um byte? Forneça exemplos do que se pode representar com um byte.
  5. O Intel Pentium 4 é um exemplo de um  processador ou CPU, bem como são um  Celeron e um PowerPC. O que faz uma CPU?
  6. O Windows 98 é um exemplo de sistema operacional, bem como são também o the Mac OS e o Linux. Qual a função de um sistema operacional?