multiprocessadores multicomputadorescruz/courses/eel770/... · –distribui tarefas para as outras...

55
EEL770 – Sistemas Operacionais Multiprocessadores & Multicomputadores Pedro Cruz

Upload: others

Post on 18-Nov-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

EEL770 – Sistemas Operacionais

Multiprocessadores&

Multicomputadores

Pedro Cruz

Page 2: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Datas

• 13 de junho

– Entrega das lista

• 18 de Junho

– P2

• 20 e 25 de junho

– Apresentações finais dos trabalhos e vistas de prova

• 27 de junho

– Prova final

• 02 de julho

– Prova de 2ª chamada

2

Page 3: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Motivação

• Queremos mais operações por tempo

– Aumentar a frequência do relógio não adianta mais

• Relatividade

• Dissipação

3

Page 4: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Arquitetura

• Multiprocessador de memória compartilhada

• Multicomputador com troca de mensagens

• Sistema distribuído em rede de longa distância

4

Page 5: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Multiprocessadores

• Múltiplas CPUs compartilham memória

– Memória compartilhada pode servir de área de comunicação

– SO também deve realizar operações de processador único

5

CPU

Memória Compartilhada

CPU

CPUCPU

Page 6: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Arquitetura de multiprocessadores

• Sem cache

• Com cache

• Com cache e área privada

6

Memória Compartilhada

CPU

CPU

Memória Compartilhada

CPU

cache

CPU

cache

Memória Compartilhada

CPU

cache

CPU

cache

Page 7: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Tempo de acesso à memória

• Uniform Memory Access (UMA)

– Tempo de acesso à memória é uniforme

• Tempo de acesso igual para todas palavras de memória

• Nonuniform Memory Access (NUMA)

– Tempo de acesso à memória não é uniforme

• Tempo de acesso diferente a palavras distintas

7

Page 8: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Multiprocessadores sem cache

• Uma CPU deseja acessar memória

– Verifica se barramento está ocupado

– Envia comando para a memória

– Aguarda a memória

– Lê o barramento

– Se barramento estiver ocupado, aguarda

• Métodos de acesso ao meio

Solução: cache

8

Memória Compartilhada

CPUCPU

Page 9: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Multiprocessadores com cache

• CPUs possuem cache

– Memória “escondida”

• CPUs copiam parte da memória compartilhada

– Redução do tráfego do barramento

9

Memória Compartilhada

CPU

cache

CPU

cache

Page 10: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Considerações sobre cache

• Cache é acessado em linhas de cache

– Mais de uma palavra

• Coerência de cache

– Cache é uma cópia de parte da memória

• Se uma CPU escreve em memória que é compartilhada

– Inicia atualização de outros caches que fazem referência àquela memória

10

Page 11: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

CPUs com cache e área privada

• CPUs possuem área significativa de área privada

– Área compartilhada

• Comunicação entre CPUs

– Área privada

• Código

• Variáveis locais

• Compilador dos programas possui papel fundamental

11

Memória Compartilhada

CPU

cache

CPU

cache

Page 12: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Barramento cruzado

• n CPUs e k módulos de memória

– Malha conecta todos

– Interseções são chaveáveis

• Número de chaves é n*k

– Pode ser grande demais

• Barramento não bloqueia CPU

– Acesso a mesmo módulo pode bloquear CPUs

12

CPU CPU CPU

Mem

Mem

Mem

Mem

Mem

Page 13: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Redes de comutação multiestágio

• Elemento de comutação

• Mensagem ao barramento contém dados de comutação

– Qual saída deve ser ativada

13

i1

i2

o1

o2

Page 14: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Rede de comutação ômega

CPUs

000

001

010

011

100

101

110

111

14

Memórias

000

001

010

011

100

101

110

111

1A

1B

1C

1D

2A

2B

2C

2D

3A

3B

3C

3D

Page 15: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Rede de comutação ômega

• Pode haver bloqueio de CPU por causa do barramento?

