PED1 Nov15 Con Soluciones

4
PED1 diseño y Administración de Sistemas Operativos 15 noviembre 2012 1. Señalar qué afirmación es verdadera a) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los procesos del núcleo. b) La ejecución de los procesos en un sistema UNIX está dividida en dos modos de ejecución: un modo de mayor privilegio denominado modo núcleo o supervisor y otro modo de menor privilegio denominado modo usuario. c) Un proceso ejecutándose en modo usuario puede acceder a otras partes de su propio espacio de direcciones, como aquellas reservadas para estructuras de datos asociadas al proceso usadas por el núcleo. d) Ninguna de las otras afirmaciones es verdadera. RESPUESTA CORRECTA b): Páginas 12 y 13 del libro base. 2. Señalar qué afirmación es falsa a) Un cambio de contexto es el conjunto de tareas que debe realizar el núcleo para aplazar o finalizar la ejecución del proceso actualmente en ejecución y comenzar o continuar con la ejecución de otro proceso. b) Las interrupciones son atendidas en modo usuario dentro del contexto del proceso que se encuentra actualmente en ejecución, aunque dicha interrupción no tenga nada que ver con la ejecución de dicho proceso. c) Un sistema UNIX BSD4.3 es no expropiable, es decir, si un proceso se está ejecutando en modo núcleo no se le puede expropiar el uso de la CPU para que la use otro proceso aunque éste sea más prioritario. d) No hay ninguna afirmación falsa. RESPUESTA CORRECTA b): Es falsa ya que las interrupciones se atienen en modo núcleo, Páginas 15 del libro base. 3. Señalar qué afirmación es verdadera a) El núcleo de UNIX realiza la invocación del algoritmo wakeup() únicamente dentro de los algoritmos asociados a las llamadas al sistema. b) La tabla de regiones es una estructura local a cada proceso que contiene una entrada por cada región asociada al proceso (código, datos, pila de usuario y memoria compartida (si existiese)). c) En UNIX no existe forma de identificar de forma precisa a cada proceso que se está ejecutando en el sistema. d) Ninguna de las otras afirmaciones es verdadera.

Transcript of PED1 Nov15 Con Soluciones

Page 1: PED1 Nov15 Con Soluciones

PED1 diseño y Administración de Sistemas Operativos

15 noviembre 2012

1. Señalar qué afirmación es verdadera

a) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los procesos del núcleo.

b) La ejecución de los procesos en un sistema UNIX está dividida en dos modos de ejecución: un modo de mayor privilegio denominado modo núcleo o supervisor y otro modo de menor privilegio denominado modo usuario.

c) Un proceso ejecutándose en modo usuario puede acceder a otras partes de su propio espacio de direcciones, como aquellas reservadas para estructuras de datos asociadas al proceso usadas por el núcleo.

d) Ninguna de las otras afirmaciones es verdadera.

RESPUESTA CORRECTA b): Páginas 12 y 13 del libro base.

2. Señalar qué afirmación es falsa

a) Un cambio de contexto es el conjunto de tareas que debe realizar el núcleo para aplazar o finalizar la ejecución del proceso actualmente en ejecución y comenzar o continuar con la ejecución de otro proceso.

b) Las interrupciones son atendidas en modo usuario dentro del contexto del proceso que se encuentra actualmente en ejecución, aunque dicha interrupción no tenga nada que ver con la ejecución de dicho proceso.

c) Un sistema UNIX BSD4.3 es no expropiable, es decir, si un proceso se está ejecutando en modo núcleo no se le puede expropiar el uso de la CPU para que la use otro proceso aunque éste sea más prioritario.

d) No hay ninguna afirmación falsa.

RESPUESTA CORRECTA b): Es falsa ya que las interrupciones se atienen en modo núcleo, Páginas 15 del libro base.

3. Señalar qué afirmación es verdadera

a) El núcleo de UNIX realiza la invocación del algoritmo wakeup() únicamente dentro de los algoritmos asociados a las llamadas al sistema.

b) La tabla de regiones es una estructura local a cada proceso que contiene una entrada por cada región asociada al proceso (código, datos, pila de usuario y memoria compartida (si existiese)).

c) En UNIX no existe forma de identificar de forma precisa a cada proceso que se está ejecutando en el sistema.

d) Ninguna de las otras afirmaciones es verdadera.

Page 2: PED1 Nov15 Con Soluciones

RESPUESTA CORRECTA d): Las respuestas a), b) y c) son falsas, Páginas 193, 126 y 114 del libro base respectivamente.

4. Señala de las siguientes órdenes, cuál de ellas corresponde con una orden interna:

a) pwd

b) exec

c) ls

d) mkdir

RESPUESTA CORRECTA a): Página 78 del libro base.

5. Señalar qué afirmación de las siguientes es falsa:

