/
Sistemas Operacionais Escalonamento Sistemas Operacionais Escalonamento

Sistemas Operacionais Escalonamento - PowerPoint Presentation

quorksha
quorksha . @quorksha
Follow
342 views
Uploaded On 2020-08-27

Sistemas Operacionais Escalonamento - PPT Presentation

Com o surgimento dos sistemas multiprogramáveis nos quais múltiplos processos poderiam permanecer na memória principal compartilhando o uso da CPU a gerência do processador tornouse uma das atividades mais importantes em um sistema operacional ID: 803818

tempo escalonamento processador processo escalonamento tempo processo processador fila processos pronto execu

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "Sistemas Operacionais Escalonamento" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Sistemas Operacionais

Escalonamento

Slide2

Com o surgimento dos sistemas multiprogramáveis, nos quais múltiplos processos poderiam permanecer na memória principal compartilhando o uso da CPU, a gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional.

A partir do momento em que diversos processos podem estar no estado de pronto, critérios devem ser estabelecidos para determinar qual processo será escolhido para fazer uso do processador.

Gerência do Processador

Execução

Espera

Pronto

Escalonamento

Slide3

Utilização do Processador (CPU)

É o tempo gasto pela CPU na execução dos processos do usuário.

Na maioria dos sistemas é desejável que o processador permaneça a maior parte do seu tempo ocupado. Uma utilização na faixa de 30% indica um sistema com uma carga de processamento baixa, enquanto na faixa de 90% indica um sistema bastante carregado, próximo da sua capacidade máxima.

Throughput (Vazão) 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.Gerência do ProcessadorCritérios de Escalonamento

Slide4

Tempo de Processador (CPU)

É o tempo que um processo leva no estado de execução durante seu processamento.

As políticas de escalonamento não influenciam no tempo de processador de um processo, sendo este tempo função apenas do código da aplicação e da entrada de dados.

Tempo de Espera É o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado.

A redução do tempo de espera dos processos é desejada pela maioria das políticas de escalonamento.

Gerência do ProcessadorCritérios de Escalonamento

Slide5

Tempo de Turnaround

É o tempo que um processo leva desde a sua criação até seu término.

As políticas de escalonamento buscam minimizar o tempo de turnaround.

Tempo de Resposta É o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida. Em sistemas interativos, podemos entender como o tempo decorrido entre a última tecla digitada pelo usuário e o início da exibição do resultado no monitor.

Gerência do Processador

Critérios de Escalonamento

Slide6

Não-Preemptivo

Neste tipo de escalonamento, quando um processo está em execução, nenhum evento externo pode ocasionar a perda do uso da CPU.

O processo somente sai do estado de execução caso termine seu processamento ou execute instruções do próprio código que ocasionem uma mudança para o estado de espera.

Preemptivo Neste tipo de escalonamento o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo na CPU.

Gerência do Processador

Escalonamento Não-Preemptivo e Preemptivo

Slide7

No escalonamento FIFO (

first in, first out

) também conhecido como FCFS (first come, first served), o processo que chegar primeiro ao estado de pronto é selecionado para execução.Sempre que chega um processo no estado de pronto, ele é colocado no final da fila.

Se um processo for para o estado de espera, o próximo da fila é escalonado.Quando um processo do estado de espera volta para o estado de pronto, este vai para o final da fila.

Gerência do Processador

FIFO ou FCFS

Slide8

Gerência do Processador

FIFO ou FCFS

Execução

Espera

Criação

Término

Fila dos processos no estado de Pronto

Slide9

No escalonamento SJF (

shortest job first

), o algoritmo de escalonamento seleciona o processo que tiver o menor tempo de processador (burst) ainda por executar.Dessa forma, o processo em estado de pronto que necessitar de menos tempo de CPU para terminar seu processamento é selecionado para execução.

Uma implementação do escalonamento SJF com preempção é conhecida como escalonamento SRT (Shortest Remaining Time).

Nesta política, toda vez que um processo no estado de pronto tem um tempo de processador estimado menor do que o processo em execução, o sistema operacional realiza uma preempção substituindo-o pelo novo processo.

De modo semelhante ao SJF, o sistema operacional deve ser o responsável por estimar os tempos de processador dos processos, e o risco de starvation continua presente.Gerência do ProcessadorSJF

Slide10

O escalonamento cooperativo é uma implementação que busca aumentar o grau de multiprogramação em políticas de escalonamento que não possuam mecanismos de preempção.

Neste caso, um processo em execução pode voluntariamente liberar o processador, retornando à fila de pronto e possibilitando que um novo processo seja escalonado, permitindo assim uma melhor distribuição no uso da CPU.

A principal característica do escalonamento cooperativo está no fato de a liberação do processador ser uma tarefa realizada exclusivamente pelo processo em execução, que de uma maneira cooperativa libera a CPU.

Gerência do Processador

Cooperativo

Slide11

Gerência do Processador

Fila Circular ou Round Robin

Execução

Espera

Criação

Término

Fila dos processos no estado de Pronto

Preempção por tempo

Slide12

O escalonamento circular (

round robin scheduling

), é um escalonamento do tipo preemptivo, projetado especialmente para sistemas de tempo compartilhado.Esse algoritmo é bastante semelhante ao FIFO, porém quando um processo passa para o estado de execução existe um tempo limite para o uso contínuo do processador denominado fatia de tempo (time slice

) ou quantum.No escalonamento circular, toda vez que um processo é escalonado para execução uma nova fatia de tempo é concedida.Caso a fatia de tempo expire, o sistema operacional interrompe o processo em execução, salva seu contexto e direciona-o para o final da fila de pronto.

Este mecanismo é conhecido como preempção por tempo.

Gerência do Processador Fila Circular ou Round Robin

Slide13

A figura anterior ilustra o escalonamento circular, onde a fila de processos em estado de pronto é tratada como uma fila circular.

O escalonamento é realizado alocando a CPU ao primeiro processo da fila de pronto.

O processo permanecerá no estado de execução até que termine seu processamento, voluntariamente passe para o estado de espera ou que sua fatia de tempo expire, sofrendo, neste caso, uma preempção pelo sistema operacional.

Após isso, um novo processo é escalonado com base na política de FIFO.

Gerência do Processador

Fila Circular ou Round Robin

Slide14

O valor da fatia de tempo depende da arquitetura de cada sistema operacional e, em geral, varia entre 10 e 100 milissegundos.

Este valor afeta diretamente o desempenho da política de escalonamento circular.

Caso a quantum tenha um valor muito alto, este escalonamento tenderá a ter o mesmo comportamento do escalonamento FIFO.

Caso o valor do quantum seja pequeno, a tendência é que haja um grande número de preempções, o que ocasionaria excessivas mudanças de contexto, prejudicando o desempenho do sistema e afetando o tempo de turnaround dos processos.

A principal vantagem do escalonamento circular é não permitir que um processo monopolize a CPU, sendo o tempo máximo alocado continuamente igual ao quantum definido no sistema.

No caso de sistemas de tempo compartilhado, onde existem diversos processos interativos concorrendo pelo uso do processador, o escalonamento circular é adequado. Gerência do Processador Fila Circular ou Round Robin

Slide15

O valor da fatia de tempo depende da arquitetura de cada sistema operacional e, em geral, varia entre 10 e 100 milissegundos.

Este valor afeta diretamente o desempenho da política de escalonamento circular.

Caso a quantum tenha um valor muito alto, este escalonamento tenderá a ter o mesmo comportamento do escalonamento FIFO.

Caso o valor do quantum seja pequeno, a tendência é que haja um grande número de preempções, o que ocasionaria excessivas mudanças de contexto, prejudicando o desempenho do sistema e afetando o tempo de turnaround dos processos.

A principal vantagem do escalonamento circular é não permitir que um processo monopolize a CPU, sendo o tempo máximo alocado continuamente igual ao quantum definido no sistema.

No caso de sistemas de tempo compartilhado, onde existem diversos processos interativos concorrendo pelo uso do processador, o escalonamento circular é adequado. Gerência do Processador Fila Circular ou Round Robin

Slide16

Um problema presente nesta política é que processos CPU-bound são beneficiados no uso do processador em relação aos processos I/O-bound.

