SingularCode

HARD-01

1. Visão Geral

Atualizado em: 17 de fevereiro de 2024

 

Por: Nelson H. Koshoji

1.1. Evolução

Os computadores evoluíram significamente desde a sua invenção, passando por várias fases distintas, cada uma marcada por avanços tecnológicos importantes.

 

I. Origens e Conceitos Iniciais:

Ábaco (cerca de 2400 a.C.): Uma das primeiras ferramentas de cálculo.

Máquinas Mecânicas de Calcular (séculos 17-19): Invenções como a Pascalina de Blaise Pascal e a Máquina de Calcular de Gottfried Wilhelm Leibniz.

 

II. Automatização e Mecanização:

Motor Analítico (1837): Charles Babbage projetou esta máquina para automatizar cálculos matemáticos. 

Ada Lovelace é frequentemente referida como a primeira programadora devido ao seu trabalho nesse projeto.

 

III. Primeira Geração (1940-1956) – Válvulas a Vácuo

Os computadores da primeira geração utilizavam válvulas a vácuo para circuitos e armazenamento de memória. Eles eram grandes, consumiam muita energia e geravam muito calor e era programado manualmente por meio de cabos e chaves.

Exemplos: ENIAC, UNIVAC, IBM 650, Harvard Mark I.

Fig. Havard Mark I

Fig. UNIVAC I

IV. Segunda Geração (1956-1963) – Transistores:

A invenção do transistor revolucionou o design dos computadores. Os transistores eram menores, mais rápidos, mais confiáveis e mais eficientes em termos energéticos do que as válvulas a vácuo.

Código de programação de alto nível como FORTRAN e COBOL foi desenvolvido, tornando a programação mais acessível.

Exemplos: IBM 7094, CDC 1604, UNIVAC LARC.

Fig. IBM 7030

V. Terceira Geração (1964-1971) – Circuitos Integrados:

Os circuitos integrados (CIs) miniaturizaram a lógica do computador e os componentes de memória em chips de silício únicos, o que permitiu a criação de chips com múltiplos transistores, reduzindo ainda mais o tamanho e o custo dos computadores.

Surgiram os sistemas operacionais mais sofisticados que permitiam múltiplos programas (multitarefa) e múltiplos usuários (tempo compartilhado).

Exemplos: IBM System/360, PDP-8.

Fig. IBM 360

VI. Quarta Geração (1971-Presente) – Microprocessadores:

A introdução do microprocessador marcou o início da quarta geração. Um processador completo em um único chip de silício permitiu o desenvolvimento de computadores pessoais (PCs).

Melhorias na tecnologia de semicondutores e a invenção de processadores de vários núcleos aumentaram dramaticamente a potência de processamento.

A GUI (Graphical User Interface) tornou os computadores mais acessíveis a usuários não técnicos.

O Intel 4004 foi o primeiro microprocessador comercial que integrou as funções de uma CPU em um único chip, abrindo caminho para o desenvolvimento dos computadores pessoais.

Exemplos: Altair 8800, Intel 4004, Apple II, IBM PC.

Fig. Altair 8800

Fig. Apple II

Era dos Computadores Pessoais:

Computadores Pessoais (décadas de 1970 e 1980): Com a Apple, IBM e Microsoft entrando no mercado, os computadores tornaram-se acessíveis ao público geral. A introdução de interfaces gráficas de usuário (GUIs) tornou os computadores mais amigáveis.

Fig. Evolução dos PC’s

VII. Quinta Geração (1980-Presente) – Inteligência Artificial e Computação em Rede:

Embora não oficialmente reconhecida como uma geração separada por todos, a “quinta geração” é um termo usado por alguns para descrever a era atual de computadores que enfatiza a inteligência artificial e as redes de computadores.

 

Conectividade e Internet:

ARPANET (final dos anos 1960): Predecessora da Internet que interligava instituições acadêmicas e de pesquisa.

World Wide Web (1989): Tim Berners-Lee desenvolveu a web, tornando a Internet acessível aos não cientistas e promovendo uma explosão de conectividade e compartilhamento de informações.

O desenvolvimento da Internet e dos dispositivos móveis transformou a maneira como as pessoas usam e interagem com computadores.

 

