SlideShare uma empresa Scribd logo
FUZZY ROUND ROBIN
CPU SCHEDULING ALGORITHM
Carlos Alberto
Marcos Castro
Roberson Costa
1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
FIS (Fuzzy Inference System)
24
• 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
• FIS para encontrar o time quantum.
• FIS para decidir sobre a preempção.
Sistemas de Inferência Fuzzy
26
• Para simular cada FIS, podemos utilizar o
editor fuzzy do MatLab:
Sistemas de Inferência Fuzzy
27
FIS para achar o time
quantum
28
FIS para decidir a preempção
29
Regras FIS Time Quantum
30
Regras FIS Preemption
31
Função de Pertinência para o
Time Quantum
32
• 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
• 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
• 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
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
Gráfico - Desempenho
37
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
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
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
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/2015
41

Mais conteúdo relacionado

PDF
SO-04 Escalonamento de Processos
PPTX
Escalonamento lotérico e fração justa
PPTX
Sistemas operacionais escalonamento de processos
PPT
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
PPTX
Aula 12 - Escalonamento
PDF
Aula 02 ambientes e produtos multimidia
PPTX
Aula 8 - Plano de Teste.pptx
PPTX
Algoritimos de Escalonamento
SO-04 Escalonamento de Processos
Escalonamento lotérico e fração justa
Sistemas operacionais escalonamento de processos
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Aula 12 - Escalonamento
Aula 02 ambientes e produtos multimidia
Aula 8 - Plano de Teste.pptx
Algoritimos de Escalonamento

Destaque (11)

PPT
Gráfico de gantt
PDF
Impasses cap 06 (ii unidade)
PDF
3 escalonamento processos
PDF
Como Elaborar Estratégias de Negócios - PME Estadão-FAAP - out12
PDF
Resumo sistemas operativos - joao marques
PDF
Sistemas Distribuídos - Comunicação Distribuída - Socket
PPTX
Aula 13 - Algoritmos de Escalonamento
PPT
Gerência de processos
PDF
Sistemas operacionais
DOC
Modelo de artigo científico básico - com normas ABNT
PDF
Cluster Schedulers
Gráfico de gantt
Impasses cap 06 (ii unidade)
3 escalonamento processos
Como Elaborar Estratégias de Negócios - PME Estadão-FAAP - out12
Resumo sistemas operativos - joao marques
Sistemas Distribuídos - Comunicação Distribuída - Socket
Aula 13 - Algoritmos de Escalonamento
Gerência de processos
Sistemas operacionais
Modelo de artigo científico básico - com normas ABNT
Cluster Schedulers
Anúncio

Semelhante a Algoritmo de escalonamento Fuzzy Round Robin (20)

PDF
Aula3 escalonamento
PPT
Gerências de Processos: Escalonamento de CPU
DOC
Estudo sistemas operacionais p2
PDF
ProcessosEscalonamento.pdf
PPT
Gerencia de processo by "slideplayer.com.br"
PPTX
Aula 06 - Algoritmo de Escalonamento Interativo.pptx
PDF
Categorias de escalonamento e objetivos do algoritmo de escalonamento
PDF
Processos e threads cap 02 (i unidade)
PPT
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
PDF
Arquitetura de Computadores: Processos e Threads
PDF
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
PDF
Questionário sobre processos
PPTX
Sistemas operacionais 04
PPTX
Sistemas operacionais 03
PDF
Process aware interrupt scheduling and accounting
PDF
Análise de Algoritmos
DOC
Regiões críticas dos Sistemas Operacionais
PPTX
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
PPT
Unidade 0: Projeto de Experimentos
PDF
(ACH2044) Sistemas Operacionais - Aula 05
Aula3 escalonamento
Gerências de Processos: Escalonamento de CPU
Estudo sistemas operacionais p2
ProcessosEscalonamento.pdf
Gerencia de processo by "slideplayer.com.br"
Aula 06 - Algoritmo de Escalonamento Interativo.pptx
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Processos e threads cap 02 (i unidade)
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Arquitetura de Computadores: Processos e Threads
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
Questionário sobre processos
Sistemas operacionais 04
Sistemas operacionais 03
Process aware interrupt scheduling and accounting
Análise de Algoritmos
Regiões críticas dos Sistemas Operacionais
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Unidade 0: Projeto de Experimentos
(ACH2044) Sistemas Operacionais - Aula 05
Anúncio

Mais de Marcos Castro (20)

