fundamentos sistemas operativos
Ano lectivo 2011/12, 1º semestre
Sem Consulta. Duração total: 2 horas
Nome: ________________________________________________________
Número: ____________
I: A chamada fork(), quando é bem sucedida, retorna:
(1) no pai o PID do filho e no filho zero
(3) no pai o PID do filho e no filho o PID do pai
(5) no pai o PID do pai e no filho o PID do filho que é zero
(2) o PID do filho, tanto no pai como no filho
(4) no pai o PID do pai e no filho o PID do filho
Resposta: _______________
II: Quantos processos (novos) são desencadeados quando um processo executa a sequência fork(); fork();
Opções: 1 ; 2 ; 3 ; 4 ; 5
Resposta: _______________
III: Quantos threads (novos) são desencadeados quando um processo executa a sequência pthread_create(&t1, NULL, func1, NULL); pthread_create(&t2, NULL, func2, NULL);
Opções: 1 ; 2 ; 3 ; 4 ; 5
Resposta: _______________
IV: Uma chamada da família exec(), quando é bem sucedida, retorna:
(1) -1
(3) o número de bytes do ficheiro executável
(5) não retorna, porque o programa invocador desaparece da memória
(2) zero
(4) o PID do filho
Resposta: _______________
V: Assuma que s é um semáforo inicializado a 0 e acedido unicamente por um processo, Q. P(s) e V(s) são as operações definidas por Dijkstra. O resultado de Q executar a sequência P(s); V(s); V(s); P(s) é o semáforo ficar com:
Opções: 0 ; 1 ; -1 ; 2 ; nenhuma das anteriores
Resposta: _______________
VI: Assuma que s é um semáforo, e P(s) e V(s) são as operações definidas por Dijkstra. Para realizar uma região crítica (RC) é necessário inicializar s, e executar em sequência as seguintes operações:
Opções:
(1) s=1; P(s); RC; V(s)
(4) s=0; V(s); RC; P(s)
(2) s=1; V(s); RC; P(s)
(5) nenhuma das anteriores
(3) s=0; P(s); RC; V(s)
Resposta: _______________
VII: Assuma que processo cria um pipe e sobre este executa a sequência de instruções abaixo (assuma as variáveis char