Pesquisar neste blogue

sexta-feira, 19 de setembro de 2025

Resumo extraído do Capítulo 1 do livro: Structured Computer Organization - Andrew S. Tanenbaum - 6th

Capítulo 1 - Introdução


1.1 Organização Estruturada de Computadores

Esta secção apresenta a ideia central do livro: existe um grande desfasamento entre aquilo que é conveniente para as pessoas e o que é conveniente para as máquinas. Os computadores executam instruções muito simples, enquanto os humanos necessitam de formas mais abstratas e expressivas de programação. Para colmatar esta diferença, surgem níveis de abstração (ou máquinas virtuais), cada um construído sobre o anterior.

1.1.1 Linguagens, Níveis e Máquinas Virtuais

  • A máquina real só executa a sua linguagem de máquina (L0).

  • Criam-se linguagens mais convenientes (L1, L2, … Ln), que podem ser:

    • Traduzidas para L0 (através de compiladores).

    • Interpretadas por um programa escrito em L0.

  • Esta hierarquia pode ser vista como uma pilha de máquinas virtuais:

    • M0 → hardware real (L0).

    • M1, M2, … Mn → máquinas virtuais (L1, L2, … Ln).

  • Cada nível acrescenta abstrações mais próximas do utilizador, escondendo detalhes das camadas inferiores.

1.1.2 Máquinas Multinível Contemporâneas

  • Os computadores modernos implementam vários níveis, geralmente até seis:

    1. Nível lógico digital – portas, registos e circuitos.

    2. Microarquitetura – registos, ALU, datapath; pode ser controlada por microprogramação ou hardware.

    3. ISA (Instruction Set Architecture) – instruções que os programadores veem (manual de linguagem de máquina).

    4. Nível do sistema operativo – acrescenta multitarefa, gestão de memória e chamadas de sistema.

    5. Linguagem assembly – forma simbólica de programação, traduzida por assemblers.

    6. Linguagens de alto nível – como C, C++, Java, Python; traduzidas (compiladores) ou interpretadas.

  • A distinção entre arquitetura (o que é visível para o programador) e implementação (como é realizado em hardware) é destacada.

1.1.3 Evolução das Máquinas Multinível

  • Anos 1940: dois níveis – lógica digital e ISA. O hardware executava diretamente o conjunto de instruções.

  • 1951 – Microprogramação (Wilkes): introdução de um nível intermédio que simplificava o hardware e aumentava a fiabilidade.

  • Década de 1960: introdução dos sistemas operativos, que passaram a oferecer chamadas de sistema e novos níveis de abstração.

  • Décadas de 1960-70: explosão de instruções adicionadas via microcódigo (ex.: multiplicação, vírgula flutuante, manipulação de strings).

  • Década de 1980 em diante: tendência para simplificação com arquiteturas RISC, eliminando parte da microprogramação.

  • O limite entre hardware e software tornou-se fluido: o que hoje é software pode ser amanhã hardware, e vice-versa.


1.2 Marcos na Arquitetura de Computadores

Esta secção apresenta a evolução histórica dos computadores digitais, desde os primeiros dispositivos mecânicos até aos modernos processadores.

  • Geração zero (1642–1945) – computadores mecânicos (Pascal, Leibniz, Babbage, Zuse, Atanasoff, Stibbitz, Aiken).

  • 1.ª geração (1945–1955) – válvulas, como o ENIAC e IAS (Von Neumann). Surge a arquitetura de programa armazenado.

  • 2.ª geração (1955–1965) – transístores, máquinas como o PDP-1, PDP-8, IBM 7094 e CDC 6600. Aparece a ideia de minicomputadores.

  • 3.ª geração (1965–1980) – circuitos integrados; IBM System/360 introduz famílias de computadores compatíveis; DEC PDP-11 domina os minicomputadores.

  • 4.ª geração (1980–…) – VLSI (Very Large Scale Integration), computadores pessoais, RISC, processadores superscalar, FPGAs, paralelismo.

  • 5.ª geração (anos 1990–atualidade) – computadores móveis, portáteis e embebidos, foco em baixo consumo de energia e ubiquidade.


1.3 Exemplos de Computadores

