1 - Din UEM

Propaganda
ORGANIZAÇÃO PARALELA
Notas de aula - Carlos Sica - 1999
1.
Multiprocessamento
1.1
Tipos
 Multiprocessamento fracamente acoplado
Consiste de uma coleção de sistemas relativamente autônomos, cada CPU tem sua própria
Memória principal e canais de E/S. o termo multicomputador é muito utilizado neste
contexto.
 Processadores funcionalmente especializados
Neste caso, existe um mestre, genérico, e os processadores especializados são controlados
pela CPU mestre, que fornece os serviços para eles. Como exemplo cita-se os coprocessadores aritméticos e de E/S.
 Multiprocessamento fortemente acoplado
Consiste de um conjunto de processadores que compartilham a memória principal e
dependem do controle integrado do sistema operacional.
 Processamento paralelo
Os processadores fortemente acoplados que trabalham cooperativamente para executar
uma tarefa em paralelo. Também chamados de sistemas multiprocessados ou
miltiprocessadores, tem as seguintes características:
 Contém dois ou mais processadores genéricos similares e com capacidade
também similares.
 Todos os processadores compartilham o acesso à memória principal.
Alguma memória local, de acesso privado, pode ser utilizada.
 Todos os processadores compartilham o acesso ao sistema de E/S, através
do mesmo canal ou através de canais diferentes que fornecem caminhos
para o mesmo dispositivo.
 O conjunto é controlado por um sistema operacional integrado, que fornece
interação entre os processadores e seus programas nos níveis de tarefas,
arquivos e dados. Este é o ponto que ilustra um dos contrastes com o
sistema fracamente acoplado que, usualmente interagem fisicamente com
um arquivo completo e, no caso multiprocessado, dados podem constituir
níveis de interação e podem estabelecer um alto grau de cooperação entre os
processos.
1.2
Classificação
O método de Flynn, baseia-se nas possibilidades de combinação entre uma ou mais
seqüências de instruções atuando sobre uma ou mais seqüências de dados. Este método é
impreciso para classificar variações de sistemas multiprocessados e processadores
vetoriais.
1. SISD - uma seqüência de instruções, uma seqüência de dados. Corresponde aos
computadores seqüenciais convencionais nos quais só existe uma única unidade de
controle que decodifica seqüencialmente instruções que operam sobre um conjunto
de dados.
1
UC
SI
UP
SD
MEM
SI
2. SIMD - uma seqüência de instruções, múltiplas seqüências de dados. Corresponde
aos computadores matriciais nos quais vários elementos processadores são
conectados por uma única unidade de controle que decodifica seqüencialmente as
instruções e as transmite para todas as unidades de processamento. Os
processadores que estiverem disponíveis executarão as instruções recebidas sobre
os dados previamente carregados em suas memórias.
SI
UC
UP1
MEM1
UP2
MEM2
UPn
MEMn
3. MISD - Múltiplas seqüências de instruções, uma seqüência de dados.
SD
UC1
UC1
SI1
SI1
UP1
MEM1
MEM2
UP2
MEMn
SIn
UCn
UPn
SD
4. MIMD - Múltiplas seqüências de instruções, múltiplas seqüências de dados.
Multiprocessadores.
SD1
UC1
SI1
UP1
MEM1
SD2
UC1
SI1
UP2
SIn
UCn
MEM2
SDn
UPn
MEMn
2
1.3
Organização do multiprocessamento ou Classificação
estrutural da classe MIMD
A figura abaixo mostra, em termos gerais, a organização de um sistema multiprocesado.
Esses sistemas têm duas ou mais CPUs, sendo que cada CPU é autônomo, incluindo a
unidade de controle, ULA, registradores e cache. Compartilham, porém, a memória
principal e o sistema de E/S. Os processadores podem se comunicar através da memória,
mantendo mensagens e informações de estado em uma área de dados comum. Existe a
possibilidade também, de trocarem sinais entre si por linhas específicas.
CPU CPU


...
CPU

Interconexão




E/S
E/S
...
E/S



