Buscar

Sistemas Operacionais aula 07

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCT0011 – Sistemas Operacionais 
Aula 07 – Gerência do Processador 
Professor Ricardo Bernardo 
Sistemas Operacionais 
Conteúdo da Aula 
Breve Revisão Última Aula 
 
Fundamentos 
Critérios de Escalonamento 
FCFS 
Prioridade 
SJF 
Round Robin 
Sumário 
• Introdução 
• Funções Básicas 
• Critérios de escalonamento 
• Escalonamentos não-preemptivos e 
preemptivos 
• Escalonamento FIFO 
• Escalonamento SJF 
• Escalonamento cooperativo 
• Escalonamento circular 
• Escalonamento por prioridades 
• Escalonamento circular com prioridades 
• Escalonamento por múltiplas filas 
• Escalonamento por múltiplas filas com 
realimentação 
• Política de Escalonamento em Sistemas de 
Tempo Compartilhado 
• Política de Escalonamento em Sistemas de 
Tempo Real 
Sistemas Operacionais 
Introdução 
 Nos sistemas multiprogramáveis, múltiplos processos podem permanecer na 
memória principal compartilhando o uso da CPU. Neste modelo a gerência do 
processador tornou-se uma das atividades mais importantes em um sistema 
operacional. 
 
 Diversos processos podem estar no estado de pronto, desta forma, critérios devem 
ser estabelecidos para determinar qual processo será o escolhido para fazer uso do 
processador. 
 
 Os critérios utilizados para esta seleção compõem a chamada política de 
escalonamento, que é a base da gerência do processador e da multiprogramação em 
um sistema operacional. 
 
Sistemas Operacionais 
Introdução 
Estado de
Espera
Estado de
Execução
Estado de
Pronto
Escalonam
ento Funções básicas do escalonamento 
 
• Manter a CPU ocupada a maior parte do tempo 
• Balancear o uso da CPU entre processos 
• Privilegiar a execução de aplicações críticas 
• Maximizar o throughput do sistema 
• Oferecer tempos de resposta razoáveis para usuários interativos 
 
Sistemas Operacionais 
Funções Básicas 
 Cada SO possui sua política de escalonamento adequada ao seu propósito e às suas características. 
 
Escalonador (scheduler) Rotina do sistema operacional responsável por implementar os critérios de 
escalonamento. 
O escalonador é a entidade do sistema operacional responsável por selecionar um processo apto a 
executar no processador e dividir o tempo do processador de forma justa entre os processos que estão 
aptos. 
 
Dispatcher 
Responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve 
fazer uso do processador. 
 
Sistemas Operacionais 
Funções Básicas 
Ambientes que implementam apenas processos: 
• O escalonamento é realizado com base nos processos prontos para execução. 
 
Em ambientes que implementam threads: 
• O escalonamento é realizado considerando os threads em estado de pronto, independentemente do 
processo. 
• Processos – unidades de alocação de recursos 
• Threads – unidades de escalonamento 
Sistemas Operacionais 
Objetivos do Escalonamento 
 Maximizar a utilização do processador ; 
 
 Privilegiar aplicações que são críticas; 
 
 Maximizar a produção do sistema ,com o maior número de processos executados por unidade de 
tempo; 
 
 Minimizar o tempo de execução, ou seja, o tempo que um processo gasta desde a sua criação até seu 
 término; 
 
 Minimizar o tempo de espera, ou seja, o tempo que um processo permanece na lista de prontos ; 
 
 Minimizar o tempo de resposta, ou seja, o tempo decorrido entre uma requisição e a sua realização. 
 
 
 
Sistemas Operacionais 
Critérios de Escalonamento 
 Critérios que devem ser considerados em uma politica de escalonamento: 
 
 Utilização do Processador: 30% carga baixa, 90 % sistema carregado; 
 Throughput: Número de processos executados em um determinado intervalo de tempo; 
 Tempo de Processador/Tempo de CPU: Tempo que um processo leva em estado de execução durante 
o seu processamento; 
 Tempo de Espera: Tempo total que um processo permanece na fila de espera; 
 Tempo de Turnaround: Tempo desde a criação até o término de um processo (tempo total); 
 Tempo de Resposta: Tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante 