Aqui são apresentados exemplos concretos para ilustrar os conceitos teóricos:

  • IBM 360 – família de computadores compatíveis, marco na padronização da arquitetura.

  • Intel 8080 – primeiro microprocessador de uso geral, precursor da linha x86.

  • VAX (DEC) – superminicomputador de 32 bits, muito influente nos anos 1980.

  • SPARC (Sun Microsystems) – arquitetura RISC, exemplo da viragem para conjuntos de instruções mais simples.

  • Intel Pentium – processador superscalar, base dos PCs modernos.

O objetivo desta secção é mostrar como os conceitos de máquinas multinível se materializam em sistemas reais, cada um representando um avanço técnico e comercial na história da computação.


1.4 Famílias de Computadores de Exemplo

O autor apresenta três arquiteturas de conjunto de instruções (ISAs) que servirão como exemplos ao longo do livro: x86, ARM e AVR.

  • x86: Presente na maioria dos computadores pessoais (Windows, Linux e até Macs) e em servidores. É relevante porque os leitores usam PCs diariamente e porque os servidores suportam grande parte da Internet.

  • ARM: Domina o mercado móvel. É usado em smartphones, tablets e muitos outros dispositivos de baixo consumo energético.

  • AVR: Microcontroladores de baixo custo, comuns em sistemas embebidos. Estão presentes em eletrodomésticos, automóveis, televisores, etc., tornando-se invisíveis para o utilizador final mas essenciais no funcionamento de inúmeros aparelhos.

A secção mostra que, apesar das diferenças de propósito e complexidade, todas estas arquiteturas partilham conceitos fundamentais de organização computacional.


1.5 Estrutura do Livro

Esta secção explica a organização dos capítulos e como o conteúdo será desenvolvido.

  • O livro trata principalmente de computadores multinível e da sua organização.

  • O foco está em quatro níveis principais:

    1. Nível da lógica digital – portas, registos e circuitos básicos.

    2. Nível da microarquitetura – registos, ALU, datapath, interpretadores de instruções.

    3. Nível da ISA (Instruction Set Architecture) – conjunto de instruções visível ao programador.

    4. Nível da máquina do sistema operativo – chamadas de sistema, multitarefa, gestão de recursos.

  • A abordagem é bottom-up: começa-se pelos níveis inferiores, mais simples, e sobe-se para os superiores.

  • Os capítulos subsequentes apresentam exemplos concretos retirados das três arquiteturas de referência (x86, ARM e AVR).

Esta estrutura facilita a compreensão, já que cada nível depende das características do anterior e porque o ensino gradual reduz a complexidade.


1.6 Esquema do Livro

O objetivo é esclarecer o que será estudado e com que perspetiva.

  • O livro foca-se em conceitos fundamentais, e não em detalhes técnicos ou fórmulas matemáticas pesadas.

  • Serão analisados aspetos como:

    • Estrutura geral de cada nível.

    • Tipos de dados e instruções disponíveis.

    • Organização e endereçamento da memória.

    • Métodos de implementação de cada nível.

  • O autor realça que cada arquitetura resulta de compromissos e decisões arbitrárias. Não existe um “design perfeito”; cada escolha depende de contexto histórico, económico e tecnológico.

  • As arquiteturas x86, ARM e AVR são usadas como exemplos comparativos, permitindo perceber alternativas e diferentes caminhos de projeto.

  • O leitor é incentivado a adotar uma visão crítica, questionando porque é que certas soluções foram escolhidas e como poderiam ter sido feitas de forma diferente.


Capítulo 1 do livro: Structured Computer Organization - Andrew S. Tanenbaum - 6th


🎓 Quer melhorar os seus resultados na universidade? 
Disponibilizamos explicações de ensino superior adaptadas às suas necessidades, com acompanhamento personalizado para diferentes disciplinas.
✔ Explore a nossa Lista de Matérias disponíveis.
🌟 Veja os testemunhos de alunos que já atingiram melhores notas com o nosso apoio.
📬 Contacte-nos por email ou pelo formulário de contacto e obtenha a ajuda que precisa para dominar os seus estudos!

EuExplico Eu Explico Explicações de Ensino Superior

Formulário de Contacto

Nome

Email *

Mensagem *