Memória principal
A memória é organizada para que acessos simultâneos a blocos distintos de memória sejam
possíveis.
Em algumas configurações, cada CPU pode ter sua própria memória principal e seus
próprios canais de E/S, além dos recursos compartilhados.
A organização dos sistemas multiprocessados pode ser classificada como:
 Barramento com tempo compartilhado ou barramento comum;
 Memória Distribuída (multiporta);
 Unidade de controle central.
1.3.1
Barramento com
compartilhada
tempo
compartilhado
ou
Memória
Este é o mecanismo mais simples para construir um sistema multiprocessado. A estrutura e
as interfaces são semelhantes ao sistema monoprocessado que utiliza interconexão por
barramentos como proposto por Von Neumann (barramento de endereços, de controle e de
dados).
Para facilitar transferências DMA, existem as seguintes características:
 Endereçamento: ele deve saber distinguir módulos no barramento para determinar
a fonte e o destino do dado.
 Arbitragem: todo módulo de E/S pode funcionar como mestre temporariamente.
Um mecanismo é fornecido para arbitrar a competição de requisição de barramento,
utilizando algum esquema de ordenação por prioridade.
 Compartilhamento por tempo: quando um módulo está controlando o
barramento, outros módulos aguardam e devem, se necessário, suspender sua
operação até que o barramento seja liberado. Neste caso, podem existir múltiplas
CPUs, bem como, múltiplos coprocessadores de E/S, todos tentando acessar um ou
mais módulos de memória via barramento.
3
Estas características são diretamente aplicadas numa configuração multiprocessador. NO
caso Time Sharing existem múltipas CPUs, bem como, vários processadores de E/S e
todos concorrendo aos módulos de memória através do barramento.
CPU
...
CPU
E/S
...
E/S
MEM
...
MEM
Esta organização tem várias vantagens sobre outras
 Simplicidade: a interface física, e a lógica de endereçamento, arbitragem e
compartilhamento do tempo são iguais a de um sistema monoprocessado.
 Flexibilidade: em geral, é fácil de expandir o sistema ligando mais CPU's ao
barramento.
 Reliability: o barramento é essencialmente um meio passivo e a falha de um
