Banco de Preguntas-Unidad2 Respuestas

SISTEMAS OPERATIVOS UNIDAD 2 BANCO DE PREGUNTAS 1. Explique el concepto de modelo de proceso. Consiste en que realmente

Views 161 Downloads 46 File size 149KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SISTEMAS OPERATIVOS UNIDAD 2 BANCO DE PREGUNTAS 1. Explique el concepto de modelo de proceso. Consiste en que realmente los procesos (en ambiente de multiprogramaciòn) se ejecutan secuencialmente, pero el SO le da la apariencia al usuario de que se ejecutan en paralelo 2. ¿Cuáles son los cuatro eventos principales que causan la creación de procesos? • 1. La inicialización del sistema • 2. La ejecución por parte de un proceso (en ejecución) de una llamada al sistema de creación de un nuevo proceso. • 3. La petición por parte del usuario de la creación de un nuevo proceso. • 4. El inicio de un trabajo en batch. 3. Mencione las cuatro condiciones bajo las cuales terminar la ejecución de un proceso. • 1. El proceso completa su trabajo y termina (voluntariamente). • 2. El proceso detecta un error y termina (voluntariamente). • 3. El sistema detecta un error fatal del proceso y fuerza su terminación. • 4. Otro proceso fuerza la terminación del proceso (por ejemplo en UNIX mediante la llamada al sistema kill). 4. ¿A qué se le llama proceso de primer plano (foreground) y a qué proceso de segundo plano (background)? Cuando un sistema operativo arranca, se crean típicamente varios procesos. Algunos de esos procesos son procesos de superficie (o en primer plano), esto es, procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos. Otros son procesos de fondo (o en segundo plano), que no están asociados con usuarios particulares, sino que tienen alguna función específica.

5. ¿En cuál de los dos SO existe jerarquía de procesos: en UNIX o en Windows? En UNIX, un proceso y todos sus hijos y demás descendientes forman juntos un grupo de procesos. Por el contrario, Windows no ofrece ningún concepto de jerarquía de procesos. Todos los procesos son iguales. 6. Mencione los tres estados y las cuatro transiciones de estado que un proceso puede tener. Los 3 estados:  1. En ejecución (utilizando realmente la CPU en ese instante).  2. Preparado ò Listo (ejecutable; detenido temporalmente para permitir que otro proceso se ejecute).  3. Bloqueado (incapaz de ejecutarse hasta que tenga lugar algún suceso externo). Las 4 Transiciones:  1. El proceso pasa de ejecución a bloqueado  2. El proceso pasa de ejecución a preparado

 3. El proceso pasa de preparado a ejecuciòn  4. El proceso pasa de bloqueado a preparado (listo)

7. En la Tabla de procesos del SO se almacena la PCB de cada proceso. La PCB tiene tres campos. ¿Qué información almacena en cada uno de ellos?

Gestión de procesos Registros Contador de programa (PC) Registro de estado (SR o PSW) Puntero de pila (SP) Estado del proceso Prioridad Parámetros de planificación Identificador de proceso (pid) Proceso padre Grupo del proceso Señales Instante de comienzo Tiempo de CPU utilizado Tiempo de CPU de los hijos Tiempo restante para la siguiente alarma Gestión de memoria Puntero al segmento de código Puntero al segmento de datos Puntero al segmento de pila Gestión de ficheros Directorio raíz Directorio de trabajo Descriptores de ficheros Identificador de usuario (uid) Identificador de grupo (gid)

8. ¿A qué se le llama cambio de contexto (context switch) en ambiente de multiprogramación? Cuando se le quita el procesador a un proceso para meter a ejecución a otro proceso. Esto implica guardar el contexto de ejecución del primer proceso (en su PCB) y cargar el contexto de ejecución (desde su PCB) del segundo proceso.

9. ¿Qué es un vector de interrupción? Cada clase de dispositivos de E/S (como por ejemplo las disqueteras, los discos duros, los

timers o los terminales) tiene asociada una posición de memoria que se denomina el vector de interrupción utilizado por ese tipo de dispositivos. Esta posición de memoria contiene la dirección de la rutina de tratamiento de la interrupción que atiende a ese tipo de dispositivos.

