CUESTIONARIO DEL TEMA 4. GESTION DE PROCESOS 1. ¿Cuáles de las siguientes afirmaciones son verdaderas? (a) El proceso solo utiliza durante la carga para construir la imagen de memoria inicial (b) El proceso lo utiliza durante la ejecución como soporte de swap (c) Después de iniciar la ejecución el proceso ya no lo necesita al fichero ejecutable para nada (d) Puede haber más de un proceso por cada fichero ejecutable (e) Puede haber más de un fichero ejecutable para un mismo proceso 2. ¿Cómo se hace en POSIX para que un proceso P cree otro proceso Q que ejecute el mismo programa X desde el principio? (a) fork(); (b) exec(“X”) (c) fork(); exec(“X”) (d) exec(“X”); fork() 3. Cuándo entra un proceso en estado ZOMBIE a) Cuando muere el padre y él no ha terminado todavía b) Cuando muere el padre sin haber hecho wait() por él c) Cuando él muere y su padre no ha hecho wait() por él d) Cuando él muere y su padre no ha terminado todavía 4. ¿Cuál de las siguientes afirmaciones acerca de la llamada exec() es falsa? a) Permite ejecutar mandatos (programas) con cualquier número de argumentos b) Si funciona bien devuelve 0 c) Puede cambiar el identificador efectivo de usuario d) Solo retorna si va mal 5. ¿Qué información comparten un proceso A y su hijo B después de ejecutar el siguiente código? A: if (fork() != 0) wait(&status); else execv(B, argumentos); a) La imagen de memoria b) La tabla de ficheros abiertos c) El contexto hardware d) La tabla de señales e) El entorno variable=valor 6. ¿Cuál de los siguiente elementos no forma parte exclusiva de la información caracterizadora de un proceso (imagen de memoria, contexto h/w y BCP) a) contador de programa b) tabla de páginas del proceso c) puntero de posición de un fichero d) puntero de pila 7. ¿Cuáles de los siguientes atributos es compartido entre todos los hilos de un mismo proceso? a) Una pila de ejecución b) Un estado de ejecución (ejecutando, listo, bloqueado) c) Un contexto de ejecución d) Un código ejecutable 8. ¿Qué cambio de contexto tardará menos? a) El producido entre dos hilos ULT del mismo proceso b) El producido entre dos hilos ULT de dos procesos distintos c) El producido entre dos hilos KLT del mismo proceso d) El producido entre dos hilos KLT del dos procesos distintos 9. ¿Siempre que se produce un cambio de contexto se produce un cambio de proceso? ¿Y un cambio de modo? 10. Cuando se crea un nuevo hilo, éste tiene acceso a a) una copia de la región de datos del proceso b) no tiene acceso a la región de datos del procesos c) la región de datos del proceso d) a la región de datos de proceso marcándolo previamente como “copy-on-write” 11. ¿Qué sucede cuando un proceso recibe una señal, como por ejemplo SIGINT? 12. ¿Qué valor inicial toma el contador de programa en un fork(), en un exec() y en un pthread_create? Y el puntero de pila? ¿Cuál es el contenido inicial de la nueva pila para estas tres llamadas? ¿Qué valores iniciales toman los registros generales? 13. Considerar las siguientes operaciones internas del sistema operativo ● reservar y liberar una entrada de la tabla de procesos ● rellenar/actualizar el BCP ● insertar y eliminar un proceso en la cola de procesos ● cambiar de contexto ● planificar1 ● leer e interpretar un fichero ejecutable ● crear una pila (¿cuál es su contenido inicial?) ● crear una región de memoria (¿de qué tipo?) ● compartir y duplicar una región ● eliminar una región de memoria Se pide especificar cuáles y de qué manera se llevan a cabo las anteriores operaciones durante el servicio de las siguientes llamadas a) fork() b) exec() c) exit() y wait(), sincronizadas en la terminación de un proceso 14. Estableciendo una comparación con un sistema operativo monohilo explica un comportamiento sensato de un sistema operativo multihilo cuando dentro de un hilo se efectúa una llamada a) fork() b) exec() 15. ¿Cuáles de estas operaciones no es ejecutada por el activador (dispatcher) a) Restaurar los registros de usuario con los valores almacenados en el BCP b) Restaurar el contador de programa c) Restaurar el puntero que apunta a la tabla de páginas del proceso d) Restaurar la imagen de memoria del proceso 16. Puede producirse un cambio de proceso en un sistema con planificador basado en el algoritmo “primero el más trabajo más corto” (SJF) además de cuando se bloquea o termina el proceso? 17. ¿Qué algoritmo de planificación será más conveniente para optimizar el rendimiento de la CPU en un sistema que sólo tiene procesos sin entrada/salida? 18. ¿Cuál de las siguientes políticas de planificación es más adecuada para un sistema de “tiempo compartido”? a) SJF b) RR c) Prioridades d) FCFS e) SRTF 19.¿Cuál es el criterio de planificación más relevante en un sistema de tiempo compartido, el tiempo de respuesta o la optimización en el uso del procesador? 20. ¿Cuál de las siguientes transiciones entre los estados de un proceso no se puede producir en un sistema con algoritmo de planificación expropiativo? a) Bloqueado a Listo b) Ejecución a Listo c) Ejecución a Bloqueado d) Listo a Ejecución 21.En un sistema que usa un algoritmo de planificación RR puro ¿cuántos procesos como máximo pueden cambiar de estado cuando se produce una interrupción del disco que indica que ha terminado una operación sobre el mismo? ¿Y si el sistema aplica planificación LINUX? 22. En cada activación del SO se produce una de las siguientes alternativas ● No cambia el estado de ningún proceso ● Cambia el estado de un proceso pero no hay cambio de contexto ● Hay un cambio de contexto voluntario ● Hay un cambio de contexto involuntario ¿Cuáles de estas alternativas pueden ocurrir para cada uno de tres situaciones siguientes, suponiendo que se usa un algoritmo de planificación expropiativa basada en prioridades a) Interrupción de reloj b) Interrupción de disco c) Llamada al sistema 23. ¿Cúal es la semántica de la llamada n=wait(&status) en POSIX?. ¿En qué sistuaciones produce un cambio de proceso y en cuáles no? ¿Cuáles son los recursos mínimos que el kernel debe mantener (no liberar) de un proceso “zombie”? 24. ¿Cómo se denomina al planificador que decide si se debe desalojar un proceso de memoria principal debido a que el sistema está sobrecargado? ¿Cómo se denomina el parámetro que contabiliza el número de procesos ejecutados por unidad de tiempo? ¿Cómo se denomina el tiempo total que un proceso permanece en la cola de Listos? 25. En un sistema los procesos recién creados entran en una cola de espera. Entran en la cola de Listos solo cuando se advierte que la utilización de la CPU cae por debajo del 20%. Este sistema a) utiliza planificación expropiativa b) utiliza planificación de largo plazo c) aplica envejecimiento de procesos d) aplica multi-nivel (2 niveles) con realimentación 26. Considerar un algoritmo RR en el que cada elemento de las colas de proceso es un puntero a un BCP ¿Qué efecto tendría colocar dos punteros al mismo BCP en la cola de Listos? ¿Se puede conseguir el mismo efecto sin necesidad de emplear punteros duplicados? 27. Enumerar al menos tres puntos de planificación del planificador a Largo Plazo (planificación de jobs) 28. Enumerar al menos tres puntos de planificación del planificador a Medio Plazo (swapper). ¿Qué relación tiene la planificación MP con el fenómeno de la “hiperpaginación” 29. ¿De qué políticas de planificación básicas participa la planificación aplicada en el kernel Linux 2.4 ? (Se admite más de una respuesta) a) Round-robin b) Prioridad con expropiación c) Prioridad sin expropiación d) SRTF e) Multinivel (con cuántos niveles) f) Multinivel con realimentación (con cuántos niveles) g) FCFS h) RMS de tiempo real 30. ¿Cómo evita la inanición de procesos el planificador de Linux 2.4? (Se admite más de una respuesta) a) Mediante la corrección de prioridad nice() b) Mediante la bonificación de prioridad por evaluación de tiempo de espera c) Mediante el mecanismo de rondas (“épocas”) de ejecución d) Mediante la política round-robin e) No la evita 31. ¿En un sistema operativo SMP qué se entiende por afinidad de un proceso? Se admiten varias respuestas. a) El conjunto de procesadores en los que es conveniente ejecutar el proceso b) El conjunto de procesadores a los que está restringido la ejecución del proceso c) El último procesador en el que se ejecutó el proceso d) El procesador que ejecuta el código del kernel durante la ejecución del proceso e) El procesador donde comenzó a ejecutarse inicialmente el proceso (su procesador padre)