next up previous
Next: Jobs: Up: Alguns Conceitos Relevantes Previous: Alguns Conceitos Relevantes

Processo:

um processo é uma instância de um programa que está rodando no sistema. Um mesmo programa pode estar rodando várias vezes ao mesmo tempo, em vários processos diferentes. Por exemplo, um mesmo editor de texto pode estar sendo usado por vários usuários ao mesmo tempo. Cada processo é identificado por um número único entre todos que estão rodando, ao qual chamamos de PID (process identification). Além disso, ele está sempre associado a um usuário, ao qual pertence. Ou seja, há uma noção de ownership para processos, assim como para arquivos.

Esta é uma noção de ownership do tipo do ownership de user para arquivos. Existe também um conceito de grupos para processos, mas ele não é muito importante no que diz respeito ao que nos interessa como usuários do sistema. Existe um outro tipo de relação entre processos, de caráter hierárquico tipo pais-e-filhos, que é mais relevante. Cada processo é ``filho'' (child) de algum outro processo, que chamamos de ``pai'' ou de parent-process. Isto estabelece um tipo de estrutura hierárquica entre os processos que, em geral, está ligada ao fato de que um processo inicia outros, que são denominados seus filhos (children). A raiz da árvore deste sistema hierárquico é o processo init, que tem número PID 1. Este é o processo inicial que inicializa todo o sistema quando ele é colocado no ar.

Não se deve confundir este processo inicial com o kernel. O kernel é de fato um programa que está rodando na máquina, mas ele não é um processo e sim o programa subjacente que controla todos os processos. Assim como ele controla os dispositivos de armazenamento e de entrada e saída, o kernel também controla a utilização da memória RAM e do CPU, submetendo a eles outros programas para serem executados. Estes outros programas aparecem como processos dentro da estrutura de controle estabelecida pelo kernel. O programa init é o primeiro que é executado pelo kernel logo após o boot deste, tendo a finalidade de colocar para rodar todos os outros programas que são necessários para que tenhamos um sistema operacional multi-user e multi-tasking completo em funcionamento.


next up previous
Next: Jobs: Up: Alguns Conceitos Relevantes Previous: Alguns Conceitos Relevantes