Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Documentos relacionados
Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Escalonamento em Sistemas Distribuídos

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

6 ESCALONAMENTO DE CPU

ARQUITETURA DE COMPUTADORES

Uma Proposta para Migração de Páginas Linux

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Escalonamento de processos. Grupo 7. Levi Arão Xavier Marcel Eduardo Del Dottore

Inversão de prioridades

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Conceitos Básicos dos Sistemas de Tempo Real

Davidson Rodrigo Boccardo

Sistemas Operacionais. Escalonamento de processos

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

Escalonamento de Processos Uniprocessador

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Escalonamento de processos

Desempenho de computação paralela

Caracterização de Sistemas Distribuídos

Sistemas Operacionais. Gerência de Memória

Organização e Arquitetura de Computadores I

COMUNICAÇÃO ENTRE PROCESSOS

Sistemas Operacionais

Gerência do Processador. Adão de Melo Neto

Gerência de Recursos. Gerência do Processador

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

O que é um sistema distribuído?

Tipos de Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Introdução aos Sistemas Distribuídos

Sistemas de Computação. Processos e escalonamento

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Memória virtual. Sistemas de Computação

Gerência de Recursos. Gerência do Processador

Sistemas Operacionais Gerência de Memória

Gerência de Recursos. Gerência de Memória

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Sistemas Operacionais

Sistemas Operacionais

Compiladores. Otimização de Código

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável

Sistemas Operacionais. Concorrência

Curso: Redes de Computadores

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Escalonamento do CPU

Sistemas Operacionais

SOP - TADS Escalonamento de Processos

Caracterização. Sistemas de Tempo Real: Caracterização. Caracterização. Caracterização. Concepções Erradas. Mercados

Gerência da Memória Memória Virtual. Adão de Melo Neto

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Redes P2P. Apresentadora: Luciana Pereira Oliveira. Duração: 40 minutos Data: 20/07/

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Alocação de processos a processadores. equilíbrio de carga e oportunismo

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 09. Escalonadores. Conceito, escalonamento, filas de escalonamento e tipos de escalonadores.

Introdução à Ciência da Computação

Sistemas Operacionais. Escalonamento de Processos

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

Processos. Escalonamento de Processos

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Distribuídos

Escalonamento (Tarefas Esporádicas)

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Tipos de Sistemas Operacionais. Professores : Jones - Wendell

Fundamentos de Sistemas Operacionais

SSC0611 Arquitetura de Computadores

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Análise de Desempenho de Sistemas Distribuídos _ NOTAS DE AULA _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Sistemas Operacionais. Aula 1

histórico migração de processos em sistemas operacionais distribuídos balanceamento de carga de CPU otimização do uso da rede

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Modelo de Programação Paralela

Sistemas Operacionais. Interrupção e Exceção

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

SSC0611 Arquitetura de Computadores

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Escalonamento no Unix. Sistemas Operacionais

Temporização (Scheduling) de Processos

Lógica Externa à CPU

Sistema Operacional. Etapa

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

08/08/2016. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

Transcrição:

GERÊNCIA DE RECURSOS Escalonamento Global Além de prover comunicação, recursos de acesso a rede, memória compartilhada, sistemas de arquivos distribuídos, um sistema operacional distribuído tem que poder executar um processo em um processador que se encontra em um nó remoto, ou migrar um processo de um nó para outro pois: pode ser necessário desligar o nó nó não possui algum recurso necessário ao processo deseja-se melhorar o tempo de execução geral do sistema Sistemas Distribuídos 217 Sistemas Distribuídos 218 Os algoritmos de alocação do processador devem levar em conta requisitos como: tempo de resposta carga na rede overhead maximização do uso do processador Três técnicas básicas para alocação do processador: atribuição de tarefas (task assignment) objetiva melhorar o desempenho de execução de um processo (composto por tarefas) de carga (load balancing) objetiva distribuir a carga dos nós igualmente de carga (load sharing) garantir que nenhum nó fique ocioso enquanto algum processo espera para ser executado Sistemas Distribuídos 219 Sistemas Distribuídos 220 Característica desejáveis: sem conhecimento prévio a respeito dos processos usuários teriam de especificar perfil do processo... dinâmico considera carga variável ao longo do tempo rápido na tomada de decisão uso de heurísticas ao invés de soluções exaustivas desempenho equilibrado e pouco overhead no algoritmo de scheduling dilema: muita informação para construir estado global recolhimento e processamento da informação overhead validade temporal da informação baixa freqüência de escalonamento pois custa muito caro preferível: procedimento perto do ótimo, com tráfego mínimo para formação do estado global necessário Característica desejáveis: estável evitar migrações desnecessárias de um processo escalável tolerante a falhas justo Sistemas Distribuídos 221 Sistemas Distribuídos 222 1

