Você está na página 1de 11

UNIVERSIDADE NOVE DE JULHO

DIRETORIA DOS CURSOS DE INFORMÁTICA

KELWEN DE SOUSA PEREIRA SANTOS - 922204206

AVALIAÇÃO AV1

PESQUISA

ESCALONAMENTO DE CPU

SÃO PAULO
2022
Escalonamento é a distribuição de acesso aos recursos presentes no sistema
entre os processos ativos, de forma que todos os processos que estão
enfileirados possam utilizar a CPU. No sistema operacional existe um
escalonador, que tem a função de decidir qual dos processos está pronto e
qual será o próximo a rodar, dividindo o uso de memória e CPU.

Os escalonadores são de longo prazo (controla o grau de multiprogramação e


gerencia o número de processos em execução simultaneamente), médio prazo
(controla quais processos são parcial ou totalmente removidos da memória
para suspensão) e existem 3 tipos. Ephemeral (gerencia os processos na
memória e os atribui aos processadores).

Objetivo do escalonamento do processador (principal recurso):

É maximizar a utilização da CPU via multiprogramação.

Ideia base da multiprogramação:

Quando um processo tem de esperar (p.ex operação I/O), o sistema operativo


retira-lhe a CPU, dando-a a outro processo.

Ciclo “burst CPU” -” I/O” – execução dum processo consiste dum ciclo de
execução na CPU e espera IN/OUT;

Escalonador da CPU;

Escalonamento preemptivo;

Despachador.

Sequência alternada de intermitências de CPU e IN/OU

O sucesso do escalonamento da CPU depende da seguinte observação sobre


os processos:

A execução dum processo consiste em vários ciclos CPU-I/0 tal que uma
intermitência (burst) de execução da CPU alterna com uma intermitência (burst)
de espera pela finalização duma operação IN/OUT.

Desde que os computadores foram criados, otimizar recursos tem sido um


problema. Concluir tarefas em computadores no menor tempo possível sempre
foi uma prioridade. Segundo machado (2007), políticas de escalonamento do
sistema operacional têm várias funções principais:

Retenha o processador ocupado a maior parte do tempo


Equilibra o uso da CPU entre os processos;

Principais permissões do aplicativo

Rendimento máximo do sistema;

Ofereça tempos de resposta variáveis para usuários interativos.

A principal função do sistema operacional é implementar padrões de política de


agendamento, chamados de agendadores. Agendar é o processo de priorizar.

Em um sistema multiprogramável o escalonador é essencial, pois sem ele não


é possível compartilhar o processador pois através deste algoritmo o sistema
operacional consegue gerenciar os processos que utilizam o processador.

Há duas rotinas importantes para a gerência do processador, são elas:

Dispatcher: responsável pela troca de contexto dos processos após o


escalonador determinar qual processo deve fazer uso do processador;

Latência de Dispatcher: tempo gasto na substituição de um processo em


execução por outro.

Critérios de Escalonamento:

De acordo com as características do sistema operacional O atributo é definido


para execução oportuna suficiente. Segundo machado (2007), os critérios são:

Utilização do processador: é desejável que o processador esteja ocupado o


tempo todo. O uso na faixa de 30 % sinaliza uma baixa carga do sistema.
enquanto a utilização na faixa de 90 % sinaliza que um sistema muito
carregado está se aproximando da capacitância máxima.
Throughput: representa o número de processos executados em um
determinado intervalo de tempo. Quanto maior o throughput, maior o número
de tarefas executadas em função do tempo. A maximização do throughput é
desejada na maioria dos sistemas operacionais;

Tempo de processador / tempo de CPU: A quantidade de tempo que um


processo gasta em execução durante o processamento. A política de
agendamento não afeta o tempo de CPU do processo desta vez é apenas uma
função do código do aplicativo e da entrada.

Tempo de espera: são o tempo total que um processo permanece na fila


durante seu processamento, esperando para ser executado. A redução dos
tempos de espera do processo é desejável para a maioria políticas de
agendamento.

Tempo de turnaround: são o tempo consumido por um processo desde sua


criação até seu término, levando em consideração o tempo total consumido
aguardando alocação de memória, aguardando na fila de prontos, aguardando
no processamento da CPU e aguardando na fila como operações AND / AT
com despesa S. Planeamento as diretrizes visam minimizar os prazos de
entrega;

Tempo de resposta: O tempo decorrido entre uma solicitação ao sistema ou


aplicativo e o momento em que a resposta aparece. Em sistemas interativos
pode ser entendido como o tempo decorrido entre a última tecla digitada pelo
usuário e o início do resultado no monitor.

Escalonamentos não preemptivos e preemptivos

Podemos rotular o cronograma se o processo pode ser interrompido ou não.

Atualização do tipo preemptiva quando o sistema operacional encerra um


processo em execução e a troca por outro processo. Esses sistemas são mais
complexos, mas permitem políticas de agendamento mais flexíveis.

Há também o Non-Preemptive Scheduling, o primeiro a ser implementado em


