SOPE – Arquitetura de Sistemas operacionais Assunto: Gerência de

Propaganda
Graduação em TI
Instituto Federal de Alagoas
Prof. Esp. César Felipe G. Silva
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Escalonador
Com o surgimento de plataformas multiprogramáveis, onde vários processos
poderiam estar residentes na memória RAM em estado de pronto, ou seja, à
espera da utilização do processador, a escolha de qual deste processos seria o
próximo a ser atendido tornou-se algo de extrema importância.
Para se resolver este problema, uma política de escalonamento de processos bem
elaborada teve de ser desenvolvida.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Escalonador
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Escalonador

O escalonador de processo tem por função:
Deixar o processador ocupado o maior tempo possível
Definir o tempo de uso da CPU para cada processo
Distinguir entre os processos, aqueles que tem preferência de uso da CPU sobre os
demais processos.
 Maximizar o throughput do Sistema
 Otimizar os tempos de resposta dos processos



Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Escalonador
No entanto o escalonador de processos funciona de forma diferente, a depender
do tipo de sistema operacional, que pode ser:
1.
De tempo real: Neste as aplicações podem utilizar a CPU pelo tempo que
precisarem, até que outra aplicação mais crítica solicite acesso à CPU.
1.
De tempo compartilhado: O tempo de utilização é dividido em pequenas
porções de tempo (time slices), ocorrendo o chaveamento entre processos
após o exaurimento do tempo de uso do processo.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Escalonador
Enquanto o escalonador (Scheduler) é responsável por definir a ordem de
atendimento dos processos, o dispatcher é responsável por executar a
mudança de contexto.
 O tempo de mudança de contexto é conhecida como tempo de latência do
dispatcher.
 Vale lembrar que a troca de contexto implica em gravar o estado de
processamento do processo atual e carregar no processador os dados de
processamento do processo da vez, incluindo seus recursos, estados e
endereçamentos de memória para carga destas informações.

Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > critérios de escalonamento