a) Una de las acciones que realiza el algoritmo inthand() para preservar la integridad de las estructuras de datos del núcleo es elevar el nivel de prioridad de interrupción.

b) Si desde un proceso A se invoca a una llamada al sistema exec() para ejecutar otro programa, cuando se retorne a modo usuario, tras finalizar la llamada al sistema, se ejecutará un nuevo proceso B asociado a dicho programa.

c) Una de las acciones que realiza el algoritmo inthand() es invocar al manipulador o rutina de servicio de interrupciones.

d) Ninguna de las otras afirmaciones es falsa.

RESPUESTA CORRECTA b): No se crea un proceso nuevo, se substituye el contexto del proceso A con el contenido del archivo ejecutable. Página 205 del libro base.

6. Un proceso con Pid=2078 realiza una llamada al sistema fork(), a continuación uno de los procesos resultantes recibe como resultado de la llamada 2375 y realiza una llamada al sistema execv("./algoritmo1",0), Indicar cuál de las siguientes afirmaciones es correcta:

a) El programa algoritmo1 se carga en memoria como proceso hijo del proceso 2078.

b) El programa algorigmo1 se convierte en un proceso con Pid=2375.

c) El programa algoritmo1 se carga en memoria principal como un proceso con Pid=2078.

d) Ninguna de las otras afirmaciones es verdadera.

RESPUESTA CORRECTA c): Si fork() devuelve 2375 se trata del proceso PADRE (Al hijo le devolvería 0). Al ejecutar execv se carga el ejecutable algoritmo1 en el proceso padre, esto es 2078. Ver página 206 del libro base.

7. Si un proceso recibe una señal SIGABRT que acción se realizaría:

a) Se escribe el contexto del proceso contexto a nivel de usuario y registros en un archivo llamado “core” y se finaliza el mismo sin poder capturar la señal.

b) El proceso puede capturar la señal para intentar cerrarse limpiamente.

c) El efecto es exactamente el mismo que si recibiese la señal SIGSTOP.

d) Ninguna de las otras afirmaciones es verdadera.

Page 3: PED1 Nov15 Con Soluciones

RESPUESTA CORRECTA b): La señal SIGABRT SI puede capturarse. No ocurriría lo mismo con la señal SIGKILL. Ver tabla de la página 169 del libro base.

8. Un proceso A que se ha creado utilizando “sudo” tiene un Pid=5749 y un uid=87. Si dicho proceso realiza la llamada al sistema kill(-1,SIGTERM), ¿qué ocurriría?:

a) El proceso A finaliza.

b) Finalizan todos los procesos con uid=87.

c) Finalizan todos los procesos con Pid>1.

d) Finalizan todos los procesos con Pid<5749.

RESPUESTA CORRECTA c): Sudo es un proceso del usuario administrador root con S_ISUID=1 por lo tanto al ejecutar con “sudo” se establece el euid del superusuario. De este modo se finalizan todos los procesos excepto el que tiene Pid=0 y Pid=1. Ver la página 182 del libro base

9. Indicar que sucedería a un proceso que contuviese la siguiente secuencia de instrucciones en su código fuente en C:

signal(SIGVTALRM ,fun1);

alarm(10);

pause();

a) El proceso se pausa durante 10 segundos de tiempo real y después continúa sin ejecutar fun1.

b) El proceso se pausa durante 10 segundos de tiempo real. Transcurrido ese tiempo se ejecuta el código de la función fun1 y se continúa con el programa.

c) El proceso se pausa durante 10 segundos de tiempo virtual. Transcurrido ese tiempo se ejecuta el código de la función fun1 y se continúa con el programa.

d) Ninguna de las otras afirmaciones es verdadera.

RESPUESTA CORRECTA a): la función fun1 se asocial a la alarma de tiempo virtual SIGVTALRM, pero alarm(10) produce una alarma de tiempo real SIGALRM desbloqueando al proceso que está en pausa pero sin que se ejecute fun1. Ver el ejemplo de la página 230 del libro base

10. Un proceso invoca la llamada al sistema res=nice(17) y a continuación res2=nice(10). Indicar cuál de las siguientes afirmaciones es correcta:

a) Si el proceso no había cambiado su valor de amabilidad previamente, entonces se establece p_nice =47.

b) Si el proceso no había cambiado su valor de amabilidad previamente, entonces se establece p_nice =10.

c) Los valores devueltos son res=-1, res2=10.

d) Ninguna de las otras afirmaciones es verdadera.

Page 4: PED1 Nov15 Con Soluciones

RESPUESTA CORRECTA d): a) es incorrecta ya que el valor de amabilidad no puede ser mayor de 39, b) es falsa debido a que nice() incrementa el valor de amabilidad, c) es incorrecta ya que no hay ningún error (res=-1) en la primera llamada. Ver las páginas 235 y 236 del libro base.