em que a resposta é exibida; 
Sistemas Operacionais 
Considerações 
 A política de escalonamento varia de acordo com o propósito do sistema operacional (Sistemas de 
Tempo Real x Sistemas de Tempo Compartilhado x Sistemas Batch); 
 
Latência do dispatcher: tempo gasto para a troca de processos; 
 
Em ambientes multithread, a unidade escalonada é a thread (somente as que estiverem no estado 
“pronto”); 
 
 
Sistemas Operacionais 
Tipos de Escalonadores 
Escalonamentos 
 
 Não preemptivo  Escalonadores que permitem que os processos rodem até o fim de sua 
execução sem serem interrompidos por eventos externos; 
 
 
 Preemptivo  Escalonadores que são capazes de suspender processos que poderiam continuar 
executando. 
 
 
Sistemas Operacionais 
Tipos de Escalonadores 
Os processos poderão utilizar a CPU até os seguintes casos ocorrem: 
 
Não preemptivo 
1. Término de execução do processo; 
2. Execução de uma requisição de entrada/saída ou sincronização; 
3. Liberação voluntária do processador a outro processo. 
 
Preemptivo 
1. Término de execução do processo; 
2. Execução de uma requisição de entrada/saída ou sincronização; 
3. Liberação voluntária do processador a outro processo; 
4. Interrupção de relógio; 
5. Processo de mais alta prioridade esteja pronto para executar. 
 
Sistemas Operacionais 
Algoritmos de Escalonamento 
 
 Diversos mecanismos (algoritmos) foram sendo desenvolvidos ao longo dos anos. 
 
 Cada um possui uma vantagem ou desvantagem, mas os escolhidos são aqueles que 
oferecem um bom desempenho, ou seja, evitam ao máximo o tempo de espera e 
mantém os recursos ocupados em ambientes de processos heterogêneos 
 
Sistemas Operacionais 
Algoritmos de Escalonamento 
Alguns algoritmos de escalonamento: 
 
Algoritmos não preemptivos: 
1. FIFO 
2. SJF 
3. Cooperativo 
 
Algoritmos preemptivos: 
1. Round Robin (circular) 
2. Múltiplas filas (e suas variações ) 
Sistemas Operacionais 
Algoritmo de Escalonamento FIFO 
 
 O algoritmo FIFO (First In First Out) mais simples de implementar, onde o processador possui uma fila 
associada para armazenar os processos que estão prontos a executar. 
 
Funcionamento: 
 Processos que se tornam aptos são inseridos no final da fila; 
 Processo que está no início da fila é o próximo a executar; 
 Processo executa até que: 
 
• Libere explicitamente o processador 
• Realize uma chamada de sistema (bloqueado) 
• Termine sua execução. 
Sistemas Operacionais 
Algoritmo de Escalonamento FIFO 
Escalonamento FIFO também conhecido como First Come First Served (FCFS) 
 
 
 
 
 
 
 
 
 
Não se preocupa em melhorar o tempo médio de espera dos processos. 
Não há preempção. 
UCP
Estado de
Criação
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Término
Sistemas Operacionais 
Algoritmo de Escalonamento FIFO 
Processo A
Processo B
Processo C
10 14 17
Processo A
Processo B
Processo C
4 7 17
u.t.
u.t.
Processo
Tempo de
processador
(u.t.)
A
B
C
10
4
3
Processos CPU-Bound levam vantagens 
 
 
Processos A, B e C na fila de prontos. 
 
Tempo médio de espera dos três 
processos: 
 
a) (0 + 10 + 14) / 3 = 8u.t 
 
b) (7 + 0 + 4) / 3 = 3,7 u.t. 
Sistemas Operacionais 
A
rq
u
it
et
u
ra
 d
e 
S
is
te
m
as
 O
p
er
ac
io
n
ai
s 
–
 M
ac
h
ad
o
/Mai
a 
Algoritmo de Escalonamento SJF 
Processo A
Processo B
Processo C
3 7 17 u.t.
 Shortest Job First (SJF) também conhecido como 
Shortest Process Next (SPN). 
 Seleciona o processo que tiver o menor tempo 
de processador ainda por executar. 
 
 Para utilizar este algoritmo o tempo de 
execução de cada processo precisar ser 
previamente conhecido. 
 Toda vez que um processo na fila de estado 
de pronto tem um tempo de processador 
estimado menor do que o processo em 
execução, ocorre uma preempção. 
 