Modernidade e Inovação Contínua:

As tecnologias emergentes, como a computação em nuvem, big data, e a Internet das Coisas (IoT), continuam a avançar a capacidade e o alcance dos sistemas computacionais.

Computação Móvel e Cloud Computing: Com o advento dos smartphones e tablets, bem como a capacidade de acessar dados e serviços via nuvem, a computação tornou-se onipresente e sempre acessível.

Big Data, Inteligência Artificial (IA) e Aprendizado de Máquina: Estes são os campos de rápido crescimento que estão moldando o futuro da computação, com máquinas que podem aprender, adaptar-se e potencialmente agir de forma autônoma.

Internet das Coisas (IoT): refere-se à rede de dispositivos físicos que estão conectados à internet, coletando e compartilhando dados. A IoT estende a conectividade da Internet além dos dispositivos tradicionais, como desktops e smartphones, para uma gama diversa de dispositivos e objetos do dia a dia que utilizam tecnologia de incorporação para se comunicar e interagir com o ambiente externo, tudo isso via Internet.

Exemplos: Computadores pessoais avançados, servidores, supercomputadores, dispositivos móveis como smartphones e tablets.

 

VIII. Futuras Gerações:

As futuras gerações podem incluir o desenvolvimento da computação quântica, nanotecnologia, e avanços ainda não imaginados que poderiam revolucionar ainda mais o campo da computação.

Computação Quântica: Embora ainda em estágios iniciais, a computação quântica promete superar os computadores clássicos em tarefas específicas, apresentando uma nova era de processamento de dados.

Nanotecnologia: Aumento nas pesquisas sobre as tecnologia que se concentra no design, síntese, manipulação e aplicação de materiais e dispositivos em escala nanométrica, geralmente na faixa de 1 a 100 nanômetros.

 

1.2. Arquitetura de Computadores (Componentes Básicos)

Arquitetura de computadores é um termo que descreve a funcionalidade, a organização e a implementação de sistemas de computadores. A arquitetura de um computador é geralmente projetada por um arquiteto de computadores e envolve tanto a escolha de hardware quanto a definição de como esse hardware deve interagir.

Componentes Básicos:

1. Unidade Central de Processamento (CPU): O coração do computador, responsável pela execução de instruções programadas, ou seja, sua principal função é executar os programas, fazer os cálculo e tomar as decisões. É composta pelas:

  • Unidade de Controle (UC), que dirige a operação do computador, ou seja, controla as ações a serem realizadas pelo computador, comandando todos os componentes de sua arquitetura.
  • Unidade Lógica e Aritmética (ULA), que executa cálculos e toma decisões lógicas, ou seja, assume todas as tarefas relacionadas às operações lógicas (and, or, not, etc.) e aritméticas (adições, multiplicações, …).
  • Registradores, que armazenam valores intermediários ou informações de comando, como uma memória de alta velocidade.

2. Memória: Serve como um espaço de trabalho para a CPU. Ela armazena dados e instruções. A memória pode ser volátil (como a RAM, que é temporária) ou não volátil (como a ROM  e o armazenamento em disco, que retém dados após o desligamento).

3. Dispositivos de Entrada/Saída (E/S): Permitem que o computador interaja com o mundo exterior (por exemplo, teclado, mouse, monitor, impressora).

4. Barramentos: Usados para transmitir dados entre a CPU, a memória e os dispositivos de E/S.

Fig. Arquitetura Von Neumann

1.3. Hardware de Computadores 

O hardware de um computador é composto por dispositivos físicos e componentes que juntos formam o sistema de computação. Cada componente tem uma função específica e é essencial para o funcionamento do computador. Vejamos, a seguir,  uma descrição detalhada dos principais componentes de hardware de um computador:

 

1. Processador/Microprocessador:

É a Unidade central de Processamento (CPU) que executa as instruções dos programas, realizando operações de cálculo e lógica. É composta por uma Unidade de Controle (UC), que interpreta as instruções, e uma Unidade Lógica e Aritmética (ULA), que executa operações matemáticas e lógicas.

 

 

Fig. Microprocessador

2. Memória:

