08 de maio - DCCE/Ibilce/Unesp

Propaganda
Implementação
Distribuída
Escalonamento de
Tempo-Real
Prof. Dr. Norian Marranghello
Grupo 8
Daniela Gonçalves Strozi – 004812
Sayuri Watanabe - 002330
Implementação de
Processos Distribuídos
• Introdução.
• Serviço Remoto.
• Execução Remota.
• Migração de Processos.
Introdução
•
Site remoto.
•
Modelo Cliente/Servidor (RPC).
•
Processos Stub.
Modelo Lógico de Processo
Local e Remoto
Cliente
Servidor
Processo local
Processo remoto
Processo Stub
Processo Stub
Serviço Remoto
•
Compartilhamento de arquivos, periféricos, capacidade de
processamento.
•
Três diferentes níveis de pedido à serviço remoto:
– Nível de linguagem;
– Nível de Sistema Operacional;
– Nível de aplicação;
Serviço Remoto
•
•
Nível de linguagem:
– Chamada a um procedimento;
– Acesso e locação transparente;
Nível de Sistema Operacional:
– Comandos remotos;
– Construídos como parte do shell;
•
– Reconhecido pelo Sistema Operacional;
Nível de aplicação:
– Mensagens interpretativas;
– Processo stub do servidor interpreta mensagens enviadas.
Serviço Remoto
•
O que é necessário para a execução de operações remotas?
– Redirecionamento I/O;
• Stub cliente copia entrada;
• Stub servidor copia saída e erros;
– Segurança.
• Stub servidor pode autenticar processo do cliente.
Execução Remota
•
•
Execução de um programa.
Processo servidor é responsável:
– Manter informações;
– Negociar com o host remoto;
– Chamar uma operação remota;
– Criar um processo stub.
•
Algumas implementações.
– Algoritmos de Compartilhamento de Carga;
– Locação Independente;
– Sistemas Heterogêneos;
– Proteção e Segurança.
Algoritmo de
Compartilhamento de Carga
•
•
•
•
•
•
•
•
Inicializado Explicitamente:
- Processo;
Implicitamente:
- Processo servidor local;
Lista de host;
Seleciona um host;
Serviços registrados ou não
implementação por broadcasting;
Host selecionado
requisição de serviços;
Cliente autenticado e requisição aceita
Execução Remota;
Servidor
processo remoto e stub;
Cliente
Site remoto
Locação Independente
•
Suporte para concepção lógica do processo;
•
Processo remoto representado por agente de processo do host original
•
Mecanismo de comunicação inter processos são locações
transparentes;
Sistema Heterogêneo
•
Configuração diferente de hardware e software;
•
Necessidade de recompilação;
•
Conseqüência: Overhead.
•
Solução: Linguagem independente de máquina
Ex.: Java.
Proteção e Segurança
•
Códigos originais ou intermediários;
•
Restrição de ponteiros e heranças múltiplas;
•
Verificar se o programa é original;
•
Run-time e stack overflow protege hosts remotos;
•
Motivo para constantes pesquisas
Migração de Processo
•
•
•
•
Preempção na execução remota (modelo de compartilhamento de
carga);
Similar a execução remota
Precisa transferir informações;
Informação do estado do processo é subdividido em:
– Estado Computacional;
• Informação para salvar e restaurar processo;
– Estado de Comunicação;
• Status do link de comunicação de processo;
• Transferência de mensagens;
• Redirecionamento de link e transmissão de mensagens;
• Estado e Contexto de transferência.
Redirecionamento de Link e
Transmissão de Mensagens
•
Tabela de links mantida pelo Kernel;
•
Ponteiros para endpoints de comunicação de pares de processos;
•
Atualização dos links;
•
Redirecionamento pode ser antes ou depois da mudança;
Redirecionamento de Link e
Transmissão de Mensagens
Redirecionamento de link
Estado e
contexto de
transferência
Execução
suspensa
Mensagens
transferidas
pelo kernel
origem
Execução
recuperada
Mensagens
transferidas
pelo kernel
destino
Tempo de
congelamento
do processo
Estado e Contexto de
Transferência
•
•
Overhead;
Solução: Minimizar o tempo de congelamento:
Transferência de contexto, redirecionamento do link e envio de
mensagem
– Proceder concorrentemente;
– Esperar o recomeço da execução;
•
Transferir informações do estado computacional e códigos iniciais;
•
Cópia do código do processo pode ser quebrado em blocos.
Escalonamento de
Tempo-Real
•
Introdução.
•
Taxa monotônica.
•
Deadline monotônico.
•
Sincronização de tempo-real.
Introdução
•
Sistemas de tempo-real.
•
Tarefas:
– Periódicas.
– Não-Periódicas
•
Classificação dos Sistemas:
– Sistemas Críticos.
– Sistemas Não-Críticos.
– Sistemas Não-Essenciais.
Taxa Monotônica
•
As tarefas são periódicas e Ti é o período para cada tarefa
•
As tarefas não se comunicam uma com as outras.
•
Prioridade (Escalonamento Estático de Prioridade)
•
Atribuição de Prioridade à taxa monotônica.
– Se Th < Tl então PRh > PRl

i.
Taxa Monotônica
Exemplo de instante crítico de uma tarefa
Taxa Monotônica
•
Análise de tempo
n
C
•
L =
•
•
ri(0)
=
ri(k +1) =
•
•
i
/ Ti
i 1
Ci
Ci +
e
L = n(21/n - 1)
i 1
 [r (k ) / T ]C
i
h
h
h 1
Se ri (k) = ri (k+1) então o sistema é possível.
Se em alguma iteração ri(k) > Ti então os sistema não possui uma
atribuição de prioridade factível.
Deadline Monotônico
•
Atribuição de prioridade através do deadline de cada tarefa.
•
Atribuição de prioridade de deadline monotônico:
– Se Dh < Dl então PRh > PRl.
– O conjunto de tarefas é possível se ri  Di , para i = 1,...,n.
Sincronização de Tempo-Real
Sincronização de Tempo-Real
•
Protocolo de Herança de Prioridade (PIP).
– Prioridade RM;
– CPU - prioridade mais alta;
– Bloqueio de semáforo;
– PRl recebe PRh;
– Herança de prioridade transitiva;
– PRh volta a executar com sua prioridade original;
•
Protocolo de Prioridade Máxima.
Download