SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Processos  
                   
Escalonamento da CPU
  Conceitos Básicos
                              Escalonamento de Processador
                              Critérios de Escalonamento
                              Escalonamento Não Preemptivo
                              Escalonamento Preemptivo
                              Mecanismos de Interrupção em Intervalos de Tempo
                              Prioridades
                              Algoritmos de Escalonamento
                              Escalonamento para Vários Processadores
                              Escalonamento em Tempo Real
                              Estudo de Casos: Escalonamento no Unix, Windows XP,
                               Linux e de Threads


Eduardo Nicola F. Zagari
                            2
                   Escalonamento de CPU
  Multiprogramação: corresponde a diversos programas distintos
                   executando em um mesmo processador
                       maximiza utilização da CPU
               No entanto, somente um processo é executado a cada instante
                   em um processador
               Toda vez que um processo tiver que esperar (evento ou E/S)
                   outro processo usa a CPU (“ciclo de vida” de um processo)
                       A execução de um processo consiste de um ciclo de execução de
                            CPU e espera de I/O
                                               escalonado
                                  pronto                     execução
                                               interrupção
                                                                        Escalonador
                                                               espera
                              E/S ou evento     bloqueado      por E/S
                                                               ou evento
Eduardo Nicola F. Zagari
                            3
                    Escalonamento de CPU
Eduardo Nicola F. Zagari
   4
   Escalonamento de CPU
  Conhecido como Escalonador de Processsos 
               Determina/Escolhe, dentre os processos que estão em memória,
                   qual processo será associado a uma CPU, quando esta estiver
                   disponível
               Age sobre os processos prontos para executar (processos do
                   estado de pronto)
               Segue uma política de escolha
               Executado várias vezes por segundo
               Reside permanentemente na memória




Eduardo Nicola F. Zagari
                    5
                    Escalonamento de CPU
  Situação para escalonamento:
                       processo passa do estado em execução para pronto
                       processo passa de em execução para espera/bloqueado
                       processo passa de espera/bloqueado para pronto
                       processo termina
               Preempção: é quando um processo em estado de pronto tem
                   precedência sobre o que está usando a CPU.
               Escalonamenteo Não-Preemptivo: não contempla as
                   preempções, isto é, o escalonador não interrompe os processos
                   que estão em execução.
               Escalonamento Preemptivo: que contempla a preempção das
                   tarefas, isto é, provoca uma interrupção forçada de um processo
                   para que outro, com a preempção, possa usar a CPU.



Eduardo Nicola F. Zagari
                        6
                         Escalonamento de CPU
  Determina qual processo no estado pronto para executar será
                   associado a uma CPU, quando esta estiver disponível
               É executado várias vezes por segundo
               Reside permanentemente na memória




Eduardo Nicola F. Zagari
                    7
                     Escalonamento de CPU
  Determina quais os processos que poderão competir pela CPU
               Responsável pela suspensão e ativação de processos, o que
                   significa flutuações na carga do sistema visando um melhor
                   balanceamento
               Atua como um buffer entre a admissão de jobs e a associação
                   da CPU aos processos que constituem os jobs admitidos
               Job: é um conjunto de atividades necessárias para a realização
                   do trabalho computacional requerido por um usuário (divide-se
                   em diversos steps (passos) )




Eduardo Nicola F. Zagari
                    8
                    Escalonamento de CPU
  Determina quais jobs serão admitidos e poderão competir pelos
                   recursos do sistema (admission scheduling)
               Permite que não existam jobs em demasia no sistema, o que
                   acarretaria uma eterna competição pelos recursos
               Todo job, uma vez admitido, acarreta na criação de um ou mais
                   processos




Eduardo Nicola F. Zagari
                     9
                       Escalonamento de CPU
  O módulo Dispatcher dá o controle da CPU para o processo
                   selecionado pelo escalonador de curto prazo. Isto envolve:
                       Troca de contexto
                       Mudança do processador para o Modo Usuário
                       Salto para a localização adequada no programa do usuário para o
                            seu reinício
               Latência de Despacho – tempo que leva para o dispatcher parar
                   um processo e reiniciar a execução de outro




Eduardo Nicola F. Zagari
                        10
                       Escalonamento de CPU
  Utilização da CPU: % do tempo que a CPU fica ocupada (0 -
                       100%)
                      Throughput: número de processos completados por unidade de
                       tempo
                      Turnaround: intervalo de tempo entre a submissão de um
                       processo e sua finalização (soma dos intervalos esperando
                       para ser carregado na memória, fila de pronto, em execução e
                       em espera)
                      Tempo de espera: tempo que cada processo fica na fila de
                       pronto
                      Tempo de resposta: tempo que o processo demora para
                       produzir alguma resposta à uma requisição (importante para
                       processos interativos)

                   É desejável maximizar os 2 primeiros e minimizar os 3 últimos
                   Para sistemas interativos, é importante minimizar a variância do
                       tempo de resposta (previsibilidade)



Eduardo Nicola F. Zagari
                           11
                    Escalonamento de CPU
  Objetivos das políticas de escalonamento:
                   maximizar a utilização da CPU
                       maximizar o throughput
                       minimizar o turnaround
                       minimizar o tempo de espera
                       minimizar o tempo de resposta
                       ser justa
                       maximizar o número de usuários interativos
                       ser previsível
                       minimizar o uso de recursos
                       balancear o uso de recursos
                       balancear usuários interativos com os demais
                       priorizar processo que segurem recursos chave
                       não degradar o sistema
                       etc



Eduardo Nicola F. Zagari
                              12
               Escalonamento de CPU
  Não permite a retirada da CPU de um processo após este tê-la
                   conseguido
               Tempo de resposta é mais previsível


                                    É mais justo?

               Processos curtos precisam esperar pelos longos
               Permite monopolização da CPU




Eduardo Nicola F. Zagari
                  13
                    Escalonamento de CPU
  Permite que a CPU seja retirada de um processo para ser
                   entregue a outro
               Garante que os processos possam progredir uniformemente
               Não permite a monopolização da CPU
               Usado para:
                       atendimento rápido de processos mais importantes
                       tratamento de interrupções em sistemas de tempo real
                       atender os usuários em sistemas de tempo compartilhado
               A mudança de contexto envolve sobrecarga