Tempo médio de espera dos três processos. 
(7 + 3 + 0) / 3 = 3.3 u.t. 
Sistemas Operacionais 
Algoritmo de Escalonamento SJF 
Sua vantagem sobre o escalonamento FIFO está na redução do tempo médio de turnaround dos 
processos. 
 
Possibilidade de ocorrer starvation para processos com tempo de processamento muito longo ou 
processos do tipo CPU-bound. 
 
Uma implementação do escalonamento SJF com preempção é conhecida como escalonamento Shortest 
Remaining Time (SRT). 
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 realiza a preempção. 
Sistemas Operacionais 
Escalonamento Cooperativo 
 
 
 Implementação que busca aumentar o grau de multiprogramação em políticas de escalonamento que 
não possuem mecanismos de preempção, como FIFO e SJF não preemptivo. 
 
 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 para outro processo. 
Sistemas Operacionais 
Escalonamento Cooperativo 
 
 
Processo em execução pode liberar voluntariamente a CPU, retornando para à fila de pronto; 
 
• Uma forma de implementar este modelo é criando uma “fila ou caixa de mensagens”, onde informações 
sobre os eventos ocorridos são postadas. 
• Verifica a fila de mensagens periodicamente 
• Podem ocorrer problemas 
 
Exemplo: primeiros sistemas MS-Windows 
Sistemas Operacionais 
Preempção por tempo
UCP
Estado de
Criação
Estado de
Espera
Fila dos processos no estado de Pronto
Estado de
Término
Escalonamento Circular 
 Quando um processo passa para o estado de execução existe um tempo-limite para o uso contínuo 
do processador (round robin) 
 Em sistemas de time-sharing o tempo de CPU deve ser compartilhado, sendo dada uma parcela de 
tempo a cada programa (time-slice). Denominamos de quantum este intervalo de tempo. 
 Esse tipo de escalonamento é também conhecido como preempção circular. 
Sistemas Operacionais 
Escalonamento Circular 
 Esse algoritmo é bastante semelhante ao 
FIFO. 
 
 O valor da fatia de tempo depende da 
arquitetura de cada sistema operacional e, em 
geral varia entre 10 e 100 milissegundos. 
 
 Processos CPU-Bound levam vantagens, pois 
tendem a utilizar por completo a fatia de tempo. 
 
 
Processo A
Processo B
Processo C
2 4 17 u.t.6 8 10 11
Sistemas Operacionais 
Escalonamento Circular Virtual 
 Os processos que saem da fila auxiliar possuem preferência no escalonamento em relação à fila de 
pronto, e o escalonador só seleciona a fila de pronto quando a fila auxiliar estiver vazia. 
 Quando um processo é selecionado 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 da última 
vez em que foi escalonado. Preempção por tempo
UCP
Estado de
Criação
Fila dos processos no estado de Pronto
Estado de
Término
Estado de
Espera
Fila auxiliar
Sistemas Operacionais 
Escalonamento Circular Virtual 
Problema 1: 
Dimensionar o quantum: 
 Compromisso entre overhead e tempo de resposta em função do número de usuários; 
 Compromisso entre tempo de chaveamento e tempo do ciclo de processador (quantum); 
 
 Exemplo: Para cada 20 ms de processamento útil que seja necessário gastar 5 ms com tarefas de 
troca de contexto, 20% do tempo de processador está sendo gasto com overheads. 
 
Problema 2: 
Processos I/O-bound são prejudicados : 
 Esperam da mesma forma que processos CPU-bound porém muito provavelmente não utilizam 
todo o seu quantum; 
 Solução: Estabelecer prioridades para os processos. 
. 
 
Sistemas Operacionais 
Escalonamento por Prioridade 
 
 Este algoritmo é recomendado para sistemas de processamento em tempo real, onde determinadas 
atividades ou processos tem prioridade sobre os demais e devem ser tratados no momento em que 
ocorrem. 
 
 O processo com maior prioridade no estado de pronto é sempre escolhido para execução. 
 
 Um problema que surge é o dos processos com menor prioridade não serem nunca processados se 
existirem processos de maior prioridade. Neste caso, o processo “morre de fome” (starvation). 
 
 Em alguns casos o Sistema Operacional pode mudar a prioridade dos processos, minimizando este 
