O documento descreve diferentes algoritmos de escalonamento de processos em sistemas operacionais, incluindo FIFO, SJF, Round Robin e por prioridades. Dois simuladores de SO, SOsim e SimulaRSO, são apresentados para explicar conceitos de escalonamento de forma visual.
2. PROCESSOS
Um processo pode ser definido como "um
programa em execução". O conceito de processo é
bastante abstrato, mas é essencial no estudo de
sistemas operacionais
3. ESCALONADORES
Qualquer sistema operacional que implemente
multiprogramação deve dividir o tempo do
processador entre os processos do sistema.
4. ESCALONAMENTO FIRST-IN-FIRST-OUT
(FIFO)
O processo que chegar primeiro, é o primeiro a ser
selecionado para a execução.
Necessário apenas uma fila de processos
prontos, esperando pelo uso do processador.
O processo utiliza a CPU sem ser interrompido.
Problemas:
Impossibilidade de prever quando um processo entrará
em execução.
Possibilidade de processos CPU-bound de menor
importância prejudicarem processos de I/O-bound mais
prioritários.
5. ESCALONAMENTO SHORTEST-JOB-FIRST
(SJF)
Associa cada processo (JOB) ao seu tempo de
execução.
Quando o processador está livre, o processamento
que ocupar menos tempo da CPU para terminar
seu processamento é selecionado.
Favorece os programas menores.
Reduz o tempo médio de espera em relação ao
FIFO.
Problemas:
Determinar, exatamente, quanto tempo de CPU o
processo vai utilizar para terminar seu processamento.
6. ESCALONAMENTO PREEMPTIVO
O Sistema pode interromper um processo em execução
para que outro processo utilize o processador.
Permite que o sistema dê atenção imediata a processos
mais prioritários, como no caso de sistemas em tempo
real.
Proporciona melhores tempos de resposta em sistemas
de tempo compartilhado
Compartilhamento do processador de uma maneira
mais uniforme entre os processos.
A troca de um processo pelo outro na CPU (mudança
de contexto), causado pela preempção, gera um
overhead no sistema.
Critérios de preempção devem ser definidos para o
overhead não se tornar crítico.
7. ESCALONAMENTO CIRCULAR (ROUND
ROBIN) OU PREEMPÇÃO POR TEMPO
Implementado por um algoritmo semelhante ao
FIFO, porém, quando um processo passa para o
estado de execução, existe um tempo-limite
(quantum ou time-slice) para sua utilização de
forma contínua. Se o processo não terminou a
execução, volta ao estado de pronto.
Em geral, o valor do quantum de tempo está entre
100 e 300 ms.
Nenhum processo poderá monopolizar a CPU.
Algoritmo bastante adequado para sistemas
multiusuários de tempo compartilhado.
No caso, o processo CPU-bound tem mais chances
de ser executado do que o processo IO-bound
8. ESCALONAMENTO POR PRIORIDADES OU
PREEMPÇÃO POR PRIORIDADE
Processos possuem diferentes prioridades de
execução.
Processos de maior prioridade são escalonados
preferencialmente.
Algoritmo Implementado mediante um clock, que
interrompe o processador em determinados
intervalos de tempo, reavaliando prioridades e,
possivelmente, escalonando outro processo.
Todos os sistemas de tempo compartilhado
implementam algum tipo de prioridade, sendo esta
uma característica do contexto de software.
9. ESCALONAMENTO POR PRIORIDADES OU
PREEMPÇÃO POR PRIORIDADE
Prioridade estática:
Não é modificada durante a existência do processo.
De simples de implementação.
Pode ocasionar tempos de resposta elevados.
Prioridade dinâmica:
Pode ser modificada durante a execução do processo.
O processo recebe um acréscimo à sua prioridade ao sair do
estado de espera.
Processos I/O-Bound terão mais chances de serem
escalonados, compensando o tempo que passam no estado
de espera.
Os processos CPU-Bound podem ser executados enquanto
os processos I/O -Bound esperam por algum evento.
O tempo de resposta compensa o maior overhead e
complexidade algorítmica.
10. DESCRIÇÃO DOS SIMULADORES
SOsim
um simulador com recursos visuais que tem como
principal objetivo emular os principais subsistemas de
um sistema operacional multiprogramável, como
gerência de processos, escalonamento e memória
virtual por paginação.
11. DESCRIÇÃO DOS SIMULADORES
SOsim
As principais funcionalidades e características do
simulador são:
Implementar o conceito de processo
Criar processos CPU-bound e IO-bound;
Visualizar o Process Control Block (PCB) dos
processos;
Suspender/resumir e eliminar processos;
Visualizar as mudanças de estado dos processos;
Permitir visualizar estruturas internas do sistema
Process Control Block (PCB);
Process Page Table;
Page Table Entry;
12. DESCRIÇÃO DOS SIMULADORES
SOsim
Bugs do SOsim:
Quando é aumentado o ciclo de clock a
visualização das transições dos processos não
correspondem com o esperado.
É necessário reiniciar o simulador sempre que for
fazer uma simulação diferente, pois a visualização
gráfica continua sendo a da simulação anterior.
13. DESCRIÇÃO DOS SIMULADORES
SimulaRSO
Aplicação web utilizado como ferramenta de apoio para
a disciplina de sistemas operacionais. O foco principal é
simular graficamente e de forma intuitiva como
funcionam os principais algoritmos de escalonadores de
processos: (FCFS, SJF, SRT, Round Robin) que são
utilizados no gerenciamento de processos concorrentes
presentes.
14. DESCRIÇÃO DOS SIMULADORES
SimulaRSO
As principais funcionalidades e características do simulador são:
Simular os principais algoritmos de escalonamento de processos com até
20 processos.
Simular os principais algoritmos de escalonamento de disco com até 30
requisições de (I/O) em disco.
Simular os principais algoritmos de substituição de página de memória
virtual com até 30 palavras de bytes na escrita.
Realizar simulação comparativa para analisar o comportamento de dois
algoritmos distintos.
Exibição comportamental dos algoritmos através de gráficos intuitivos.
Projeto internacionalizado com suporte aos idiomas inglês e português.
Desvantagens:
Constatamos que o simulador coloca todos os tempos de chegada iguais
a zero, mesmo que sejam introduzidos outros valores, o que acarreta em
uma discrepância nos cálculos dos tempos de espera.
No algoritmo SJF o simulador não analisa os processos corretamente
quando estes tem tempo de ordem de chegada diferente.
15. COMPARAÇÃO ENTRE OS
ALGORITMOS
Comparação entre os algoritmos
FIFO SJF
100 100
Referente à questão 6. Não
sei se é pra deixar. Diga aí.
23 22.33
14.67 14
0.12 0.12
Utilização Produtividade Tempo Médio de Espera Tempo Retorno Médio
16. CENÁRIO 1
Processo Instante de Chegada Tempo de Execução Prioridade
P1 0 3 1
P2 0 5 1
P3 0 6 1
P4 0 2 1
Algoritmos FCFS SJF Prioridades RR
Utilização da CPU(%) 100 100 100 100
Produtividade da CPU(%) 25 25 25 25
Tempo Médio de Espera 6,25 4,25 6,25 7,75
Tempo Médio de Retorno 10,25 8,25 10,25 11,75
17. Cenário 1
120
100
80
FCFS
60
SJF
Prioridades
40
RR
20
0
Utilização Produtividade Tempo Médio de Tempo Retorno
Espera Médio
18. CENÁRIO 2
Processo Instante de Chegada Tempo de Execução Prioridade
P1 5 6 2
P2 3 3 2
P3 1 2 2
P4 2 1 2
P5 7 10 2
P6 8 12 2
Algoritmos FCFS SJF Prioridades RR
Utilização da CPU(%) 97,14 97,14 97,14 97,14
Produtividade da CPU(%) 17,14 17,14 17,14 17,14
Tempo Médio de Espera 4,17 4,17 7,17 12
Tempo Médio de Retorno 9,83 9,83 17,67 12,83
19. Cenário 2
120
100
80
FIFO
SJF
60
RR
Prioridade
40
20
0
Produtividade Utilização Tempo Médio de Espera Tempo Retorno Médio
20. CENÁRIO 3
Processo Instante de Chegada Tempo de Execução Prioridade
P1
0 3 3
P2
0 5 2
P3
0 6 1
P4
0 2 4
Algoritmos FCFS SJF Prioridades RR RR( Q 3)
Utilização da 100 100 100 100 100
CPU(%)
Produtividade da 25 25 25 25 25
CPU(%)
Tempo Médio de 6,25 4,25 7,75 7,75 6,75
Espera
Tempo Médio de 10,25 8,25 11,75 11,75 10,75
Retorno
21. Cenário 3
120
100
80 FCFS
60 SJF
Prioridades
40
RR
20
RR (Quantum 3)
0
Utilização Produtividade Tempo Médio de Tempo Retorno
Espera Médio
22. CENÁRIO 4
Processo Instante de Chegada Tempo de Execução Prioridade
P1
0 3 3
P2
2 5 2
P3
3 6 1
P4
1 2 4
Algoritmos FCFS SJF Prioridades RR
Utilização da CPU(%) 100 100 100 100
Produtividade da CPU(%) 25 25 25 25
Tempo Médio de Espera 3 3 7,5 4,5
Tempo Médio de Retorno 7 7 11,5 8,5
23. Cenário 4
120
100
80
FCFS
60
SJF
40 Prioridades
RR
20
0
Utilização Produtividade Tempo Médio de Tempo Retorno Médio
Espera