Eduardo Nicola F. Zagari
                        14
                        Escalonamento de CPU
  Para prevenir processos do usuário de monopolizar o sistema
                   (CPU), por acidente ou de propósito, uma interrupção por tempo
                   é usada
                                        quantum ou time-slice

                             é o tempo limite para uso da CPU, após o qual ocorre a
                              interrupção por tempo
               Um processo do usuário, uma vez interrompido por término do
                   seu quantum, volta à fila de pronto para executar e permite o
                   escalonamento de outro processo
               Um processo em execução mantém controle sobre a CPU até:
                       voluntariamente liberá-la
                       quantum time expirado
                       outra interrupção exija atenção da CPU para que seja tratada
                       erro de execução

Eduardo Nicola F. Zagari
                              15
                    Escalonamento de CPU
  Podem ser fixas (estáticas) durante a vida do processo ou
                   modificáveis (dinâmicas)
               Podem ser associadas externamente ou de maneira automática
               Podem ser calculadas e associadas de forma racional ou
                   arbitrária




Eduardo Nicola F. Zagari
                     16
                 Escalonamento de CPU
  FIFO (First-In First-Out) (também conhecido por FCFS (First-
                   Come First-Served))
               SJF (Shortest Job First)
               Round-Robin
               SRT (Shortest Remaining Time)
               Prioridade
               Múltiplas Filas
               Múltiplas Filas com Realimentação
               Escalonamento para Vários Processadores
               Escalonamento de Tempo Real
                       Earliest Deadline




Eduardo Nicola F. Zagari
                    17
                   Escalonamento de CPU
  Não preemptivo (Uma vez em execução, é executado até o
                   término)
               O processo que chegar primeiro (first-in) é o primeiro a ser
                   selecionado para execução (first-out)
               Implementado através de fila
               Inicialmente criado para sistemas batch
               Injusto com jobs curtos (veja exemplos!)
               Ineficiente para sistemas de tempo compartilhado
               Combinado com outros esquemas




Eduardo Nicola F. Zagari
                     18
                   Escalonamento de CPU
Suponha que os processos cheguem na ordem P1, P2 e P3




         Turnaround médio = ( 10 + 12 + 14 ) / 3 = 12 u.t.
         Tempo de espera médio = ( 0 + 10 + 12) / 3 = 7,33 u.t.




Eduardo Nicola F. Zagari
                      19
                    Escalonamento de CPU
Suponha que os processos cheguem na ordem P2, P3 e P1




         Turnaround médio: ( 14 + 2 + 4 ) / 3 = 6,67 u.t.
         Tempo de espera médio = ( 4 + 0 + 2) / 3 = 2 u.t.




Eduardo Nicola F. Zagari
                      20
                    Escalonamento de CPU
  Não preemptivo
               O processo com o menor tempo para ser completado é
                   escolhido 
                       quando a informação sobre o tempo de execução não se encontra
                            disponível   deve ser estimado ou usa-se o da última vez
                       desempate pode ser, por exemplo, por FIFO
               Reduz tempo médio de espera          mais do que isto: SJF é
                   ótimo, pois dá o tempo de espera mínimo para um dado
                   conjunto de processos
               No entanto, apresenta uma grande variância no tempo de
                   espera




Eduardo Nicola F. Zagari
                           21
                       Escalonamento de CPU
  Turnaround médio FIFO: (6+14+21+24)/4 = 16,25 u.t.
         Tempo de espera médio: (0 + 6 + 14 + 21)/4 = 10,25 u.t.




         Turnaround médio SJF: (3 + 9 + 16 + 24) / 4 = 13 u.t.
         Tempo de espera médio: (3 + 16 + 9 + 0) / 4 = 7 u.t.

Eduardo Nicola F. Zagari
                22
                       Escalonamento de CPU
  O processo em execução libera voluntariamente a CPU
                   retornando para a fila de pronto sem a interrupção do sistema
                   operacional (não preemptivo)
               Um programa mal escrito pode monopolizar a CPU
               Fila de mensagem é verificada periodicamente (Win 3.11)




Eduardo Nicola F. Zagari
                     23
                    Escalonamento de CPU
  Define-se uma unidade de tempo denominada quantum ou time-
                   slice (usualmente de 10 a 100ms) que corresponde ao tempo
                   limite para uso da CPU por cada processo
               Após este tempo ter sido passado, o processo sofre preempção
                   e é colocado no final da fila de pronto
               A fila de pronto é tratada como uma fila circular (FIFO)
               O escalonador “pega” o primeiro processo da fila de pronto para
                   ser executado e define um timer para o tempo de 1 quantum
               Se o tempo de execução for maior que 1 quantum, o timer gera
                uma interrupção e o SO faz o chaveamento de contexto
               Projetado para sistemas de tempo compartilhado
                       Se houver n processos na fila de pronto e o tempo do quantum for
                            q, então cada processo obtém 1/n do tempo da CPU e fatias de no
                            máximo q unidades de tempo por vez. Nenhum processo espera
                            por mais que (n-1)q unidades de tempo.


Eduardo Nicola F. Zagari
                            24
                      Escalonamento de CPU
  Claramente preemptivo
               O tempo médio de espera é alto
               O desempenho depende do tamanho do quantum
                       se for muito grande (infinito)        tende a   FIFO
                       se for muito pequeno, o overhead com ochaveamento de
                            contexto se torna alto demais...




Eduardo Nicola F. Zagari
                              25
                     Escalonamento de CPU
Quantum = 1 u.t.
                                                  




         Turnaround médio RR: (16 + 8 + 9) /3 = 11 u.t.
         Tipicamente, o turnaround médio é maior que o do SJF, mas o
             tempo de resposta é melhor



Eduardo Nicola F. Zagari
                  26
                Escalonamento de CPU
  É a contra-partida preemptiva do SJF
               O processo com menor tempo para ser completado é escolhido
               Um processo em execução é interrompido se um novo processo,
                   com menor tempo para ser completado aparece na fila de pronto
               Apresenta sobrecarga maior que o SJF
                       Variações:
                             Tempo para ser completado pequeno
                             Tempo para ser completado do processo que chega é pouco
                              menor




