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.