O que a introdução de processadores com vários núcleos altera nesse gerenciamento?

We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.

You can read the details below. By accepting, you agree to the updated privacy policy.

Thank you!

View updated privacy policy

We've encountered a problem, please try again.

Sistemas Operacionais
Capítulo 6
Processo

6.1 � Introdução

  • De forma simples, o processo é um programa em execução.
  • Extensão do conceito: Estrutura responsável pela manutenção de todas as informações necessárias à execução de um programa, como conteúdo de registradores e espaço na memória


6.2 � Modelo de Processo

  • Processo = ambiente onde se executa um programa
  • Um mesmo programa pode produzir resultados diferentes, dependendo do processo no qual ele é executado.
  • Bloco de controle do processo (Process Control Block � PCB) � Estrutura onde o SO guarda todas as informações do processo, contendo sua identificação, prioridade, estado corrente, recursos alocados por ele e informações sobre o programa em execução
  • O Sistema Operacional gerencia os processos através de System Calls.
  • Processo : contexto de hardware, software e espaço de endereçamento.

6.2.1 � Contexto de Hardware

  • Constitui-se do conteúdo de registradores
  • A troca de um processo por outro na CPU, pelo sistema operacional, é denominada mudança de contexto.
  • Mudança de Contexto -  salva o conteúdo dos registradores da CPU e carregá-los com os valores referente ao do processo que está ganhando a utilização do processador.


6.2.2 � Contexto de Software

  • Características do processo incluídas na execução de um programa, divididas em:
    • Identificação � Principalmente número (PID) de identificação e identificação do processo ou usuário (UID) que o criou.
    • Quotas � Limites de cada recurso do sistema que um processo pode alocar
    • Privilégios � o que o processo pode ou não fazer em relação ao sistema e aos outros processos.


6.2.3 � Espaço de Endereçamento

  • Área da memória do processo onde o programa será executado e para dados utilizados por ele.
  • Deve ser protegido do espaço de endereçamento dos demais processos


6.3 � Estado do Processo

  • Em sistemas Multitarefas o processo não é executado todo o tempo pelo processador
  • 3 tipos de estados:
    • Execução (running)  � O processo está sendo executado pela CPU.
    • Pronto (ready) � O processo está pronto e esperando para ser executado pela CPU.
    • Espera (wait) � O processo está esperando algum evento externo ou por algum recurso para poder prosseguir seu processamento.
      • Bloqueado � O processo está esperando por algum recurso do sistema que não se encontra disponível.


6.4 � Mudança de Estado do Processo

  • Mudança de estado por eventos do próprio processo (eventos voluntários) ou causados pelo sistema operacional (eventos involuntários). Dividido em 4 mudanças:
    • Pronto -> Execução = Quando um processo é criado, é colocado em uma lista de processos no estado pronto. Então é escolhido pelo sistema para ser executado.
    • Execução -> Espera = O processo passa para espera quando aguarda a conclusão de um evento solicitado.
    • Espera -> Pronto = O processo passa para pronto quando a operação solicitada é atendida ou o recurso esperado é concedido.
    • Execução -> Pronto = O processo passa de execução para pronto por eventos gerados pelo sistema.


6.5 � Subprocesso e Thread

  • Subprocesso ou processo filho
    • processos criados por um outro processo, de maneira hierárquica.
    • O subprocessos são eliminados quando o processo pai deixa de existir.
    • Permite dividir a aplicação para trabalhar de forma concorrente.
    • Cada processo e subprocesso possui seu ambiente e recursos alocados.
  • Thread ou Linha de Controle
    • No ambiente multthread cada processo pode responder a várias solicitações concorrentes ou mesmo simultaneamente, se houver mais de um processador.
    • Threads compartilham o processador da mesma forma que um processo.
    • Cada Thread possui seu próprio conjunto de registradores, porém compartilha o mesmo espaço de endereçamento com as demais threads do processo.
    • Uma Thread pode alterar os dados de outra Thread.


6.6 � Processos do Sistema

  • Grande parte do núcleo do sistema é executada no contexto de processos, inclusive no contexto de processos de usuários, como:
    • auditoria e segurança:
    • serviços de rede;
    • contabilização do uso de recursos;
    • contabilização de erros;
    • gerência de impressão;
    • gerência de jobs batch;
    • temporização;
    • comunicação de eventos;
    • inteface de comando (shell).


6.7 � Tipos de processos

  • CPU-bound (Ligado à CPU)
    • O processo passa a maior parte do tempo no estado de execução.
    • Realiza poucas operações de I/O
    • Encontrado em aplicações que efetuam muitos cálculos.
  • I/O-bound (Ligado à E/S)
    • O processo passa a maior parte do tempo no estado de espera
    • Encontrado em aplicações comerciais com bastante leitura, processamento e gravação.
    • Encontrado também em aplicações interativas.

    O que é gerenciamento do processador?

    A gerencia do processador permite garantir o uso adequado do processador para atender ao diversos processos em execução pelo sistema operacional.

    Como o processador define os processos que serão executados?

    Um processo passa por diferentes estados desde sua criação até seu término. Enquanto ele é criado, seu estado é considerado "Novo"; em ação, muda para "Executando"; quando depende da ocorrência de algum evento, vira "Esperando"; quando não mais necessário, o processo é "Terminado".

    Quais são as ações executadas por um kernel para mudança de contexto entre processos?

    Assim, a troca de contexto consiste em salvar o conteúdo dos registradores que está deixando a CPU e carrega-los com valores do novo processo. Em uma troca de contexto, o estado do primeiro processo deve ser armazenado de alguma forma, para que quando o escalonador retorne sua execução, o estado seja antes restaurado.

    Qual é a diferença entre escalonamento preemptivo e não preemptivo?

    No escalonamento preemptivo, o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo na UCP. No escalonamento não-preemptivo, quando um processo está em execução, nenhum evento externo pode ocasionar a perda do uso do processador.