– Como?

15

Page 16: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Entrelaçamento de memória

• Acesso à memória costuma ser em endereços consecutivos

– Armazenar endereços consecutivos em módulos diferentes

• Aumento no nível de paralelismo

16

Page 17: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Multiprocessadores NUMA

• CPUs possuem memória local

– Memória local de uma CPU é visível para outra CPU

• Acesso à memória local é mais rápido

• Acesso à memória remota é feito por instruções especiais

– LOAD

– STORE

• Cache pode ser utilizado

– Deve haver coerência de cache

17

Page 18: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Cache-Coherent NUMA

• Multiprocessador baseado em diretórios

– Banco de dados mapeia o cache local e seu estado

• Escritas na memória são encaminhadas a nó que tem aquele endereço em cache

18

Page 19: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Sistemas operacionaispara multiprocessadores

• Abordagem simplória

• Abordagem mestre-escravo

• Abordagem de multiprocessadores simétricos

19

Page 20: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Abordagem simplória

• Um Sistema Operacional pra cada CPU

– CPUs recebem fatia fixa da memória

– CPUs não compartilham processos

– CPUs não compartilham memória

– CPUs não compartilham usuários

– CPUs compartilham dispositivos

20

Page 21: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Abordagem mestre-escravo

• CPU mestre roda o operacional

– Recebe todas as chamadas de sistema

– Aloca memória para as outras CPUs

– Distribui tarefas para as outras CPUs

21

Page 22: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Abordagem de multiprocessadores simétricos

• Existe uma cópia do SO em memória

– Qualquer CPU pode executá-lo

• Chamada de sistema chaveia a CPU para modo núcleo

– CPU que recebe a chamada é a mesma que a atende

• Executar o núcleo requer exclusão mútua

– Grande trava de núcleo

• Execução do núcleo é protegida por mutex

• Só uma CPU executa o núcleo por vez

– Múltiplas regiões críticas independentes

• Cada região crítica do SO é protegida por um mutex

– Potencial de erros: over 9000

22

Page 23: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Test and Set Lock

• Instrução TSL realiza leitura e escrita atômica

– Atomicidade só do ponto de vista da CPU que a executa

• Para o barramento e memória, são duas operações

• TSL trava o barramento

• CPUs requisitantes fazem teste contínuo

– Desperdício de tempo

– Carga sobre o barramento

• TSL é uma escrita

– Escritas invalidam cache

» Palavra de memória tem que ser reescrita nos caches de todas as CPUs que participam do mutex

23

Page 24: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Redução de tráfego no barramento

• Antes de executar TSL, executar uma leitura

– Se variável estiver livre, executar TSL

• Não garante nada, mas reduz reescrita de cache

• Recuo exponencial binário (binary exponential backoff)

– Se tentativa de TSL falha, reduz frequência de testes por 2

• Até um mínimo estabelecido

24

Page 25: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Chaveamento vs teste contínuo

• Se há uma única CPU e thread está bloqueada

– A própria CPU deve trabalhar para destravar thread

• Chaveamento é necessário

• Se há muitas CPUs e thread está bloqueada

– Outra CPU pode desbloquear a thread

• Chaveamento não é necessário

– Custos de chavear nem sempre valem a pena

• Se bloqueio demora -> chaveamento vale o custo

• Se bloqueio é rápido -> chaveamento não vale o custo

• Se histórico for utilizado, saberemos quais bloqueios valem o custo de chaveamento

25

Page 26: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Escalonamento em multiprocessadores

• Threads de usuário e de núcleo

• Escalonamento em multiprocessadores

– Qual thread escalonar

– Qual CPU deve receber a thread

26

Page 27: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Compartilhamento de tempo

• Threads são ordenadas por prioridade

– CPU ociosa escolhe a primeira da fila

– Vantagem

• Balanceamento de carga “de graça”

– Desvantagem

• Competição pelo uso da fila

• Exclusão mútua das threads

27

