SISTEMAS OPERACIONAIS

gerencia de tarefas 

Professora Marcela Santos
profmarcelasantos@gmail.com



Aula baseada no material do Professor Carlos Maziero

introdução

introdução

    • Em um sistema computacional é comum a necessidade da execução de várias tarefas ao mesmo tempo.

    • Mais tarefas do que processadores

    • Solução
      1. Ter o mesmo número de processadores e tarefas (Inviável)
      2. Multiplexar o processador

objetivos da aula


    • Os principais conceitos abordados nesta aula:
      • Como as tarefas são definidas;
      • Quais os estados possíveis de uma tarefa;
      • Como e quando o processador muda de uma tarefa para outra;
 

a gerÊncia de tarefa

    • Em um computador, o processador tem de executar todas as tarefas submetidas pelos usuários. 

    • Essas tarefas geralmente têm comportamento, duração e importância distintas. 

    • Cabe ao sistema operacional organizar as tarefas para executá-las e decidir em que ordem fazê-lo 

o conceito de tarefa

    • Uma tarefa é execução de fluxo sequencial de instruções:
      •  compilar um código, 
      • editar uma imagem, 
      • efetuar um cálculo complexo.

    • Assim, a execução de uma sequência de instruções em linguagem de máquina, normalmente gerada pela compilação de um programa escrito em uma linguagem qualquer, é denominada “tarefa” ou “atividade”.

o conceito de tarefa

    • Tarefa!= Programa
   
                                        PROGRAMA                  TAREFA

o conceito de tarefa


A GERÊNCIA DE TAREFAS - MONO-TAREFAS



a gerência de tarefas - mono-tarefas

    • Os primeiros computadores, anos 40, eram mono-tarefas

    • Os dados e a tarefas eram carregados na mesma memória e depois de processados eram descarregados no disco.

    • A transferência de código e dado entre memória e disco era gerenciado por um ser humano.

a gerência de tarefas - mono-tarefas

  1. carga do código na memória
  2. carga dos dados na memória
  3. processamento, consumindo dados e produzindo resultados
  4. ao término da execução, a descarga dos resultados no disco.

