Paralelismo - CPU
Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time?
(The Matrix)
7.1
Introdução – Classificação de Sistemas Paralelos
Diversas aplicações procuram lançar mão de multi-processamento para
obter melhor performance, a começar pelos próprios sistemas operacionais ou
PUC-Rio - Certificação Digital Nº 0016026/CA
serviços de busca para Internet. Os objetivos do paralelismo podem ser categorizados como:
- Permitir que sistemas munidos de mais de um processador possam acelerar a resolução de um problema de natureza paralelizável;
- Poder executar vários processos simultaneamente (define-se neste caso, segundo Carissimi (2001), que processo é um programa em execução)
- Otimizar o tempo ocioso (idle time) das CPU’s;
A divisão de processos pode ocorrer tanto ao nível de várias aplicações independentes sendo executadas simultaneamente, bem como uma mesma aplicação dividida em vários threads (thread level paralelism -TLP) (Marr, 2002).
De acordo com Andrews (2000), toda aplicação paralela pode ser categorizada como sendo de uma das seguintes formas:
- Sistema Multi-Threaded: um programa que contém mais processos do que o número de processadores disponíveis. Estes sistemas têm como objetivo gerenciar múltiplas tarefas independentes. Um sistema operacional se encontra dentro desta categoria;
- Sistema Distribuído: vários processos são executados em várias máquinas, conectadas entre si de alguma forma. Estes processos se comunicam mutuamente através de mensagens;
92
- Computação Paralela: Um programa se divide em vários processos para resolver o mesmo problema num tempo menor. Geralmente haverá o mesmo número de processos quanto o de processadores.
Também pode-se categorizar uma aplicação paralela de acordo com o modelo de programação adotado (Andrews, 2000):
- Variáveis compartilhadas: os processos trocam informações entre si através de uma memória