PPTX
Árvores de Decisão
PPTX
Colored de Bruijn Graphs
PPTX
Maratona de Programação
PPTX
Bioinformática
PPTX
Arquivos FASTQ
PPTX
Ferramentas para Bioinformática
PPTX
A importância da Bioinformática
PPTX
Bioinformática
PPTX
Redes Neurais Artificiais
PPTX
Problema do Caixeiro Viajante
PPTX
Metaheurística Simulated Annealing
PPTX
Expressões Regulares com Python 3
PPTX
Algoritmos gulosos
PPTX
Programação dinâmica
PPTX
Busca em largura - BFS
PPTX
Análise Assintótica
PPTX
Listas, tuplas, conjuntos e dicionários
PPTX
Python - Set
PPTX
Python - Dicionários
PPTX
Tabela Hash
Árvores de Decisão
Colored de Bruijn Graphs
Maratona de Programação
Bioinformática
Arquivos FASTQ
Ferramentas para Bioinformática
A importância da Bioinformática
Bioinformática
Redes Neurais Artificiais
Problema do Caixeiro Viajante
Metaheurística Simulated Annealing
Expressões Regulares com Python 3
Algoritmos gulosos
Programação dinâmica
Busca em largura - BFS
Análise Assintótica
Listas, tuplas, conjuntos e dicionários
Python - Set
Python - Dicionários
Tabela Hash

Último (20)

PPTX
Teorias da Evolução. biologia, teorias de Darwin.
PDF
apostila para 9ºano (conversões, velocidade, força)
PDF
aulaslides-bacteriologia-140803091739-phpapp01.pdf
PPTX
Desenveolvimento Embrionário dos Anfíbios - Embriologia Comparada - Embriolog...
PPTX
Microbiologia, celulose bacteriana. slides
PPTX
Breve apresentação sobre a vida de imre lakatos.pptx
PDF
Desenveolvimento Embrionário dos Anfíbios - Embriologia Comparada - Embriolog...
PPT
Aula de Ecologia urbana - Curso de ARquitetura
PPTX
Apresentação power point animais domesticos
PPT
QUÍMICA - LIGAÇÃO QUÍMICA - 2 - COVALENTE -
PDF
Aula 5 - Toxicologia Forense - Fabio.pdf
PDF
Aula 1 - 25.1 - Doen-as Neurodegenerativas.pdf
PPTX
Animais domesticos apresentação power point
DOCX
SefindarfvTopografia terreno_075945.docx
PPT
Introdução a psicologia - 11111111111111
PDF
apresentação quimica de alimentos.pdf
PDF
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
PDF
Teoria do buraco Negro Externo (TBE) Artigo
PPTX
Módulo 4.pptx[[[[[[[[[[[[[[[[[[[[[[[[[]]
PDF
SISTEMA CARDIOVASCULAR NAJSJSJAKDJSKAKDKKA
Teorias da Evolução. biologia, teorias de Darwin.
apostila para 9ºano (conversões, velocidade, força)
aulaslides-bacteriologia-140803091739-phpapp01.pdf
Desenveolvimento Embrionário dos Anfíbios - Embriologia Comparada - Embriolog...
Microbiologia, celulose bacteriana. slides
Breve apresentação sobre a vida de imre lakatos.pptx
Desenveolvimento Embrionário dos Anfíbios - Embriologia Comparada - Embriolog...
Aula de Ecologia urbana - Curso de ARquitetura
Apresentação power point animais domesticos
QUÍMICA - LIGAÇÃO QUÍMICA - 2 - COVALENTE -
Aula 5 - Toxicologia Forense - Fabio.pdf
Aula 1 - 25.1 - Doen-as Neurodegenerativas.pdf
Animais domesticos apresentação power point
SefindarfvTopografia terreno_075945.docx
Introdução a psicologia - 11111111111111
apresentação quimica de alimentos.pdf
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
Teoria do buraco Negro Externo (TBE) Artigo
Módulo 4.pptx[[[[[[[[[[[[[[[[[[[[[[[[[]]
SISTEMA CARDIOVASCULAR NAJSJSJAKDJSKAKDKKA

Algoritmo de escalonamento Fuzzy Round Robin

  • 1. FUZZY ROUND ROBIN CPU SCHEDULING ALGORITHM Carlos Alberto Marcos Castro Roberson Costa 1
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. FIS (Fuzzy Inference System) 24
  • 25. • 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
  • 26. • FIS para encontrar o time quantum. • FIS para decidir sobre a preempção. Sistemas de Inferência Fuzzy 26
  • 27. • Para simular cada FIS, podemos utilizar o editor fuzzy do MatLab: Sistemas de Inferência Fuzzy 27
  • 28. FIS para achar o time quantum 28
  • 29. FIS para decidir a preempção 29
  • 30. Regras FIS Time Quantum 30
  • 32. Função de Pertinência para o Time Quantum 32
  • 33. • 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
  • 34. • 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
  • 35. • 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
  • 36. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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/2015 41