Questionario 2- SO
Professor : Sergio
Questionario2
1-Qual a diferença entre os comandos fork() e execl()? Qual o resultado esperado de cada um?
R:Com o comando fork() é possível a criação de um processo “filho” que sera idêntico ao processo “pai”. Já no comando execl() existe a criação efetiva de um novo processo, mas simplesmente uma substituição do programa de execução.
2- A identificação do processo pai é sempre maior ou menor que a do processo filho? Justifique.
R: A identificação do processo “pai” sera sempre menor já que o processo “filho” e gerado a partir desse processo “pai”.
3- A identificação é sempre sequencial ou pode ser aleatoria? Justifique.
R: Ela sera sempre sequencial, por exemplo “pai” Ppid=10, “filho” pid= 11.
4-Em quantos processos resulta a execução deste processo? Quais são eles ? Que parte de código cada um executa?
R: São três processos no total, o pai que resulta um processo filho que acaba gerando mais um filho ou seja um neto. Sendo a parte executadas por cada um...
PAI- Gera um processo filho, Encerra.
FILHO- Tenta executar o comando execl, gera um filho(neto),encerra
NETO- apenas se identifica,encerra.
5- No segundo fork(), responda as perguntas de "Quem sou eu".
R: “if”* Eu sou o processo “PAI”. “else”* Eu sou o processo “NETO”.
6- Qual a finalidade do comando wait() ? Que valores ele pode retornar ?
R: A função wait suspende a execução do processo até a morte de seu filho. Se o filho já estiver morto no instante da chamada da primitiva (caso de um processo zumbi), a função retorna imediatamente.
Valor de retorno: identificador do processo morto ou -1 em caso de erro.
7- Para que serve a variavel status? Que valores ela pode receber e o que eles significam?
R: O código de retorno via status indica a morte do processo que pode ser devido uma: uma chamada exit(), e neste caso, o byte à direita de status vale 0, e o byte à esquerda é o parâmetro passado a exit pelo filho.
uma