Page 28: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Compartilhamento de tempo

• Escalonamento inteligente

– Se thread adquire trava, ganha um pouco mais de tempo

• Escalonamento por afinidade

– SO procura enviar threads para o mesmo processador

• Escalonamento de dois níveis

– Nível 1

• Threads são distribuídas pelas CPUs

– Nível 2

• CPUs escolhem quais threads de seu conjunto executar

28

Page 29: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Compartilhamento de espaço

• Threads que se comunicam muito devem ser executadas ao mesmo tempo

– Abordagem simples

• Quando threads são inicializadas juntas, cada uma é alocada para uma única CPU

– Inicialização deve esperar até que haja CPUs suficientes

– Abordagem mais curta primeiro

• Threads que vão demorar menos são executadas primeiro

– Abordagem de teoria dos jogos

• Threads “gananciosas” são penalizadas quando número de CPUs é insuficiente

29

Page 30: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Escalonamento em bando

• É bom que threads relacionadas executem juntas

– Solução

• Todas as threads relacionadas serem escalonadas juntas

30

Page 31: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Multicomputadores

• Diversos computadores fortemente acoplados

– Não há memória compartilhada

31

Page 32: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Hardware de multicomputadores

• CPU

• Memória privada

• Placa de rede

32

Page 33: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Interconexão

• Nós dos multicomputadores devem ser conectados entre si

– Estrela

• Necessita de comutador

– Grade ou malha

• Múltiplos saltos

33

Page 34: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Comutação

• Comutação de circuitos

• Comutação de pacotes

34

Page 35: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Comutação de circuitos

• Caminho entre dois nós é reservado

– Conexão estabelecida

• Caminho é utilizado até o fim da conexão

• Existe caminho fixo

• Existe reserva de recurso

35

Page 36: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Comutação de pacotes

• Mensagens são divididas em pacotes

• Nós armazenam e encaminham pacote para o próximo nó

• Não existe caminho fixo

• Não existe reserva de recurso

36

Page 37: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Placas de rede

• Devem ser capazes de receber e enviar dados de forma síncrona

– Não podem ser travadas por competição pelo barramento

• Devem ter RAM própria

– Devem transferir muitos dados para a memória principal

• Devem dar suporte à DMA

– Podem ou não tratar problemas de rede

• Ter uma CPU própria

– Transmissão confiável

– Multicasting

– Compactação

– Criptografia

– .... 37

Page 38: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Software de comunicação

• Muitas cópias que atrapalham desempenho

– RAM origem -> placa origem

– Placa origem -> placa destino

– Placa destino -> RAM destino

• Softwares devem ler/escrever na placa

– Mapear RAM da placa no espaço do usuário

• Com múltiplos processos, como garantir exclusão mútua?

• Quando um pacote chegar, pra quem entregar?

– Mapear RAM da placa no espaço de núcleo

• Chamada de sistema pra cada operação é custoso

38

Page 39: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Software de comunicação

• Múltiplas placas no mesmo nó

– Uma pra cada usuário/processo

• Placas de rede com múltiplas filas

– Uma fila pra cada usuário/processo

• TCP e UDP oferecem ‘portas’

39

Page 40: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Software de comunicaçãoa nível de usuário

• Usuário quer enviar mensagens

– Interface pode ser fornecida pelo SO

• Send(dest, &mptr)

• Receive(addr, &mprt)

• Usuário precisa saber endereçar o processo destinatário

– Habita um nó destinatário

• Endereçamento hierárquico

– Endereço = (id_nó, id_processo)

40

Page 41: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Chamadas bloqueantes/não bloqueantes

• Enviar mensagem não necessita de bloqueio

– Mas usuário não pode escrever em &mptr até fim do envio

• Soluções

– Cópia para buffer de núcleo

– Interrupção ao fim do envio

– Buffer com cópia na escrita

41

Page 42: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Chamada de rotina remota

• Remote Procedure Call – RPC

– Paradigma cliente-servidor