sistemas operacionais multiprogramáveis. Nesse modelo, quando um processo
está em execução, nenhum evento externo causará perda de uso da CPU isso
só acontecerá se o processo concluir seu processamento ou executar
formações do próprio código que favoreçam uma mudança de estado de
espera.
A vantagem do escalonamento preemptivo é que o sistema operacional pode
interromper um processo em execução e colocá-lo em estado pronto para
alocar outro processo ao processador preferencialmente, é possível que o
sistema priorize a execução de processos, como em aplicações de tempo real,
onde o fator tempo é crítico. Outro benefício é a capacitância de implementar
políticas de agendamento que distribuem os processadores de maneira mais
uniforme. Distribui o uso da ucp uniformemente entre os processos. Melhorar a
eficiência e reduz o tempo de execução do trabalho.

As decisões de escalonamento da CPU têm lugar nas 4 seguintes


circunstâncias:

1. Um processo comuta do estado running para o estado waiting.

- Interrupção IN/OUT ou Sleep;

- Chamado ao sistema wait() – espera a terminação dum processo filho.

2. Um processo comuta do estado running para o estado ready

- Ocorrência duma interrupção

3. Um processo comuta do estado waiting para o estado ready

- Terminação de IN/OUT

- Recurso livre

4. Um processo termina System call _exit().

Os sistemas operativos não-preemptivos não são adequados para sistemas de


tempo real, pois não garantem a execução em primeiro lugar dos processos
com prioridade mais alta.

Já aqui (preemptivos) há um custo a pagar. Considere que dois processos


partilham dados. Um dos processos está a atualizar os dados quando ocorre a
preempção do segundo processo que passa a executar e a ler os dados. Os
dados assim podem ficar num estado inconsistente.
Escalonamento First-Come-First-Served (FCFS)

Também chamado de FIFO (First-In_First_Out). O conceito desse algoritmo de


escalonamento os processos que primeiro atingem o estado pronto são
selecionados para execução.

Basta uma fila (servida como a fila de um caixa de banco) na qual os processos
que acordam entram no final e são selecionados quando chegam à cabeça. Se
um processo entra no estado pendente, ele é escalonado primeiro na fila de
processos prontos.

O grande problema é predizer quando um processo começará a ser executado,


pois depende de quem está no início da fila.

Essa programação é não preemptiva, ou seja, não interrompe, e foi


inicialmente desenvolvida e implementada em sistemas monoprogramáveis
com processamento em lote, portanto não é possível aplicar esse conceito em
sistemas compartilhados.

Escalonamento Shortest Job First (SJF)

Este programa atende os menores processos primeiro, aqueles que usam a


menor quantidade de CPU. O cálculo de cada tempo médio é feito a partir de
uma segunda alocação de CPU, ou seja, o processo que utilizar a ucp por
menos tempo será executado primeiro. Foi originalmente desenvolvido para
sistemas operacionais em lote (processamento em lote). Esse tipo de
planejamento pode ser proativo ou não proativo.

Escalonamento SJF não Preemptivo

Nesse escalonamento, o processo utiliza o processador até o final de sua


execução sem interrupção. Nenhum evento externo afeta esta execução.
Quando o processamento é concluído, a fila de prontos verifica o próximo
"menor processo" a ser executado.

Escalonamento SJF Preemptivo


Neste modelo, se chegar um processo menor que o que está rodando, o
"maior" (que usa mais CPU) será interrompido, para dar conta do "menor" que
chegou.
Escalonador da CPU
Sempre que a CPU fica livre, cabe ao sistema operativo selecionar um dos
processos da ready que está a fim de o colocar em execução.
A seleção é efetuada pelo escalonador de curto prazo ou escalonador da CPU.
O escalonamento da CPU pode ter lugar quando um processo:
- Comuta do estado RUNNING para o estado WAITING;
- Comuta do estado RUNNING para o estado READY;
- Comuta do estado WAITING para o estado READY;

Despachador
É o módulo que despacha o controlo da CPU para o processo selecionado pelo
escalonador de curto-prazo.
Executa as seguintes operações:
- Comutação de contexto;
- Comutação para o modo de utilizador;
- Salto para o endereço certo de memória do programa por forma a
(re)executá-lo;
O despacho deve ser tão rápido quanto possível.
O tempo que decorre entre a paragem de execução dum processo e o início
doutro é designado por latência de despacho.

Algoritmos de Escalonamento:
First-Come, First-Served (FCFS);
Shortest-Job-First (SJT) ;
Prioridade;
Round-Robin (R-R);
Multi-fila;
Multi-fila com transbordo.

Escalonamento por prioridades:


O algoritmo SJF é um caso particular do algoritmo de escalonamento por
prioridades, em que a prioridade é o próximo tempo previsível de CPU burst.
Uma prioridade é atribuída a cada processo, e o escalonador atribui a CPU ao
processo com maior prioridade (menor inteiro).
- Preemptivo
- Não-preemptivo
Se dois processos têm a mesma prioridade, o desempate é feito recorrendo ao
FCFS.
Problema = inanição (starvation) – processos de baixa prioridade arriscamse a
nunca executar.
Solução = envelhecimento (aging) – à medida que o tempo passa, a prioridade
dum processo aumenta.