Memória de Acesso Aleatório (RAM): Volátil e usada para armazenar dados e programas enquanto estão sendo usados. Quando o computador é desligado, a informação é perdida.

Fig. Memória RAM

Memória Read-Only (ROM): Não volátil e contém dados que não podem ser alterados facilmente, geralmente instruções de inicialização do sistema.

Fig. Memória ROM

3. Armazenamento de Dados:

Disco Rígido (HDD): Armazena dados de forma não volátil em discos magnéticos. Oferece grande capacidade de armazenamento, mas com velocidade de acesso menor que as memórias de estado sólido.

Fig. HDD

Unidade de Estado Sólido (SSD): Também armazena dados de forma não volátil, mas usa memória flash, que é mais rápida que os HDDs tradicionais.

Fig. SSD

Unidades Ópticas: Como CD, DVD e Blu-ray, que são usadas para ler e gravar dados em discos ópticos.

Fig. Unidades Óticas

4. Placa-Mãe:

É a principal placa de circuito de um computador. Aloja a CPU, a memória e tem slots para expansão e conectores para outros componentes e periféricos.

Fig. Placas Mãe

5. Placa de Vídeo (GPU):

Responsável por renderizar imagens e vídeo para serem exibidos em monitores. As GPUs são especialmente importantes para tarefas que exigem processamento gráfico intenso, como jogos e design gráfico.

Fig. Placas de Vídeo

6. Fonte de Alimentação:

Converte a corrente alternada (AC) da tomada em corrente contínua (DC) que o computador pode usar, fornecendo energia a todos os componentes.

Fig. Fonte de Alimentação

7. Dispositivos de Entrada:

Periféricos como teclado e mouse, que permitem ao usuário interagir com o computador.

8. Dispositivos de Saída:

Incluem monitores, impressoras e alto-falantes, permitindo ao usuário receber informações do computador.

 

9. Sistema de Resfriamento:

Inclui ventiladores e, em algumas configurações, sistemas de resfriamento líquido para dissipar o calor gerado pelos componentes do computador.

10. Barramentos:

São caminhos de dados que permitem a comunicação entre os componentes do computador, incluindo o barramento de sistema (ou barramento frontal), que conecta a CPU ao resto do sistema.

11. Portas e Conectores:

Interfaces como USB, HDMI, DisplayPort, Ethernet e áudio, usadas para conectar dispositivos externos e redes.

12. Slots de Expansão:

Slots como PCI, PCIe e AGP na placa-mãe permitem a adição de placas de expansão para funcionalidades adicionais (por exemplo, placas de som, de rede, etc.).

Fig. Placas de Redes

13. Gabinete:

Caixa física que contém e protege a maioria dos componentes do hardware do computador.

 

1.4. Tipos de Computadores 

Os computadores podem ser categorizados com base em seu tamanho, capacidade de processamento, e finalidade. Aqui estão os principais tipos de computadores:

 

1. Supercomputadores:

São os mais poderosos em termos de capacidade de processamento e velocidade. São usados para tarefas computacionais complexas, como modelagem climática, simulações físicas, pesquisas científicas e criptografia.

 

2. Mainframes:

Computadores de grande porte projetados para processar grandes quantidades de dados e suportar milhares de usuários simultaneamente. Comumente usados em instituições bancárias, seguradoras e por governos para aplicações críticas e processamento em massa de dados.

 

3. Servidores:

Projetados para gerenciar recursos de rede e fornecer serviços a outros computadores na rede, como hospedagem de sites, e-mails, banco de dados e aplicações empresariais.

4. Computadores Pessoais (PCs):

Desktops: Projetados para uso pessoal ou empresarial com uma configuração estática. Tendem a ter uma alta capacidade de processamento, armazenamento e expansibilidade.

Laptops (Notebooks): Computadores portáteis que combinam todos os componentes e capacidades de um desktop em um dispositivo móvel com bateria.

Netbooks: Versões menores e mais leves de laptops, com menos capacidade de processamento e armazenamento, projetados principalmente para acesso à Internet e aplicações básicas de computação.

 

5. Computadores Pessoais de Mão:

Dispositivos portáteis como smartphones e tablets. Embora tenham menos potência de processamento do que desktops ou laptops, são projetados para conveniência e mobilidade.

 