10. ¿Qué ventaja tiene que un proceso tenga múltiples hilos (threads)? Estos compartan un conjunto de recursos de manera que puedan trabajar estrechamente juntos para realizar alguna tarea, de manera más eficiente.

11. Para un proceso multihilos, mencione los elementos que son propios del proceso y los que son propios de un hilo.

Atributos propios de los procesos: Espacio de direcciones Variables globales Ficheros abiertos Procesos hijos Alarmas pendientes Señales y controladores de señales Información de contabilidad

Atributos propios de los hilos (threads): Contador de programa Registros Pila Estado

12. ¿Cuáles son las tres ventajas de implementar un paquete de hilos en el espacio del usuario? 1.-El paquete de threads a nivel de usuario puede implementarse sobre un sistema operativo que no soporte threads. 2.- Permiten que cada proceso tenga su propio algoritmo de planificación ajustado a sus necesidades. 3.- Se dimensionan mejor, ya que los threads a nivel del núcleo requieren invariablemente en el núcleo algún espacio para la tabla de threads y algún espacio de pila, lo que puede resultar un problema cuando el número de threads es muy grande.

13. Mencione tres desventajas de implementar hilos en el espacio del usuario 1.- El primero de ellos es el problema de cómo se implementan las llamadas al sistema bloqueantes. 2.- Otro problema con los paquetes de threads a nivel de usuario es que si un thread comienza a ejecutarse, ningún otro thread en ese proceso podrá volver a ejecutarse mientras que el primer thread no ceda voluntariamente la CPU. 3.- Los programadores desean utilizar los threads precisamente en las aplicaciones donde los threads se bloquean muy a menudo, como por ejemplo en un servidor web multihilo.

14 ¿Quién se encarga de administrar los hilos implementados en el espacio del usuario y quién los implementados en el espacio del núcleo (kernel)? En el espacio del usuario el STE (Sistema de Tiempo de Ejecuciòn) y en el Nùcleo, el propio nùcleo del SO.

15¿Por qué es conveniente reciclar hilos cuando éstos se implementan en el espacio del núcleo (kernel)? Debido al coste relativamente alto de crear y destruir los threads en el núcleo, algunos sistemas toman un enfoque medio-ambientalmente correcto reciclando sus threads. Cuando se destruye un thread, éste se marca como un thread no ejecutable, pero sin que se vean afectadas de otro modo sus estructuras de datos del núcleo. Posteriormente, cuando haya que crear un nuevo thread, se procederá a reactivar un antiguo thread marcado, ahorrando de esta manera algo de la sobrecarga de la creación normal de un thread.

16Explique el funcionamiento de los hilos emergentes (pop-up threads). La llegada de un mensaje (petición de servicio) provoca que el sistema cree un nuevo thread para tratar el mensaje. Una vez atendido el mensaje, el hilo se destruye.

17¿A qué se le denomina condición de competencia o condicion de carrera (race condition)? Situaciones donde dos o más procesos están leyendo o escribiendo sobre datos compartidos y el resultado final depende de quien se ejecute precisamente en cada momento, se denominan condiciones de carrera. 18Mediante el ejemplo de spooler de impresora, explique cómo es que se presenta una condición de competencia (race condition). Imaginemos que nuestro directorio de spool tiene un número muy grande de entradas, numeradas 0, 1, 2, …, cada una de ellas capaz de contener un nombre de fichero. Imaginemos también que se tienen dos variables compartidas, out, que apunta al siguiente fichero a imprimir, e in, que apunta a la siguiente entrada libre en el directorio. Más o memos simultáneamente, los procesos A y B deciden cada uno de ellos mandar a la cola de impresión un fichero. El proceso A lee in y guarda el valor 7 en una variable local denominada next_free_slot. El proceso B lee entonces in, obteniendo también un 7. Igualmente, B almacena ese valor en su variable local next_free_slot. En ese momento ambos procesos piensan que la siguiente entrada disponible es la 7. Ahora ambos procesos piensan que la siguiente entrada esta disponible, el proceso B sigue ejecutándose, B guarda en la dirección lo que quiere imprimir, y actualiza in con 8 y finaliza la operación, por otro lado A vuelve a pasar a ejecución, consulta a next_free_slot y ve que es 7 y escribe en el fichero lo que quiere imprimir, de esta manera al sobrescribir se borra lo que había escrito B, y A actualiza in a 8. El usuario del proceso B nunca llegará a recibir la impresión del fichero que encargó. 19¿Cómo se pueden evitar las condiciones de competencia (race conditions)? Con Exclusión mutua, esto es, alguna manera de asegurar que si un proceso está utilizando una variable compartida (o fichero compartido) los demás procesos estarán excluidos de hacer uso de esa misma variable. 20¿A qué se le denomina región crítica o sección crítica de un programa? A la parte del programa donde se accede a la memoria compartida. 21¿A qué se le denomina espera activa (Busy Waiting)? La comprobación continua de una variable hasta que contenga algún valor determinado. 22Mencione cinco algoritmos con espera activa para lograr la exclusión mutua.