Critérios de prioridade
Factores internos:
limites de tempo
requisitos de memória
nº de ficheiros abertos
duração média dos bursts de I/O
duração média dos bursts de CPU

Factores externos:
Importância do processo
preço pago pela utilização
proprietário do processo
Round Robin (RR)

Este algoritmo foi concebido para sistemas de time-sharing.

É semelhante ao FCFS, mas é preemptivo.

Cada processo obtém uma pequena unidade de tempo na CPU (time quantum
ou time slice), vulgarmente 10-100 milissegundos. Após decorrer este tempo, o
processo é percepcionado e adicionado à cauda da fila READY. A fila READY
é tratada como uma fila circular.
Se há n processos na fila READY e o time quantum é q, então cada processo
obtém 1/n do tempo da CPU em fatias de q unidades de tempo duma vez.
Nenhum processo espera mais do que (n-1)q unidades de tempo.
Desempenho
- q grande = FIFO
- q pequeno = q tem de ser grande relativamente à comutação de contexto;
caso contrário, a sobrecarga é muito elevada.

Algoritmo Evolution

Modelação e Simulação
Define um workload e depois simulA o desempenho de cada algoritmo para
este workload. Workloads podem ser:
- Determinística – Define um workload baseando por exemplo em dados reais
ou inventados
- Aleatório – Utilizando processos aleatórios e probabilísticos – tempo de
chegada ‘’poisson” – burst time .. “exponencial”

Analise Matemática
Queueing models M/M/1 etc.
Fila multi-nível
Este tipo de escalonamento é usado quando é fácil classificar os processos em
classes distintas (processos interactivos, processos batch, etc.).
A fila READY é particionada em várias filas, uma por cada classe de
processos: foreground (interactive) background (batch)
Cada fila tem o seu próprio algoritmo de escalonamento: foreground – RR
background – FCFS
O escalonamento entre as filas tem de ser feito.
- Escalonamento de prioridades fixas; (i.e., serve todas as filas, desde as
foreground até às background). Problema: inanição.
- Time slice – cada fila obtém uma certa quantidade de tempo da CPU que
pode ser escalonado pelos seus processos; por exemplo., 80% para
foreground em RR20% para background em FCFS.

Fila multi-nível com transbordo


Um processo pode mover-se entre várias filas; a técnica de envelhecimento
pode ser implementada desta forma.
Outras características:
– Prioridades por fila;
– Preempção;
– Generalidade;
– Configurabilidade.

Três filas:
Q0 – time quantum de 8 milissegundos
Q1 – time quantum de 16 milissegundos
Q2 – FCFS

Escalonamento
Um novo processo entra na fila Q0, a qual segue uma política FCFS. Quando
ganha a CPU, o processo recebe 8 ms. Se não termina em 8 ms, o processo é
transladado para a fila Q1 .
Em Q1 , o processo é servido novamente por uma política de escalonamento
FCFS e recebe 16 ms adicionais. Se mesmo assim não termina, o processo é
preempcionado e transladado para a fila Q
Escalonamento Multi-Processor
Não existe uma solução ótima de escalonamento mesmo para sistemas uni
processador.
O problema do escalonamento torna-se ainda mais complexo para sistemas
multiprocessadores.
Processadores homogéneos dentro do sistema multiprocessador.
Partilha de carga
Multi-processamento assimétrico – só um processador acede às estruturas de
dados do sistema, aliviando a necessidade de partilha de dados.
É usada uma única fila ready, e não uma fila por processador, para evitar que
haja algum processador inativo enquanto outros têm processos na suas filas
ready à espera.
Há duas políticas de escalonamento multiprocessador:
Processadores auto escalonáveis - Neste caso, cada processador é
responsável pela seleção dum processo existente na fila ready partilhada.
Processador mestre / processador escravo - Há um processador (mestre) que
desempenha o papel de escalonador dos restantes (escravos).

Escalonamento em tempo real

Há dois tipos de sistemas operativos de tempo real:


Sistemas estritos de tempo real (hard real-time systems) - São necessários
para garantir a conclusão duma tarefa crítica dentro duma quantidade de tempo
pré-definida.
Sistemas latos de tempo real (soft real-time systems). - São menos restritivos.
Mas, os processos críticos têm sempre a máxima prioridade.
Escalonamento:
Escalonamento por prioridades - Processos de tempo real têm prioridade
máxima.
Manutenção da prioridade - Ao contrário de outros processos, um processo de
tempo real mantém a sua prioridade.
Latência de despacho - Deve ser o mais baixa possível. Para isso, há sistemas
operativos que admitem a preempção das “chamadas ao sistema” de longa
duração.

Você também pode gostar