Nos sistemas operacionais baseados em processos, o escalonamento é
realizado com base nos processos.
Nos sistemas operacionais baseados em threads, o escalonamento é utiliza as
threads para definir quais tem preferência de utilização, independente do
processo, o qual, neste caso, serve apenas como volume de armazenamento
das informações referentes aos recursos que serão utilizados.
Então, de forma basica, podemos falar que o processo é a unidade de
instruções, enquanto a thread é a unidade de escalonamento.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > critérios de escalonamento
Os critérios nos quais o sistema de escalonamento se baseia para definir qual
conjunto de informações deve ter preferência na utilização da CPU vai depender
do próprio sistema operacional, da seguinte forma:
1) Utilização do processador
2) Throughput
3) Tempo de processador
4) tempo de espera
5) Tempo de turnaround
6) Tempo de resposta
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > critérios de escalonamento
1) Utilização do processador: Para o S.O. é importante manter o processador a maior parte do tempo
ocupado. Desta forma, a taxa de 30% de utilização indica baixo processamnto, enquanto 90% sugere
forte utilização da CPU
2) Throughput: Indica a carga máxima de processamento que a CPU consegue atingir em um determinado
intervalo de tempo. Um throughput alto indica capacidade maior do processador.
3) Tempo de processador: Tempo que o processo demora durante seu estado de execução. O escalonador
não influencia no tempo de uso da CPU pelo processo.
4) tempo de espera: É o tempo que o processo demora na fila durante o estado de PRONTO.
5) Tempo de turnaround: É o somatório do tempo no estado de ESPERA + tempo no estado de PRONTO +
tempo de processador, ou seja, é o tempo referente ao ciclo completo entre o fim de um processamento
e o inicio do proximo.
6) Tempo de resposta: Tempo decorrido entre a entrada de uma instrução, seu processamento e a saída
do resultado.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > critérios de escalonamento
É importante salientar que, no tocante ao tempo de resposta, este pode variar representativamente,
uma vez que algumas requisições (entradas) dependem de um trabalho em série de diversos outros
dispositivos e cenários, que muitas vezes são externos ao sistema computacional.
É o caso do acesso a um recurso externo, que passa por placas de redes, cabos, switches, roteadores,
etc.
Tambem podemos citar execução de um mesmo programa em HD`s com velocidades de rotações
diferentes, apesar de ser o mesmo programa, na mesma porta USB, observaremos tempos de respostas
diferentes.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > critérios de escalonamento
Pelo exposto, devemos observar que estes valores não são diretamente proporcionais, pois a finalidade
do escalonador é aumentar o valor de alguns e diminuir e de outros. Assim, enquanto o tempo de uso da
CPU e o throughput devem sempre ser altos, o tempo de resposta, o tempo de turnaround e o tempo de
espera devem ser baixos.
Com base neste ponto, vale lembrar que o cenário de processamento é composto por diversos itens que
trabalham em série, o que afeta diretamente no trabalho do escalonador de processos e nos critérios de
escalonamento.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > escalonamento preemptivo e não
preemptivo
No entanto, os escalonadores podem se classificados pela forma com a qual tratam os processos, sendo
duas as classificações:
1) preemptivos: Este tipo de escalonador tem a possibilidade de interromper o tempo de uso de um
processador de acordo com seu algoritmo, independente do processo ter concluido suas instruções, ou
não, passando-o para o estado de pronto ou de espera, a depender das circunstâncias. Este tipo de
mecanismo já é mais complexo que o segundo, por exigir um maior controle.
2) Não- preemptivo: Este não interrompe o tempo de uso do processador pelo processo, sendo a
interrupção definida pelo proprio processo, por motivos diversos, como é o caso de quando seu proprio
processamento gera um resultado ou um estado de necessidade que o faz passar para o estado de espera
ou de pronto, pelo fato de esperar por alguma outra saida.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > Tipos de escalonadores
No mais, o escalonamento pode ser classificado de acordo com seu modo de operação. São as seguintes
classificações:
1) Fist in, first out (FIFO)
2) Shortest job first (SJF)
3) Cooperativo
4) Circular
5) Por prioridades
6) Circular com prioridades
7) Por multiplas filas
8) Por multiplas filas com realimentação
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas
operacionais
Assunto: Gerência do processador > FIFO
Este escalonador é bastante simples, pois quando o processo que esta utilizando o processador conclui
seu tempo, ele passa para o modo de espera ou de pronto, no entanto, vai para o final da fila e avança
de forma igual aos demais, sem existir qualquer tipo de julgamento de acordo com sua prioridade. Este
escalonador é do tipo não preemptivo.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Shortest job first
 Como o proprio nome sugere (Menor tarefa primeiro)
 O algoritmo do escalonador seleciona para execução o processo que
tiver o menor tempo de necessidade de usar a CPU.
 Iniciou seu uso nos sistemas com processamento em batch (Lote).
 Neste modelo o processador se baseava na experiência passada do
processo para poder antecipar a previsão do tempo de uso da CPU pelo
processo.
 É um escalonador não preemptivo
 Pode vir a gerar starvation em processos com alto tempo de uso, ou do
tipo CPU-Bound (Processos de calculo).
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Cooperativo
 Algoritmo que visava dar aos ambientes preempção (Parada de um
processo para entrada de outro)
 Processo observa lista de processos em estado de pronto
 Havendo, libera o processador
 É uma tarefa executada exclusivamente pelo processo em execução
 O ponto negativo é que o processo pode passar tempo demais na CPU
 Os primeiros Sistemas operacionais da Microsoft eram multitarefas
cooperativas
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Cooperativo
 Algoritmo que visava dar aos ambientes preempção (Parada de um
processo para entrada de outro)
 Processo observa lista de processos em estado de pronto
 Havendo, libera o processador
 É uma tarefa executada exclusivamente pelo processo em execução
 O ponto negativo é que o processo pode passar tempo demais na CPU
 Os primeiros Sistemas operacionais da Microsoft eram multitarefas
cooperativas
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Circular
 Também conhecido como round Robin scheduling
 É preemptivo
 Projetado para sistemas operacionais de tempo compartilhado (tempo
de utilização da CPU é dividido em porções de tempo (time slices, ou
quantum)
 Este algoritmo é semelhante ao FIFO, adicionando-se ai o fato de que
o tempo de utilização já é predefinido, ou seja, há preempção
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Circular
 No escalonamento circular, toda vez que o processo entra em estado
de execução, uma nova fatia de tempo lhe é concedida
 Quando o tempo expira, a utilização da CPU é suspensa, e seu estado
modificado para espera ou pronto. Isto é chamado de preempção por
tempo
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Circular
 Ainda há de se falar, que não existe julgamento de prioridade, desta
forma, o controle de uso é por tempo, mas a entrada dos processos é
baseada em FIFO.
 Neste tipo de escalonamento, processos CPU-Bound se beneficiam em
relação aos processos I/O-bound, por utilizarem por completo seu
tempo de CPU, sofrendo preempção por tempo, ao contrario dos
processos I/O-Bound.
 Neste caso, existe um desbalanceamento no uso do processador entre
os processos cpu-bound e i/o-bound.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Circular virtual
 Para resolver o problema do desbalanceamento, há um melhoramento,
chamado de escalonamento circular virtual, que é um mecanismo
adaptativo, onde dinamicamente o sistema operacional tenta ajustar a
melhor utilização da CPU
 Neste, processos que saem da fila de espera, entram em uma fila de
pronto-auxiliar, que tem preferencia sobre os processos da fila de
pronto. No entanto, o tempo de uso destes processos respeita o
seguinte calculo: tempo de uso da CPU – tempo de uso do ultimo ciclo.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Circular virtual
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
 É um escalonamento preemptivo (Quando o sistema operacional
termina o tempo de uso da CPU pelo processo), e realiza a mudança
de contexto
 Neste sistema cada processo recebe um valor, denominado como
prioridade de execução.
 Processos em estado de pronto e com maior valor de prioridade
acessam o processador antes que os demais
 Processos com mesmo valor de prioridade seguem a politica de FIFO.
 Nesta modalidade de escalonamento não existe preempção por tempo.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
 No escalonamento por prioridade a utilização da CPU é terminada
quando:
 O processo automaticamente conclui seu ciclo
 Quando um processo de maior prioridade sai do estado de espera
para o estado de pronto, sendo a utilização da CPU interrompida
pelo sistema operacional e gravando o contexto do processo.
 A parada do uso da CPU pelo sistema operacional em decorrência do
cenário apresentado é chamado de preempção por prioridade
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
 Apesar de frequentemente preemptivo, o escalonamento por
prioridade pode se apresentar de forma não-preemptiva, que é quando
os processos na fila de pronto tem mesmo valor de prioridade que o
processo em execução.
 A prioridade é uma informação que fica armazenada no contexto de
software do processo.
 A prioridade pode ser estática (Seu valor não muda), ou dinâmica.
 Caso a prioridade seja dinâmica, na maior parte do tempo ela tem seu
valor modificado pelo próprio sistema operacional.
 Em alguns casos, pode acontecer starvation de processos com valor de
baixa prioridade. Para resolver isto, existe outro valor de critério
conhecido como aging.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
Classe de prioridade
Nivel de prioridade
IDLE_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
ABOVE_NORMAL_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
REALTIME_PRIORITY_CLASS
THREAD_PRIORITY_IDLE
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_TIME_CRITICAL
Fonte:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
 No entanto, a interpretação do valor da prioridade é diferente de
sistema para sistema, bem como a valoração.
 Por exemplo:
 No OpenVMS: 0 a 31 – sendo 0 a menor prioridade
 No IBM-AIX: 0 a 127 – sendo 0 a maior prioridade
 No Windows: 0 a 31 – sendo 0 a menor prioridade
 As prioridades de classe REALTIME_PRIORITY_CLASS, são aquelas que
interagem diretamente com o hardware, tal qual mouse e teclado,
portanto, definer outro processo com este nível pode vir a interferir na
performance destes dispositivos
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por prioridades
 Como dito anteriormente, um processo iniciado é resultado da carga
de informações oriundas da leitura de 1 arquivo, ou de diversos
arquivos. Para esta pratica, vamos utilizar os seguintes procedimentos
do powershell do Windows:
1. Abra o executar e digite: powershell
2. De ENTER
3. Digite: start-process winword
4. Digite: get-process –name Winword
5. Digite: get-process –id <id-do-processo-winword> -module | formatlist * > c:\processo.txt
6. Digite: get-process –id <id-do-processo-winword> | format-table –
view priority
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento circular com prioridade
 Este escalonador utiliza time-slices com prioridade para execução dos
processos.
 Neste modelo o processo permanece em execução até sua conclusão
de forma voluntária, ou sofra preempção por tempo ou por prioridade
 Permite um melhor balanceamento no uso da CPU em sistema de
tempo compartilhado
 Permite uma utilização mais igualitária entre processos CPU-Bound
(Calculos) e I/O-bound (interface).
 É o modelo utilizado em ambientes Windows e Linux.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento circular com prioridade
 Vale ressaltar que este modelo também utiliza a valoração das
prioridades de forma dinâmica ou estática.
 Desta forma, no caso de valoração dinâmica, o S.O. poderá
incrementar a prioridade de processos I/O-bound, que permanecem
muito tempo em estado de espera, no aguardo das operações de I/O,
visando compensar o tempo de espera do processo por informações.
Este é um bom exemplo de mecanismo adaptativo do escalonador.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por filas multiplas
 Neste modelo os processos são classificados por filas de prioridades a
depender de suas características, tais quais:
 Importância para aplicação
 Tipo de processamento
 Área de memória necessária
 Este modelo apresenta funcionamento diferente para cada fila,
oferecendo mecanismos como escalonamento FIFO e circular,
implementados sobre uma camada em filas distintas por níveis de
prioridade.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por filas multiplas
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por filas multiplas
 O processo de posse do processador apenas sofre preempção caso uma
fila de maior prioridade receba um algum processo, o qual acaba
tendo prioridade sobre o processo da fila de prioridade mais baixa
(Preempção por prioridade – escalonamento por prioridade)
 Caso não haja processo em fila de prioridade mais alta, o processo
segue com a utilização da CPU até esgotar seu processamento, ou
atingir seu time-slice (preempção por tempo – escalonamento circular)
 Processos na fila de mesma prioridade, ciclicamente se utilizam do
modelo FIFO, já que não há distinção entre eles, e a prioridade é a
mesma, já que os processos a herdam da fila a qual pertencem.
 A determinação da fila de prioridade é definida no ato da criação do
processo, não sendo modificada posteriormente.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Escalonamento por filas múltiplas com realimentação
 Semelhante ao escalonamento por filas multiplas.
 Neste modelo, o Sistema operacional consegue mudar o processo de
fila de prioridade durante sua execução, com base em suas
características de processamento.
 As filas com maior prioridade tem menor tempo de uso do processador,
e as menos prioritárias, maior tempo.
 Os processos criados iniciam na fila de maior prioridade, e vão
descendo de filas a cada ciclo de execução.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência do processador > Revisão rápida
1.
2.
3.
4.
5.
6.
7.
8.
O que é a politica de escalonamento do sistema operacional?
Quais as funções do Scheduler e do dispatcher?
Quais os critérios usados no escalonamento?
Diferencie tempo de processador, turnaround, resposta e espera
Diferencie escalonamento preemptivo e não-preemptivo
Qual a diferença entre escalonamento FIFO e circular?
O que é mecanismo de escalonamento adaptativo?
Escalonamento por filas múltipla por realimentação beneficia os
processos BPU-Bound ou I/O-bound?
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência de memória > conceito

A memória RAM é conhecida como memória principal e o HD como
memória secundária.

A memória RAM é um dispositivo de alta velocidade de acesso, leitura
e gravação, motivo pelo qual existe a necessidade de carregar as
instruções contidas no HD para a memória RAM, antes de processálas, caso contrário a performance de processamento do sistema
operacional ficaria comprometida.

Atualmente as empresas tentam criar Sistemas Operacionais e
aplicações que não se utilizem de tanto espaço de memória RAM.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência de memória > Finalidade da boa gerencia

Devido à alta importância da memória RAM para o processamento, o
sistema operacional deve preocupar-se em garantir que não haja
violação de endereços de memória ocupados com instruções de
outros processos e, ao mesmo tempo, possibilitar que processos
diferentes possam trocar informações entre si.

Também deve ser possível permitir a execução de processos, mesmo
que já não exista mais endereços de memória RAM disponível. Para
isto técnicas como swapping e overlay devem estar disponíveis.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência de memória > Alocação contígua simples

Nos sistemas operacionais mono programáveis, a memória principal
era dividida em duas áreas:
 Área do sistema
 Área dos aplicativos

Neste modelo, havia uma delimitação entre o espaçamento que era
reservado ao armazenamento das instruções do sistema operacional e
o que era reservado às aplicações.

Estas duas áreas eram protegidas por um registrador, que verificava e
validava as tentativas de acesso aos endereçamento. Caso houvesse
alguma violação, o programa é abortado e uma mensagem de
violação de acesso à memória principal é apresentada.
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência de memória > Alocação contígua simples
Prof. Esp. César Felipe G. Silva
SOPE – Arquitetura de Sistemas operacionais
Assunto: Gerência de memória > Alocação contígua simples

Nos sistemas operacionais mono programáveis, a memória principal
era dividida em duas áreas:
 Área do sistema
 Área dos aplicativos

Neste modelo, havia uma delimitação entre o espaçamento que era
reservado ao armazenamento das instruções do sistema operacional e
o que era reservado às aplicações.

Estas duas áreas eram protegidas por um registrador, que verificava e
validava as tentativas de acesso aos endereçamento. Caso houvesse
alguma violação, o programa é abortado e uma mensagem de
violação de acesso à memória principal é apresentada.
Download