atribuição Atribuição de tarefas Cada processo é dividido em tarefas Meta: encontrar a melhor forma de distribuir estas tarefas Considerações: tempo de execução necessário para cada tarefa e velocidade dos processadores são conhecidos custo para executar tarefa em um processador é conhecido custo de comunicação entre processos é conhecido custo=0 se tarefas estão no mesmo processador Baseado nas considerações anteriores busca-se: minimizar os custos de comunicação entre processos melhorar desempenho por processo executado utilizar de maneira mais eficiente os recursos do sistema Balanceamento de carga Baseado na intuição de que para melhor utilizar os recursos do sistema, a carga deve estar distribuída igualmente no sistema Meta: ter a mesma carga em todos os nós do sistema, transferindo processos de um nó sobrecarregado para um nó subcarregado Sistemas Distribuídos 223 Sistemas Distribuídos 224 Taxonomia Estático: usa informação sobre comportamento médio do sistema Determinístico probabilístico algoritmo cooperativo Dinâmico: reage ao estado do sistema - mutante distribuído não-cooperativo centralizado Considerações em algoritmos de de carga Política de estimativa de carga: como se mede a carga de um nodo? Política de transferência de processos quando um nodo está sobrecarregado? Política de seleção de novo nó para qual nodo será transferido o processo? Política de troca de informações como são trocadas as informações de estado entre os nodos? Política de prioridades que prioridade processos locais e remotos assumem para o escalonamento local? Política de limitação de migrações quantas vezes um processo pode ser migrado? Sistemas Distribuídos 225 Sistemas Distribuídos 226 Como medir a carga de um nodo? número de processos no nodo (vários algoritmos usam este) demanda de recursos dos processos arquitetura e velocidade dos processadores vários autores consideram que precisa de estimativa para frente como estimar o futuro? - tempo de serviço restante do processo Memoryless - assume mesmo tempo esperado para término para todos processos past-repeats - assume que tempo para término = tempo até aqui distribution - usa distribuição de tempos de processos (taxas de incidências/probabilidade de tempos de processos) Em sistemas operacionais distribuídos modernos muitos daemons rodam acordam periodicamente para executar => número de processos não é significativo => tempo para término não é válido para processos permanentes estimativas anteriores não são boas!!! Medida aceitável: utilização da CPU Sistemas Distribuídos 227 Sistemas Distribuídos 228 2

Política de transferência de processos load-balancing: transferir processos de nodos carregados para nodos leves como decidir se nó está sobrecarregado? usando limite processo novo é aceito localmente se nodo está pouco carregado (abaixo do limite) se nodo acima do limite, tentativa de transferencia do processo para outro nodo limite pode ser estático - pré-definido dinâmico - valor limite calculado como média da carga do sistema troca de informações sobre estado Política de transferência de processos usando limite (cont.) problema: nodo abaixo do limite aceita processo e fica acima do limite... Além disso: migração tem que valer a pena três níveis (sobrecarregado, normal, subcarregado) estado do nodo varia entre estes estados dinamicamente decisão sobre transferir processo local ou aceitar processo remoto: se sobrecarregado: processos locais novos são mandados para outros nodos e pedidos de execução de processos remotos são negados se normal: processos novos executados localmente e pedidos de execução de processos remotos são rejeitados se subcarregado: aceita processos novos locais e pedidos de execução de processos remotos Sistemas Distribuídos 229 Sistemas Distribuídos 230 uma vez que se sabe que um processo deve ser transferido (política de transferência de processos) para qual nodo será transferido o processo? Métodos limite: escolhe nodo randomicamente e testa se transferência tornaria o receptor acima de um limite que o proíba de receber processos remotos continua até exceder um número limite de testes, e executa localmente resultados de simulação mostram que testar poucos ou muitos nodos impacta muito pouco no desempenho geral do sistema mais leve: vários nodos distintos são escolhidos randomicamente, cada um é perguntado sobre seu estado processo é transferido ao nodo de menor carga, ou executado no originador se nenhum pode receber simulação não mostra significantes melhorias com relação a limite Sistemas Distribuídos 231 lance: economia computacional - atores/abstrações: compradores e vendedores manager - tem processo e precisa local para executar contractor - representa nodo pronto para aceitar processos remotos procedimento: manager broadcasts request for bids (pedido de lances) contractors respondem lances (memória, CPU, etc.) manager escolhe lance melhor e move processo e se contractor ganha vários contratos simultaneamente: manager manda mensagem ao ganhador (contractor) contractor pode rejeitar contrato por ter mudado de estado manager pode ter que recomeçar o leilão Sistemas Distribuídos 232 pares: outras políticas: reduzir discrepâncias de carga entre todos o nodos do sistema este: reduzir a diferença entre pares de nodos dois nodos que, temporariamente, tem diferença grande de cargas são pareados e processos são migrados de um para outro vários pares podem existir no sistema simultaneamente nodo inicia pareamento só se tem mais de dois processos (senão migração não vale a pena) nodos estão sempre dispostos a aceitar pareamento, atendendo aos outros pares: procedimento: nodo seleciona outro randomicamente para pareamento e manda request enquanto não tem resposta, nega pedidos de pareamento que receba se receber negação, seleciona outro nodo para fazer request se receber ok, forma par durante pareamento, não aceita outros pedidos transfere processos com base em estimativa de tempo de término de processo no par destino ser menor que tempo de término do processo no par origem + tempo de migração migração dos próximos processos levam em conta processo já migrado/escolhido para migração Sistemas Distribuídos 233 Sistemas Distribuídos 234 3