Inhibición de interrupciones, Variables cerrojo, alternancia estricta, Solución de peterson, Instrucción TSL. 23¿Cuál es la función de las primitivas de comunicación Interprocesos (IPC) sleep y wakeup? Sleep es una llamada al sistema que provoca que el proceso que la invoca se bloquee, esto es, se suspenda hasta que otro proceso lo despierte. La llamada wakeup tiene un parámetro, que es el proceso a ser despertado. 24 El problema del productor-consumidor representa un ejemplo clásico en la comunicación interprocesos (IPC). Explique en qué consiste. Dos procesos comparten un búfer de tamaño fijo común. Uno de ellos, el productor, mete información en el búfer, y el otro, el consumidor, la saca. Surge un problema cuando el productor quiere meter un nuevo elemento en el búfer encontrándose éste ya completamente lleno. La solución es que el productor se duerma, no despertándose hasta que el consumidor saque uno o más elementos del búfer. Similarmente, si el consumidor quiere sacar un elemento del búfer y ve que el búfer está vacío, debe dormirse hasta que el productor meta algo en el búfer y lo despierte.

25 Para lograr la exclusión mutua en la IPC, se utilizan mecanismos como: semáforos, mutexes, y monitores. Explique qué es cada uno de ellos. Semáforo: variable entera para contar el número de señales enviadas para despertar un proceso guardadas para su uso futuro. Monitores: Un monitor es una colección de procedimientos, variables y estructuras de datos que están todos agrupados juntos en un tipo especial de módulo o paquete. Mutex: Una versión simplificada de los semáforos, que denominaremos variables de exclusión mutua (variables mutex). Estas variables sólo son apropiadas para conseguir la exclusión mutua en el acceso a algún recurso compartido o fragmento de código. 26Explique las dos primitivas usadas en la comunicación Interprocesos (IPC) con Paso de Mensajes. enviar(destinatario, &mensaje) ; y recibir(remitente, &mensaje) ; La primera llamada envía un mensaje a un destinatario dado y la segunda recibe un mensaje de un remitente dado (o de cualquiera, si al receptor no le importa el remitente).

27Entre los problemas clásicos de IPC, se encuentra el de Los Filósofos Comensales. Explíquelo en sus propias palabras. Este problema sirve para modelar procesos que están compitiendo por un número limitado de recursos. Cinco filósofos se sientan alrededor de una mesa y pasan su vida cenando y pensando. Cada filósofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer los fideos son necesarios dos tenedores y cada filósofo sólo puede tomar los que están a su izquierda y derecha. Si cualquier filósofo coge un tenedor y el otro está ocupado, se quedará esperando, con el tenedor en la mano, hasta que pueda coger el otro tenedor, para luego empezar a comer.