6. Sistemas Embarcados:

Computadores integrados em outros dispositivos para realizar funções específicas, como em automóveis, aparelhos domésticos, sistemas de entretenimento e dispositivos médicos.

 

1.4. Representação das Informações nos Computadores

A representação da informação em computadores baseia-se fundamentalmente no sistema binário, uma vez que os componentes eletrônicos do computador, como os transistores, operam com dois estados distintos: ligado (on) e desligado (off). Esses dois estados podem ser representados por 1 (ligado) e 0 (desligado), que são os dígitos do sistema binário.

Binário:

Todas as informações em um computador são armazenadas como uma sequência de bits (binary digits), que são os 0s e 1s. Por exemplo, a letra ‘A’ pode ser representada como 01000001 em código binário.

Bytes e Unidades:

Um byte consiste em 8 bits e é a unidade básica de medida da informação em computação. Maiores quantidades de dados são expressas em kilobytes (KB), megabytes (MB), gigabytes (GB), terabytes (TB), e assim por diante.

Texto e Caracteres:

Sistemas de codificação como ASCII (American Standard Code for Information Interchange) e Unicode são usados para representar texto. Cada letra, número e símbolo é mapeado para um valor numérico binário correspondente.

Números:

Números podem ser representados em formatos binários como inteiros ou em ponto flutuante para decimais. A representação em ponto flutuante permite a inclusão de frações e números muito grandes ou muito pequenos.

 

1.5. Hierarquia dos Bytes e suas Unidades

Bit (b)

  • O menor bloco de dados em um computador.
  • Pode ser 0 ou 1.

Byte (B)

  • Consiste em 8 bits.
  • Pode representar 256 valores diferentes (2^8 combinações).]

Kilobyte (KB)

  • Consiste em aproximadamente 1.000 (exatamente 1.024 ou 2^10) bytes.
  • Pode ser usado para representar um texto curto.

Megabyte (MB)

  • Consiste em aproximadamente 1.000.000 (exatamente 1.024 KB ou 2^20) bytes.
  • Uma música em MP3 pode ser da ordem de alguns megabytes.

Gigabyte (GB)

  • Consiste em aproximadamente 1 bilhão (exatamente 1.024 MB ou 2^30) bytes.
  • Um filme de longa-metragem pode ter alguns gigabytes.

Terabyte (TB)

  • Consiste em aproximadamente 1 trilhão (exatamente 1.024 GB ou 2^40) bytes.
  • Um disco rígido moderno pode ter uma capacidade de vários terabytes.

Petabyte (PB)

  • Consiste em aproximadamente 1.000 trilhões (exatamente 1.024 TB ou 2^50) bytes.
  • Grandes bancos de dados e centros de dados podem armazenar vários petabytes de dados.

Exabyte (EB)

  • Consiste em aproximadamente 1 quinquilhão (exatamente 1.024 PB ou 2^60) bytes.
  • A quantidade total de dados criados globalmente começa a alcançar a escala de exabytes.

Zettabyte (ZB)

  • Consiste em aproximadamente 1 sextilhão (exatamente 1.024 EB ou 2^70) bytes.
  • Usado para discutir o volume global de dados na internet e em armazenamentos em grande escala.

Yottabyte (YB)

  • Consiste em aproximadamente 1 septilhão (exatamente 1.024 ZB ou 2^80) bytes.
  • Uma quantidade quase inimaginável de dados, não comumente usada devido à sua enormidade.

Exemplo prático: Se você tem um arquivo de texto que contém o seguinte:

Hello World!

Isso é composto por 12 caracteres, incluindo o ponto de exclamação e o espaço. Em codificação ASCII, cada caractere é representado por 1 byte, então esse arquivo de texto usaria 12 bytes. Em binário, cada byte desses poderia parecer algo assim:

H: 01001000
e: 01100101
l: 01101100
l: 01101100
o: 01101111
(espaço): 00100000
W: 01010111
o: 01101111
r: 01110010
l: 01101100
d: 01100100
!: 00100001

Cada linha de 8 bits representa um byte, e o texto completo é uma sequência de 12 bytes.