problema. 
Sistemas Operacionais 
UCP
Estado de
Término
Filas dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Prioridade Pn
Estado de
Criação
Estado de
Espera
Preempção por prioridade
Escalonamento por Prioridade 
 Neste escalonamento não existe o conceito de 
fatia de tempo. 
 Quando um processo de maior prioridade entra 
na fila, ele passa na frente. 
 A princípio só existe preempção por prioridade. 
 
Sistemas Operacionais 
Escalonamento por Prioridade 
Exemplo 
Este tipo de escalonamento é muito útil em sistemas de tempo real. 
 
Processo A
Processo B
Processo C
3 13 17 u.t.
Processo
Tempo de
processador
(u.t.)
A
B
C
10
4
3
Prioridade
2
1
3
Sistemas Operacionais 
Escalonamento por Prioridade 
 Prioridade estática versus dinâmica 
 
 Prioridade estática: Um processo é criado com uma determinada prioridade e esta prioridade é 
mantida durante todo o tempo de vida do processo; 
 
 Prioridade dinâmica: A prioridade do processo é ajustada de acordo com o estado de execução do 
processo e/ou do sistema. 
 
Exemplo: Ajustar a prioridade em função da fração do quantum que foi realmente utilizada pelo 
processo q = 100 ms. 
Processo A utilizou 2ms !nova prioridade = 1/0.02 = 50 
Processo B utilizou 50ms !nova prioridade = 1/0.5 = 2 
 
Sistemas Operacionais UCP
Estado de
Término
Fila dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Prioridade Pn
Estado de
Criação
Estado de
Espera
Preempção por tempo ou prioridade
Escalonamento Circular com Prioridade 
 
 Implementa o conceito de fatia de tempo 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 o estado 
de espera ou sofra preempção por tempo ou 
prioridade. 
 
 Principal vantagem é o melhor balanceamento 
no uso da CPU. 
Sistemas Operacionais 
UCP
Fila de processos do sistema
Fila de processos interativos
Fila de processos batch
Maior
prioridade
Menor
prioridade
Escalonamento por Múltiplas Filas 
 Existem diversas filas no estado de pronto, cada qual com uma prioridade específica. 
 Os processos são associados às filas em função de características próprias, como importância para a 
aplicação, tipo de processamento ou área de memória necessária. 
 A principal vantagem de múltiplas filas é a possibilidade da convivência de mecanismos de 
escalonamento distintos em um mesmo sistema operacional. 
 Neste mecanismo, o processo não 
possui prioridade, ficando esta 
característica associada à fila.O sistema operacional só pode 
escalonar processo de uma 
determinada fila caso todas as outras 
filas de maior prioridade estejam 
vazias. 
Sistemas Operacionais 
UCP
Fila 1 (FIFO Adaptado)
Preempção por tempo
Fila 2 (FIFO Adaptado)
Preempção por tempo
Fila 3 (FIFO Adaptado)
Preempção por tempo
Fila n (Circular)
Preempção por tempo
M
en
o
r
Pr
io
ri
d
a
d
e
M
a
io
r
Pr
io
ri
d
a
d
e
M
a
io
r 
fa
ti
a
d
e 
te
m
p
o
M
en
o
r 
fa
ti
a
d
e
 t
em
p
o
Escalonamento por Múltiplas Filas com Realimentação 
 É semelhante ao escalonamento por múltiplas 
filas, porém os processos podem trocar de fila 
durante seu processamento. 
 
 Sua vantagem é permitir ao sistema operacional 
identificar dinamicamente o comportamento de 
cada processo, direcionando-o para fila com 
prioridade de execução e mecanismo de 
escalonamento mais adequado ao longo de seu 
processamento. 
Sistemas Operacionais 
Políticas em Sistemas de Tempo Compartilhado 
 Em geral caracterizam-se pelo processamento interativo , onde usuários interagem 
com as aplicações exigindo tempos de resposta baixos. 
 A escolha de uma política para atingir este propósito deve levar em consideração o 
compartilhamento dos recursos de forma equitativa para possibilitar o uso balanceado 
da CPU entre processos. 
Sistemas Operacionais 
Políticas em Sistemas de Tempo Real 
 
 
• Tempos de respostas rígidos 
• Aplicações de controle de processos 
• Utiliza prioridades estáticas 
• Não utiliza fatias de tempo 
 
Sistemas Operacionais 
Dúvidas

Continue navegando