Bloco de controle do processo - Process control block

Um bloco de controle de processo (PCB) é uma estrutura de dados usada por sistemas operacionais de computador para armazenar todas as informações sobre um processo. Também é conhecido como descritor de processo. Quando um processo é criado (inicializado ou instalado), o sistema operacional cria um bloco de controle de processo correspondente.

Isso especifica o estado do processo, ou seja, novo, pronto, em execução, em espera ou encerrado.

Função

O papel dos PCBs é central no gerenciamento de processos : eles são acessados ​​e / ou modificados pela maioria dos utilitários, particularmente aqueles envolvidos com programação e gerenciamento de recursos.

Estrutura

Em sistemas operacionais multitarefa , o PCB armazena os dados necessários para o gerenciamento correto e eficiente do processo. Embora os detalhes dessas estruturas sejam dependentes do sistema, os elementos comuns se enquadram em três categorias principais:

  • Identificação do processo
  • Estado do processo
  • Controle do processo

Existem tabelas de status para cada entidade relevante, como a descrição de memória, dispositivos de E / S, arquivos e processos.

As tabelas de memória, por exemplo, contêm informações sobre a alocação de memória principal e secundária (virtual) para cada processo, atributos de autorização para acessar áreas de memória compartilhadas entre diferentes processos, etc. As tabelas de E / S podem ter entradas informando a disponibilidade de um dispositivo ou sua atribuição a um processo, o status das operações de E / S, a localização dos buffers de memória usados ​​para eles, etc.

Os dados de identificação do processo incluem um identificador único para o processo (quase invariavelmente um inteiro) e, em um sistema multiusuário-multitarefa, dados como o identificador do processo pai, identificador do usuário, identificador do grupo do usuário, etc. O ID do processo é particularmente relevante uma vez que é freqüentemente usado para fazer referência cruzada às tabelas definidas acima, por exemplo, mostrando qual processo está usando quais dispositivos de E / S ou áreas de memória.

Os dados de estado do processo definem o status de um processo quando ele é suspenso, permitindo que o SO reinicie-o posteriormente. Isso sempre inclui o conteúdo de registros de CPU de uso geral, a palavra de status do processo da CPU, ponteiros de pilha e quadro, etc. Durante a troca de contexto , o processo em execução é interrompido e outro processo é executado. O kernel deve parar a execução do processo em execução, copiar os valores dos registros de hardware para seu PCB e atualizar os registros de hardware com os valores do PCB do novo processo.

As informações de controle do processo são usadas pelo SO para gerenciar o próprio processo. Isso inclui:

  • Estado de agendamento do processo - O estado do processo em termos de "pronto", "suspenso", etc., e também outras informações de agendamento, como valor de prioridade, a quantidade de tempo decorrido desde que o processo ganhou o controle da CPU ou desde foi suspenso. Além disso, no caso de um processo suspenso, os dados de identificação do evento devem ser registrados para o evento que o processo está aguardando.
  • Informações de estruturação do processo - os ids filhos do processo, ou os ids de outros processos relacionados ao atual de alguma forma funcional, que podem ser representados como uma fila, um anel ou outras estruturas de dados
  • Informações de comunicação entre processos - sinalizadores, sinais e mensagens associadas à comunicação entre processos independentes
  • Privilégios de processo - acesso permitido / não permitido aos recursos do sistema
  • Estado do processo - novo, pronto, em execução, em espera, morto
  • Número do processo (PID) - número de identificação exclusivo para cada processo (também conhecido como ID do processo )
  • Contador de programa (PC) - Um ponteiro para o endereço da próxima instrução a ser executada para este processo
  • Registros de CPU - conjunto de registros onde o processo precisa ser armazenado para execução para o estado de execução
  • Informações de agendamento da CPU - informações de agendamento do tempo de CPU
  • Informações de gerenciamento de memória - tabela de página, limites de memória, tabela de segmento
  • Informações contábeis - quantidade de CPU usada para a execução do processo, limites de tempo, ID de execução, etc.
  • Informações de status de E / S - lista de dispositivos de E / S alocados para o processo.

Localização

O PCB deve ser mantido em uma área da memória protegida do acesso normal ao processo. Em alguns sistemas operacionais, o PCB é colocado no início da pilha do kernel do processo.

Veja também

Notas