Devido às suas características, os processos CPU-bound tendem a utilizar por completo a fatia de tempo, enquanto os processos I/O-bound têm mais chances de passar para o estado de espera antes de sofrerem preempção por tempo.

Estas características distintas ocasionam um balanceamento desigual no uso do processador entre os processos.

Gerência do Processador

Fila Circular ou Round Robin

Slide17

Um refinamento do escalonamento circular, que busca reduzir este problema, é conhecido como

escalonamento circular virtual,

ilustrado seguir.Neste esquema, processos que saem do estado de espera vão para uma fila de pronto auxiliar.

Os processos da fila auxiliar possuem preferência no escalonamento em relação à fila de pronto, e o escalonador só seleciona processos na fila de pronto quando a fila auxiliar estiver vazia.Quando um processo é escalonado a partir da fila auxiliar, sua fatia de tempo é calculada como sendo o valor da fatia de tempo do sistema menos o tempo de processador que o processo utilizou na última vez em que foi escalonado a partir da fila de pronto.

Estudos comprovam que, apesar da maior complexidade na implementação, o balanceamento do uso do processador neste escalonamento é mais equilibrado.

Gerência do Processador Fila Circular Virtual

Slide18

Gerência do Processador

Fila Circular Virtual

Execução

Espera

Criação

Término

Fila dos processos no estado de Pronto

Preempção por tempo

Fila auxiliar

Slide19

Gerência do Processador

Escalonamento por Prioridades

Execução

Espera

Criação

Término

Fila dos processos no estado de Pronto

Preempção por Prioridade

Prioridade P1

Prioridade P2

Prioridade Pn

Slide20

O escalonamento por prioridades é um escalonamento do tipo preemptivo realizado com base em um valor associado a cada processo denomidado

prioridade de execução.

O processo com maior prioridade no estado de pronto é sempre o escolhido para execução, e processos com valores iguais são escalonados seguindo o critério de FIPO.Neste escalonamento, o conceito de fatia de tempo não existe, conseqüentemente um processo em execução não pode sofrer preempção por tempo.

No escalonamento por prioridades, a perda do uso do processador só ocorrerá no caso de uma mudança voluntária para o estado de espera ou quando um processo de prioridade maior passa para o estado de pronto.

Gerência do Processador

Escalonamento por Prioridades

Slide21

Neste caso, o sistema operacional deverá interromper o processo corrente, salvar seu contexto e colocá-Io no estado de pronto.

Esse mecanismo é conhecido como

preempção por prioridade.Após isso, o processo de maior prioridade é escalonado.Um dos principais problemas no escalonamento por prioridades é o

starvation.Processos de baixa prioridade podem não ser escalonados, permanecendo indefinidamente na fila de pronto.

Uma solução para este problema, possível em sistemas que implementam prioridade dinâmica, é a técnica de aging.

Este mecanismo incrementa gradualmente a prioridade de processos que permanecem por muito tempo na fila de pronto. Gerência do Processador Escalonamento por Prioridades

Slide22

Gerência do Processador

Escalonamento Circular com Prioridades

Execução

Espera

Criação

Término

Fila dos processos no estado de Pronto

Preempção por Tempo ou Prioridade

Prioridade P1

Prioridade P2

Prioridade Pn

Slide23

O escalonamento circular com prioridades implementa o conceito de quantum e de prioridade de execução associada a cada processo.

Neste tipo de escalonamento, um processo permanece no estado de execução até que termine seu processamento, voluntariamente passe para o estado de espera ou sofra uma preempção por tempo ou prioridade.

A principal vantagem deste escalonamento é permitir o melhor balanceamento no uso do processador em sistemas de tempo compartilhado.

Processos com o perfil I/O-bound devem receber do administrador do sistema prioridades com valores maiores que as dos processos CPU-bound.Isso permite ao sistema operacional praticar uma política compensatória entre processos de perfis distintos, compartilhando o processador de forma mais igualitária.

Este tipo de escalonamento é amplamente utilizado em sistemas de tempo compartilhado, como o Windows e o Unix.

Gerência do Processador Escalonamento Circular com Prioridades

Slide24

Gerência do Processador

Escalonamento por Múltiplas Filas com Realimentação

