O que é uma falta de página Quais são suas causas possíveis e como o sistema operacional deve Tratá

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 é uma falta de página Quais são suas causas possíveis e como o sistema operacional deve Tratá

    Quais são suas causas possíveis e como o sistema operacional deve tratá-las? R: Falta de página é o nome dado à quando uma informação buscada não está na memória, sendo necessário carrega-la do disco para a memória. Neste caso, o processador se comunica com o controlador para gerar uma interrupção.

    Quando uma falta de página ocorre o sistema operacional precisa?

    O software de tratamento de exceção, que trata a ocorrência de falta de página, é geralmente parte do sistema operacional. O sistema operacional tenta tratar esta ocorrência fazendo a página acessível em uma locação da memória física ou interrompendo a execução do processo em caso de acesso ilegal.

    O que é um page fault quando ocorre é quem controla a sua ocorrência como uma elevada taxa de page fault pode comprometer o sistema operacional?

    Como uma elevada taxa de page fault pode comprometer o sistema operacional? R: O page fault ocorre todas as vezes que um processo faz referência a um endereço virtual pertencente a uma página virtual que não se encontra mapeada em uma página real, ou seja, não está, no momento, na memória principal.

    O que é paginação e como ela é utilizada pela memória?

    No contexto dos sistemas operacionais, paginação é um esquema de gerenciamento de memória pelo qual um computador armazena e recupera dados de um armazenamento secundário para uso na memória principal.