No Linux, a função fork cria um novo processo, referido como filho, pela duplicação do processo que inicia a operação, referido como pai, de tal forma que: I. O processo filho herda o PID do processo pai. II. Pai e filho rodam (run) em espaços de memória diferentes. III. O filho herda todos os sinais de tempo do pai, no estado em que se encontram na execução da função fork. IV. Em caso de sucesso, a função fork retorna zero no processo pai. O número de afirmativas corretas é:
- A)zero;
Errada, porque ha pelo menos uma afirmativa correta na lista.
- B)uma;
Certa, pois apenas a afirmativa II esta correta.
- C)duas;
Errada, porque nao sao duas afirmativas corretas.
- D)três;
Errada, porque nao sao tres afirmativas corretas.
- E)quatro.
Errada, porque nao sao quatro afirmativas corretas.
Gabarito: B
O comando fork() e um dos classicos do Linux: ele cria um novo processo, o filho, a partir da copia logica do processo pai. A ideia e simples, mas a banca adora trocar um detalhe miudo para ver se voce esta atento. Depois do fork, pai e filho seguem execucoes independentes, cada um com seu proprio PID e seu proprio contexto de execucao. A afirmativa II esta correta porque pai e filho passam a rodar em espacos de memoria distintos, ainda que a copia inicial seja parecida. No Linux, isso ocorre com a tecnica de copy-on-write, em que a memoria e compartilhada ate alguem tentar alterar algo. Ou seja: parece igual no comeco, mas logo cada um vai para o seu canto. A I esta errada porque o filho nao herda o PID do pai. Muito pelo contrario: o filho recebe um PID proprio, e o pai continua com o dele. A IV tambem esta errada porque, quando o fork tem sucesso, ele retorna 0 no processo filho, e no pai retorna o PID do filho. Zero no pai e pegadinha de prova. A III esta errada porque o enunciado mistura a ideia de heranca com sinais de tempo/timers de forma imprecisa. Em prova, o seguro e lembrar que o fork duplica o processo, mas nao faz copia literal de tudo como se fosse um clone perfeito de desenho animado. Assim, apenas uma afirmativa esta correta, o que leva ao gabarito B.