Si dos filósofos adyacentes intentan tomar el mismo tenedor a la vez, se produce una condición de carrera: ambos compiten por tomar el mismo tenedor, y uno de ellos se queda sin comer. Si todos los filósofos cogen el tenedor que está a su derecha al mismo tiempo, entonces todos se quedarán esperando eternamente, porque alguien debe liberar el tenedor que les falta. Nadie lo hará porque todos se encuentran en la misma situación (esperando que alguno deje sus tenedores). 28Entre los problemas clásicos de IPC, se encuentra el de Los Lectores y Escritores. Explíquelo en sus propias palabras. Modela el acceso a una base de datos. Por ejemplo, un sistema de reservaciones para vuelos para muchos procesos competidores que desean leer y escribir. Es aceptable tener varios procesos leyendo la base de datos al mismo tiempo, pero si un proceso esta actualizando (escribiendo) la base de datos, ningún otro proceso podrá tener acceso a ella, ni siquiera los lectores. 29Entre los problemas clásicos de IPC, se encuentra el de El Barbero Dormilón. Explíquelo en sus propias palabras. Modela el problema cliente-servidor. En un establecimiento hay un barbero, una silla de barbero y n sillas de espera para los clientes. Si no hay clientes presentes el barbero se sienta en la silla de barbero y se duerme. Cuando llega un cliente llega, debe despertar el barbero. Si llegan más clientes mientras el barbero esta atendiendo a un cliente, se sientan (si hay sillas disponibles), o bien, salen del establecimiento (si todas las sillas están ocupadas). 30¿Cuál es la función del Planificador de procesos en un SO multiprogramado? En un ordenador multiprogramado es frecuente que en un momento dado haya múltiples procesos compitiendo por el uso de la CPU al mismo tiempo. Esta situación se da siempre que dos o más procesos están simultánemente en el estado preparado. Si sólo hay una CPU disponible, es necesario hacer una elección para determinar cual de esos procesos será el siguiente que se ejecute. La parte del sistema operativo que realiza esa elección se denomina el planificador (scheduler).

31Hay cinco momentos en que el planificador debe entrar en ejecución para planificar procesos (hacer un process-switch). Descríbalos. Termina un proceso normalmente Se elimina (mata) un proceso Se crea un proceso Se bloquea un proceso Se le termina el quantum de tiempo a un proceso 32¿Qué significa que un algoritmo de planificación sea expulsor (preemptive) o noexpulsor (non-preemptive)? Un algoritmo de planificación expulsor (preemptive) escoge un proceso y permite que se ejecute durante un máximo de tiempo prefijado. Si el proceso está

todavía ejecutándose al final de ese intervalo de tiempo, se le suspende y el planificador escoge algún otro proceso para ejecutarse. Un algoritmo de planificación no expulsor (nonpreemptive) escoge un proceso para ejecutar dejándole que se ejecute hasta que se bloquee o hasta que el proceso ceda voluntariamente la CPU. 33Mencione cuatro algoritmos de planificación para Sistemas Batch. • Primero en Llegar Primero en Ser Servido • Primero el Trabajo más Corto • Tiempo Restante más Corto a Continuación • Planificación a Tres Niveles 34Explique el algoritmo de planificación El job más corto primero (Shortest Job First). Algoritmo no expulsor propio de sistemas en batch que asume que los tiempos de ejecución se conocen por anticipado. En base a ello, primero mete a ejecución los trabajos que menos tiempo de cpu consumen. 35Mencione cuatro de los siete algoritmos de planificación para sistemas interactivos. • Planificación Round-Robin • Planificación por Prioridades • Múltiples Colas • Proceso más Corto a Continuación • Planificación Garantizada • Planificación por Lotería • Planificación por Reparto Justo 36Explique el algoritmo de planificación Round-Robin. A cada proceso se le asigna un intervalo de tiempo, denominado su quantum (o también rodaja de CPU), durante el que se le permite ejecutarse. Si el proceso sigue ejecutándose todavía al final del quantum, se le expulsa de la CPU, concediéndose la CPU a algún otro proceso. Si el proceso se bloquea (o termina) antes de que transcurra el quantum se realiza por supuesto la conmutación de la CPU. 37Explique el algoritmo de planificación con Prioridades. La idea básica es trivial: a cada proceso se le asigna una prioridad, y siempre es el proceso ejecutable con mayor prioridad al que se le permite ejecutarse primero.