Eduardo Nicola F. Zagari
                          27
                     Escalonamento de CPU
  Turnaround médio SRT: ((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 u.t.
         E qual é o turnaround médio se fosse escalonado segundo SJF? 
                 Resp.: 14,25 u.t. 


Eduardo Nicola F. Zagari
                   28
                       Escalonamento de CPU
  Uma prioridade é associada a cada processo e a CPU é alocada
                   ao processo de maior prioridade
               SJF é um caso de escalonamento por prioridade em que a
                   prioridade é maior para os processos de menor tempo de
                   execução
               A prioridade é geralmente representada por um número (entre
                   0-7 ou 0-255), mas não existe uma convenção de qual número
                   (o maior ou o menor) é o de maior prioridade
               Pode ser preemptivo ou não
               SJF é um Escalonamento por Prioridade onde a prioridade é
                   definida de acordo com o tempo de CPU estimado do processo




Eduardo Nicola F. Zagari
                     29
                  Escalonamento de CPU
  Turnaround médio: (16+1+6+18+19)/4 = 15 u.t.




Eduardo Nicola F. Zagari
                 30
                   Escalonamento de CPU
  Prioridade definida:
                       internamente: usa alguma quantidade mensurável para computar a
                            prioridade. 
         
         
   
       (dinâmica)
                              Ex.: memória, arq. abertos, razão I/O por CPU usada
                       externamente: importância do processo, departamento de origem,
                            fatores políticos, hierarquia.
 
   
       (estática)
               Problema: starvation - processos de baixa prioridade podem
                   ficar indefinidamente no estado de pronto (IBM 7094 no MIT
                   processo rodando por 6 anos)
               Solução: aumentar progressivamente a prioridade dos
                   processos que estão aguardando




Eduardo Nicola F. Zagari
                                 31
                  Escalonamento de CPU
  Os processos são previamente divididos em grupos em função do
             tipo de processamento realizado 
                 Interativo (foreground)
                 Batch (background)
         A cada grupo é aplicado um mecanismo de escalonamento
             adequado
                     Alta
                                                        Fila de processos
                 Interativo – RR
   prioridade            do sistema
                 Batch – FIFO
                                                        Fila de processos
             Possibilidade de
                             interativos
               starvation
                                          Baixa         Fila de processos
                                     prioridade               batch


         utra alternativa: time-slices entre filas (ex.: 80% para os interativos
        O
       em RR e 20% para os batch em FIFO)

Eduardo Nicola F. Zagari
                         32
                   Escalonamento de CPU
  Os processos não permanecem em uma mesma fila até o término
          do processamento
         O SO faz um ajuste dinâmico (mecanismo adaptativo) para ajustar
          os processos em função do comportamento do sistema
         Os processos não são previamente associados às filas, mas
          direcionados pelo sistema entre as diversas filas com base no seu
          comportamento
         Parâmetros: 
                 número de filas, 
                 algoritmo de escalonamento para cada fila, 
                 método para mudar (promover ou rebaixar) o processo de fila, 
                 método para determinar em que fila um processo entra
         Método mais complexo



Eduardo Nicola F. Zagari
                      33
                       Escalonamento de CPU
  Um exemplo (existem outras variações):
                 Processos novos entram no fim da primeira fila
                 Nas filas, os processos são escalonados segundo Round Robin
                 O quantum varia de uma fila para outra (aumenta em direção às
                   últimas, quantum 1 para a primeira, 2 para a segunda, etc)
                 Os processos das primeiras filas têm maior prioridade (um processo
                  não pode ser escolhido, a menos que, as filas anteriores estejam
                  vazias)
                 Um processo em execução é interrompido, caso apareça um processo
                  em uma das filas anteriores à sua
                 Sempre que um processo esgotar seu quantum , ele é suspenso na fila
                   da próxima classe de prioridade
                 Se o processo liberar a CPU, sem preempção, sai da estrutura de filas 
                 Quando um processo volta à estrutura, é colocado em uma fila de
                   prioridade mais alta do que estava antes de sair


Eduardo Nicola F. Zagari
                         34
                       Escalonamento de CPU
Alta                     Menor
       prioridade           Fila 1    quantum



                            Fila 2


                            Fila 3

                            ...
            Baixa           Fila N    Maior
       prioridade                     quantum


Eduardo Nicola F. Zagari
      35
   Escalonamento de CPU
  Vantagens de uma política como esta:
                 Processos CPU-bound vão caindo em filas de prioridade mais baixas,
                   sendo escolhidos para rodar com menos freqüência; no entanto, eles
                   recebem quanta maiores, necessitando receber a CPU por um número
                   menor de vezes, o que reduz a quantidade trocas de contexto
                 Processos interativos (I/O-bound), normalmente pequenos, são
                   favorecidos, reduzindo-se o tempo de resposta médio do sistema
                 Processos interativos grandes, após interação com usuários, retornam
                   em filas de prioridade mais alta
         Problema: pressionar <ENTER> em terminais processando longos
             jobs não interativos (CPU-bound)
         Moral da história: implementar uma boa política na prática é
             muitíssimo mais difícil do que idealizá-la




Eduardo Nicola F. Zagari
                        36
                      Escalonamento de CPU
  Escalonamento mais complexo
               Processadores idênticos (homogêneos)
                       Compartilhamento de carga (load sharing)
                       Fila por processador: processador pode ficar ocioso
                       Fila única: compartilhamento de dados (problemas!)
               Abordagens:
                       Processamento simétrico
                             Cada processador faz seu próprio escalonamento (exclusão
                              mútua!)
                       Mestre-Escravo: processamento assimétrico
                             um algoritmo, executado em um processador reservado para
                              esse fim, é o escalonador dos outros processadores (alivia a
                              necessidade de compartilhamento de dados)



Eduardo Nicola F. Zagari
                            37
                       Escalonamento de CPU
  Sistemas de tempo real: requisitos temporais
                 Tempo compartilhado puro não funciona 
                 Hard real-time: requisitos temporais rígidos  requer que uma tarefa
                  crítica seja completada dentro de um tempo garantido
                     Ex.: tráfego aéreo, armas, sistemas médicos, controle industrial,
                       etc
                 Soft real-time: requisitos temporais flexíveis  requer que um processo
                  crítico receba prioridade sobre outros menos importantes
                     Ex.: multimídia, realidade virtual, etc

         Sistemas de TR rígidos: processadores dedicados
         Sistemas de TR flexíveis:
                 Implementados com outros esquemas
                 Processos críticos devem ter prioridade sobre outros
                 Implica na degradação do serviço dos outros usuários



Eduardo Nicola F. Zagari
                       38
                       Escalonamento de CPU
  Escalonamento baseado em prioridades dinâmicas
         A idéia básica é atribuir sempre a maior prioridade ao processo que
             apresentar o prazo mais próximo a expirar (earliest deadline)
         Sempre que um novo processo chega na fila de pronto, são
             calculadas e atribuídas novas prioridades a todos
         O Earliest Deadline é um algoritmo ótimo, isto é, o fator de
             utilização da CPU é 100%
         Se os processos não forem independentes: 
                 Problema da Inversão de Prioridades 
                       Solução: Protocolo de Herança de Prioridade
                            –  Conseqüência: queda no fator de utilização da CPU



Eduardo Nicola F. Zagari
                         39
                     Escalonamento de CPU
Eduardo Nicola F. Zagari
   40
   Escalonamento de CPU
  Unix  Sistema de Tempo Compartilhado
                 Meta: bom tempo de resposta aos processos interativos
         Escalonamento de 2 níveis
         Escalonador de baixo nível: Filas Múltiplas (prioridade) com
             realimentação
                 Processos executando em modo kernel: prioridade negativa (que são as
                  maiores)
                 Processos executando em modo usuário: prioridade positiva
                 Roda primeiro processo da fila prioritária não vazia  interrupções de
                   tempo: incremento do contador de utilização da CPU (que aumentará o
                   valor da prioridade do processo)
                 Round-Robin dentro de cada fila
                 A cada segundo as prioridades são recalculadas:
                       Contadores de uso da CPU divididos por 2
                       Nova prioridade = base + nice + contador de uso da CPU
                 Processos interativos voltam do bloqueio com prioridade negativa.
Eduardo Nicola F. Zagari
                        41
                       Escalonamento de CPU
Eduardo Nicola F. Zagari
   42
   Escalonamento de CPU
  Dois algoritmos: time-sharing e real-time
               Time-sharing
                       Prioridades baseadas em créditos – processo com mais créditos é o
                        próximo a ser escalonado
                       Crédito subtraído quando ocorre uma interrupção por tempo
                       Quando crédito = 0, outro processo é escolhido
                       Quando todos os processos têm crédito = 0, ocorre
                            “recarregamento” de créditos
                               Baseado em alguns fatores como prioridade e histórico
               Real-time
                       Soft real-time (TR Flexível)
                       Aderente ao Posix.1b – duas classes
                              FIFO e RR
                              Processos de maior prioridade sempre executam primeiro


Eduardo Nicola F. Zagari
                             43
                       Escalonamento de CPU
  Escalonamento Local – Como a biblioteca de threads decide
                   qual thread do usuário executar quando há um LWP disponível


               Escalonamento Global – Como o kernel decide qual kernel
                   thread deve ser a próxima a ser executada




Eduardo Nicola F. Zagari
                     44
                   Escalonamento de CPU
#include <pthread.h>	
                            #include <stdio.h>	
                            #define NUM THREADS 5	
                            int main(int argc, char *argv[])	
                            {	
                            	   int i;	
                            	 pthread t tid[NUM THREADS];	
                            	 pthread attr t attr;	
                            	 /* get the default attributes */	
                            	 pthread attr init(&attr);	
                            	 /* set the scheduling algorithm to PROCESS or
                               SYSTEM */	
                            	 pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);	
                            	 /* set the scheduling policy - FIFO, RT, or OTHER */	
                            	 pthread attr setschedpolicy(&attr, SCHED OTHER);	
                            	 /* create the threads */	
                            	 for (i = 0; i < NUM THREADS; i++)	
                            	 	     pthread create(&tid[i],&attr,runner,NULL);	
Eduardo Nicola F. Zagari
                         45
                   Escalonamento de CPU
/* now join on each thread */	
                            	 for (i = 0; i < NUM THREADS; i++)	
                            	 	   pthread join(tid[i], NULL);	
                            }	
                             /* Each thread will begin control in
                               this function */	
                            void *runner(void *param)	
                            { 	
                            	 printf("I am a threadn");	
                            	 pthread exit(0);	
                            }




Eduardo Nicola F. Zagari
                         46
               Escalonamento de CPU
  JVM usa um algoritmo de escalonamento baseado em
                    prioridades e preemptivo


               Uma fila FIFO é usada se houver múltiplas threads com a
                    mesma prioridade


               JVM escalona uma thread para executar quando:
                     1.  A thread “em execução” sai do estado de “executável”
                     2.  Uma thread de maior prioridade entra no estado “executável”


             * Nota – a JVM não especifica se threads são “Time-Sliced” ou não




Eduardo Nicola F. Zagari
                         47
                       Escalonamento de CPU
Uma vez que a JVM não assegura Time-Slicing, o método yield()
               pode ser usado:


             
     while (true) {
             
     
        // perform CPU-intensive task
             
     
        . . .
             
     
        Thread.yield();
             
     }


             Isto passa o controle a uma outra thread de igual prioridade




Eduardo Nicola F. Zagari
                         48
               Escalonamento de CPU
Prioridade
 
      
         Comentário
                  Thread.MIN_PRIORITY

             Prioridade Mínima de Thread 
                  Thread.MAX_PRIORITY
              Prioridade Máxima de Thread
                  Thread.NORM_PRIORITY
             Prioridade Default de Thread 


                  As prioridades podem ser ajustadas usando-se o método
                     setPriority():
                  
    setPriority(Thread.NORM_PRIORITY + 2);




Eduardo Nicola F. Zagari
                     49
                       Escalonamento de CPU

Contenu connexe

Tendances

Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsJoeldson Costa Damasceno
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosCharles Fortes
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10ºteacherpereira
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012Bill Lima
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareJocelma Rios
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento camila_seixas
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacionalLuciano Crecente
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 

Tendances (20)

Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional Windows
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - Hardware
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacional
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 

En vedette

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marquesdjoaquim7
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamentoBruno Rick
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.OPablo Lopes
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUAlexandre Duarte
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosFábio dos Reis
 

En vedette (20)

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Resumo sistemas operativos - joao marques
Resumo   sistemas operativos - joao marquesResumo   sistemas operativos - joao marques
Resumo sistemas operativos - joao marques
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
 
Escalonamento srtf
Escalonamento srtfEscalonamento srtf
Escalonamento srtf
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Sistema operacional de tempo real rtos
Sistema operacional de tempo real   rtosSistema operacional de tempo real   rtos
Sistema operacional de tempo real rtos
 
fundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.Ofundamentos de sistema operacional- S.O
fundamentos de sistema operacional- S.O
 
Teoria das Filas
Teoria das FilasTeoria das Filas
Teoria das Filas
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Teoria das Filas
Teoria das FilasTeoria das Filas
Teoria das Filas
 
Cpu
CpuCpu
Cpu
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson Treinamentos
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 

Similaire à SO-04 Escalonamento de Processos

SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iiipaulocsm
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Erickson Carvalho Vaz
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosRobson Ferreira
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPRafael Moreira
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfssuser1d8ddd
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 

Similaire à SO-04 Escalonamento de Processos (20)

SO-02 Processos
SO-02 ProcessosSO-02 Processos
SO-02 Processos
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Unix - Robert
Unix - RobertUnix - Robert
Unix - Robert
 
Unix - Sistema Operacional
Unix - Sistema OperacionalUnix - Sistema Operacional
Unix - Sistema Operacional
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Processos
ProcessosProcessos
Processos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Sistemas operacionais 04
Sistemas operacionais   04Sistemas operacionais   04
Sistemas operacionais 04
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 

Plus de Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryEduardo Nicola F. Zagari
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCEduardo Nicola F. Zagari
 

Plus de Eduardo Nicola F. Zagari (20)

Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 

SO-04 Escalonamento de Processos

  • 1. Processos Escalonamento da CPU
  • 2.   Conceitos Básicos   Escalonamento de Processador   Critérios de Escalonamento   Escalonamento Não Preemptivo   Escalonamento Preemptivo   Mecanismos de Interrupção em Intervalos de Tempo   Prioridades   Algoritmos de Escalonamento   Escalonamento para Vários Processadores   Escalonamento em Tempo Real   Estudo de Casos: Escalonamento no Unix, Windows XP, Linux e de Threads Eduardo Nicola F. Zagari 2 Escalonamento de CPU
  • 3.   Multiprogramação: corresponde a diversos programas distintos executando em um mesmo processador   maximiza utilização da CPU   No entanto, somente um processo é executado a cada instante em um processador   Toda vez que um processo tiver que esperar (evento ou E/S) outro processo usa a CPU (“ciclo de vida” de um processo)   A execução de um processo consiste de um ciclo de execução de CPU e espera de I/O escalonado pronto execução interrupção Escalonador espera E/S ou evento bloqueado por E/S ou evento Eduardo Nicola F. Zagari 3 Escalonamento de CPU
  • 4. Eduardo Nicola F. Zagari 4 Escalonamento de CPU
  • 5.   Conhecido como Escalonador de Processsos   Determina/Escolhe, dentre os processos que estão em memória, qual processo será associado a uma CPU, quando esta estiver disponível   Age sobre os processos prontos para executar (processos do estado de pronto)   Segue uma política de escolha   Executado várias vezes por segundo   Reside permanentemente na memória Eduardo Nicola F. Zagari 5 Escalonamento de CPU
  • 6.   Situação para escalonamento:   processo passa do estado em execução para pronto   processo passa de em execução para espera/bloqueado   processo passa de espera/bloqueado para pronto   processo termina   Preempção: é quando um processo em estado de pronto tem precedência sobre o que está usando a CPU.   Escalonamenteo Não-Preemptivo: não contempla as preempções, isto é, o escalonador não interrompe os processos que estão em execução.   Escalonamento Preemptivo: que contempla a preempção das tarefas, isto é, provoca uma interrupção forçada de um processo para que outro, com a preempção, possa usar a CPU. Eduardo Nicola F. Zagari 6 Escalonamento de CPU
  • 7.   Determina qual processo no estado pronto para executar será associado a uma CPU, quando esta estiver disponível   É executado várias vezes por segundo   Reside permanentemente na memória Eduardo Nicola F. Zagari 7 Escalonamento de CPU
  • 8.   Determina quais os processos que poderão competir pela CPU   Responsável pela suspensão e ativação de processos, o que significa flutuações na carga do sistema visando um melhor balanceamento   Atua como um buffer entre a admissão de jobs e a associação da CPU aos processos que constituem os jobs admitidos   Job: é um conjunto de atividades necessárias para a realização do trabalho computacional requerido por um usuário (divide-se em diversos steps (passos) ) Eduardo Nicola F. Zagari 8 Escalonamento de CPU
  • 9.   Determina quais jobs serão admitidos e poderão competir pelos recursos do sistema (admission scheduling)   Permite que não existam jobs em demasia no sistema, o que acarretaria uma eterna competição pelos recursos   Todo job, uma vez admitido, acarreta na criação de um ou mais processos Eduardo Nicola F. Zagari 9 Escalonamento de CPU
  • 10.   O módulo Dispatcher dá o controle da CPU para o processo selecionado pelo escalonador de curto prazo. Isto envolve:   Troca de contexto   Mudança do processador para o Modo Usuário   Salto para a localização adequada no programa do usuário para o seu reinício   Latência de Despacho – tempo que leva para o dispatcher parar um processo e reiniciar a execução de outro Eduardo Nicola F. Zagari 10 Escalonamento de CPU
  • 11.   Utilização da CPU: % do tempo que a CPU fica ocupada (0 - 100%)   Throughput: número de processos completados por unidade de tempo   Turnaround: intervalo de tempo entre a submissão de um processo e sua finalização (soma dos intervalos esperando para ser carregado na memória, fila de pronto, em execução e em espera)   Tempo de espera: tempo que cada processo fica na fila de pronto   Tempo de resposta: tempo que o processo demora para produzir alguma resposta à uma requisição (importante para processos interativos)   É desejável maximizar os 2 primeiros e minimizar os 3 últimos   Para sistemas interativos, é importante minimizar a variância do tempo de resposta (previsibilidade) Eduardo Nicola F. Zagari 11 Escalonamento de CPU
  • 12.   Objetivos das políticas de escalonamento:   maximizar a utilização da CPU   maximizar o throughput   minimizar o turnaround   minimizar o tempo de espera   minimizar o tempo de resposta   ser justa   maximizar o número de usuários interativos   ser previsível   minimizar o uso de recursos   balancear o uso de recursos   balancear usuários interativos com os demais   priorizar processo que segurem recursos chave   não degradar o sistema   etc Eduardo Nicola F. Zagari 12 Escalonamento de CPU
  • 13.   Não permite a retirada da CPU de um processo após este tê-la conseguido   Tempo de resposta é mais previsível É mais justo?   Processos curtos precisam esperar pelos longos   Permite monopolização da CPU Eduardo Nicola F. Zagari 13 Escalonamento de CPU
  • 14.   Permite que a CPU seja retirada de um processo para ser entregue a outro   Garante que os processos possam progredir uniformemente   Não permite a monopolização da CPU   Usado para:   atendimento rápido de processos mais importantes   tratamento de interrupções em sistemas de tempo real   atender os usuários em sistemas de tempo compartilhado   A mudança de contexto envolve sobrecarga Eduardo Nicola F. Zagari 14 Escalonamento de CPU
  • 15.   Para prevenir processos do usuário de monopolizar o sistema (CPU), por acidente ou de propósito, uma interrupção por tempo é usada quantum ou time-slice  é o tempo limite para uso da CPU, após o qual ocorre a interrupção por tempo   Um processo do usuário, uma vez interrompido por término do seu quantum, volta à fila de pronto para executar e permite o escalonamento de outro processo   Um processo em execução mantém controle sobre a CPU até:   voluntariamente liberá-la   quantum time expirado   outra interrupção exija atenção da CPU para que seja tratada   erro de execução Eduardo Nicola F. Zagari 15 Escalonamento de CPU
  • 16.   Podem ser fixas (estáticas) durante a vida do processo ou modificáveis (dinâmicas)   Podem ser associadas externamente ou de maneira automática   Podem ser calculadas e associadas de forma racional ou arbitrária Eduardo Nicola F. Zagari 16 Escalonamento de CPU
  • 17.   FIFO (First-In First-Out) (também conhecido por FCFS (First- Come First-Served))   SJF (Shortest Job First)   Round-Robin   SRT (Shortest Remaining Time)   Prioridade   Múltiplas Filas   Múltiplas Filas com Realimentação   Escalonamento para Vários Processadores   Escalonamento de Tempo Real   Earliest Deadline Eduardo Nicola F. Zagari 17 Escalonamento de CPU
  • 18.   Não preemptivo (Uma vez em execução, é executado até o término)   O processo que chegar primeiro (first-in) é o primeiro a ser selecionado para execução (first-out)   Implementado através de fila   Inicialmente criado para sistemas batch   Injusto com jobs curtos (veja exemplos!)   Ineficiente para sistemas de tempo compartilhado   Combinado com outros esquemas Eduardo Nicola F. Zagari 18 Escalonamento de CPU
  • 19. Suponha que os processos cheguem na ordem P1, P2 e P3   Turnaround médio = ( 10 + 12 + 14 ) / 3 = 12 u.t.   Tempo de espera médio = ( 0 + 10 + 12) / 3 = 7,33 u.t. Eduardo Nicola F. Zagari 19 Escalonamento de CPU
  • 20. Suponha que os processos cheguem na ordem P2, P3 e P1   Turnaround médio: ( 14 + 2 + 4 ) / 3 = 6,67 u.t.   Tempo de espera médio = ( 4 + 0 + 2) / 3 = 2 u.t. Eduardo Nicola F. Zagari 20 Escalonamento de CPU
  • 21.   Não preemptivo   O processo com o menor tempo para ser completado é escolhido   quando a informação sobre o tempo de execução não se encontra disponível deve ser estimado ou usa-se o da última vez   desempate pode ser, por exemplo, por FIFO   Reduz tempo médio de espera mais do que isto: SJF é ótimo, pois dá o tempo de espera mínimo para um dado conjunto de processos   No entanto, apresenta uma grande variância no tempo de espera Eduardo Nicola F. Zagari 21 Escalonamento de CPU
  • 22.   Turnaround médio FIFO: (6+14+21+24)/4 = 16,25 u.t.   Tempo de espera médio: (0 + 6 + 14 + 21)/4 = 10,25 u.t.   Turnaround médio SJF: (3 + 9 + 16 + 24) / 4 = 13 u.t.   Tempo de espera médio: (3 + 16 + 9 + 0) / 4 = 7 u.t. Eduardo Nicola F. Zagari 22 Escalonamento de CPU
  • 23.   O processo em execução libera voluntariamente a CPU retornando para a fila de pronto sem a interrupção do sistema operacional (não preemptivo)   Um programa mal escrito pode monopolizar a CPU   Fila de mensagem é verificada periodicamente (Win 3.11) Eduardo Nicola F. Zagari 23 Escalonamento de CPU
  • 24.   Define-se uma unidade de tempo denominada quantum ou time- slice (usualmente de 10 a 100ms) que corresponde ao tempo limite para uso da CPU por cada processo   Após este tempo ter sido passado, o processo sofre preempção e é colocado no final da fila de pronto   A fila de pronto é tratada como uma fila circular (FIFO)   O escalonador “pega” o primeiro processo da fila de pronto para ser executado e define um timer para o tempo de 1 quantum   Se o tempo de execução for maior que 1 quantum, o timer gera uma interrupção e o SO faz o chaveamento de contexto   Projetado para sistemas de tempo compartilhado   Se houver n processos na fila de pronto e o tempo do quantum for q, então cada processo obtém 1/n do tempo da CPU e fatias de no máximo q unidades de tempo por vez. Nenhum processo espera por mais que (n-1)q unidades de tempo. Eduardo Nicola F. Zagari 24 Escalonamento de CPU
  • 25.   Claramente preemptivo   O tempo médio de espera é alto   O desempenho depende do tamanho do quantum   se for muito grande (infinito) tende a FIFO   se for muito pequeno, o overhead com ochaveamento de contexto se torna alto demais... Eduardo Nicola F. Zagari 25 Escalonamento de CPU
  • 26. Quantum = 1 u.t.   Turnaround médio RR: (16 + 8 + 9) /3 = 11 u.t.   Tipicamente, o turnaround médio é maior que o do SJF, mas o tempo de resposta é melhor Eduardo Nicola F. Zagari 26 Escalonamento de CPU
  • 27.   É a contra-partida preemptiva do SJF   O processo com menor tempo para ser completado é escolhido   Um processo em execução é interrompido se um novo processo, com menor tempo para ser completado aparece na fila de pronto   Apresenta sobrecarga maior que o SJF   Variações:  Tempo para ser completado pequeno  Tempo para ser completado do processo que chega é pouco menor Eduardo Nicola F. Zagari 27 Escalonamento de CPU
  • 28.   Turnaround médio SRT: ((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 u.t.   E qual é o turnaround médio se fosse escalonado segundo SJF?   Resp.: 14,25 u.t. Eduardo Nicola F. Zagari 28 Escalonamento de CPU
  • 29.   Uma prioridade é associada a cada processo e a CPU é alocada ao processo de maior prioridade   SJF é um caso de escalonamento por prioridade em que a prioridade é maior para os processos de menor tempo de execução   A prioridade é geralmente representada por um número (entre 0-7 ou 0-255), mas não existe uma convenção de qual número (o maior ou o menor) é o de maior prioridade   Pode ser preemptivo ou não   SJF é um Escalonamento por Prioridade onde a prioridade é definida de acordo com o tempo de CPU estimado do processo Eduardo Nicola F. Zagari 29 Escalonamento de CPU
  • 30.   Turnaround médio: (16+1+6+18+19)/4 = 15 u.t. Eduardo Nicola F. Zagari 30 Escalonamento de CPU
  • 31.   Prioridade definida:   internamente: usa alguma quantidade mensurável para computar a prioridade. (dinâmica)  Ex.: memória, arq. abertos, razão I/O por CPU usada   externamente: importância do processo, departamento de origem, fatores políticos, hierarquia. (estática)   Problema: starvation - processos de baixa prioridade podem ficar indefinidamente no estado de pronto (IBM 7094 no MIT processo rodando por 6 anos)   Solução: aumentar progressivamente a prioridade dos processos que estão aguardando Eduardo Nicola F. Zagari 31 Escalonamento de CPU
  • 32.   Os processos são previamente divididos em grupos em função do tipo de processamento realizado   Interativo (foreground)   Batch (background)   A cada grupo é aplicado um mecanismo de escalonamento adequado Alta Fila de processos   Interativo – RR prioridade do sistema   Batch – FIFO Fila de processos Possibilidade de interativos starvation Baixa Fila de processos prioridade batch   utra alternativa: time-slices entre filas (ex.: 80% para os interativos O em RR e 20% para os batch em FIFO) Eduardo Nicola F. Zagari 32 Escalonamento de CPU
  • 33.   Os processos não permanecem em uma mesma fila até o término do processamento   O SO faz um ajuste dinâmico (mecanismo adaptativo) para ajustar os processos em função do comportamento do sistema   Os processos não são previamente associados às filas, mas direcionados pelo sistema entre as diversas filas com base no seu comportamento   Parâmetros:   número de filas,   algoritmo de escalonamento para cada fila,   método para mudar (promover ou rebaixar) o processo de fila,   método para determinar em que fila um processo entra   Método mais complexo Eduardo Nicola F. Zagari 33 Escalonamento de CPU
  • 34.   Um exemplo (existem outras variações):   Processos novos entram no fim da primeira fila   Nas filas, os processos são escalonados segundo Round Robin   O quantum varia de uma fila para outra (aumenta em direção às últimas, quantum 1 para a primeira, 2 para a segunda, etc)   Os processos das primeiras filas têm maior prioridade (um processo não pode ser escolhido, a menos que, as filas anteriores estejam vazias)   Um processo em execução é interrompido, caso apareça um processo em uma das filas anteriores à sua   Sempre que um processo esgotar seu quantum , ele é suspenso na fila da próxima classe de prioridade   Se o processo liberar a CPU, sem preempção, sai da estrutura de filas   Quando um processo volta à estrutura, é colocado em uma fila de prioridade mais alta do que estava antes de sair Eduardo Nicola F. Zagari 34 Escalonamento de CPU
  • 35. Alta Menor prioridade Fila 1 quantum Fila 2 Fila 3 ... Baixa Fila N Maior prioridade quantum Eduardo Nicola F. Zagari 35 Escalonamento de CPU
  • 36.   Vantagens de uma política como esta:   Processos CPU-bound vão caindo em filas de prioridade mais baixas, sendo escolhidos para rodar com menos freqüência; no entanto, eles recebem quanta maiores, necessitando receber a CPU por um número menor de vezes, o que reduz a quantidade trocas de contexto   Processos interativos (I/O-bound), normalmente pequenos, são favorecidos, reduzindo-se o tempo de resposta médio do sistema   Processos interativos grandes, após interação com usuários, retornam em filas de prioridade mais alta   Problema: pressionar <ENTER> em terminais processando longos jobs não interativos (CPU-bound)   Moral da história: implementar uma boa política na prática é muitíssimo mais difícil do que idealizá-la Eduardo Nicola F. Zagari 36 Escalonamento de CPU
  • 37.   Escalonamento mais complexo   Processadores idênticos (homogêneos)   Compartilhamento de carga (load sharing)   Fila por processador: processador pode ficar ocioso   Fila única: compartilhamento de dados (problemas!)   Abordagens:   Processamento simétrico  Cada processador faz seu próprio escalonamento (exclusão mútua!)   Mestre-Escravo: processamento assimétrico  um algoritmo, executado em um processador reservado para esse fim, é o escalonador dos outros processadores (alivia a necessidade de compartilhamento de dados) Eduardo Nicola F. Zagari 37 Escalonamento de CPU
  • 38.   Sistemas de tempo real: requisitos temporais   Tempo compartilhado puro não funciona   Hard real-time: requisitos temporais rígidos  requer que uma tarefa crítica seja completada dentro de um tempo garantido  Ex.: tráfego aéreo, armas, sistemas médicos, controle industrial, etc   Soft real-time: requisitos temporais flexíveis  requer que um processo crítico receba prioridade sobre outros menos importantes  Ex.: multimídia, realidade virtual, etc   Sistemas de TR rígidos: processadores dedicados   Sistemas de TR flexíveis:   Implementados com outros esquemas   Processos críticos devem ter prioridade sobre outros   Implica na degradação do serviço dos outros usuários Eduardo Nicola F. Zagari 38 Escalonamento de CPU
  • 39.   Escalonamento baseado em prioridades dinâmicas   A idéia básica é atribuir sempre a maior prioridade ao processo que apresentar o prazo mais próximo a expirar (earliest deadline)   Sempre que um novo processo chega na fila de pronto, são calculadas e atribuídas novas prioridades a todos   O Earliest Deadline é um algoritmo ótimo, isto é, o fator de utilização da CPU é 100%   Se os processos não forem independentes:   Problema da Inversão de Prioridades  Solução: Protocolo de Herança de Prioridade –  Conseqüência: queda no fator de utilização da CPU Eduardo Nicola F. Zagari 39 Escalonamento de CPU
  • 40. Eduardo Nicola F. Zagari 40 Escalonamento de CPU
  • 41.   Unix  Sistema de Tempo Compartilhado   Meta: bom tempo de resposta aos processos interativos   Escalonamento de 2 níveis   Escalonador de baixo nível: Filas Múltiplas (prioridade) com realimentação   Processos executando em modo kernel: prioridade negativa (que são as maiores)   Processos executando em modo usuário: prioridade positiva   Roda primeiro processo da fila prioritária não vazia  interrupções de tempo: incremento do contador de utilização da CPU (que aumentará o valor da prioridade do processo)   Round-Robin dentro de cada fila   A cada segundo as prioridades são recalculadas:  Contadores de uso da CPU divididos por 2  Nova prioridade = base + nice + contador de uso da CPU   Processos interativos voltam do bloqueio com prioridade negativa. Eduardo Nicola F. Zagari 41 Escalonamento de CPU
  • 42. Eduardo Nicola F. Zagari 42 Escalonamento de CPU
  • 43.   Dois algoritmos: time-sharing e real-time   Time-sharing   Prioridades baseadas em créditos – processo com mais créditos é o próximo a ser escalonado   Crédito subtraído quando ocorre uma interrupção por tempo   Quando crédito = 0, outro processo é escolhido   Quando todos os processos têm crédito = 0, ocorre “recarregamento” de créditos  Baseado em alguns fatores como prioridade e histórico   Real-time   Soft real-time (TR Flexível)   Aderente ao Posix.1b – duas classes  FIFO e RR  Processos de maior prioridade sempre executam primeiro Eduardo Nicola F. Zagari 43 Escalonamento de CPU
  • 44.   Escalonamento Local – Como a biblioteca de threads decide qual thread do usuário executar quando há um LWP disponível   Escalonamento Global – Como o kernel decide qual kernel thread deve ser a próxima a ser executada Eduardo Nicola F. Zagari 44 Escalonamento de CPU
  • 45. #include <pthread.h> #include <stdio.h> #define NUM THREADS 5 int main(int argc, char *argv[]) { int i; pthread t tid[NUM THREADS]; pthread attr t attr; /* get the default attributes */ pthread attr init(&attr); /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread attr setschedpolicy(&attr, SCHED OTHER); /* create the threads */ for (i = 0; i < NUM THREADS; i++) pthread create(&tid[i],&attr,runner,NULL); Eduardo Nicola F. Zagari 45 Escalonamento de CPU
  • 46. /* now join on each thread */ for (i = 0; i < NUM THREADS; i++) pthread join(tid[i], NULL); } /* Each thread will begin control in this function */ void *runner(void *param) { printf("I am a threadn"); pthread exit(0); } Eduardo Nicola F. Zagari 46 Escalonamento de CPU
  • 47.   JVM usa um algoritmo de escalonamento baseado em prioridades e preemptivo   Uma fila FIFO é usada se houver múltiplas threads com a mesma prioridade   JVM escalona uma thread para executar quando: 1.  A thread “em execução” sai do estado de “executável” 2.  Uma thread de maior prioridade entra no estado “executável” * Nota – a JVM não especifica se threads são “Time-Sliced” ou não Eduardo Nicola F. Zagari 47 Escalonamento de CPU
  • 48. Uma vez que a JVM não assegura Time-Slicing, o método yield() pode ser usado: while (true) { // perform CPU-intensive task . . . Thread.yield(); } Isto passa o controle a uma outra thread de igual prioridade Eduardo Nicola F. Zagari 48 Escalonamento de CPU
  • 49. Prioridade Comentário Thread.MIN_PRIORITY Prioridade Mínima de Thread Thread.MAX_PRIORITY Prioridade Máxima de Thread Thread.NORM_PRIORITY Prioridade Default de Thread As prioridades podem ser ajustadas usando-se o método setPriority(): setPriority(Thread.NORM_PRIORITY + 2); Eduardo Nicola F. Zagari 49 Escalonamento de CPU