A tabela de processos ou blocos de controles está presente em todos os sistemas operacionais e possuem a função de armazenar informações sobre o estado do processo, seu contador de programa, o ponteiro de pilha, alocação da memória, os estados do seus arquivos abertos, sua contabilidade sobre contabilidade, escalonamento e tudo sobre o processo que deva ser salvo quando o processo passar do estado de em execução para o estado de bloqueado.
Podemos classificar que a tabela de processos divide o armazenamento dos processos em três grupos sendo eles gerenciamento de processos , gerenciamento de memória e gerenciamento de arquivos .
Itens que compõe o gerenciamento de processos :
- Registradores;
- Contador de programa;
- Palavra do estado do programa;
- Ponteiro de pilha;
- Prioridade;
- Parâmetros de escalonamento;
- Identificador ID do processo;
- Processo Pai;
- Grupos de processos;
- Sinais;
- Momento que o processo iniciou;
- Tempo usado pela CPU;
- Tempo de uso da CPU do filho;
- Momento do próximo alarme.
Itens que compõe o gerenciamento de memória:
- Ponteiro para segmento do código;
- Ponteiro para segmento de dado;
- Ponteiro para segmento de pila;
Itens que compõe o gerenciamento de arquivos :
- Diretório raiz;
- Diretório de trabalho;
- Descritores de arquivos;
- Identificador(ID) do usuário;
- Identificador(ID) do grupo.
Com a utilização da tabela de processos, a troca de processos poderá ser efetuada não havendo perda do que já foi processado. Então quando o processo voltar a CPU para execução, a leitura da tabela de processo será feita, assim inicia-se o processamento do processo que estava bloqueado no ponto que a CPU parou de processar e gravou as informações do processo na tabela de processos e fez a troca por outro processo. Assim o conceito de multiprogramação não terá problemas e controle.