Teoría Describa los tres estados básicos de un proceso. Use un gráfico. Compare tiempo compartido y multiprogramación Explique y de ejemplo(s) de las primitivas de semáforos (wait y signal) Algoritmos() Construir y explicar un algoritmo software (por ejemplo DEKKER) para la coordinación y sincronización entre procesos (sólo la parte principal) Muestre los valores de ent y sal para un tampón(buffer) circular de 65 palabras después de que cada una de las operaciones siguientes: (ambos empiezan en cero). a. se meten 22 palabras b. se sacan 9 palabras c. se meten 40 palabras d. se sacan 17 palabras e. se meten 12 palabras f. se sacan 45 palabras g. se meten 8 palabras palabras h. se sacan 11 palabras ¿Cuál es problema de la sección crítica. Dé un ejemplo breve y/o describa un algoritmo que expliquen el problema? Construya el algoritmo para la condición de carrera, explíquelo y plantee una solución 1. En el contexto de la evolución histórica de los sistemas informáticos, los manejadores de dispositivos surgieron con a. Los Los prim primer eros os sis siste tema mas s b. Los sistemas sistemas de procesam procesamiento iento por lotes c. Los sistem sistemas as mult multipr iprogr ogram amado ados s d. Los sist sistema emas s de tiempo tiempo comp compart artido ido 2. En el contexto de la evolución histórica de los sistemas informáticos, por monitor sencillo se entiende a. Un programa programa resident residente e que llevaba llevaba a cabo de forma automá automática tica ciertas ciertas tareas tareas b. Un dispositiv dispositivo o hardware hardware que automat automatizaba izaba cierta ciertas s tareas tareas c. Un program programa a que se carga cargaba ba en memori memoria a cada vez que se se necesitaba necesitaba d. Todas Todas las las ante anterio riores res son son falsa falsas s 3. Un sistema de tiempo compartido es a. Un sistem sistema a mult multipr iprogr ograma amado do b. Un sistem sistema a multipro multiprogram gramado ado e interac interactivo tivo c. Un sist sistem ema a dis distr trib ibui uido do d. Todas Todas las las ante anterio riores res son son falsa falsas s 4. La confiabilidad es una propiedad especialmente relevante en los sistemas a. De proces procesam amien iento to por lotes lotes b. Mu Mult ltip ipro rogr gram amad ados os c. Dist istribu ribuid idos os d. De tiem tiempo po real real 5. El modo dual de operación en los sistemas es posible gracias a a. Que Que existe existe el el siste sistema ma oper operati ativo vo b. Que las instr instrucci ucciones ones máquina máquina están están dividida divididas s en privilegiad privilegiadas as y no privilegiadas c. Que la memori memoria a está dividid dividida a en memoria memoria del del sistema sistema y de usuar usuario io d. Que Que se dispon dispone e de llamad llamadas as al siste sistema ma
1.
Comentar la validez del algoritmo de exclusión mutua del programa siguiente. ¿Sirve como solución al problema de la sección crítica?: int flag1, flag2; void Proceso_1() { while (true) { // SECCION NO CRITICA flag1=0; while (flag2==0) { flag1=1; while (flag2==0) NULL; flag1=0; } // SECCION CRITICA
void Proceso_2() { while (true) { // SECCION NO CRITICA flag2=0; while (flag1==0){ flag2=1; while (flag1==0) NULL; flag2=0; }
flag1=1; // SECCION NO CRITICA }
// SECCION CRITICA
flag2=1; // SECCION NO CRITICA }
} } 2.
[El siguiente código representa una solución al problema de lectores y escritores Proceso escritor Inicio wait(sem1) escribir signal(sem1) fin
Proceso lector Inicio wait(sem2) nlec=nlec+1 leer nlec=nlec-1 signal(sem2) fin
Si se asume que inicialmente todos los semáforos se encuentran abiertos, esto es, con valor interno 1, y que la variable nlec vale 0, contestar verdadero o falso a cada una de las siguientes afirmaciones y dar una breve explicación del porqué de la respuesta. a) Se garantiza garantiza la exclusión exclusión mutua mutua en el acceso a la variable variable nlec b) Existe Existe priorid prioridad ad para escritores escritores c) En esta solució solución n existe inanici inanición ón para lectores lectores d) En esta solución solución existe existe inanición inanición para escritor escritores es e) Dos escritores escritores pueden estar escribiendo simultáneamente, simultáneamente, siempre siempre que no haya un lector lector esperando a leer f) La solución solución no es correc correcta ta porque porque puede produci producirr interbloq interbloqueo ueo g) Si existen lectores lectores leyendo entonces un nuevo lector podrá entrar entrar a leer, siempre siempre que no haya escritores esperando poder escribir h) Esta solución solución sí sí es correcta. correcta. [] ¿Con cuál de las siguientes afirmaciones te quedarías? a) La instrucción de wait o espera sobre un semáforo duerme siempre al proceso llamador. llamador. b) Si se ejecuta un un operación signal o señal sobre un semáforo semáforo cuyo valor actual es 6, deja un valor de 7 en el semáforo excepto si existen procesos en espera por el mismo, en cuyo caso se queda con 6. c) Para resolver el problema de la sección sección crítica, basta basta con emplear un semáforo semáforo inicializado inicializado a uno. d) Para lograr la la ejecución de manera exclusiva exclusiva de una porción porción de código basta con emplear emplear un semáforo inicializado a uno. 4. [] Un proceso en estado de bloqueo: a) Siempre Siempre espera espera por la la ocurrencia ocurrencia de un un evento. evento. b) Siempre Siempre espera espera por la conclusión conclusión de una activi actividad dad de E/S. E/S. 3.
c) Reside en la cola de preparados en espera espera de entrar nuevamente en la la CPU. d) Reside Reside en la cola cola de procesos procesos de baja baja prioridad. prioridad. 5. []. La multiprogramación implica necesariamente a) conc concur urre renc ncia ia b) para parale leli lism smo o c) proces procesami amient ento o por lote lotes s d) tiemp tiempo o compa comparti rtido do 6. [] ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? a) de “bloqu “bloqueado” eado” a “prepar “preparado” ado” b) de “prepa “preparado” rado” a “bloque “bloqueado” ado” c) de “bloqu “bloqueado” eado” a “en ejecución ejecución”” d) de “en “en ejecució ejecución” n” a “bloqu “bloqueado” eado” 7. []. El problema de mutua exclusión puede resolverse… a) …utilizando la instrucción instrucción test_and_set, si el hardware hardware subyacente la provee b) …utiliza …utilizando ndo el algori algoritmo tmo de Dekker Dekker c) …utilizando el while con una variable variable bolean (como (como puerta abierta abierta o puerta puerta cerrada) d) Todas Todas las las anter anterior iores es e) Dos de las las anter anterior iores es
Completar los espacios en blanco. a) La _____ _______ _____ _____ ____ __ dism dismin inuye uye el tiem tiempo po de prep prepar arac ació ión n para para la real realiz izaci ación ón de un trabajo. b) El ______________ fue uno de los primeros sistemas de computación múltiples que trabajaban en conjunto para mejorar el rendimiento. c) El uso de ___________ ___________ mejora mejora el rendimi rendimiento ento aún si la CPU es mucho más rápida rápida que el dispositivo de entrada. d) Los sistemas sistemas con disco disco superaron superaron consider considerablem ablemente ente a la ___________ ___________ pues las las cintas son un medio de almacenamiento de acceso directo. e) El _________ puede leer la entrada de un trabajo mientras imprime la de otro distinto. f) La _____________ _______________ __ carga en en memoria memoria principal principal a varios varios trabaj trabajos os para que que la CPU los ejecute concurrentemente. g) El __________ casi siempre mantiene ocupados a la CPU y a los dispositivos de E/S. h) En los los prim primer eros os siste sistema mass el tiem tiempo po de ___________ para realizar un trabajo fue considerable Construir un cuadro comparativo entre Buffering y Spooling Defina y trate brevemente los siguientes temas. 1. La diferencia diferencia entre entre la instru instrucción cción de asignació asignación n "s := s + 1" y SIGNAL SIGNAL (s). (s). Ejemplo Ejemplo 2. La Instrucc Instrucción ión Evaluar Evaluar y asignar asignar (Test (Test and and Set). Utilidad Utilidad 3. Estado Estadoss de un proces proceso o y transic transición ión entre entre ellos ellos.. ¿ qué qué pasa pasa (si (si algo algo pasa pasa)) si se invi invier erte ten n las las dos primer primeras as opera operaci cion ones es WAIT WAIT en la implementación genérica de "n" productores-consumidores ? . Probar y/o explicar. Construya una solución software tipo PETERSON para TRES PROCESOS. Analice su solución (haga una prueba de escritorio) en los números de instrucción que usted considere utilizando una muestra adecuada.
Comentar la validez del algoritmo de exclusión mutua del programa siguiente: int flag1, flag2; void Proceso_1() { while (true) { // SECCION NO CRITICA flag1=0; while (flag2==0) { flag1=1; while (flag2==0) NULL; flag1=0; } // SECCION CRITICA flag1=1; // SECCION NO CRITICA } } void Proceso_2() { while (true) { // SECCION NO CRITICA flag2=0; while (flag1==0){ flag2=1; while (flag1==0) NULL; flag2=0; } // SECCION CRITICA flag2=1; // SECCION NO CRITICA } } 1.
2.
3.
un sistema operativo a. es un programa de aplicación b. pueden ser multiproceso c. pueden ser distribuidos d. pueden ser time sharing e. pueden ser batch Los sistemas operativos pueden definirse como a. administrador de recursos y/o máquina extendida b. un sistema experto y/o AVL c. lista encadenada y/o red petri d. árbol binario de búsqueda y/o gramática de contexto libre e. tabla hueca y/o detector de colisiones la multiprogramación a. usa memoria compartida b. necesita multiprocesamiento c. necesita plataforma cliente servidor
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
d. utiliza las primitivas de sincronización e. no es realizable en ambientes de tiempo compartido los sistemas de tiempo compartido (marque la incorrecta) a. son conversacionales b. atiende a varios usuarios c. posee fuerte gestió de archivos d. no gestiona memoria virtual los sistemas de tiempo compartido (marque la incorrecta) a. ofrece tiempo de respuesta cortos b. mantiene una interrogación por polling c. no puede estar en simultáneo con la técnica por lotes d. utiliza buffering e. utiliza spooling el sistema operativo(marque la incorrecta) a. es software de base b. posibilita el uso eficaz de los recursos c. es una máquina extendida d. oculta el hardware e. son fáciles de construir Son recursos NO administrados por el sistema operativo a. PBI b. CPU c. E/S d. RAM El spooling: a. utiliza DASD b. se utilizó en el MARK I c. secuencia los trabajos d. utiliza un monitor residente e. Ninguna El buffering a. utiliza memoria intermedia b. utiliza principalmente cintas c. mantiene ocupada la CPU y los dispositivos d. a y c e. ninguna los tipos de trabajo limitados a. por proceso, dedican muy poco tiempo en la E/S b. por E/S, dedican mucho tiempo a CPU c. por proceso, originó la multiprogramación d. b y c e. ninguna Los sistemas de tiempo real a. dan tiempo de respuesta largos (minutos) b. la información es casi permanente (no se actualiza) c. no necesita manejar interrupciones con eficacia d. no necesita manejo de prioridades e. permanece prácticamente inactivo para atender evento de entrada. el "Relocatable code" NO se refiere a: a. código de máquina b. convertir direcciones relativas c. convertir direcciones absolutas d. a y b e. a, b y c los sistemas interactivos a. son conversacionales
14.
15.
16. 17.
b. las repuestas con inmediatas c. no permiten alguna acción del usuario d. a y b e. ninguna son servicios de los sistemas operativos a. gestión de archivos b. protección c. contabilidad d. operaciones de E/S e. todas NO es programa del sistema a. intérprete de comandos b. editor c. tratamieno de archivos d. procesador de textos e. compilador Un proceso es un programa en ejecución. No es un estado activo de un proceso a. ejecución b. preparado c. bloqueado d. suspendido
1. Se tiene un sistema con 1000 procesos concurrentes que quieren usar un determinado recurso, e interesa que puedan usarlo simultáneamente el máximo número de ellos. Ahora bien, también es necesario impedir (por razones "supersticiosas") que alguna vez estén trece procesos exactamente usando el recurso al mismo tiempo. Más concretamente, si estando 12 procesos usándolo, un decimotercero desea hacerlo, éste se esperará hasta que llegue un decimocuarto, y entonces entrarán los dos juntos a la región crítica para usar el recurso. Pero en todo caso, si al querer entrar se detecta que existe otro que quiere salir, pero que está esperando para no dejar exactamente 13 dentro, el que entra hará que salga al mismo tiempo que él entra, el que está esperando a salir. Y simétricamente cuando quiera salir un proceso y haya otro esperando a entrar, así como cuando habiendo uno que quiera salir (sin estar otro esperando a entrar) quedarían 13 en la región crítica en caso de hacerlo (en este caso se ha de esperar también). Una solución válida para resolver este problema mediante semáforos sería la siguiente (se utilizan 2 variables compartidas y 2 semáforos): Variables compartidas: Dentro: Indica el número de procesos que están accediendo al recurso (puede valer 13, aunque realmente nunca podrá haber 13 procesos dentro). Inicializada a 0. Esperando: Valor lógico que indica si hay algún proceso esperando para entrar en la región crítica especial (intenta hacerlo habiendo 12 procesos dentro) o para salir de ella (intenta hacerlo habiendo 14 procesos dentro). Inicializada a False. Semáforos: Ex_mutua: Para evitar las condiciones de carrera en el acceso a las variables compartidas. Inicializado a 1. Espera: Para bloquear un proceso cuando intenta entrar en la región crítica especial habiendo 12 procesos dentro o cuando intenta salir de ella habiendo 14 procesos dentro. Inicializado a 0.
Supongamos ahora que nos dicen que, por problemas de saturación del recurso, no puede permitirse que haya más de 50 procesos accediendo simultáneamente al mismo (por supuesto, manteniendo las mismas condiciones del p roblema planteado inicialmente, incluidas las cuestiones supersticiosas). Modifique la solución anterior de forma que se evite este problema de saturación del recurso, es decir, que no pueda haber más de 50 procesos accediendo al mismo simultáneamente. 2.- El algoritmo de Perterson corresponde a: a) Una estrategia de sincronización de procesos. b) Una método de ordenación de sucesos en un sistema distribuido. c) Una política de sustitución de páginas al producirse un fallo de página. d) Una solución al problema de la exclusión mutua. 3.- la espera activa corresponde a: a) La acción de bloqueo que realiza un semáforo sobre un proceso. b) El estado bloqueado de un proceso pero no retirado a memoria secundaria. c) Cuando un proceso se mantiene chequeando una condición y, por lo tanto, consumiendo ciclos de CPU. d) La espera que realiza la operación wait sobre un contador. 4.- Para lograr la exclusión mutua de una sección crítica donde se accede a un recurso compartido inicialmente disponible a) El semáforo binario debe inicializarse a cero. b) El semáforo binario debe inicializarse a uno. c) La inicialización del semáforo binario depende del recurso que se comparta. d) Los semáforos no sirven para lograr la exclusión mutua de las secciones críticas. 1. El siguiente código representa una solución al problema de lectores y escritores Proceso escritor Proceso lector inicio inicio wait(sem1) wait(sem2)
escribir signal(sem1)
nlec=nlec+1 leer fin nlec=nlec-1 signal(sem2) fin Si se asume que inicialmente todos los semáforos se encuentran abiertos, esto es, con valor interno 1, y que la variable nlec vale 0, contestar verdadero o falso a cada una de las siguientes afirmaciones y dar una breve explicación del porqué de la respuesta. a) Se garantiza la exclusión mutua en el acceso a la variable nlec b) Existe prioridad para escritores c) En esta solución existe inanición para lectores d) En esta solución existe inanición para escritores e) Dos escritores pueden estar escribiendo simultáneamente, siempre que no haya un lector esperando a leer f ) La solución no es correcta porque puede producir interbloqueo g) Si existen lectores leyendo entonces un nuevo lector podrá entrar a leer, siempre que no haya escritores esperando poder escribir h) Esta solución sí es correcta. 1.¿Con cuál de las siguientes afirmaciones te quedarías? a) La instrucción de wait o espera sobre un semáforo duerme siempre al proceso llamador. b) Si se ejecuta un operación signal o señal sobre un semáforo cuyo valor actual es 6, deja un valor de 7 en el semáforo excepto si existen procesos en espera por el mismo, en cuyo caso se queda con 6. c) Para resolver el problema de la sección crítica, basta con e mplear un semáforo inicializado a uno. d) Para lograr la ejecución de manera exclusiva de una porción de código basta con emplear un semáforo inicializado a uno. 2.¿Con cuál de las siguientes afirmaciones te quedarías? a) Un sistema distribuido es un sistema multiprocesador, al que se suele hacer referencia también como sistema estrechamente acoplado. b) Hablar de un sistema que emplea multiprocesamiento simétrico es equivalente a hablar de un sistema paralelo en el que todos los procesadores son iguales y no existen unos procesadores principales y otros subordinados. c) En un sistema de tiempo real crítico existen eventos a los que es necesario responder en un plazo límite, por lo que es necesario que estos sistemas implementen tiempo compartido y memoria virtual. d) Todas las anteriores son ciertas. 3.Un proceso en estado de bloqueo: a) Siempre espera por la ocurrencia de un evento. b) Siempre espera por la conclusión de una actividad de E/S. c) Reside en la cola de preparados en espera d e entrar nuevamente en la CPU. d) Reside en la cola de procesos de ba ja prioridad. 4.¿Con cuál de las siguientes afirmaciones te quedarías? a) Las interrupciones evitan que la CPU esté continuamente interrogando a los dispositivos de E/S para saber si han concluido las operaciones de E/S pendientes. b) Cuando se van a transferir grandes volúmenes de datos es mejor disponer de DMA (acceso directo a memoria) que tener una E/S dirigida por interrupciones. c) En un sistema de tiempo compartido con una gestión de la E/S dirigida por interrupciones, cuando se produce una interrupción de un dispositivo de E/S mientras se ejecutan instrucciones en modo usuario, esta será atendida cuando el proceso finalice su cuanto de CPU. d) Cuando un dispositivo genera una interrupción, se salva el estado del proceso actualmente en ejecución (A), se atiende la interrupción mediante la rutina de servicio de interrupción correspondiente y se restaura el estado del proceso (X) que estaba pendiente de la finalización de dicha operación de E/S, siendo por tanto dicho proceso (X) el que dispondrá de la CPU para reanudar su ejecución. 5.¿Con cuál de las siguientes afirmaciones te quedarías?
a) Las llamadas al sistema y las excepciones funcionan como interrupciones del software: se gestionan igual que las interrupciones del hardware pero las provoca la propia CPU. b) Las llamadas al sistema se realizan mediante una instrucción especial que depende del procesador y que sirve para que el usuario cambie voluntariamente a modo privilegiado. c) Si programamos en un lenguaje de alto nivel, generalmente escribimos la llamada al sistema como una subrutina, y e l compilador la sustituye por la instrucción de máquina correspondiente. d) Todas las afirmaciones anteriores son ciertas. 6.¿Cuál de las siguientes afirmaciones es falsa en un sistema multiprogramado con una única CPU? a) Se pueden ejecutar N procesos concurrentemente. b) Es posible que sea un sistema de tiempo compartido y además multiusuario. c) Es posible que sea un sistema de tiempo compartido en el que se pueden ejecutar N procesos en paralelo. d) Podría ser un sistema multiprogramado y de tiempo compartido pero monousuario. 7.¿Con cuál de las siguientes afirmaciones te quedarías? a) El intérprete de órdenes es un programa del sistema que permite a los programadores realizar llamadas al sistema directamente. b) El sistema operativo ofrece una gama de servicios a los procesos. Los procesos acceden a estos servicios a través de llamadas al sistema. c) Los programas del sistema constituyen la interfaz de los usuarios con el sistema operativo y por ello siempre forman parte del núcleo del sistema operativo y son estos programas los que realizan en última instancia las llamadas al sistema. d) Toda las afirmaciones anteriores son ciertas. 8.¿Con cuál de las siguientes afirmaciones te quedarías? a) El diseño de un S.O. siguiendo una estructura monolítica dificulta el mantenimiento del mismo pero facilita su depuración. b) El diseño por capas de un S.O. hace que éste sea más eficiente que el monolítico. c) Una de los problemas que se presenta al seguir un diseño jerárquico es establecer una definición adecuada de las distintas capas y la interacción entre ellas. d) El enfoque micronúcleo es básicamente igual al diseño monolítico con la salvedad del tamaño final del núcleo. 9.Los búferes de E/S son: a) Un dispositivo de gestión de las entradas y salidas de datos al computador. b) El espacio de la memoria principal que se reserva para el almacenamiento intermedio de datos procedentes (o con destino) a los periféricos. c) La parte del disco utilizada para gestionar de forma intermedia los accesos de entrada y salida. d) La parte del disco utilizada para gestionar de forma intermedia los accesos de entrada y salida con los dispositivos muy lentos. 10.¿Con cuál de las siguientes afirmaciones te quedarías? a) El planificador a corto plazo que nunca provocará inanición entre los procesos es aquél que emplea una planificación por prioridades. b) El planificador a corto plazo según el algoritmo SJF es el que maximiza el tiempo medio de utilización de CPU. c) Con el algoritmo SJF expulsivo, la llegada de un nuevo proceso al sistema provoca siempre el desalojo del proceso actualmente en ejecución. d) Cuando en un sistema operativo se emplea el algoritmo de Turno Rotatorio (Round Robin) y la duración del cuanto es similar al tiempo invertido en la conmutación de procesos, el rendimiento es bajo. 11.¿Con cuál de las siguientes afirmaciones te quedarías? a) Un proceso pesado contiene uno o varios hilos que comparten los diferentes recursos salvo la memoria. b) Los hilos son siempre soportados e implementados por el sistema operativo. c) La comunicación entre los hilos de un proceso pesado se puede realizar fácilmente ya que comparten memoria y por tanto esta comunicación se puede realizar a través de la pila. d) El cambio de contexto entre hilos de diferentes procesos pesados es más costoso que entre hilos de un mismo proceso pesado. 12.Un sistema operativo es:
a) Un programa o conjunto de programas que sirve de intermediario entre los usuarios y el hardware de un sistema informático. b) Un administrador de los recursos físicos (ficheros, memoria, dispositivos de entrada/salida, …) y lógicos (semáforos, monitores…) de un sistema informático. c) Un programa más de un sistema informático. d) Todas las anteriores son ciertas. 13.El siguiente código pretende gestionar la exclusión mutua en el acceso a una sección crítica, usando la instrucción atómica swap(a,b) (“bloqueo” es una variable global booleana inicializada a “false” y “flag” es una variable booleana local a cada proceso). flag = true; repeat swap (bloqueo, flag); until flag = false; /* Sección crítica */ bloqueo = false; La solución propuesta: a) Cumple las propiedades de exclusión mutua, progreso y espera limitada. b) Cumple la propiedad de exclusión mutua pero padece el problema de la espera activa. c) Cumple las propiedades de exclusión mutua y progreso pero presenta el inconveniente de que sólo es válida para dos p rocesos. d) Cumple la propiedad de exclusión mutua y progreso pero padece el problema de la e spera activa. 14.Con el concepto de “independencia de dispositivo” nos referimos a: a) La construcción de dispositivos que sirvan para distintas máquinas. b) La utilización de las funciones del sistema operativo específicas para cada uno de los dispositivos. c) La abstracción que algunos sistemas realizan del sistema de E/S. d) Los sistemas de E/S que dependen únicamente del sistema operativo. 15.¿Con cuál de las siguientes afirmaciones te quedarías? a) El modo dual de operación es posible gracias a que el sistema operativo distingue dos modos de ejecución: modo usuario y modo núcleo, sin que sea necesario ningún soporte por parte del hardware. b) El modo dual de operación nos proporciona los medios para proteger el sistema operativo de los usuarios que puedan causar errores. Esta protección se consigue designando como instrucciones privilegiadas a aquellas instrucciones de máquina que pueden causar daño. c) Las instrucciones que permiten la gestión del temporizador (por ejemplo, la operación de lectura del temporizador) deberían ser privilegiadas. d) Cuando un sistema se encuentra en modo usuario, no debería permitir la ejecución de instrucciones privilegiadas, a menos que el usuario q ue las ejecute sea el usuario administrador de la máquina. Suponga un sistema en el que existen tres tipos de recursos (A, B, C) con 4, 3 y 4 posibilidades para cada tipo y tres procesos. Suponga el siguiente estado: El proceso 0 declaró como máximo utilizará 4, 1 y 2 de cada tipo. Actualmente posee 1 posibilidad del tipo de recurso A, y del tipo B. El proceso 1 declaró que como máximo utilizará 2, 3 y 2 de cada tipo. Actualmente pose 1 posibilidad del tipo B y 2 del tipo C. El proceso 2 declaró que como máximo utilizará 2, 1 y 2 de cada tipo. Actualmente pose 1 posibilidad del tipo A 1.- El fenómeno de espera activa por operaciones de entrada/salida se puede evitar utilizando: a) interrupciones b) instrucciones privilegiadas c) acceso directo a memoria (DMA) d) un pareja de registros base y límite 2.- En un sistema multihilo a) un proceso pesado puede tener varios hilos con distintos espacios de memoria
b) un proceso pesado tiene uno o más hilos con distintos conjuntos de registros c) por lo general, el tiempo de cambio de contexto es mayor entre hilos que e ntre procesos pesados d) dos hilos de un mismo usuario comparten el mismo espacio de memoria 3.- Sobre planificación de procesos: a) todos los métodos basados en prioridades tienen riesgo de inanición b) los métodos multicolas están concebidos para planificar sistemas multiprocesadores c) el algoritmo FCFS perjudica a los procesos intensivos en CPU d) los enunciados a, b y c son todos falsos 4.- Una llamada al sistema es: a. un servicio del sistema operativo b. un programa del núcleo del sistema operativo c. una orden del intérprete de órdenes d. un tipo especial de programa del sistema 5.- La técnica de planificación Round-Robin: a) en general, da mejores tiempos de espera que el FCFS b) minimiza el tiempo medio de retorno c) permite acotar el tiempo de espera máximo d) permite acotar el tiempo de respuesta máximo 6.- La técnica de Buffering permite que: a) Un proceso no espere debido a que un recurso no compartido esté asignado a otro proceso. b) Un proceso nunca espere debido a al lentitud de los dispositivos de E/S. c) Se solapen operaciones de CPU de un proceso con operaciones de E/S de otro proceso. d) Todas las afirmaciones anteriores son falsas. 7.- La independencia del dispositivo significa o implica que... a) el usuario no debe conocer características propias de cada clase de dispositivo. b) el juego de caracteres empleados por una terminal de caracteres ha de ser ASCII. c) los dispositivos deberían tener independencia de los procesos de usuario. d) los procesos de usuario deberían trabajar indirectamente con los dispositivos. 8.- La técnica del spooling... a) exige comprobar periódicamente la aparición de ficheros en el directorio de spool. b) solapa la ejecución en CPU de un proceso con la E/S de otros ya terminados. c) crea un dispositivo virtual dedicado a partir de uno compartido. d) En general, son ciertas a,b y c. 9.- ¿ Cuál de estos sistemas informáticos no se puede dar ? a) un sistema monoprogramado por lotes multiusuario. b) un sistema multiprogramado por lotes monousuario. c) un sistema monoprogramado de tiempo compartido multiusuario. d) un sistema multiprogramado de tiempo compartido monousuario. 10.- El modo dual de operación en los sistemas es posible gracias a a) Que existe el sistema operativo b) Que las instrucciones máquina están divididas en privilegiadas y no privilegiadas c) Que la memoria está dividida en memoria del sistema y de usuario d) Que se dispone de llamadas al sistema 11.- ¿Con cuál de las siguientes afirmaciones te quedarías? a) El diseño de un S.O. siguiendo una estructura monolítica permite que se pueda realizar un mantenimiento y depuración sencillos del mismo b) En general, el diseño por capas tiende a ser menos e ficiente que el monolítico c) El modelo cliente-servidor es equivalente a un sistema que sigue el enfoque jerárquico donde las capas pueden cambiar su nivel en la jerarquía d) El enfoque micronúcleo tiene como dos de sus mejores virtudes la portabilidad y el tamaño final del sistema operativo, siempre menor que el que se obtiene siguiendo cualquier otro esquema 12.- El interprete de órdenes, a) Es un programa del sistema y constituye la única forma de solicitar servicios al SO b) Ejecuta las órdenes indicadas por el usuario y para ello hace uso a su vez de las llamadas al
sistema c) Al ser un programa del sistema, no necesita realizar llamadas al sistema d) Siempre forma parte del núcleo del sistema operativo 14.- El controlador de E/S y la memoria intercambian datos directamente, sin la intervención de la CPU, cuando se tiene: a) E/S controlada por programa. b) E/S por interrupciones. c) DMA. d) Ninguna de las anteriores. 15.- El tiempo de cambio de contexto a) es constante para dos hilos cualesquiera b) es menor entre dos hilos pertenecientes a la misma tarea, comparado con hilos de distintas tareas. c) es mayor cuanto más grande es el cuanto de tiempo, si planificamos con un Round Robin. d) todas son falsas //** Comentar la validez del algoritmo de exclusión mutua del programa siguiente: int flag1, flag2; void Proceso_1() { while (true) { // SECCION NO CRITICA flag1=0; while (flag2==0) { flag1=1; while (flag2==0) NULL; flag1=0; } // SECCION CRITICA flag1=1; // SECCION NO CRITICA } }
void Proceso_2() { while (true) { // SECCION NO CRITICA flag2=0; while (flag1==0){ flag2=1; while (flag1==0) NULL; flag2=0; } // SECCION CRITICA flag2=1; // SECCION NO CRITICA } }
Dada la frase: «según el algoritmo del banquero, un sistema es inseguro cuando en él existe interbloqueo». ¿Es dicha afirmación cierta? Justificar detalladamente la respuesta. 2. En un sistema de tiempo real es crítico: a. El grado de ocupación del procesador b. El flujo de trabajo c. El tiempo de espera d. El tiempo de respuesta 3. La confiabilidad es una propiedad característica de los sistemas: a. Multiprogramados b. De tiempo compartido c. De tiempo real d. Distribuidos 5. Si una solución al problema de la sección crítica da lugar a inanición, entonces no cumple la condición: a. Exclusión mutua b. Espera limitada c. Progreso d. Todas las anteriores son falsas 6. ¿El problema de la sección crítica puede ser resuelto con semáforos? a. Siempre b. Depende de cómo estén implementados los semáforos c. Nunca d. Todas las anteriores son falsas 9. El intérprete de órdenes, a. es un programa del sistema b. Obtiene y ejecuta las órdenes especificadas por el usuario c. hace uso de las llamadas al sistema para desempeñar su función d. Todas las anteriores son ciertas 10. No tiene sentido hablar de a. un sistema multiprogramado monousuario b. un sistema de tiempo compartido multiusuario c. un sistema multiprogramado y multiprocesador d. un sistema de tiempo compartido no multiprogramado 11. El que ciertas instrucciones se llamen “atómicas” significa que: a. no se pueden ejecutar concurrentemente b. se han de ejecutar indivisiblemente c. No tiene ningún significado especial d. Todas son falsas 12. Se ejecutan consecutivamente dos operaciones P o WAIT sobre un semáforo. ¿ Es esto posible ? a. Sí b. Sí, siempre que no hayan sido procesos diferentes c. No d. No, si las ha realizado un solo proceso 13. La utilización de una cola de procesos para la implementación de las operaciones con semáforos: a. es necesaria para poder realizar una implementación de los mismos b. evita las soluciones con espera activa c. es posible gracias a las instrucciones atómicas ( test-and-set y swap) d. todas las anteriores son ciertas 14. Un sistema monoprocesador que lleve a cabo una planificación no expulsiva: a. No es implementable b. No puede ser multiprogramado ya que para ello es necesario una política expulsiva c. Presenta menos dificultades para controlar el problema de la sección crítica d. todas las anteriores son falsas
15. Sobre planificación de procesos: a. Todos los métodos basados en prioridades tienen riesgo de inanición b. Los métodos multicolas están concebidos para planificar sistemas multiprocesadores c. El cuanto de tiempo óptimo para un Round Robin viene influenciado por el tiempo de cambio de contexto d. a) y c) son ciertas //*** 1. El modo dual de operación se adoptó para que el sistema informático fuera a. más fácil de usar b. más eficiente c. más rápido d. más seguro 2. El procesamiento fuera de línea (off-line) se concibió para a. hacer que los dispositivos de E/S funcionaran más rápidamente b. conseguir que el procesador espere menos al realizar operaciones de E/S c. hacer que los dispositivos de E/S fueran más seguros d. todas las anteriores son ciertas 3. Si en una solución al problema de la sección crítica un proceso puede verse impedido de acceder a su sección crítica debido a que siempre hay otros procesos que entran antes que él, entonces no se cumple: a. la condición de progreso b. la condición de espera limitada c. la condición de exclusión mutua d. la condición de interbloqueo 5. ¿Qué tipo de planificador esstá íntimamente ligado con la gestión de la memoria? a. planificador de bajo nivel b. planificador de medio nivel c. planificador de alto nivel d. todas las anteriores son falsas 6. ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? a. de “bloqueado” a “preparado” b. de “preparado” a “bloqueado” c. de “bloqueado” a “en ejecución” d. de “en ejecución” a “bloqueado” 7. ¿Qué ventaja aporta el uso de interrupciones en las operaciones de E/S frente a no usarlas? a. aumenta la rapidez en las transferencias de datos b. aumenta la fiabilidad en las transferencias de datos c. contribuye a proteger la entrada/salida de accesos maliciosos d. permite comprobar fácilmente la finalización de las operaciones de E/S 8. La multiprogramación implica necesariamente a. concurrencia b. paralelismo c. procesamiento por lotes d. tiempo compartido 9. ¿Cuál de estas afirmaciones es cierta? a. un proceso pesado contiene uno o varios hilos b. un proceso pesado pertenece a uno o varios hilos c. un hilo contiene uno o varios procesos pesados d. un hilo pertenece a uno o varios procesos pesados 10. Linux es un sistema operativo a. por lotes b. de tiempo compartido c. de tiempo real
d.
distribuido
11. El núcleo del sistema operativo... a. es un proceso que se ejecuta en modo privilegiado b. contiene el código del programa de usuario c. contiene el código de los programas del sistema d. reside de forma permanente en memoria principal //** El siguiente algoritmo pretende solucionar el problema de la sección crítica para dos procesos, P0 y P1. Demuestre si el algoritmo es o no es correcto. El algoritmo usa un vector global “flag”, declarado de la siguiente forma: boolean flag[2]= {false, false}; i y j son dos constantes cuyos valores dependen del proceso que ejecuta el algoritmo, según esta tabla:
i
j
P0 0 1 P1 1 0 Algoritmo: 1 while (true){ 2 3 4 5 6 7
flag[i] = true; while flag[j]{ flag[j] = false; while flag[j] ; flag[j] = true; };
8
... sección crítica ...
9
flag[j] = false;
10
... sección no crítica ...
11
};
//** (2 puntos) Considere un sistema que es sometido a la siguiente carga de trabajo: Proceso Tiempo de llegada Tiempo de uso de CPU P0 0 4 P1 1 5 P2 2 2 P3 3 1 Para cada una de las siguientes políticas de planificación: a)Primero el más corto apropiativo; b) RoundRobin (cuanto=3); se pide: · Obtener los diagramas de Gantt. · Calcular el tiempo medio de retorno y el tiempo medio de espera. 1. Un proceso que está realizando una operación de Entrada/Salida está en estado de: a) Ejecución (run) b) Espera ( wait) c) Listo (ready ) d) Sometido ( submit ) 2. La técnica de buffering
a) Simultanea operaciones de CPU de un proceso con operaciones de Entrada/Salida de otro b) Simultanea operaciones de CPU de un proceso con operaciones de Entrada/Salida del mismo c) Simultanea varias operaciones de Entrada/Salida de un mismo proceso d) Todas las anteriores son falsas 3. Multiprogramación implica: a) Tiempo compartido b) Procesamiento en lote c) Interactividad d) Todas las anteriores son falsas 8. En la planificación de procesos en Windows-NT se emplea la política a) Round-Robin b) Primero el más corto c) Round-Robin con colas multinivel d) Prioridades variables 11. La implementación de un semáforo con la instrucción test-and-set a) no evita la espera activa b) no evita la inanición c) no evita el interbloqueo d) todas son ciertas 12. En un canal de capacidad nula no bloqueante, la comunicación sólo se podrá establecer a) cuando el emisor esté listo b) cuando el receptor esté listo c) cuando el receptor esté listo y el emisor haya dejado el mensaje con anterioridad en el canal d) cuando el emisor y el receptor estén ambos listos 13. Para resolver el problema de la exclusión mutua, puede emplearse una variable global turno con el identificador del proceso que tiene derecho a entrar en la sección crítica. Cada vez que un proceso sale de su S.C., cambia el valor de turno al identificador de otro proceso. Esta solución: a) es correcta b) no cumple la propiedad de exclusión mutua c) no cumple la propiedad de progreso d) no cumple la propiedad de independencia de la arquitectura 14. Los monitores a) garantizan la espera limitada, pero no la ejecución en exclusión mutua b) eliminan la necesidad de utilizar variables de tipo condición c) son tipos abstractos de datos d) todas las anteriores son ciertas 15. Sobre las herramientas de coordinación de procesos: a) los monitores no se han empleado en los lenguajes de programación porque su implementación es muy costosa. b) las regiones críticas resuelven cualquier problema de sincronización que sea resoluble con semáforos binarios. c) la semántica de las operaciones con variables condición está bien definida. d) los semáforos facilitan el encapsulamiento de la estructura de los datos y las operaciones privadas que se hacen sobre ellos. 16. Un semáforo tiene actualmente el valor 2. Si se ejecuta una operación wait o P sobre él, ¿qué sucederá? a) El proceso que ejecuta la operación se bloquea hasta que otro ejecute una operación signal o V. b) Tras hacer la operación, el proceso continuará adelante sin bloquearse. c) El proceso continuará adelante sin bloquearse, y si previamente existían procesos bloqueados a causa del semáforo, se desbloqueará uno de ellos.
d) Un semáforo jamás podrá tener el valor 2, si su valor inicial era 0 (cero) y se ha operado correctamente con él.
18. La instrucción fork del sistema UNIX... a) carga un archivo ejecutable en una zona de memoria y lanza el nuevo programa a ejecución concurrentemente b) carga un archivo ejecutable en la zona de memoria ocupada por el proceso que llama y empieza a ejecutar el nuevo programa c) crea un nuevo hilo de ejecución dentro del proceso que hace la llamada d) genera una copia de la memoria del proceso llamador, y crea un nuevo proceso que se ejecuta sobre la copia 1. ¿En qué punto de la evolución histórica de los Sistemas Operativos se introduce la utilización de los lenguajes de alto nivel FORTRAN y COBOL? a) Primeros sistemas b) Sistemas de procesamiento por lotes c) Sistemas multiprogrados d) Sistemas de tiempo compartido 2. Con el empleo de la técnica denominada secuencia automática de tareas se logró: a) Soportar multiprogramación b) Soportar la interactividad c) Reducir el tiempo de preparación ( set-up time ) d) Todas las opciones anteriores son falsas 3. ¿En qué punto de la evolución histórica de los Sistemas Operativos se introduce la técnica denominada operación fuera de línea (off-line)? a) Primeros sistemas b) Sistemas de procesamiento por lotes c) Sistemas multiprogramados d) Sistemas de tiempo compartido 4. La característica funcional denominada independencia de dispositivo se comenzó a soportar con la utilización de la técnica de: a) Buffering b) Spooling c) Operación fuera de línea d) Secuencia automática de tareas 5. Un sistema de tiempo compartido es un caso particular de: a) Sistema multiprogramado b) Sistema monousuario c) Sistema de procesamiento por lotes d) Sistema monotarea 6. Los sistemas operativos de tiempo real se caracterizan por: a) Ser sistemas muy veloces b) Permitir la multiprogramación c) Cumplir unas restricciones de tiempo de proceso definidas a priori d) Ser sistemas monotarea 7. El sistema operativo UNIX es un caso de: a) Sistema de procesamiento por lotes b) Sistema multiprogramado c) Sistema de tiempo compartido d) Sistema monotarea 8. El sistema operativo UNIX es un caso de: a) Sistema de procesamiento por lotes b) Sistema multiprogramado
c) Sistema de tiempo compartido d) Sistema interactivo 10. El ejecutor del WINDOWS-NT es: a) Un subsistema protegido b) La parte del sistema que se ejecuta en modo núcleo (o sistema) c) El responsable de la gestión de procesos e hilos d) El responsable de cargar y ejecutar procesos e hilos 11. ¿Cuál de estas herramientas elimina por sí misma el riesgo de interbloqueo? a) Instrucciones atómicas b) Regiones críticas c) Semáforos d) Ninguna de ellas 12. ¿Cuál de estas herramientas elimina por sí misma el riesgo de inanición? a) Instrucciones atómicas b) Regiones críticas c) Semáforos d) Ninguna de ellas 13. La llamada fork() del UNIX a) crea un nuevo proceso, compartiendo la memoria virtual del padre b) crea un nuevo proceso, cuya memoria virtual es una copia de la del padre c) crea un nuevo proceso, cuya memoria virtual es una copia de la del padre, pero compartiendo el mismo BCP d) crea un nuevo proceso, ejecutando el programa que se pasa como argumento 14. Cuando un proceso intenta acceder a una dirección de memoria fuera de su ámbito, se genera... a) una interrupción b) una excepción c) un aborto ( abort) del proceso d) la suspensión del proceso 15. Los semáforos... a) no tienen sentido en sistemas de procesamiento por lotes b) sólo son aplicables en sistemas de tiempo real c) sólo son aplicables en sistemas que planifican procesos mediante round robin d) son aplicables en sistemas que planifican procesos mediante SJF (o aproximaciones a esa política) 1. Un sistema operativo tiene la finalidad de: a. Hacer que el sistema informático sea más rápido. b. Hacer que el sistema informático sea más eficiente. c. Hacer que el sistema informático sea más cómodo de usar para los usuarios. d. Hacer que el sistema informático sea más eficiente, amigable y seguro. 2. En el contexto de la evolución histórica de los sistemas informáticos, los manejadores de dispositivos aparecieron como una mejora de: a. Los primeros sistemas. b. Los sistemas de procesamiento en lotes sencillos. c. Los sistemas de procesamiento en lote sofisticados. d. Los sistemas multiprogramados. 3. Los primeros sistemas operativos rudimentarios se crearon para que los ordenadores fueran más: a. Fáciles de utilizar. b. Productivos. c. Seguros. d. Interactivos. 4. El modo de operación denominado "fuera de línea" permite: a. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. b. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. c. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. d. Todas las anteriores son falsas. 5. La técnica de buffering permite: a. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea.
b.
Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. c. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. d. Todas las anteriores son falsas. 6. La técnica de spooling permite: a. Simultanear operaciones de E/S de una tarea con operaciones de CPU de esa misma tarea. b. Simultanear operaciones de E/S de una tarea con operaciones de CPU de otras en el mismo sistema. c. Reducir los tiempos de inactividad de la CPU debido a la lentitud de los dispositivos de E/S. d. Todas las anteriores son falsas. 7. El tiempo de respuesta es un parámetro de especial importancia en un sistema: a. Sistema de procesamiento en lotes. b. Sistema multiprogramado. c. Sistema de tiempo compartido. d. En todos los sistemas anteriores posee la misma importancia. 8. Para procesar simultáneamente operaciones de CPU con operaciones de E/S se requieren: a. Dispositivos rápidos de E/S. b. Un reloj del sistema. c. Interrupciones. d. Instrucciones hardware especiales de protección.
Pregunta1 a) Si en un S.O. la implementación de los threads (hebras) se realizó a nivel de usuario, qué sucede con las restantes hebras de un proceso cuando una se bloquea como consecuencia de la invocación de un servicio (system call) del S.O.? b) Se analiza un sistema de paginación por demanda y se observa que, con cierta carga de trabajo, de la CPU se emplea un 15% y el disco de intercambio (swap) está ocupado un 92% del tiempo. ¿Qué acción tomaría para aumentar el rendimiento del sistema para esta misma carga de trabajo? c) Describa brevemente en que consiste la técnica de swapping así como su oportunidad de uso. Pregunta 2 a) El semáforo es un buen mecanismo para obtener la exclusión mutua entre dos procesos. Explique brevemente porque si las operaciones P y V no se ejecutan en forma atómica puede no proporcionarse la exclusión mutua. b) Un proceso A recibe datos por la red y lo escribe en una zona de memoria. Un proceso B debe imprimir por pantalla cada uno de los datos recibidos por A. Explique si el siguiente código resuelve el problema. Semaphore ready = 0; While(TRUE) { Semaphore go = 0; P(go); While(TRUE) { Copiar_datos(); Leer_red(); V(ready); v(go); Imprimir(); poner_datos(); } P(ready); } Pregunta 5 Especifique los requerimientos de hardware para soportar eficientemente y en modo protegido un esquema de segmentación de memoria. Problema 2 En una empresa pública los clientes deben pedir hora de atención en N mostradores habilitados, presentando su Documento de identidad. Aquí se les dará una fecha y hora para atención, en función de la descripción de su caso y de su número de documento de identidad. Los clientes deberán elegir el mostrador con menor cantidad de gente en la cola. Se desea modelar este problema utilizando mailboxes, usando solo las primitivas send y receive. Se contará con la función: Function fecha_atención (documento_identidad: in integer, Descripción_caso: in string) : datetime Si se desea se podrá implementar únicamente una tarea auxiliar (Portero). El programa principal deberá ejecutar el siguiente código: Begin Co-begin Portero; /* Opcional */ Cliente (Documento_identidad1, “descripción caso 1”); Cliente (Documento_identidad2, “descripción caso 2”); ... Cliente (Documento_identidadM, “descripción caso M”); Mostrador (1); Mostrador (2);
.... Mostrador (N); Co-end; End;
1. Porque, una de las funciones del sistema operativo es presentar al computador como una maquina virtual? 2. Porque los procesos entran en condiciones de competencia? (mencione un ejemplo). 3. Dada la siguiente propuesta para el problema de productor – consumidor, mediante un ejemplo explique por qué falla el código presentado. T1) En el caso del Productor-consumidor con un productor y un consumidor con buffer ilimitado es necesaria la sincronización a) Para evitar que el productor y el consumidor accedan simultáneamente al buffer.
b) Para evitar que el productor deje una unidad en el buffer estando éste lleno. c) Para evitar que el consumidor coja una unidad del buffer estando éste vacío. d) Ninguna del resto de las respuestas es correcta. T2) En el modelo de procesos de estados visto en clase, la planificación a corto plazo tiene por objeto a. b. c. d.
Aumentar el grado de multiprogramación del sistema cuando esto es posible. Disminuir el grado de multiprogramación del sistema, cuando éste es excesivamente grande. Pasar procesos a la CPU. Ninguna del resto de respuestas es correcta.
T3) ¿Cuál de las siguientes afirmaciones es correcta? a) Un sistema operativo multitarea se basa, entre otras cosas, en la concurrencia real entre el procesador y las operaciones de E/S realizadas por los controladores de los periféricos. b) En un sistema monotarea, el procesador se mantiene ocioso mientras se realizan operaciones de e/s c) En los sistemas de tiempo compartido, se divide el tiempo de procesamiento entre los diferentes procesos que se encuentren listos para ejecutar, asignando pequeñas porciones a cada uno de ellos. d) Ninguna de las afirmaciones restantes es correcta
T4) ¿Cuál de las siguientes afirmaciones es correcta? a) Ninguna de las afirmaciones restantes es correcta b) La imagen en memoria de un proceso es una estructura de datos que forma parte del sistema operativo. c) El bloque de control de proceso almacena una copia del estado del procesador en el instante en que el proceso abandona la CPU d) El bloque de control de un proceso almacena la imagen en memoria del mismo
T5) En función del número de procesos concurrentes que puede ejecutar cada usuario, los sistemas operativos se clasifican en: Monoproceso / Multiproceso. b) Monoprogramación / Multiprogramación. c) Monotarea / Multitarea. d) Monousuario / Multiusuario.
T6) Para poder implementar políticas de tiempo compartido es imprescindible a) b) c) d)
Ninguna del resto de las respuestas es correcta. Manejar adecuadamente la interrupción de reloj. Gestionar varias tareas por usuario. Ser capaces de atender múltiples peticiones simultáneas de e/s.
T7) Cuál de las siguientes afirmaciones es correcta a) La activación de un proceso implica la copia de los registros del procesador en el bloque de control del proceso activado b) Ninguna de las afirmaciones restantes es correcta c) Cuando se produce una interrupción es necesario salvar el estado del procesador en el BCP y ejecutar la rutina de manejo de la interrupción d) El cambio de contexto es una operación que realiza el propio hardware
T8) ¿Cuál de las siguientes afirmaciones es correcta? a) Si dos hilos de la misma tarea comparten una variable y la modifican, será necesario proteger su acceso con algún mecanismo de sincronización que proporcione exclusión mutua b) Ninguna de las afirmaciones restantes es correcta c) La creación de un nuevo hilo dentro de una tarea existente implica menor coste que la creación de una nueva tarea d) El cambio entre hilos de la misma tarea implica menos coste que el cambio entre tareas diferentes
T9) ¿Cuál de las siguientes afirmaciones es correcta? a) Un proceso que se encuentra en ejecución no tiene BCP puesto que no lo necesita b) El vapuleo es el intercambio excesivo del BCP de memoria principal a secundaria c) Un proceso que se ejecute deberá pasar por todos y cada uno de los estados del ciclo de vida antes de finalizar el mismo d) Ninguna de las afirmaciones restantes es correcta
T10)
¿Cuál de las siguientes afirmaciones es correcta?
a) El planificador a largo plazo elige procesos de entre los que quieren entrar al sistema b) Ninguna de las afirmaciones restantes es correcta c) El planificador a corto plazo elige un proceso de la lista de listos para pasarlo a ejecución d) El planificador a medio plazo suspende y reanuda procesos para controlar la carga del sistema
T11)
¿Cuál de las siguientes afirmaciones es correcta?
a) En los sistemas de tiempo compartido, se divide el tiempo de procesamiento entre los diferentes procesos que se encuentren listos para ejecutar, asignando pequeñas porciones a cada uno de ellos. b) Ninguna de las afirmaciones restantes es correcta c) Un sistema operativo multitarea se basa, entre otras cosas, en la concurrencia real entre el procesador y las operaciones de E/S realizadas por los controladores de los periféricos. d) En un sistema monotarea, el procesador se mantiene ocioso mientras se realizan operaciones de e/s
T12)
¿Cuál de las siguientes afirmaciones es correcta?
(Concepto de Proceso) a) El bloque de control de proceso almacena una copia del estado del procesador en el instante en que el proceso abandona la CPU b) Ninguna de las afirmaciones restantes es correcta c) La imagen en memoria de un proceso es una estructura de datos que forma parte del sistema operativo. d) El bloque de control de un proceso almacena la imagen en memoria del mismo
T13)
¿Cuál de las siguientes afirmaciones es correcta?
a) No es posible suspender los procesos que están bloqueados b) Ninguna de las restantes respuestas es correcta c) Si un proceso está en estado suspendido, no necesita BCP d) El BCP de un proceso suspendido está almacenado en el disco
T14) Sean dos procesos concurrentes que comparten un conjunto de variables, tanto de lectura como de escritura. a) Los dos procesos no necesariamente son independientes en el tiempo.
b) Los dos procesos necesariamente son independientes en el tiempo. c) Es imprescindible utilizar semáforos para su sincronización. d) Ninguna del resto de las respuestas es correcta. T15) ¿Cuál de las siguientes afirmaciones es correcta? a) Proceso y programa son conceptos equivalentes b) Proceso e hilo son conceptos equivalentes c) Monoproceso y monoprocesador son conceptos equivalentes d) Ninguna de las afirmaciones restantes es correcta
T16)
¿Cuál de las siguientes afirmaciones es correcta?
a) El paralelismo real entre el procesador y la e/s es aprovechado por el S.Operativo para gestionar la ejecución de múltiples procesos simultáneamente b) El reparto del uso del procesador entre diferentes procesos en pequeñas porciones, permite al S.Operativo gestionar la ejecución de múltiples procesos simultáneamente c) La multiprogramación y el tiempo compartido constituyen las dos técnicas que permiten al S. Operativo la ejecución de múltiples procesos simultáneamente d) Ninguna de las afirmaciones restantes es correcta
T17)
¿Cuál de las siguientes afirmaciones es correcta?
a) El Bloque de Control de un Proceso almacena el estado del procesador del instante en que el proceso es interrumpido por última vez b) Siempre que se produce una interrupción, el sistema operativo salva el estado del procesador en el BCP del proceso interrumpido c) Desde el BCP se puede localizar los segmentos de memoria asignados a los procesos Cierto, esta información se guarda en el BCP d) Ninguna de las afirmaciones restantes es correcta
T18)
¿Cuál de las siguientes afirmaciones es correcta?
a) El código de un proceso se encuentra localizado en la imagen de memoria del proceso, la pila de ejecución se localiza en el Bloque de Control de Proceso
b) La imagen de memoria de un proceso es una copia del fichero ejecutable cargado desde el disco c) El BCP de un proceso forma parte de l a imagen de dicho proceso d) Ninguna de las afirmaciones restantes es correcta
T19)
¿Cuál de las siguientes afirmaciones es correcta?
a) La información sobre el estado de un proceso forma parte de l a información de control almacenada en su BCP b) La información sobre la prioridad de planificación de un proceso forma parte de la información de control almacenada en su BCP c) La información sobre el propietario de un proceso forma parte de la información de control almacenada en su BCP d) Ninguna de las afirmaciones restantes es correcta
T20) Sea un modelo de ciclo de vida con estados vistos en clase ¿Cuál de las siguientes afirmaciones es correcta? a) Cuando se crea un proceso, si no existe espacio en memoria principal para asignarle, no se crea un BCP para él b) El estado de ejecución tiene asignada una cola con los procesos que desean ser ejecutados c) Los procesos en estado listo suspendido no se encuentran cargados en memoria principal d) Ninguna de las afirmaciones restantes es correcta
T21) Sea un modelo de ciclo de vida de 7 estados ¿Cuál de las siguientes afirmaciones es correcta? a) El planificador a largo plazo elige procesos creados y l os carga en memoria principal b) El planificador a corto plazo decide que proceso pasará a ser ejecutado, de entre los procesos listos c) El planificador a medio plazo decide cuándo intercambiar procesos entre memoria y disco d) Ninguna de las afirmaciones restantes es correcta
T22)
Sobre la gestión de interrupciones ¿Cuál de las siguientes afirmaciones es correcta?
a) Cuando se produce una interrupción, el propio hardware salva el valor de todos los registros del procesador b) Siempre que se produce una interrupción, entra a ejecutarse alguna parte del sistema operativo c) Cuando se gestiona una interrupción el hardware cambia la ejecución de modo usuario a modo supervisor, a través del registro de estado d) Ninguna de las afirmaciones restantes es correcta
T23) Sobre la gestión del tiempo compartido ¿Cuál de las siguientes afirmaciones es correcta? a) Si se aplica una política de planificación cíclica, cada vez que se produce una interrupción de reloj, el sistema operativo cambia el proceso que se está ejecutando b) El reloj produce una interrupción cada vez que llega al máximo delimitado por el cuanto de tiempo c) En el modelo básico de 3 estados, los procesos que esperan por un evento y están bloqueados, vuelven al estado de ejecución en el momento en que llegue el evento esperado d) Ninguna de las afirmaciones restantes es correcta
T24) Acerca de la concurrencia de procesos ¿Cuál de las siguientes afirmaciones es correcta? a) En un sistema monoprocesador en el que se gestionen hil os, la concurrencia que se puede dar es una concurrencia real b) Los procesos concurrentes son aquellos que comparten recursos c) Los procesos concurrentes son dependientes en el tiempo d) Ninguna de las afirmaciones restantes es correcta
T25) Los sistemas de procesamiento por lotes con respecto a los sistemas de tiempo compartido a. b. c. d.
Introducen menos sobrecarga en el sistema. Disminuyen la productividad del sistema. Introducen una mayor sobrecarga al sistema. Ninguna del resto de las respuestas es correcta.
T26) a. b. c. d.
La aparición de los sistemas de procesamiento por lotes supuso La posibilidad de utilización del ordenador desde varias terminales. La posibilidad de que haya varios procesos ejecutándose simultáneamente. Ninguna del resto de las respuestas es correcta. Un aumento en la utilización de los procesadores.
T27) Cuando ocurre una interrupción, ¿quién es responsable de almacenar el valor del registro contador de programa del procesador? a. b. c. d.
El hardware. La rutina de tratamiento de la interrupción. El programa de usuario interrumpido. Ninguna del resto de respuestas es correcta.
LAB1) ¿Cuál de las siguientes afirmaciones es correcta? (Llamada al sistema fork()) Sea el siguiente código main() if (fork()==0) { if (fork() == 0) fork(); printf(“%d\n”, getpid()); } a) A partir del proceso P, que ejecuta este código se generan 8 procesos más (2 elevado a 3) Falso, se generan 3 procesos
b) A partir del proceso P, que ejecuta este código, se generan 3 procesos, hijo, nieto y bisnieto de P. c) A partir del proceso P, que ejecuta este código, se generan 3 procesos, hijos de P d) Ninguna de las restantes LAB2) Código 1
Dado el siguiente código
#include Siendo el código2 el siguiente: main () { main () { int valor; int i; printf(“3\n ”); for (i=0;i<2;i++) valor=fork(); printf(“%d ”,i ); if (valor!=0) } printf(“6 \n”); execlp(“codigo2”,”codigo2”,NULL); printf(“Fin de la ejecución \n“); } Si inicialmente se pone en ejecución el primer código, y suponiendo que el padre se ejecuta antes que el hijo, cuál será la salida de la ejecución: a) 3 0 1 Fin de la ejecución 6 0 1 Fin de la ejecución
b) 3 01 6 01 c) 3 01 6 Fin de la ejecución d) Ninguna del resto de las respuestas es válida.
LAB3)
Dado el siguiente código
#include main() { int fd[2]; int valor, f; char buffer[3]; pipe(fd); valor=fork(); if (valor ==0) write(fd[1],"hhh",3); else { f = open("mifichero",O_WRONLY); read(fd[0],buffer,3); write(f,buffer,3); close(f);
} } Suponiendo que se ejecuta antes el proceso padre que el hijo, cuál de las siguientes respuestas es correcta: a) El proceso padre intenta escribir en “mifichero” pero el contenido de buffer que le pasa es vacío y se produce un error
b) Después de la ejecución tanto el pipe como “mifichero” contienen “hhh” c) Después de la ejecución tanto el pipe como “mifichero” están vacíos d) Ninguna de las anteriores respuestas es válida LAB4) .- Sea el siguiente código Código 1 #include main() { int p=fork(); If (p==0) execl(“codigo1”,”codigo1”, NULL); else printf(getpid()); } Cuál de las siguientes respuestas es correcta a) Hay un proceso que no acaba nunca
b) Se generan infinitos procesos hijos del primer proceso que se genera c) Se generan 2 procesos d) Ninguna de las respuestas LAB5) Sea el siguiente código en lenguaje C de un programa que se ejecuta bajo el sistema operativo Unix void main() { int a=0; if (fork()) {a=a+1; printf(a); }} ¿Cuál es el resultado de la ejecución? a. Tan sólo el padre imprime el valor de a, que podrá ser 0 o 1 dependiendo de quién se ejecute antes b. Tan sólo el padre imprime el valor de a que será 1. c. Se imprime una vez la variable a con valor 0 y otra vez con valor 1 d. Ninguna del resto de respuestas es correcta.
LAB6) Sea el siguiente código en lenguaje C de un programa que se ejecuta bajo el sistema operativo Unix void main() { int a = 0; if ( fork() ) a=a+1; else a=a+1; printf(“Valor de a: %d\n”, a); }
¿Cuál es el resultado de la ejecución? a) Independientemente de quién se ejecute antes, se imprime una vez la variable a con valor 1 y otra vez con valor 2 b) Ninguna del resto de respuestas es correcta. c) Tanto el padre como el hijo escribirán un 1 d) Suponiendo que se ejecuta antes el padre que el hijo, se escribirá primero un 1 y luego un 2
LAB7)
¿Cuál de las siguientes afirmaciones es correcta?
a) Sea el siguiente código del programa hola.c (fichero ejecutable “hola.out”) main(){ if (fork()) printf("Hola\n"); else execlp(“hola.out”,”hola.out”,null); /* esta llamada ejecuta el fichero hola.out */ }
a) Al ejecutar hola.out el resultado será la impresión de “Hola” dos veces por pantalla b) Ninguna de las afirmaciones restantes es correcta c) Cuando se crea un proceso en Unix con un fork(), se crea un bloque de control de proceso para el proceso hijo que se almacena en la imagen del proceso hijo
d) En la creación de procesos en Unix, padre e hijo comparten las variables globales, por lo que si uno de ellos modifica un valor, éste será modificado también para el otro.
1 (4 puntos) Suponga un sistema operativo que funciona según el modelo cliente-servidor en un ordenador con un solo procesador. Los procesos de usuario se planifican mediante una política Round-Robin con cuanto 20 milisegundos (mseg) y los procesos del sistema operativo por prioridades, teniendo éstos mayor prioridad que los procesos de usuarios. En este sistema existe, entre otros, un proceso del sistema operativo que atiende las peticiones de entrada-salida llamado ES. Si asumimos que: • El proceso ES trata cualquier petición de entrada-salida consumiendo siempre 25 milisegundos de CPU. • El tiempo consumido por cualquier otra acción o servicio del sistema operativo es despreciable. • El sistema posee un solo dispositivo de entrada-salida, siendo no compartido y se gestiona mediante una política FIFO. Si pide hallar el Tiempo de Espera y el Tiempo de Retorno de cada proceso Para la siguiente carga de procesos: T. de Proceso Ráfaga Ráfaga de Ráfaga de llegada CPU E/S CPU 0 mseg P0 45 mseg 25 mseg 40 mseg 50 mseg P1 20 mseg 25 mseg 15 mseg 2 () Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) justificando la respuesta (no se puntuarán respuestas mal justificadas): a) En un sistema multiprogramado con dos procesos en estado preparado: uno orientado a E/S otro orientado a cómputo, la estrategia de planificación SJF da un mejor tiempo de retorno que la estrategia FCFS () b) La multiprogramación aumenta el nivel de ocupación tanto del procesador como de los dispositivos de E/S. () c) Las soluciones por software al problema de la sección crítica presentan todas el problema de la espera activa. Esto no ocurre en cambio con las soluciones basadas en las instrucciones hardware Test_and_Set o Swap. () () a) Comentar qué valores posibles tendrían las variables i y j al finalizar la ejecución de los siguientes tres procesos concurrentes. Los procesos pueden llegar al sistema (y ejecutarse) en cualquier orden. Los valores iniciales de las variables son:
b) Reorganizar los semáforos Sem A y Sem C para que el orden de ejecución sea : Proceso B – Proceso C – Proceso A. ¿Hace falta cambiar los valores iniciales de los semáforos? () Seguidamente se muestra una propuesta de solución al problema de la sección crítica para n procesos. ¿Crees que es una propuesta válida? Justifica tu respuesta.
() Comentar la validez del siguiente algoritmo como solución al problema de la Sección Crítica para dos procesos: Variables compartidas int c0=1, c1=1 ; Proceso P0() { Proceso P1() { while (true) { while (true) { c0=0;; c1=0;; While (c1==0) { while (c0==0) { c0=1; c1=1; While (c1==0) do null; While (c0==0) do null; c0=0; c1=0; } } Sección crítica Sección crítica c0=1; c1=1; } } } } 7() En cada uno de los siguientes apartados, señale cuál opción es correcta. En caso de que existan varias opciones ciertas, se considerará como correcta la más completa o precisa. Las preguntas no contestadas no puntúan; las contestadas erróneamente penalizan un tercio de su valor. Señale sus respuestas rodeando con un círculo la opción correcta. Si se equivoca, tache la respuesta incorrecta y rodee la opción que considere correcta. Escriba con tinta. Las preguntas respondidas con lápiz o con varios círculos no tachados se considerarán no contestadas 7.1.- ¿Con cual de las siguientes afirmaciones te quedarías?
a) La instrucción wait sobre un semáforo duerme al proceso llamador b) Si se ejecutan dos operaciónes signal sobre un semáforo cuyo valor actual es 2, el valor final del semáforo podría ser 3 o 4 dependiendo de cómo se produzcan los cambios de contexto en la modificación del valor entero interno del semáforo. c) Los semáforos son herramientas que se emplean únicamente para resolver el problema de la exclusión mutua y para ello basta con emplear un semáforo inicializado a 1. d) Una operación signal sobre un semáforo despertará a un proceso que previamente haya quedado bloqueado en dicho semáforo y esta operación es atómica. 7.3.-¿Con cuál de las siguientes afirmaciones te quedarías? a) Es posible plantear soluciones por software al problema de la sección crítica que cumplan las propiedades de exclusión mutua y progreso. Sin embargo estas soluciones no cumplen la propiedad de espera limitada. b) Uno de los problemas de las soluciones por software al problema de la sección crítica es la “espera activa”, entendida como el tiempo que el sistema invierte en realizar los cambios de contexto entre los procesos que intervienen. c) Los semáforos resuelven el problema de la espera activa que padecen las soluciones por software al problema de la sección crítica ya que en su implementación en ningún caso se incurre en espera activa. d) Todas las anteriores son falsas. 7.4.- El siguiente código pretende gestionar la exclusión mutua en el acceso a una sección crítica, usando la instrucción atómica swap(a,b) (“bloqueo” es una variable global booleana inicializada a “true” y “flag” es una variable booleana local a cada proceso). flag := true; repeat swap (bloqueo, flag); until flag = false; /* Sección crítica */ bloqueo := true; La solución propuesta: a) Cumple las propiedades de exclusión mutua, progreso y espera limitada. b) Cumple la propiedad de exclusión mutua y progreso pero no la propiedad de espera limitada. c) Cumple las propiedades de exclusión mutua y progreso pero presenta el inconveniente de que sólo es válida para dos procesos. d) No cumple la propiedad de progreso. 7.5.-¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? a) de “bloqueado” a “preparado” b) de “preparado” a “bloqueado” c) de “ejecución” a “preparado” d) de “ejecución” a “bloqueado”
7.7.- El modo dual de operación en los sistemas es posible gracias a a) Que existe el sistema operativo b) Que las instrucciones máquina están divididas en privilegiadas y no privilegiadas c) Que la memoria está dividida en memoria del sistema y de usuario d) Que se dispone de llamadas al sistema 7.8.- El modo dual de operación a) Permite al sistema operativo establecer mecanismos de protección eficaz b) Sólo tiene sentido con múltiples procesadores c) Sólo tiene sentido en sistemas operativos de tiempo compartido d) Todas las anteriores son falsas 7.9.- Sobre planificación de procesos: a. Todos los métodos basados en prioridades tienen riesgo de inanición b. Los métodos multicolas están concebidos para planificar sistemas multiprocesadores c. El cuanto de tiempo óptimo para un Round Robin viene influenciado por el tiempo de cambio de contexto d. a) y c) son ciertas 7.10.- En la planificación Round Robin: a) El proceso preparado que pasa a ejecución corresponde al de tiempo de ejecución más corto b) De acuerdo a su prioridad cada proceso preparado pasa a ejecución durante un periodo de tiempo llamado cuanto c) De forma secuencial cada proceso preparado pasa a ejecución durante un periodo de tiempo llamado cuanto d) El proceso preparado que pasa a ejecución es el que tiene mayor prioridad que el que ya ocupa la CPU 9.- () En una tienda de pájaros están teniendo problemas para tener a todos sus canarios felices. Los canarios comparten una jaula en la que hay un plato con alpiste y un columpio para hacer ejercicio. Todos los canarios quieren inicialmente comer del plato y, después columpiarse. Pero se encuentran con el inconveniente de que sólo tres de ellos pueden comer del plato al mismo tiempo y sólo uno puede columpiarse. Define un proceso que ejecuten los canarios concurrentemente de forma que sincronicen sus actividades usando semáforos.
¿Con cuál de las siguientes afirmaciones te quedarías? e) La instrucción de wait o espera sobre un semáforo duerme siempre al proceso llamador. f) Si se ejecuta un operación signal o señal sobre un semáforo cuyo valor actual es 6, deja un valor de 7 en el semáforo excepto si existen procesos en espera por el mismo, en cuyo caso se queda con 6. g) Para resolver el problema de la sección crítica, basta con emplear un semáforo inicializado a uno. h) Para lograr la ejecución de manera exclusiva de una porción de código basta con emplear un semáforo inicializado a uno. 9. Un proceso en estado de bloqueo: e) Siempre espera por la ocurrencia de un evento. f) Siempre espera por la conclusión de una actividad de E/S. g) Reside en la cola de preparados en espera de entrar nuevamente en la CPU. h) Reside en la cola de procesos de baja prioridad. 10. La multiprogramación implica necesariamente e) concurrencia f) paralelismo g) procesamiento por lotes h) tiempo compartido 11. ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? e) de “bloqueado” a “preparado” f) de “preparado” a “bloqueado” g) de “bloqueado” a “en ejecución” h) de “en ejecución” a “bloqueado” 12. El problema de mutua exclusión puede resolverse… f) …utilizando la instrucción test_and_set, si el hardware subyacente la provee g) …utilizando el algoritmo de Dekker h) …utilizando el while con una variable boolean (como puerta abierta o puerta cerrada) i) Todas las anteriores j) Dos de las anteriores 13. la multiprogramación a) .usa memoria compartida b) necesita multiprocesamiento 8.
c) necesita plataforma cliente servidor d) utiliza las primitivas de sincronización e) no es realizable en ambientes de tiempo compartido 14. los sistemas de tiempo compartido (marque la incorrecta) a) ofrece tiempo de respuesta cortos b) mantiene una interrogación por polling c) no puede estar en simultáneo con la técnica por lotes d) utiliza buffering e) utiliza spooling 15. el
sistema operativo(marque la incorrecta) es software de base posibilita el uso eficaz de los recursos es una máquina extendida oculta el hardware son fáciles de construir 16. El buffering a) Se da entre programas que originan diferentes procesos b) utiliza principalmente cintas c) mantiene ocupada la CPU y los dispositivos d) a y c e) ninguna 17. Los sistemas de tiempo real a) dan tiempo de respuesta largos (minutos) b) la información es casi permanente (no se actualiza) c) no necesita manejar interrupciones con eficacia d) no necesita manejo de prioridades e) permanece prácticamente inactivo para atender evento de entrada. 18. los sistemas interactivos a) son conversacionales b) las repuestas son casi inmediatas c) no permiten alguna acción del usuario d) a y b e) ninguna 19. en una política apropiativa a) un proceso nunca abandona el procesador voluntariamente b) son usado en sistemas por lotes c) se utilizan en tiempo real d) ninguna 20. son condiciones para el interbloqueo a) exclusión mutua b) posesión y espera c) no apropiación d) espera circular 21. NO es estrategia para tratar el interbloqueo a) prevenir b) postergación indefinida c) evitar d) detectar y recuperar a) b) c) d) e)
22. []
Dado el Siguiente programa ejecutado sin errores. Cual es el resultado impreso en LINUX … int main(void){ if ((pid = fork()) == 0) printf(“ hijo, ”); else { wait(NULL); printf(“ padre, ”); } printf (“ fork terminado, ”); flux(stdout); }