dispositivo ligado a ele, não deve causar falhas no sistema.
O principal destaque da organização do barramento é a performance, pois, toda referência
à memória passa por ele, assim, a velocidade do sistema é limitada pelo tempo do ciclo.
Para melhorar a performance, é desejável que cada CPU seja equipada com memória
cache, pois isto, reduz o número de acessos drasticamente.
O uso de caches introduz algumas novas considerações no projeto. Visto que, cada cache
local tem um espelho de uma porção de memória, se uma palavra é alterada em uma cache,
deve causar a invalidação de uma palavra em outra cache. Para prevenir isso, as outras
CPU's devem ser alertadas que uma atualização está acontecendo.
CPU
cache
1.3.2
...
CPU
E/S
...
E/S
MEM
...
MEM
cache
Memória distribuída
A técnica da memória multiporta permite o acesso direto e independente dos módulos de
memória principal por cada CPU e dispositivos de E/S, neste caso, uma lógica associada
com a memória é necessária para resolver conflitos.
M1
CPU1
...
CPUn
M2
Mn
E/S1
...
E/Sn
O método freqüentemente utilizado para resolver esses conflitos é o de designar
permanentemente prioridade para cada porta de memória. Tipicamente, a interface física e
elétrica em cada porta é idêntica ap que é visto em sistemas de memória com módulos de
porta única, assim, para acomodar as memórias multiportas, pequenas ou nenhuma
modificação são necessárias tanto para a CPU quanto para os dispositivos E/S.
4
Esta técnica é mais complexa que a do barramento, pois, requer lógica adicional ao sistema
de memória, porém, fornece melhor performance, visto que, cada processador tem um
caminho fixo para um módulo de memória. Outra vantagem é que é possível configurar
porções de memória como privadas, para uma ou mais CPU's e/ou dispositivos de E/S, esta
característica permite aumentar a segurança contra acessos não autorizados e também o
armazenamento de rotinas em áreas não susceptíveis a modificações por outros
processadores.
1.3.3
Unidade de Controle Central
A unidade de controle central, separa dados entre módulos independentes: CPU memória,
E/S. O controlador poder "bufferizar" pedidos e executar funções de arbitragem e
temporização. Pode também, passar mensagens de estado e controle entre a CPUs e
executar alertas de atualização da cache.
Devido ao fato de toda lógica de coordenação da configuração do sistema multiprocessado
se concentrar essencialmente na unidade central de controle, interfaces de E/S, memória e
CPU não são perturbadas com esta tarefa. Esta técnica fornece a flexibilidade e
simplicidade da técnica de barramentos. A desvantagem é que a unicade de controle é
complexa e sua performance é potencialmente "botteleneck".
A estrutura da unidade central de processamento é comum nos sistemas mainframes de
processadores múltiplos, tal como, membros da família IBM S/370.
1.4
Sistemas operacionais multiprocessados
Em um sistema fortemente acoplado, o usuário percebe um sistema operacional único,
controlando os recursos do sistema, de fato, tal configuração deveria aparecer como um
sistema multiprogramado e monoprocessado. Em ambos os casos, múltiplas tarefas ou
processos podem estar ativos ao mesmo tempo e o sistema operacional tem a
responsabilidade de despachar para execução e alocar recursos.
Sete funções de um sistema operacional multiprocessado:
1. Alocação e gerenciamento de recursos;
2. Proteção de dados e tabelas
3. Prevenção contra deadlock do sistema
4. Terminação anormal
5. Balanceamento de carga de E/S
6. Balanceamento de carga de processador
7. Reconfiguração
Se levarmos em conta os sistemas multiprogramados, somente as últimas três são
substancialmente diferentes, quando estabelecida comparação entre sistemas
multiprocessados e monoprocessados. É responsabilidade do sistema operacional
determinar quais recursos são utilizados eficientemente, de outra forma, os investimentos
em várias CPU´s são desperdiçados. Ele deve também, reconfigurar o sistema quando um
processador falha, para pode continuar a operação, mesmo que num nível de performance
reduzido.
Multiprocessadores fortemente acoplados podem ser caracterizados pela forma que uma
tarefa é despachada. Existem duas dimensões para uma função de despacho:
1. Se processos são dedicados ao processador.
2. Como processos são despachados para o processador.
Se cada processador tiver uma fila de despacho exclusiva (tipo short-term), então uma vez
que o processo for ativado, ele é associado a um processador definitivamente até seu
término. Neste caso, um processador pode estar ocioso, com a fila vazia, enquanto outro
processador tem um "backlog". Para previnir esta situação, uma fila comum, pode ser
5
utilizada. Todos os processos vão para a fila e são despachados para qualquer processador
disponível. Assim, a tarefa pode ser executada em processadores diferentes em tempos
diferentes.
Retomando o assunto, se um processo é dedicado a um processador, alguns princípios são
necessários para associar um processo ao processador. Duas técnicas são utilizadas:
 mestre/escravo e
 "peer".
1.4.1
Arquitetura mestre/escravo
Com a arquitetura mestre e escravo, o SO sempre roda em um processador específico,
enquanto os outros processadores podem rodar somente programas do usuário. O mestre é
responsável por despachar as tarefas. Uma vez que um processo está ativo, se o escravo
precisa executar um serviço, por exemplo, uma chamada de E/S, ele deve enviar um
pedido ao mestre e esperar pela execução desse serviço. Esta técnica é simples e requer
pouca melhora em relação a um sistema operacional multitarefa operando sobre um
sistema monoprocessado. A resolução de conflitos é simplificada visto que, um
processador tem controle de todos os recursos de memória e E/S. Existem, porém, duas
desvantagens:
1. A falha do mestre põe o sistema em colapso
2. O mestre pode tornar a performance "bottleneck"
1.4.2
Arquitetura peer
O sistema operacional pode executar em qualquer processador e cada processador faz um
despacho próprio a partir do conjunto de processos disponível. Esta técnica torna o SO
mais complicado, pois, ele deve garantir que dois processadores não escolham o mesmo
processo e que os processos não fiquem perdidos na fila, além disso, deve existir uma
técnica para resolver o sincronismo entre a competição de recursos.
6
Download