Skip to content

Instantly share code, notes, and snippets.

@VitorDiToro
Last active April 3, 2017 16:19
Show Gist options
  • Save VitorDiToro/d17dd93773f2246a56b7469d20aa3898 to your computer and use it in GitHub Desktop.
Save VitorDiToro/d17dd93773f2246a56b7469d20aa3898 to your computer and use it in GitHub Desktop.
5º bagúio do renzo

5ª Lista de SO

  1. O Short Term Scheduler é responsável por retirar os processos da Ready Queue e repassa-los para o Dispatcher alocar recusos de CPU para eles.

  2. Em sistemas multicore, o balanceamento pode ser mantido distribuindo os vários processos para os vários cores da CPU, através de dois algoritmos distintos: Migração por Expulsão: Uma tarefa fica constantemente buscando por desequilibrios entre processadores e quando encontra, tenta equilibrar as cargas. Migração por Abstração: Quando um processador ocioso extrai uma tarefa que está esperando em um processador ocupado.

  3. Utilização de CPU: Tempo que a CPU permanece em uso (ocupada). Throughtput: Número de prcessos executados em um intervalode tempo. Tempo de espera: Total de tempo que o processo permanece na ready queue.

  4. FCFS (First Come First Served): Um fila FIFO, para organizar os processos com base em suas chegadas. "O primeiro a chegar é o promiero a sair"; SJF (Shortest Job First): Os processos que utilizam a CPU primeiro são os primeiros processos a serem executados, o que resolta em um menor tempo médio de espera. AKA "Os menores primeiro!"; PS (Priority Scheduling): Os processos são executados com base em suas primoridades e em caso de dois ou mais processos possuirem a mesma prioridade, o mais velho é executado primiero. Like a Priority Queue; RR (Round Robin): Os processos são organizados como numa lista circular e executados em sua ordem de chegada. No entanto, como RR é um scheduler preemptivo, cada processo é executado por apenas um QUANTUM de tempo, após esse QUANTUM de tempo, o processo seguinte passa a ser executado;

  5. Processos CPU-Bound são processos que utilizam muito a CPU (longo tempo de CPU) e Processos IO-Bound são processos que utilizam muito IOs (curto tempo de CPU).

  6. O Dispatcher é responsávem por dar controle da CPU para um processo selecionado pelo Short Term Scheduler. Sua função envolvem:

    • Troca de Contexto (Swithching context);
    • Troca para o mode de usuário (Switching to user mode);
    • Altera para localização correta do programa (user mode) para continuar a execução.
  7. FCFS:

        0     2     4     6     8     10    12    14    16    18    20    22 
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
     P1 |#############################|
     P2 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|##|
     P3 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|#####|
     P4 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|##|
     P5 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|#############|
    
    == Legenda ==
    # - Em execução.
    $ - Em espera.

    Tempo médio de espera: $$ \frac{0+10+11+13+14}5 = 9,6 $$ SJF:

        0     2     4     6     8     10    12    14    16    18    20    22 
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
     P1 |$$$$$$$$$$$$$$$$$$$$$$$$$$|#############################|
     P2 |##|
     P3 |$$$$$|#####|
     P4 |$$|##|
     P5 |$$$$$$$$$$$|##############|
    
    == Legenda ==
    # - Em execução
    $ - Em espera

    Tempo médio de espera: $$ \frac{9+0+2+1+4}5 = 3,2 $$ PS:

        0     2     4     6     8     10    12    14    16    18    20    22 
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
     P1 |$$$$$$$$$$$$$$$$$|#############################|
     P2 |##|
     P3 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|#####|
     P4 |$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|##|
     P5 |$$|###########|
    
    == Legenda ==
    # - Em execução
    $ - Em espera

    Tempo médio de espera: $$ \frac{6+0+16+18+1}5 = 8,2 $$ RR:

        0     2     4     6     8     10    12    14    16    18    20    22 
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
     P1 |##|$$$$$$$$$$$|##|$$$$$|##|$$|##|$$|##|$$|##############|
     P2 |$$|##|
     P3 |$$$$$|##|$$$$$$$$|##|
     P4 |$$$$$$$$|##|
     P5 |$$$$$$$$$$$|##|$$$$$|##|$$|##|$$|##|$$|##|
    
    == Legenda ==
    # - Em execução
    $ - Em espera

    Tempo médio de espera: $$ \frac{9 + 1 + 5 + 3 + 9}5 = 5,4 $$

  8. PS Preemptivo:

        0     2     4     6     8     10    12    14    16    18    20    22 
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
     P1 |#####|&&&&&&&&|#################|
     P2 |  |&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|##############|
     P3 |     |########|
    
    == Legenda ==
    # - Em execução
    $ - Em espera

    Tempo médio de espera: $$ \frac{3+10+0}3 = 4,333 $$ PS Não-Preemptivo:

        0     2     4     6     8     10    12    14    16    18    20    22
    ----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
    P1 |########################| 
    P2 |  |&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|##############| 
    P3 |      |&&&&&&&&&&&&&&&&&|########|
    
    == Legenda ==  
    # - Em execução
    $ - Em espera

    Tempo médio de espera: $$ \frac{0+10+6}3 = 5,333 $$

  9. A afinidade de um processo com o processador é quando o processo busca ser executado sempre no mesmo processador/núcleo, a fim de aproveitar dados deixados no cache em momentos anteriores. A finidade pode ser de dois tipos: Leve: Quando o SO busca exeutar o processo sempre no mesmo processador/núcleo. Forte: Quando o SO obriga um processo a ser executado sempre no mesmo processador/nucleo, por escolha ou não do usuário. (Como ocorre no linux).

  10. Memory Stall, é o tempo que o processador gasta esperando os dados da memória ficarem disponíveis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment