← Questões de Sistemas Operacionais

Sistemas Operacionais · FGV · 2021

Questão comentada de Sistemas Operacionais

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 é:

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.

Continue treinando

Questões relacionadas