• Stub do cliente

– Fica no cliente e se comporta como o servidor

• Stub do servidor

– Fica no servidor e se comporta como o cliente

42

Software Sliente

Sistema Operacional

StubCliente

Software Servidor

Sistema Operacional

StubServidor

Page 43: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Problemas com RPC

• Passagem de ponteiros

– Os stubs podem resolver isso

• Para tipos simples de dados

• Convenções do programador

– Se vetores possuem terminador, stub tem problemas

• Tipos de parâmetros nem sempre são óbvios

• Compartilhamento de variáveis globais

43

Page 44: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Memória compartilhada distribuída - DSM

• Memória virtual compartilhada (Distributed Shared Memory– DSM)

– Sistema possui globalmente um número de páginas

– Páginas são distribuídas por máquinas do sistema

– Chamadas de LOAD e STORE trazem toda uma página

• Página é removida da máquina de origem

44

Page 45: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

DSM – uma outra visão

• Endereçamento é feito em duas partes: página e palavra

• Quando página referenciada não está presente localmente

– Sistema de DSM realiza captura

– Página remota é localizada

– Página remota é trazida para memória local

– Processo que realizou a referência é reiniciado

• Problema?

45

Page 46: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Replicação de páginas em DSM

• Páginas podem ser copiadas por algumas máquinas

– Inconsistência

• Copiar apenas páginas “somente leitura”

– E se não for o suficiente?

» Copia mais e mantém consistência

46

Page 47: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Página efetiva

• Páginas do DSM não precisam ser as páginas da memória virtual

– Precisam ser múltiplos inteiros, para usar a MMU

• Página efetiva

• Realizar conexão é custoso

– Vantajoso enviar muitas páginas por vez

47

Page 48: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Falso compartilhamento

• Página efetiva contendo muitas páginas

– Probabilidade de atualização de variáveis aumenta

• Necessidade de troca de mensagens aumenta

– Se páginas são do mesmo processo, compilador resolve

• Mas não necessariamente são

48

Page 49: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Consistência

• Tentativas de escrita iniciam processo de consistência

– CPU adquire trava sobre página

• Todas as outras CPUs descartam a página

– Se estiver em memória

– CPU libera trava sobre página

• Todas as outras CPUs copiam a página

– Se estiver em memória

49

Page 50: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Escalonamento

• Processos convivem em espaços diferentes de memória

– Não vale a pena processo da CPU1 ser executado na CPU2

• Inicialização de processos pode balancear a carga

• Escalonamento em bando requer acordo de sincronização

50

Page 51: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Alocação de processadores

• É necessário alocar uma máquina para cada processo

– Algoritmo determinístico de teoria dos grafos

– Algoritmo determinístico iniciado por emissor

– Algoritmo heurístico distribuído iniciado por receptor

51

Page 52: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Algoritmo determinístico de teoria dos grafos

• Grafo

– Vértices: processos

– Arestas: fluxo de dados entre processos

• Meta

– Encontrar agrupamentos no grafo

• Fluxo de dados intra agrupamento é máximo

• Fluxo de dados inter agrupamento é mínimo

• Requisitos dos processos são obedecidos

– CPU

– Memória

– ...

52

Page 53: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Algoritmo determinísticoiniciado por emissor

• Ao iniciar um processo

– CPU verifica a própria carga

• Se menor do que limiar, executa

• Se maior do que limiar, busca outra CPU para executar

• Se sistema estiver muito sobrecarregado?

53

Page 54: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

Algoritmo heurístico distribuído iniciado por receptor

• Quando uma máquina está ociosa, envia mensagem pedindo trabalho

54

Page 55: Multiprocessadores Multicomputadorescruz/courses/eel770/... · –Distribui tarefas para as outras CPUs 21. Abordagem de ... • Chamada de sistema chaveia a CPU para modo núcleo

EEL770 – Sistemas Operacionais

Multiprocessadores&

Multicomputadores

Pedro Cruz