Onde está o PCB no linux

9

Um PCB é um bloco de controle de processo , esta é sua definição na Wikipedia

Process Control Block (PCB, also called Task Controlling Block,[1] Task Struct, or Switchframe) is a data structure in the operating system kernel containing the information needed to manage a particular process. The PCB is "the manifestation of a process in an operating system

e seu dever é:

Process identification data
Processor state data
Process control data

Então, onde está o PCB de um processo a ser encontrado?

    
por Mohammad Reza Rezwani 18.08.2014 / 08:26

1 resposta

10

No kernel do Linux, cada processo é representado por um task_struct em uma lista duplamente vinculada, cujo cabeçalho é init_task (pid 0, not pid 1). Isso é comumente conhecido como a tabela de processos .

No modo de usuário, a tabela de processos é visível para usuários normais em /proc . Tomando os títulos para sua pergunta:

  • Dados de identificação do processo são o ID do processo (que está no caminho /proc/<process-id>/... ), a linha de comando ( cmd ) e possivelmente outros atributos, dependendo da definição de ' identificação '.

  • Dados do estado do processo incluem dados de agendamento ( sched , stat e schedstat ), em que o processo está aguardando atualmente ( wchan ), seu ambiente ( environ ) etc.

  • Dados de controle de processo podem ser considerados como suas credenciais ( uid_map ) e limites de recursos ( limits ).

Então, tudo depende de como você define seus termos ... mas, em geral, todos os dados sobre um processo podem ser encontrados em /proc .

    
por 18.08.2014 / 09:38

Tags