algoritmo de escalonamento fuzzy round robin
TRANSCRIPT
![Page 1: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/1.jpg)
FUZZY ROUND ROBINCPU SCHEDULING ALGORITHMCarlos AlbertoMarcos CastroRoberson Costa
1
![Page 2: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/2.jpg)
Objetivos
• Essa apresentação tem como objetivos descrever e analisar o artigo intitulado “FUZZY ROUND ROBIN SCHEDULING ALGORITHM” publicado em 2013.• Endereço para acessar o artigo• http://thescipub.com/PDF/jcssp.2013.1079.1085.pdf
2
![Page 3: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/3.jpg)
Introdução
• Computadores multiprogramados• Em um computador multiprogramado, os processos
ficam competindo pela CPU. É necessário que alguém escolha qual processo irá obter a CPU e esse alguém é chamado de escalonador (scheduler).
• Escalonador• O escalonador escolhe o processo que irá usar a CPU
de acordo com o algoritmo de escalonamento. Existem vários algoritmos de escalonamento, alguns deles serão citados nessa apresentação.
3
![Page 4: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/4.jpg)
Critérios
• Qual o melhor algoritmo de escalonamento?• Para responder a essa pergunta você precisa ficar
atento a alguns critérios tais como: throughput (quantidade de processos terminados por unidade de tempo), justiça (equidade), utilização de CPU, tempo de espera (soma dos períodos em que o processo esteve no estado pronto), tempo de retorno (tempo de espera + tempo de execução) e tempo de resposta (tempo entre a chegada ao sistema e o início da execução).
4
![Page 5: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/5.jpg)
Algoritmos de escalonamento
• FCFS (First come First serve)• É como uma fila de banco, o primeiro a chegar é o
primeiro a ser servido. É como na estrutura de dados FILA (first in first out). O processo que pedir primeiro a CPU, será executado. Não possui um bom tempo de resposta porque é sensível a ordem de chegada e não é recomendável para sistemas de tempo real e de tempo compartilhado. É imune a inanição (inanição é quando um processo morre de fome, ou seja, nunca é executado porque sempre existe um processo de maior prioridade para ser executado).
5
![Page 6: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/6.jpg)
Algoritmos de escalonamento
• SJF (shortest job first)• O processo com estimativa de tempo menor é
executado primeiro. Essa estimativa de tempo é feita através de bases estatísticas (heurísticas). O grande problema é estimar o tempo para processos interativos já que a entrada de dados é algo imprevisível.
6
![Page 7: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/7.jpg)
Algoritmos de escalonamento
• SRTN (shortest remaining time next)• O processo com menor tempo de execução restante é
executado primeiro. A diferença para o SJF está na preempção (troca de processos), pois quando um processo chega, é estimado o tempo de execução desse processo, se for menor do que o tempo do processo corrente, então ocorre a troca de processos, ou seja, o processo corrente sofre preempção. Possui um tempo de resposta bom se o processo não for longo, possui uma throughput boa, mas não é imune a inanição.
7
![Page 8: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/8.jpg)
Algoritmos de escalonamento
• Priority scheduling• Cada processo tem sua prioridade. A prioridade pode
ser definida dentro de um range (intervalo) como por exemplo entre 0 e 7 ou 0 e 4095. O processo com maior prioridade é executado primeiro. O SJF é um caso especial dessa classe de algoritmos.
8
![Page 9: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/9.jpg)
Algoritmos de escalonamento
• Multilevel queue scheduling• Agendamento de fila multinível. A fila é dividida em
várias filas (níveis). Cada uma pode ter seu próprio algoritmo de escalonamento. Nesse algoritmo um processo não pode se mover entre as filas.
9
![Page 10: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/10.jpg)
Algoritmos de escalonamento
• Multilevel feedback queue scheduling• A diferença para o “Multilevel queue scheduling” é
que no “Multilevel feedback queue scheduling” o processo pode se mover entre as filas. Por exemplo, se um processo irá utilizar por muito tempo a CPU, pode-se movê-lo para uma fila de menor prioridade. Parâmetros: número de filas, algoritmo de escalonamento de cada fila, método utilizado para promover um processo para uma fila de maior prioridade, método para rebaixar um processo para uma fila de menor prioridade e método utilizado para inserir o processo numa determinada fila.
10
![Page 11: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/11.jpg)
Algoritmos de escalonamento
• Fair share scheduling• Compartilhamento igualitário. O algoritmo leva em
conta o histórico da execução de processos do grupo relacionado e o histórico da execução do processo individualmente. É dada uma fração de CPU para cada grupo. O escalonamento é feito com base na prioridade do processo, no uso recente do processador pelo processo e no uso recente do processador pelo grupo a qual pertence o processo. A prioridade do processo diminui à medida que o processo utiliza a CPU e à medida que o grupo a qual pertence o processo utiliza a CPU.
11
![Page 12: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/12.jpg)
Algoritmos de escalonamento
• Guaranteed scheduling• Escalonamento garantido. Esse algoritmo tenta ser
justo com os usuários e não com os processos. Se possui “n” usuários logados, então o algoritmo tenta dar 1/n de tempo de CPU para cada usuário. Leva em conta o quanto de tempo de CPU o usuário teve para seus processos e quanto tempo o usuário está logado. É calculada a participação do usuário dada pelo (tempo_login) / n. Compara-se o tempo real com o tempo ideal e o processo com a menor taxa é escolhido.
12
![Page 13: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/13.jpg)
Algoritmos de escalonamento
• Lottery scheduling• São dados bilhetes de loteria para os processos. Na
decisão do agendamento, é sorteado um bilhete e o processo que possui esse bilhete será o escolhido. Trata-se de um algoritmo probabilístico, então caso queira que um processo tenha mais chances de ser escolhido, basta distribuir mais bilhetes para esse processo. Esse algoritmo resolve o problema da inanição.
13
![Page 14: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/14.jpg)
Algoritmos de escalonamento
• HRRN (highest response ratio next)• O processo com a maior taxa de resposta é escolhido.
Essa taxa de resposta é calculada da seguinte forma:• r = (tempo_espera + tempo_servico) / tempo_servico• Jobs mais curtos são privilegiados por causa do
tempo_servico menor, mas o tempo_espera impede que jobs longos fiquem esperando por tempo indeterminado.
14
![Page 15: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/15.jpg)
Algoritmos de escalonamento
• Fuzzy HRRN• Utiliza lógica fuzzy para melhorar o HRRN.
• Fuzzy Fair Share• Utiliza lógica fuzzy para melhorar o Fair Share.
• Iremos estudar mais adiante lógica fuzzy até mesmo para entendermos melhor o que foi proposto no artigo.
15
![Page 16: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/16.jpg)
Algoritmos de escalonamento
• Round Robin• Trata-se de um algoritmo simples, mas robusto,
bastante utilizado para resolver problemas de distribuição de cargas.• Esse algoritmo possui uma ready queue (fila de
estados prontos para executar). Essa fila é circular e cada processo pode utilizar a CPU durante uma pequena fração de tempo (time quantum). Se o processo não completar sua tarefa durante o time quantum, então ele pára a execução (sofre preempção) e vai para o final da fila. 16
![Page 17: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/17.jpg)
Algoritmos de escalonamento
• Round Robin• Se o processo terminar sua tarefa durante o time
quantum, então a CPU é liberada para o próximo processo da fila. Perceba que em ambos os casos um novo processo é escolhido da fila. A preempção acarreta um valor adicional na execução do processo, tem-se overhead (processamento em excesso) contribuindo para um menor desempenho.
17
![Page 18: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/18.jpg)
Algoritmos de escalonamento
• Round Robin• Se o valor do time quantum for muito grande, o Round
Robin degenera para um FCFS (first come first serve), pois os processos serão completados pela ordem de chegada. Se o time quantum for muito pequeno, ocorrerá trocas de contexto frequentes minimizando o desempenho. É preciso saber quando deve-se ocorrer preempção e o melhor valor do time quantum.• Exemplo: uma tarefa de 210ms e time quantum de
100ms. Essa tarefa precisará de 3 agendamentos para completar. Por que não completar ela em apenas 2 agendamentos já que fica sobrando apenas 10ms?
18
![Page 19: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/19.jpg)
Algoritmos de escalonamento
• Round Robin• A lógica fuzzy pode melhorar isso? Precisamos
resolver um problema com informações incertas, estimar o melhor time quantum e decidir se o processo deve ou não sofrer preempção.
19
![Page 20: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/20.jpg)
Execução Round Robin
• Nós fizemos um pequena aplicação em JavaScript para demonstrar a execução do Round Robin. A aplicação não leva em conta o tempo adicional da preempção, mas demonstra de forma simples a execução do algoritmo. Acesse o link do projeto:• https://github.com/marcoscastro/execution-round-robin
20
![Page 21: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/21.jpg)
Lógica Fuzzy
• Lógica booleana: 0 ou 1 (quente ou frio)• Teresina está quente.
• A lógica fuzzy permite valores lógicos intermediários (valores entre 0 e 1).• Teresina está muito quente.
• A lógica fuzzy tenta solucionar problemas com informações incertas.
21
![Page 22: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/22.jpg)
Lógica Fuzzy
• Quando usar? Exemplo: controle inteligente de sistemas, controle de sistemas não lineares difíceis de modelar.• Graus de verdade (varia entre 0 e 1)• Capturar modos imprecisos de raciocínio.
• Funções membros (ou de pertinência)• Por exemplo, para ser considerado jovem:• f(x) = 0 para x < 5• f(x) = (x-5)/5 para 5<=x<=10 22
![Page 23: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/23.jpg)
Lógica Fuzzy
• Exemplo de conjunto Fuzzy• Céu ensolarado• Pertinência 1.0 para cobertura de nuvens de 0%• Pertinência 0.8 para cobertura de nuvens de 20%• Pertinência 0.4 para cobertura de nuvens de 30%• Conjunto: {(0, 1.0), (20, 0.8), (30, 0.4)}• (x, u(x)) onde u(x) é o gau de pertinência do elemento
“x”
23
![Page 24: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/24.jpg)
FIS (Fuzzy Inference System)
24
![Page 25: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/25.jpg)
• Escalonamento Round Robin• Valor do Time Quantum• Proposto um Método: Lógica Fuzzy.• O algoritmo: Fuzzy Round Robin CPU
Scheduling Algorithm• Utilização de 2 FIS (Sistema de Inferência
Fuzzy)
Fuzzy Round Robin Algorithm
25
![Page 26: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/26.jpg)
• FIS para encontrar o time quantum.• FIS para decidir sobre a preempção.
Sistemas de Inferência Fuzzy
26
![Page 27: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/27.jpg)
• Para simular cada FIS, podemos utilizar o editor fuzzy do MatLab:
Sistemas de Inferência Fuzzy
27
![Page 28: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/28.jpg)
FIS para achar o time quantum
28
![Page 29: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/29.jpg)
FIS para decidir a preempção
29
![Page 30: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/30.jpg)
Regras FIS Time Quantum
30
![Page 31: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/31.jpg)
Regras FIS Preemption
31
![Page 32: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/32.jpg)
Função de Pertinência para o Time Quantum
32
![Page 33: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/33.jpg)
• Funcionamento:• Passo 1: Seleciona o primeiro processo na
fila de prontos e remove da Read List• Passo 2: Encontra a ABT(Average Burst time)• Passo 3: Fornece o N e o ABT para o FIS para
o time quantum• Passo 4: Obtém a saída do FIS e carrega no
temporizador
Fuzzy Round Robin Algorithm
33
![Page 34: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/34.jpg)
• Passo 5: Inicia a execução do processo P• Passo 6: Se “p” inicia operação de I/O ou
completa a execução, vá para passo 1• Passo 7: Quando ocorre a interrupção do
temporizador, o processo não sofre preempção, e inicia o contador para mensurar o laxity do dado processo
Fuzzy Round Robin Algorithm
34
![Page 35: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/35.jpg)
• Passo 7(continuação):
-Se o processo completa, vá para o passo 1
-Dado o laxity e o N , obtém o status da preempção.
-Se status da preempção maior ou igual a 0.5 sofre preempção, vá para o passo 1
-Senão o processo completa, vá para o passo 1 para agendar outro processo para execução
Fuzzy Round Robin Algorithm
35
![Page 36: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/36.jpg)
Desempenho
• Simulação: 1000 processos em grupos de 10.• Burst time (tempo que um processo leva para
completar a sua tarefa) de 10ms.• Foram comparados a média do tempo de
espera e o rendimento (throughput) entre os algoritmos “Fuzzy Round Robin” (proposto no artigo) e o “Round Robin”.
36
![Page 37: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/37.jpg)
Gráfico - Desempenho
37
![Page 38: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/38.jpg)
Desempenho
• Pelo gráfico do slide anterior, o “Fuzzy Round Robin” teve uma média de tempo de espera menor do que o “Round Robin”.• Também pode-se perceber pelo gráfico
anterior que o “Fuzzy Round Robin” teve um rendimento (throughput) melhor do que o “Round Robin”.
38
![Page 39: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/39.jpg)
Conclusão
• Dois FIS (Sistemas de Inferência Fuzzy) foram projetados. • Um FIS para encontrar o time quantum e o
um FIS para decidir sobre a preempção.• Possíveis melhoramentos: ajustes nas regras
de inferência e funções membros.
39
![Page 40: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/40.jpg)
Referências
• Escalonamento Round-Robin• http://www.ime.usp.br/~kon/MAC5755/trabalhos/sof
tware/FlavioArruda/node2.html - Acessado em 29/12/2014
• Sistema de Controle Difuso de Mamdani• http://www.dct.ufms.br/~mzanusso/producao/Pedro
Mir.pdf - Acessado em 02/12/2015
40
![Page 41: Algoritmo de escalonamento Fuzzy Round Robin](https://reader030.vdocuments.site/reader030/viewer/2022013108/55a627981a28ab837c8b4688/html5/thumbnails/41.jpg)
Referências
• Lógica Difusa (Fuzzy)• http://www.cin.ufpe.br/~if684/EC/aulas/Aula-logica-
fuzzy-SI.pdf - Acessado em 03/12/2015
• Avaliação da aprendizagem por meio de lógica de fuzzy validado por uma Árvore de Decisão ID3• http://seer.ufrgs.br/renote/article/viewFile/18053/10
640 - Acessado em 04/12/201541