como obter a informação necessária de outros nodos para efetuar? Dilema: sobrecarga da rede e processamento vs. Melhoria no broadcast periódico: informa estado em intervalos de tempo t para todos nodos da rede broadcast quando o estado muda: informa quando muda estado -> subcarregado, normal, sobrrecarregado broadcast quando é necessário (sob demanda) nodo precisa de informações de outros quando sobrecarregado (manda) ou subcarregado (aceita processos) nodo broadcasts StateInformationRequest e informa seu estado outros nodos respondem: respostas podem ser só de nodos sobrecarregados ou só de nodos subcarregados troca de informações através de polling uso de broadcast - baixa escalabilidade premissa: não há necessidade de trocar informações de estado com todos nodos, mas somente com alguns pode fazer polling a nodos randomicamente escolhidos (similaridade com política de pares na escolha de nodo) Sistemas Distribuídos 235 Sistemas Distribuídos 236 Política de prioridade que prioridades processos locais ou remotos assumem no procedimento de escalonamento local de um nodo? egoísta maior prioridade para processos locais, prioridade muito baixa para remotos pior resultado global altruísta maior prioridade para processos remotos melhor resultado global intermediário processos locais tratados pouco melhor que remotos desempenho intermediário, mas muito próximo do caso altruísta Política de migração quantas vezes um processo pode ser migrado? não-controlada: processo que migra para um nodo é tratado como qualquer outro processo, podendo ser migrado novamente pode levar a instabilidade controlada contador de migrações de um processo muitos autores defendem que não deve passar de 1 (!!) alguns autores defendem que processos longos podem ter que ser migrados mais de uma vez Sistemas Distribuídos 237 Sistemas Distribuídos 238 Compartilhamento de Carga muitos pesquisadores acreditam que de carga não tem objetivo apropriado overhead na coleta de informações sobre estado do sistema é normalmente alto, crescendo com tamanho do sistema distribuído estrito não é alcançável pois diferenças momentâneas de carga sempre existem entre nodos novo objetivo: evitar que nodos do sistema fiquem ociosos enquanto outros nodos tem trabalho a espera Evitar que algum nodo fique ocioso enquanto outros nodos tem mais trabalho a espera tipicamente: nodo com mais de dois processos necessita mesmas políticas de de carga no entanto, é muito mais simples decidir que política usar para cada caso pois a tentativa não é manter uma carga média em todos nodos do sistema mas garantir que um nodo não está ocioso enquanto trabalho existe a espera em outro nodo Sistemas Distribuídos 239 Sistemas Distribuídos 240 4

é suficiente saber se nodo está ocupado ou livre medida de utilização de CPU Política de transferência uso de três níveis Política de seleção de nó sender initiated: nó sobrecarregado procuro nó livre receiver initiated: nó livre procura sobrecarregado em ambos: uso de broadcast ou prova randômica só age quando estado muda broadcast quando estado muda polling quando estado muda (baixa escalabilidade de broadcast) Sistemas Distribuídos 241 Sistemas Distribuídos 242 5