a gerÊncia de tarefas - mono-tarefas





    A gerência de tarefas - sistemas monotarefas


      • Com a evolução dos periféricos a carga e descarga se torno crítica. Para resolver essa perda de tempo que acontecia na carga e descarga foi desenvolvido o programa monitor


      • O programa monitor era carregado na memória no início da operação e fica responsável por gerenciar a execução dos programas.

    A GERÊNCIA DE TAREFAS - MONO-TAREFAS

    • O monitor executa de forma contínua as seguintes tarefas:

    1. carregar um programa do disco para a memória;
    2. carregar os dados de entrada do disco para a memória;
    3. transferir a execução para o programa recém-carregado;
    4. aguardar o término da execução do programa;
    5. escrever os resultados gerados pelo programa no disco.

    a gerÊncia de tarefas - multi-tarefas


    • Processador mais rápido que os dispositivos de entrada e saída
      • Processador ocioso


    • Solução: suspender tarefa que estava esperando....
      • Assim o processador pode executar uma outra tarefa e quando a tarefa suspensa tiver a resposta à sua solicitação ela pode voltar de onde parou e continuar a ser processada.

    a gerência de tarefas - multi-tarefas

      • Necessidade: 
        • mais memória 
        • uma estrutura para salvar o contexto da tarefa suspensa
        • procedimento para suspender a tarefa e depois carrega-la novamente.

      • Preempção: ato de retirar um recurso de uma tarefa, no caso o processador, sistemas que realizam essa operação são denominados Sistemas preemptivos

    a gerência de tarefas - multi-tarefas

      • A adoção dessa política tornou o uso dos recursos mais eficientes, além de se  ter mais tarefas em andamento simultaneamente: ativas, em espera.....


      a gerÊncia de tarefas

      sistemas de tempo compartilhado

        •  O problema da ociosidade foi resolvido com os sistemas multi-tarefas, mas imaginem o cenário onde uma das  tarefas que está de posse do processador tenha um loop infinito  

        a gerÊncia de tarefas

        sistemas de tempo compartilhado

        a gerÊncia de tarefas

        sistemas de tempo compartilhado


        CICLO DE VIDA DAS TAREFAS



        implementação de tarefas

        • Estado interno : registradores
          • Contador de programa - PC
          • Apontador d epilha - SP


        • Bloco descritor de processo - PCB
          • Estrutura de dados que representa cada tarefa no núcleo do sistema operacional.




        implementação das tarefas

        • Identificador da tarefa
        • Estado da tarefa
        • Informações de contexto do processador
        • Lista de área de memória usada
        • Lista de arquivos abertos
        • Informações de gerência e contabilização
          • prioridade
          • usuário dono
          • volume de dados

        PCB Na prática


        • Acesse a seguinte pasta
          • /usr/src/linux-headers-3.13.0-35-generic/include/linux


        • Veja o arquivo
          • sched.h : que possui a definição de uma estrutura que representa o TCB para esse kernel do Linux

        trocas de contexto

        • Para que o processador possar suspender uma tarefa e depois retomá-la é necessário que sejam definidas operações para realizar a troca de contexto das tarefas


        • Mecanismos X políticas
          • dispachante
            • armazenamento e recuperação de contexto
          • escalonador
            • qual tarefa vai ser ecolhida

        trocas de contexto

        • A parte do dispachante é relativamente rápida


        • O que demanda mais tempo são as ações do escalonador
          • por esse motivo alguns sistemas operacionais executam o escalonador periodicamente
          • o dispachante pega a primeira  tarefa pronta que está na fila



        trocas de contexto


        trocas de contexto

        • Motivos da troca de contexto 
          • término do quantum
          • evento ocorrido em algum periférico
          • execução de uma chamada de sistema
          • erro de execução

        processos

        • Uma tarefa precisa do seu código e de que sejam alocados recurso de máquina para ela.
        • O conjunto dos recursos alocados a uma tarefa : PROCESSO
        • Historicamente processo e tarefa tinha definições diferentes
          • alguns livros mantem essa definição
        • Isso se deve ao fato de que os SO da década de 80 permitirem somente uma tarefa por processo.
        • Os sistemas atuais suportam mais de uma tarefa por processo
          • Windows XP
          • Linux


        processos

        processos

        • Por padrão a uma tarefa está associado um processo
        • Caso se deseje associar mais tarefas ao mesmo contexto isso deverá ser definido pelo programador
        • Processo: contêiner de recursos

        PROCESSOS


        • PCB: descritor do processo
        • TCB: descritor da tarefa
        • Pode-se associar os TCB ao PCB, assim a troca de contexto entre tarefas do mesmo processo se tornam mais rápidas do que tarefas em processos distintos.

        PROCESSOS

        • Hierarquia de processos
          • pstree
        • Comunicação
          • tarefas associadas ao mesmo processo podem trocar mensagem pois compartilham a mesma área de memória
          • o que não pode ser feito se as tarefas tiverem associadas a processos distintos
            • solução: IPC

        processos - criação de processos


        • fork
        • execv

        processos i/o bound

        processos cpu-bound



        threads

        • Cada fluxo de execução associado a um processo ou ao núcleo do sistema operacional é uma thread


        • Threads executando dentro do processo são denominadas threads de usuário
          • Cada thread do usuário é uma tarefa


        • Tarefas executadas pelo núcleo são denominadas threads de núcleo



        threads - modelo n:1


        threads - modelo 1:1


        threads - modelo N:M

        threads - quadro comparativo entre os modelos

        threads - pthreads


        threads - código java

        Sistemas Operacionais - Gerencia de Tarefas - Parte I

        By Marcela Santos

        Sistemas Operacionais - Gerencia de Tarefas - Parte I

        • 2,402