Escalonamento de processos em sistemas
virtualizados
Claudio Jorge Eckert Junior
Gian Paulo Vieira
Lisiane Reips
Prof. Jefferson James Cunha de Souza
SUMÁRIO
• Introdução
• Modelos de nuvem
• Classes de serviço
• Gerenciamento de nuvem de código aberto
• Arquitetura usada no sistema operacional nativo
• Tratamento de processos e seus escalonamentos
• Conclusão
• Bibliografia
• Dúvidas
Introdução
O termo de virtualização se refere de maneira geral
sobre a abstração de recursos computacionais.
Um único computador pode compartilhar seus
recursos de hardware com vários sistemas
operacionais hospedeiros.
Introdução
Esta abstração é geralmente realizada através de
um software (Máquina Virtual ou hypervision) que atua
como mediador entre os sistemas e os recursos da
máquina host.
Introdução
Também é função deste software escalonar qual
máquina virtual vai executar a cada momento,
semelhante ao escalonador de processos do Sistema
Operacional.
Introdução
O software é executado no modo de supervisor e as
máquinas virtuais são executadas em modo de usuário.
Quando estas tentam executar uma instrução
privilegiada, é gerada uma interrupção e o software se
encarrega de emular a execução desta instrução.
Introdução
Modelos de nuvem
Os modelos de nuvem são definidos de acordo com
o grupo que irá utilizar os serviços da arquitetura, estes
podem ser de quatro tipos.
Modelos de nuvem
- Nuvem Pública: a infraestrutura é fornecida para
muitos clientes e é gerenciada por terceiros. Várias
empresas podem trabalhar simultaneamente na mesma
infraestrutura. O usuário paga por aquilo que utilizar.
Modelos de nuvem
- Nuvem Privada: infraestrutura disponibilizada
apenas para um cliente específico e gerenciada pela
própria organização ou por terceiros. Este utiliza o
conceito de virtualização de máquinas, usando rede
proprietária.
Modelos de nuvem
- Nuvem Comunidade: infraestrutura compartilhada
por várias organizações por uma causa comum,
podendo ser gerenciada por elas mesmas ou por um
prestador de serviços.
Modelos de nuvem
- Nuvem Híbrida: compõe um ou mais modelos de
implantação de nuvem, em que a comunicação entre
elas é realizada de modo transparente (como uma
bridge).
Modelos de nuvem
13
Classes de serviço
Podemos separar as classes de serviço em três
categorias:
- Software como Serviço: o software pode ser
acessado via web, o cliente não possui controle
sobre o funcionamento da aplicação, do sistema e
do servidor rodando a mesma.
Classes de serviço
- Infraestrutura como Serviço: nesta classe um
usuário pode acessar uma parte de sistema que
possui recursos agrupados para criar e usar sua
própria infraestrutura de computação.
- Plataforma como Serviço: oferta um sistema de
gerenciamento unificado dos recursos para a
construção de aplicações. Este serviço não
necessita que o usuário se preocupe com a
infraestrutura.
Gerenciamento de nuvem de código aberto
Os principais gestores de infraestrutura virtual,
open-source, descritos atualmente em artigos, são:
- APACHE VCL: fornece acesso remoto para um
ambiente de computação dedicado para o usuário
final através de uma interface Web,
proporcionando ambientes personalizados para
usuários.
Gerenciamento de nuvem de código aberto
- CITRIX ESSENTIALS: fornece aos clientes
virtualização de servidores com um conjunto de
serviços avançados de gerenciamento de
virtualização, permitindo estender essas
capacidades de gerenciamento para o ambiente
Windows Server 2008.
Gerenciamento de nuvem de código aberto
- EUCALYPTUS: desenvolvido com a intenção de
fornecer uma implementação open-source quase
idêntica em funcionalidade com a API do Amazon
Web Services. Portanto, os usuários podem
interagir com uma nuvem Eucalyptus usando as
mesmas ferramentas que eles usam para acessar
o Amazon EC2.
Gerenciamento de nuvem de código aberto
- NIMBUS3: fornece a maioria das características
dos outros gestores como uma API para acesso
ao Amazon EC2 com suporte ao Xen. No entanto,
distingue-se dos outros, fornecendo uma interface
de acesso para o framework Globus Web Services
Resource (WSRF).
Gerenciamento de nuvem de código aberto
- OPENPEX: construído em torno da noção de
usar reservas antecipadas como o principal
método para alocar instâncias de VM. Distinguese
de outros gestores, pois incorpora um protocolo de
negociação bilateral que permite usuários e
provedores chegar a um acordo sobre troca de
ofertas e contra ofertas quando seus pedidos
originais não podem ser satisfeitos.
Gerenciamento de nuvem de código aberto
- OVIRT: fornece a maior parte das características
básicas dos gestores, incluindo suporte para o
gerenciamento de pools de servidores físicos,
pools de armazenamento, contas de usuário e
VMs.
Gerenciamento de nuvem de código aberto
- VMWARE VSPHERE: ferramenta destinada a
transformar a infraestrutura em uma nuvem
privada. Distingue-se de outros gestores como um
dos mais ricos em recursos. Na arquitetura
vSphere, servidores executam na plataforma
ESXi. Um servidor a parte executa vCenter Server,
que centraliza o controle da infraestrutura. Através
do software cliente vSphere, os administradores
conectam-se ao vCenter Server para executar
várias tarefas.
Gerenciamento de nuvem de código aberto
- OPENSTACK ESSEX: oferece software para
criar nuvens públicas e privadas. Contém uma
coleção de projetos open-source, incluindo
OpenStack Compute (codinome Nova),
armazenamento de objetos OpenStack (codinome
Swift), serviço de imagem OpenStack (codinome
Glance), serviço de armazenamento para uso das
instâncias (codinome Cinder) e serviço de rede
(codinome Quantum).
Gerenciamento de nuvem de código aberto
O OpenStack Essex fornece uma plataforma
operacional e um conjunto de ferramentas para
gerenciamento das nuvens.
Arquitetura usada no sistema operacional nativo
Pode-se dizer que existem “duas” formas de
virtualização, sendo elas: Virtualização completa e
virtualização de interface de sistema, que por sua vez
são dois tipos de Hypervisor, sendo o nativo e o tratado
como se fosse um processo normal de sistema
operacional.
Arquitetura usada no sistema operacional nativo
Na virtualização completa temos a total utilização da
arquitetura e hardware acima, sendo implementado
direto sobre o hardware de máquina real,
disponibilizando uma réplica do hardware e acessos a
entradas, saídas e instruções do processador.
Arquitetura usada no sistema operacional nativo
Esta forma de virtualização não prevê a
necessidade de alteração no sistema operacional
visitante, e tem um desempenho melhor por não
possuir camadas de abstração,. Na virtualização de
sistema, o hypervisor é executado como se fosse um
processo normal sobre um sistema operacional nativo.
Arquitetura usada no sistema operacional nativo
Podemos entender melhor com a figura a seguir,
que nos mostra os anéis de privilégio da arquitetura
nativa x86, onde o anel 0 está junto ao kernel e possui
acesso direto, e a camada 1 possui menor privilégio,
sendo o anel 3 a camada do usuário, desta forma
podemos entender em qual anel está o hipervisor e as
máquinas virtuais.
Arquitetura usada no sistema operacional nativo
29
Arquitetura usada no sistema operacional nativo
Porém na virtualização completa utiliza-se a técnica
de tradução binária, onde o hypervisor analisa,
reorganiza e traduz as sequências de instruções,
emitidas pelo sistema operacional convidado em novas
sequências de instruções, desta forma é possível
adaptar as instruções geradas pelo sistema convidado
ao sistema real.
Arquitetura usada no sistema operacional nativo
Como vantagens temos o fato de que o sistema
virtualizado não precisa de alteração, e como
desvantagens temos a perda de desempenho de cerca
de 30% pela interpretação dos dados.
Arquitetura usada no sistema operacional nativo
A arquitetura x86 não foi projetada para
virtualização e portanto não poderia ser virtualizada em
modo privilegiado “anel 0” e sim no “anel 1 e 2”, assim
foi criado o modo de virtualização assistida por
hardware, com processadores desenvolvidos pela Intel
e pela AMD, ambos chegando ao mesmo resultado,
mas ambos incompatíveis , agora os dois suportam o
hipervisor e os anéis de privilégios, proporcionando
utilizar os sistemas virtualizados convidados sem
alterá-los.
Tratamento de processos e seus escalonamentos
O gerenciamento de recursos e o tratamento de
tarefas são a chave de tecnologia em computação em
nuvem, desempenhando um papel vital neste contexto.
Tratamento de processos e seus escalonamentos
Atualmente temos estabelecidos em nuvem vários
algoritmos para estabelecer escalonamentos de
tarefas, mas não existe padrão uniforme a ser seguido,
entre eles os mais utilizados são os algoritmos de lista
que diferem principalmente na forma como a prioridade
é definida, mas em geral apresentam bom
desempenho. Os mais utilizados são:
Tratamento de processos e seus escalonamentos
- Myopic: consiste em organizar as atividades
prontas por ordem de chegada e associar cada
atividade a ser escalonada ao recurso disponível que
pode executá-la mais rapidamente.
- HEFT (Heterogeneus Earliest-Finish-Time =
Tempo de término mais antigo heterogêneo): escalona
atividades criando uma lista com pesos associados a
cada atividade, o peso é definido pela distância máxima
da atividade até a atividade de saída.
Tratamento de processos e seus escalonamentos
O primeiro passo é o cálculo de peso, sendo o valor
do peso de uma atividade igual ao tempo de execução
previsto para a atividade somado aos valores
encontrados no caminho até a atividade de saída.
- Ant Colony Optimization (ACO = Otimização de
colônias de formigas): basicamente este algoritmo
calcula o menor trajeto, a carga é calculada em cada
host (hospedeiro), tendo em conta a utilização da CPU
feita por todas as VMs que estão sendo executadas em
cada host.
Tratamento de processos e seus escalonamentos
Esta métrica é útil para uma formiga escolher o host
menos carregado para alocar suas VM.
O algoritmo ACO é encontrado também em
problemas de roteamento de pacotes de redes de
computadores, entre outros.
Foi descoberto que a comunicação das formigas
que caminhavam pela trilha ocorria por meio de uma
substância química denominada feromônio,
depositadas por elas próprias.
Tratamento de processos e seus escalonamentos
Enquanto as formigas caminhavam inicialmente de
forma aleatória, elas depositam uma certa quantidade
de substância, esta que é reforçada quando outra
formiga passar pelo caminho, tendo em vista que a
substância tende a evaporar com o tempo, quanto
maior a concentração de substância, mais curto é o
caminho.
Tratamento de processos e seus escalonamentos
- Algoritmo Min-Min: começa com um conjunto de
tarefas que são todas não atribuídas, primeiro, calcula
o tempo mínimo de conclusão para todas as tarefas e
todos os recursos, então, entre esses tempos mínimos,
o valor mínimo é selecionado, que é o tempo mínimo
entre todas as tarefas em quaisquer recursos.
Tratamento de processos e seus escalonamentos
Assim essa tarefa é programada no recurso em que
leva o mínimo tempo e o tempo disponível desse
recurso é atualizado para todos as outras tarefas, ou
seja, suponha que uma tarefa é atribuída a uma
máquina e leva 20 segundos para ser realizada, então
os tempos de execução de todos as outras as tarefas
nesta máquina serão aumentadas em 20 segundos.
Depois disso, a tarefa atribuída não é considerada e o
mesmo processo é repetido até que todas as tarefas
sejam atribuídas.
Tratamento de processos e seus escalonamentos
- Algoritmo Max-Min: da mesma forma que o Min-
Min exceto depois de descobrir o tempo de colisão, os
tempos mínimos de execução são encontrados para
cada tarefa. Então, entre esses tempos mínimos, o
valor máximo é selecionado, que é o tempo máximo
entre todas as tarefas em qualquer Recurso.
Tratamento de processos e seus escalonamentos
Assim essa tarefa está programada no recurso em
que leva o tempo mínimo, e o tempo disponível daquele
recurso é atualizado para todas as outras tarefas. A
atualização é feita da mesma maneira que para o Min-
Min. Todas as tarefas são recursos atribuídos por este
procedimento.
Tratamento de processos e seus escalonamentos
Além dos mais utilizados já citados, também são
utilizados:
- Otimização de exames de partículas
- Round Robin
- Genético
- Agendamento de tarefas baseado em prioridades
- Agendamento dinâmico baseado no limite
Conclusão
44
Bibliografia
https://repositorio.unesp.br/handle/11449/110377
http://www.sjrp.unesp.br/#!/noticia/1613/auditoria-e-
monitoramento-de-eventos-inconsistentes/
https://repositorio.unesp.br/bitstream/handle/11449/1470
90/pauro_ll_me_sjrp.pdf?sequence=3
https://www.researchgate.net/publication/308307711_Es
calonamento_de_Instancias_de_Maquinas_Virtuais_em_Nu
vens_IaaS
Bibliografia
https://www.researchgate.net/publication/308307711_Es
calonamento_de_Instancias_de_Maquinas_Virtuais_em_Nu
vens_IaaS
https://acervodigital.ufpr.br/handle/1884/36087
http://www.ic.unicamp.br/~ducatte/mo401/1s2011/T2/Arti
gos/G09_012096_931544-t2.pdf
http://www.ic.unicamp.br/~ducatte/mo401/1s2012/T2/G0
4-115168-t2.pdf
Bibliografia
http://omnipax.com.br/livros/2013/MHPO/mhpo-
cap04.pdf
http://www.teses.usp.br/teses/disponiveis/45/45134/tde-
28062016-155756/pt-br.php
https://pdfs.semanticscholar.org/fe70/2bc2833702e5312b
ed4ef2894d9cbc5d4d50.pdf
file:///C:/Users/Administrador/Downloads/Dissertao_Nayl
or_Garcia_Bachiega.pdf
http://newiranians.ir/SCHEDULING%20IN%20CLOUD%2
0COMPUTING.pdf
Dúvidas
48
Muito obrigado!
49

Escalonamento de processos em sistemas virtualizados

  • 1.
    Escalonamento de processosem sistemas virtualizados Claudio Jorge Eckert Junior Gian Paulo Vieira Lisiane Reips Prof. Jefferson James Cunha de Souza
  • 2.
    SUMÁRIO • Introdução • Modelosde nuvem • Classes de serviço • Gerenciamento de nuvem de código aberto • Arquitetura usada no sistema operacional nativo • Tratamento de processos e seus escalonamentos • Conclusão • Bibliografia • Dúvidas
  • 3.
    Introdução O termo devirtualização se refere de maneira geral sobre a abstração de recursos computacionais. Um único computador pode compartilhar seus recursos de hardware com vários sistemas operacionais hospedeiros.
  • 4.
    Introdução Esta abstração égeralmente realizada através de um software (Máquina Virtual ou hypervision) que atua como mediador entre os sistemas e os recursos da máquina host.
  • 5.
    Introdução Também é funçãodeste software escalonar qual máquina virtual vai executar a cada momento, semelhante ao escalonador de processos do Sistema Operacional.
  • 6.
    Introdução O software éexecutado no modo de supervisor e as máquinas virtuais são executadas em modo de usuário. Quando estas tentam executar uma instrução privilegiada, é gerada uma interrupção e o software se encarrega de emular a execução desta instrução.
  • 7.
  • 8.
    Modelos de nuvem Osmodelos de nuvem são definidos de acordo com o grupo que irá utilizar os serviços da arquitetura, estes podem ser de quatro tipos.
  • 9.
    Modelos de nuvem -Nuvem Pública: a infraestrutura é fornecida para muitos clientes e é gerenciada por terceiros. Várias empresas podem trabalhar simultaneamente na mesma infraestrutura. O usuário paga por aquilo que utilizar.
  • 10.
    Modelos de nuvem -Nuvem Privada: infraestrutura disponibilizada apenas para um cliente específico e gerenciada pela própria organização ou por terceiros. Este utiliza o conceito de virtualização de máquinas, usando rede proprietária.
  • 11.
    Modelos de nuvem -Nuvem Comunidade: infraestrutura compartilhada por várias organizações por uma causa comum, podendo ser gerenciada por elas mesmas ou por um prestador de serviços.
  • 12.
    Modelos de nuvem -Nuvem Híbrida: compõe um ou mais modelos de implantação de nuvem, em que a comunicação entre elas é realizada de modo transparente (como uma bridge).
  • 13.
  • 14.
    Classes de serviço Podemosseparar as classes de serviço em três categorias: - Software como Serviço: o software pode ser acessado via web, o cliente não possui controle sobre o funcionamento da aplicação, do sistema e do servidor rodando a mesma.
  • 15.
    Classes de serviço -Infraestrutura como Serviço: nesta classe um usuário pode acessar uma parte de sistema que possui recursos agrupados para criar e usar sua própria infraestrutura de computação. - Plataforma como Serviço: oferta um sistema de gerenciamento unificado dos recursos para a construção de aplicações. Este serviço não necessita que o usuário se preocupe com a infraestrutura.
  • 16.
    Gerenciamento de nuvemde código aberto Os principais gestores de infraestrutura virtual, open-source, descritos atualmente em artigos, são: - APACHE VCL: fornece acesso remoto para um ambiente de computação dedicado para o usuário final através de uma interface Web, proporcionando ambientes personalizados para usuários.
  • 17.
    Gerenciamento de nuvemde código aberto - CITRIX ESSENTIALS: fornece aos clientes virtualização de servidores com um conjunto de serviços avançados de gerenciamento de virtualização, permitindo estender essas capacidades de gerenciamento para o ambiente Windows Server 2008.
  • 18.
    Gerenciamento de nuvemde código aberto - EUCALYPTUS: desenvolvido com a intenção de fornecer uma implementação open-source quase idêntica em funcionalidade com a API do Amazon Web Services. Portanto, os usuários podem interagir com uma nuvem Eucalyptus usando as mesmas ferramentas que eles usam para acessar o Amazon EC2.
  • 19.
    Gerenciamento de nuvemde código aberto - NIMBUS3: fornece a maioria das características dos outros gestores como uma API para acesso ao Amazon EC2 com suporte ao Xen. No entanto, distingue-se dos outros, fornecendo uma interface de acesso para o framework Globus Web Services Resource (WSRF).
  • 20.
    Gerenciamento de nuvemde código aberto - OPENPEX: construído em torno da noção de usar reservas antecipadas como o principal método para alocar instâncias de VM. Distinguese de outros gestores, pois incorpora um protocolo de negociação bilateral que permite usuários e provedores chegar a um acordo sobre troca de ofertas e contra ofertas quando seus pedidos originais não podem ser satisfeitos.
  • 21.
    Gerenciamento de nuvemde código aberto - OVIRT: fornece a maior parte das características básicas dos gestores, incluindo suporte para o gerenciamento de pools de servidores físicos, pools de armazenamento, contas de usuário e VMs.
  • 22.
    Gerenciamento de nuvemde código aberto - VMWARE VSPHERE: ferramenta destinada a transformar a infraestrutura em uma nuvem privada. Distingue-se de outros gestores como um dos mais ricos em recursos. Na arquitetura vSphere, servidores executam na plataforma ESXi. Um servidor a parte executa vCenter Server, que centraliza o controle da infraestrutura. Através do software cliente vSphere, os administradores conectam-se ao vCenter Server para executar várias tarefas.
  • 23.
    Gerenciamento de nuvemde código aberto - OPENSTACK ESSEX: oferece software para criar nuvens públicas e privadas. Contém uma coleção de projetos open-source, incluindo OpenStack Compute (codinome Nova), armazenamento de objetos OpenStack (codinome Swift), serviço de imagem OpenStack (codinome Glance), serviço de armazenamento para uso das instâncias (codinome Cinder) e serviço de rede (codinome Quantum).
  • 24.
    Gerenciamento de nuvemde código aberto O OpenStack Essex fornece uma plataforma operacional e um conjunto de ferramentas para gerenciamento das nuvens.
  • 25.
    Arquitetura usada nosistema operacional nativo Pode-se dizer que existem “duas” formas de virtualização, sendo elas: Virtualização completa e virtualização de interface de sistema, que por sua vez são dois tipos de Hypervisor, sendo o nativo e o tratado como se fosse um processo normal de sistema operacional.
  • 26.
    Arquitetura usada nosistema operacional nativo Na virtualização completa temos a total utilização da arquitetura e hardware acima, sendo implementado direto sobre o hardware de máquina real, disponibilizando uma réplica do hardware e acessos a entradas, saídas e instruções do processador.
  • 27.
    Arquitetura usada nosistema operacional nativo Esta forma de virtualização não prevê a necessidade de alteração no sistema operacional visitante, e tem um desempenho melhor por não possuir camadas de abstração,. Na virtualização de sistema, o hypervisor é executado como se fosse um processo normal sobre um sistema operacional nativo.
  • 28.
    Arquitetura usada nosistema operacional nativo Podemos entender melhor com a figura a seguir, que nos mostra os anéis de privilégio da arquitetura nativa x86, onde o anel 0 está junto ao kernel e possui acesso direto, e a camada 1 possui menor privilégio, sendo o anel 3 a camada do usuário, desta forma podemos entender em qual anel está o hipervisor e as máquinas virtuais.
  • 29.
    Arquitetura usada nosistema operacional nativo 29
  • 30.
    Arquitetura usada nosistema operacional nativo Porém na virtualização completa utiliza-se a técnica de tradução binária, onde o hypervisor analisa, reorganiza e traduz as sequências de instruções, emitidas pelo sistema operacional convidado em novas sequências de instruções, desta forma é possível adaptar as instruções geradas pelo sistema convidado ao sistema real.
  • 31.
    Arquitetura usada nosistema operacional nativo Como vantagens temos o fato de que o sistema virtualizado não precisa de alteração, e como desvantagens temos a perda de desempenho de cerca de 30% pela interpretação dos dados.
  • 32.
    Arquitetura usada nosistema operacional nativo A arquitetura x86 não foi projetada para virtualização e portanto não poderia ser virtualizada em modo privilegiado “anel 0” e sim no “anel 1 e 2”, assim foi criado o modo de virtualização assistida por hardware, com processadores desenvolvidos pela Intel e pela AMD, ambos chegando ao mesmo resultado, mas ambos incompatíveis , agora os dois suportam o hipervisor e os anéis de privilégios, proporcionando utilizar os sistemas virtualizados convidados sem alterá-los.
  • 33.
    Tratamento de processose seus escalonamentos O gerenciamento de recursos e o tratamento de tarefas são a chave de tecnologia em computação em nuvem, desempenhando um papel vital neste contexto.
  • 34.
    Tratamento de processose seus escalonamentos Atualmente temos estabelecidos em nuvem vários algoritmos para estabelecer escalonamentos de tarefas, mas não existe padrão uniforme a ser seguido, entre eles os mais utilizados são os algoritmos de lista que diferem principalmente na forma como a prioridade é definida, mas em geral apresentam bom desempenho. Os mais utilizados são:
  • 35.
    Tratamento de processose seus escalonamentos - Myopic: consiste em organizar as atividades prontas por ordem de chegada e associar cada atividade a ser escalonada ao recurso disponível que pode executá-la mais rapidamente. - HEFT (Heterogeneus Earliest-Finish-Time = Tempo de término mais antigo heterogêneo): escalona atividades criando uma lista com pesos associados a cada atividade, o peso é definido pela distância máxima da atividade até a atividade de saída.
  • 36.
    Tratamento de processose seus escalonamentos O primeiro passo é o cálculo de peso, sendo o valor do peso de uma atividade igual ao tempo de execução previsto para a atividade somado aos valores encontrados no caminho até a atividade de saída. - Ant Colony Optimization (ACO = Otimização de colônias de formigas): basicamente este algoritmo calcula o menor trajeto, a carga é calculada em cada host (hospedeiro), tendo em conta a utilização da CPU feita por todas as VMs que estão sendo executadas em cada host.
  • 37.
    Tratamento de processose seus escalonamentos Esta métrica é útil para uma formiga escolher o host menos carregado para alocar suas VM. O algoritmo ACO é encontrado também em problemas de roteamento de pacotes de redes de computadores, entre outros. Foi descoberto que a comunicação das formigas que caminhavam pela trilha ocorria por meio de uma substância química denominada feromônio, depositadas por elas próprias.
  • 38.
    Tratamento de processose seus escalonamentos Enquanto as formigas caminhavam inicialmente de forma aleatória, elas depositam uma certa quantidade de substância, esta que é reforçada quando outra formiga passar pelo caminho, tendo em vista que a substância tende a evaporar com o tempo, quanto maior a concentração de substância, mais curto é o caminho.
  • 39.
    Tratamento de processose seus escalonamentos - Algoritmo Min-Min: começa com um conjunto de tarefas que são todas não atribuídas, primeiro, calcula o tempo mínimo de conclusão para todas as tarefas e todos os recursos, então, entre esses tempos mínimos, o valor mínimo é selecionado, que é o tempo mínimo entre todas as tarefas em quaisquer recursos.
  • 40.
    Tratamento de processose seus escalonamentos Assim essa tarefa é programada no recurso em que leva o mínimo tempo e o tempo disponível desse recurso é atualizado para todos as outras tarefas, ou seja, suponha que uma tarefa é atribuída a uma máquina e leva 20 segundos para ser realizada, então os tempos de execução de todos as outras as tarefas nesta máquina serão aumentadas em 20 segundos. Depois disso, a tarefa atribuída não é considerada e o mesmo processo é repetido até que todas as tarefas sejam atribuídas.
  • 41.
    Tratamento de processose seus escalonamentos - Algoritmo Max-Min: da mesma forma que o Min- Min exceto depois de descobrir o tempo de colisão, os tempos mínimos de execução são encontrados para cada tarefa. Então, entre esses tempos mínimos, o valor máximo é selecionado, que é o tempo máximo entre todas as tarefas em qualquer Recurso.
  • 42.
    Tratamento de processose seus escalonamentos Assim essa tarefa está programada no recurso em que leva o tempo mínimo, e o tempo disponível daquele recurso é atualizado para todas as outras tarefas. A atualização é feita da mesma maneira que para o Min- Min. Todas as tarefas são recursos atribuídos por este procedimento.
  • 43.
    Tratamento de processose seus escalonamentos Além dos mais utilizados já citados, também são utilizados: - Otimização de exames de partículas - Round Robin - Genético - Agendamento de tarefas baseado em prioridades - Agendamento dinâmico baseado no limite
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.