Fernando Fernandes Sistemas Operacionais
Tia: 31322387
Matéria: Sistemas Operacionais
Fork
A chamada fork é uma função que chama o Sistema operacional para executar uma tarefa que o usuário não pode fazer e assim que criamos um processo por meio do fork, dizemos que esse novo processo é o filho, e processo pai é aquele que usou o fork.
Exemplos:
•
Por exemplo, suponha que você programou um software em C, e nele usou a chamada fork(),Esse programa em C, executando, é o processo pai.
Função do getpid() e getppid()
•
PID
O PID (process identification, ou identificador de processos )é um numero que cada processo tem, e cada processo tem um valor diferente de pid, é como se fosse o CPF, a identificação de cada processo.
No entanto, ao guardar esse retorno da função fork numa variável de nome 'pid' do tipo
'pid_t', vemos que esse número de pid tem um comportamento especial:
Exemplos:
•
•
Dentro do processo filho, o pid tem valor 0;
•
Dentro do processo pai, o pid tem o valor do processo filho;
•
A fork() retorna um valor negativo, caso tenha ocorrido algum erro;
PPID
PPID (Parent Process Identifier) passa a ser usado: o PPID de um processo nada mais é do que o PID de seu processo pai.
Exemplo:
(Resultado) pid = 4442, ppid = 4383 aluno@debianLab:~$ pid = 4444, ppid = 1
pid = 4443, ppid = 1 pid = 4445, ppid = 1
Saida do Sitema Fork().
ENTRADA
Comando para execução do Fork aluno@debianLab:~$ aluno@debianLab:~$ ./aluno
gcc
fork.c
-o
aluno
SAIDA
Numero de identificação do processo, no caso PID e PPID
O PPID ainda está ativo e possui um código de identificação. pid = 4442, ppid = 4383
Numero de identificação do processo, agora o PPID é 1, pois o Pai foi ‘Morto’ e o filho continua ativo. aluno@debianLab:~$ pid = 4444, ppid = 1 pid = 4443, ppid = 1 pid = 4445, ppid = 1