Fila dos processos no estado de Pronto

Prioridade P1

Prioridade P2

Prioridade P3

Prioridade Pn

Criação

Execução

 Espera Pronto

Execução

 Espera Pronto

Execução

 Espera Pronto

Execução

 Pronto

Execução

 Pronto

Execução

 Pronto

Fila Circular ou Round robin

Quantum

Maior Prioridade

Menor Prioridade

Menor Quantum

Maior Quantum

Slide25

Um mecanismo FIFO adaptado com quantum é implementado para escalonamento em todas as filas, com exceção da fila de menor prioridade, que utiliza o escalonamento circular.

O escalonamento de um processo em uma fila ocorre apenas quando todas as outras filas de prioridades mais altas estiverem vazias.

O quantum em cada fila varia em função da sua prioridade, ou seja, quanto maior a prioridade da fila, menor o seu quantum.

Sendo assim, o quantum concedido aos processos varia em função da fila de pronto na qual ele se encontra.Um processo, quando criado, entra no final da fila de maior prioridade, porém, durante sua execução, a cada preempção por tempo, o processo é redirecionado para uma fila de menor prioridade.

Gerência do Processador

Escalonamento por Múltiplas Filas com Realimentação

Slide26

O escalonamento por múltiplas filas com realimentação (

multilevel feedback queues scheduling

) os processos podem trocar de filas durante seu processamento.Sua grande vantagem é permitir ao sistema operacional identificar dinamicamente o comportamento de cada processo, direcionando-o para filas com prioridades de execução mais adequados ao longo de seu processamento.

Esse esquema permite que os processos sejam redirecionados entre as diversas filas, fazendo com que o sistema operacional implemente um mecanismo adaptativo.Os processos não são previamente associados às filas de pronto, e, sim, direcionados pelo sistema para as filas existentes com base no seu comportamento.

Gerência do Processador

Escalonamento por Múltiplas Filas com Realimentação

Slide27

Esse escalonamento atende às necessidades dos diversos tipos de processos.

No caso de processos I/O-bound, um tempo de resposta adequado é obtido, já que esses processos têm prioridades mais altas por permanecerem a maior parte do tempo nas filas de maior prioridade, pois dificilmente sofrerão preempção por tempo.

Por outro lado, em processos CPU-bound a tendência é de que, ao entrar na fila de mais alta prioridade, o processo ganhe o processador, gaste seu quantum e seja direcionado para uma fila de menor prioridade.

Dessa forma, quanto mais tempo do processador um processo utiliza, mais ele vai caindo para filas de menor prioridade.

Gerência do Processador

Escalonamento por Múltiplas Filas com Realimentação

Slide28

O escalonamento por múltiplas filas com realimentação é um algoritmo de escalonamento generalista, podendo ser implementado em qualquer tipo de sistema operacional.

Um dos problemas encontrados nesta política é que a mudança de comportamento de um processo CPU-bound para I/O-bound pode comprometer seu tempo de resposta.

Outro aspecto a ser considerado é sua complexidade de implementação, ocasionando um grande

overhead (sobrecarga) ao sistema. Gerência do Processador

Escalonamento por Múltiplas Filas com Realimentação

Slide29

Diferentemente dos sistemas de tempo compartilhado, nos quais a aplicação não é prejudicada pela variação no tempo de resposta, algumas aplicações específicas exigem respostas imediatas para a execução de determinadas tarefas.

Neste caso, a aplicação deve ser executada em sistemas operacionais de tempo real, onde é garantida a execução de processos dentro de limites rígidos de tempo, sem o risco de a aplicação ficar comprometida.

Aplicações de controle de processos, como sistemas de controle de produção de bens industriais e controle de tráfego aéreo, são exemplos de aplicação de tempo real.

O escalonamento em sistemas de tempo real deve levar em consideração a importância relativa de cada tarefa na aplicação.

Em função disso, o escalonamento por prioridades é o mais adequado, já que para cada processo uma prioridade é associada em função da importância do processo dentro da aplicação.

No escalonamento para sistemas de tempo real não deve existir o conceito de quantum, e a prioridade de cada processo deve ser estática. Gerência do Processador

Escalonamento em Sistema de Tempo Real