Tecnologia da Informação

Sistemas de Multiprocessamento

Pontos principais

  • O multiprocessamento permite a execução paralela real de tarefas através do uso de múltiplas CPUs ou núcleos.
  • Sistemas SMP tratam todos os processadores de forma igual, enquanto sistemas ASMP possuem hierarquias ou funções especializadas.
  • A Taxonomia de Flynn classifica esses sistemas principalmente como MIMD, embora existam implementações SIMD para tarefas específicas.

O multiprocessamento é a utilização de duas ou mais unidades centrais de processamento (CPUs) dentro de um único sistema computacional. Este conceito refere-se tanto à capacidade física do hardware de suportar múltiplos processadores quanto à habilidade do sistema operacional de alocar tarefas entre eles para otimizar a execução de processos.

Definições e Contextos

A definição de multiprocessamento pode variar dependendo do contexto técnico, especialmente no que diz respeito à definição de "processador". Atualmente, isso pode abranger desde núcleos múltiplos em um único chip (processadores multi-core), múltiplos chips em um único encapsulamento, até múltiplos sockets de processadores em uma placa-mãe.

Um sistema multiprocessador é caracterizado por possuir duas ou mais CPUs que compartilham a memória principal e os periféricos para processar programas simultaneamente. Na literatura técnica, esses sistemas são frequentemente descritos como sistemas fortemente acoplados, onde os processadores compartilham total ou parcialmente a memória e as facilidades de entrada e saída (I/O) do sistema.

Multiprocessamento vs. Multitarefa

No nível do sistema operacional, é comum a confusão entre multiprocessamento e multitarefa. Enquanto a multitarefa pode ocorrer em um único processador através do fatiamento de tempo (time-sharing), alternando rapidamente entre tarefas para criar a ilusão de simultaneidade, o multiprocessamento permite a execução verdadeiramente paralela de múltiplos processos, pois cada processo pode rodar em uma CPU ou núcleo distinto no mesmo instante.

Arquiteturas de Simetria de Processadores

A eficiência e o design de um sistema de multiprocessamento dependem de como as CPUs são organizadas e como as tarefas são distribuídas.

Multiprocessamento Simétrico (SMP)

Em sistemas de Multiprocessamento Simétrico (SMP), todas as CPUs são tratadas de forma igual. Não há hierarquia; qualquer processador pode executar qualquer tarefa e todos têm acesso igual aos recursos do sistema. Essa abordagem tende a ser mais eficiente na distribuição de carga de trabalho.

Multiprocessamento Assimétrico (ASMP)

No Multiprocessamento Assimétrico (ASMP), as CPUs não são iguais. Algumas podem ser reservadas para funções específicas ou ter privilégios superiores. Um exemplo comum é o sistema mestre/escravo, onde uma CPU mestre controla o sistema e distribui tarefas para as CPUs escravas.

Exemplo Histórico: TRS-80 Model 16

Lançado em 1982, o Tandy/Radio Shack TRS-80 Model 16 utilizava dois microprocessadores distintos: um Zilog Z80 (8 bits) e um Motorola 68000 (16 bits). Inicialmente, o Z80 atuava como mestre para inicializar o sistema e, posteriormente, as funções eram invertidas: o 68000 assumia o controle do sistema operacional e das aplicações, enquanto o Z80 tornava-se um escravo responsável pelas operações de entrada e saída (I/O).

Fluxos de Instruções e Dados

De acordo com a Taxonomia de Flynn, os sistemas de multiprocessamento podem ser classificados com base em como processam instruções e dados:

  • SIMD (Single Instruction, Multiple Data): Uma única instrução é executada sobre múltiplos fluxos de dados. É amplamente utilizado em processamento vetorial e GPUs modernas.
  • MISD (Multiple Instruction, Single Data): Múltiplas instruções operam sobre um único fluxo de dados. É raro, sendo utilizado principalmente em sistemas de alta redundância para segurança (fail-safe).
  • MIMD (Multiple Instruction, Multiple Data): Múltiplas instruções operam sobre múltiplos fluxos de dados. A maioria dos sistemas multiprocessadores modernos enquadra-se nesta categoria.

Perguntas frequentes

Qual a diferença entre multiprocessamento e multitarefa?

A multitarefa pode ser realizada em um único processador alternando rapidamente entre tarefas (fatiamento de tempo), enquanto o multiprocessamento utiliza múltiplos processadores para executar tarefas simultaneamente em paralelo.

O que é um sistema de multiprocessamento simétrico (SMP)?

É um sistema onde todas as CPUs são idênticas em termos de capacidades e têm acesso igual aos recursos de memória e I/O, distribuindo a carga de trabalho de forma equilibrada.

O que caracteriza a arquitetura mestre/escravo?

Nesta arquitetura, uma CPU (mestre) é responsável pelo controle do sistema e pela gestão de recursos, delegando a execução de tarefas específicas para outras CPUs (escravas).