Arquitetura de Computador – Software.


Este capítulo aborda a arquitetura de computadores sob a perspectiva do software, explicando como a camada de software “dá vida” ao hardware. Enquanto o hardware compreende os componentes físicos (CPU, memória, dispositivos de E/S etc.), o software, em especial o sistema operacional (SO), abstrai os detalhes complexos do hardware e gerencia seus recursos, tornando a utilização do computador mais simples e eficiente para o usuário.

1. Infraestrutura de Software

Um sistema de computação é composto por hardware e software. O software existe para que o hardware execute as funções determinadas pelo usuário, fazendo a abstração dos detalhes técnicos. Dessa forma, o sistema operacional é a peça central que:

Os principais componentes de um sistema operacional de baixo para cima:

A figura abaixo mostra a organização dos componentes, destacando a separação entre o modo núcleo (ou supervisor), onde o SO tem acesso completo ao hardware, e o modo usuário, onde apenas um subconjunto de instruções é permitido. Essa separação garante que operações sensíveis, como acessos a dispositivos de E/S, sejam executadas com segurança.

Organização dos principais componentes de um computador

Organização dos principais componentes de um computador ↑
Fonte: adaptado de Tanenbaum e Bos (2016, p. 15).

Multiplexação de Recursos

Para gerenciar eficientemente os recursos do hardware, o sistema operacional utiliza dois tipos de multiplexação:


2. Tipos de Sistemas Operacionais

O capítulo apresenta a diversidade de sistemas operacionais, classificados conforme o tipo de hardware e as necessidades dos usuários:


3. Processos

Um processo é um programa em execução, atuando como um contêiner que reúne todas as informações necessárias para a sua execução. Isso inclui o código executável, dados, pilha e registradores.

Estados de um processo

Estados de um processo ↑
Fonte: adaptado de Tanenbaum e Bos (2016, p. 64).

Árvore de processos

Árvore de processos ↑
Fonte: adaptado de Tanenbaum e Bos (2016, p. 28).


4. Threads

Threads são linhas de controle dentro de um processo. Ao contrário dos processos, que possuem espaços de endereçamento isolados, as threads compartilham o mesmo espaço de memória, o que as torna muito mais leves e rápidas de criar e destruir – podendo ser até cem vezes mais rápidas que a criação de um novo processo.

Árvore de processos

Threads ↑
Fonte: adaptado de Tanenbaum e Bos (2016, p. 71).

Árvore de processos

Multithreads ↑
Fonte: adaptado de Tanenbaum e Bos (2016, p. 71).


5. Aplicativos e Utilitários

Além do sistema operacional, o software de um computador é composto por:


6. Considerações Finais

O capítulo evidencia que o software é a camada inteligente que opera sobre o hardware, tornando-o utilizável sem que o usuário precise conhecer os detalhes técnicos. O sistema operacional gerencia os recursos do sistema por meio de técnicas como multiplexação no tempo e no espaço, e possibilita a execução de múltiplos processos e threads para simular paralelismo – mesmo em sistemas com uma única CPU. Além disso, a distinção entre aplicativos e utilitários reforça como diferentes níveis de software colaboram para oferecer uma experiência completa e funcional.