98189514 preguntas examen sistemas operativos

18
Qué problema presenta un sistema que no sea multiprogramado? Que solo puede ejecutar un proceso a la vez, no puede ejecutar concurrentemente varios procesos. Se desperdicia mucho la CPU, por ejemplo al esperar operaciones E/S. ** Realice un esquema donde muestre el PCB (Process Control Block) de dos hilos (threads) de un mismo proceso. Detalle los campos que considere importantes. Todos los recursos, sección de código y datos son compartidos por los dos threads del mismo proceso. En el esquema, se comparte la memoria utilizada, así como los recursos. Si se tiene un sistema multiprocesador, se permite que los threads se ejecuten en forma paralela. Realice un diagrama de los estados y sus transiciones que los procesos tienen dentro del sistema operativos. Describa brevemente cada componente. Crear Proceso ----(Si es aceptado) --- > Estado Ready. Estado Ready --- (El despachador lo elije para ejecutar) --- > Estado Running Estado Running : --- (Con una interrupción, la CPU puede expropiar el recurso) -- > Ready --- (Si espera algún evento u operación E/S) ----> Estado Waiting --- (Si termina la ejecución, ya sea normal o anormalmente) --> Estado Finished Estado Waiting: --- (Una vez que se completa el evento o la operación E/S, pasa a ) -> Ready Qué entiende por planificador expropiativo (preemptive scheduler)? Qué problema resuelve este tipo de planificador? Un planificador expropiativo permite en cualquier momento, quitarle al proceso en ejecución el recurso CPU, aunque éste aún no haya terminado su ejecución. En este caso, el proceso pasa del estado Running al estado Ready. También puede ocurrir que el proceso necesite un recurso de un dispositivo de E/S y, mediante una interrupción, se expropia al proceso, pasa a un estado Waiting, y cuando se completa la interrupción, pasa a Ready, a esperar que se le asigne un procesador. Tambien a la hora de crear un proceso hijo, se interrumpe la ejecución del proceso padre para atender y crear al hijo. Uno de los problemas que resuelve es que el SO quede ejecutando infinitamente un proceso. Los SO tienen timers (watchdogs) que controlan el tiempo que lleva cada proceso, y cuando éste no funciona adecuadamente, al ser el sistema expropiativo puede matarlo. Otro problema que resuelve es la ejecución de procesos con prioridades. El planificador elije ejecutar los procesos con mayor prioridad, y si en determinado momento aparece en la cola un nuevo proceso con mayor prioridad que el que se está ejecutando, se expropia el recurso procesador y se lo da al nuevo proceso, quedando el viejo en la cola de Ready. Por cuáles etapas debe pasar un código fuente escrito en lenguaje C hasta convertirse en un proceso de un sistema operativo? Se debe primero compilar (compile), luego ensamblar (link) con los demás códigos objetos para crear un archivo ejecutable. Finalmente, el cargador del sistema lo debe cargar (loader). Qué es un sistema multiprogramado y cuál es la principal ventaja de desarrollar un sistema de este tipo?

Upload: daniel-anthony-huaman

Post on 28-Oct-2015

120 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 98189514 Preguntas Examen Sistemas Operativos

Qué problema presenta un sistema que no sea multiprogramado?Que solo puede ejecutar un proceso a la vez, no puede ejecutar

concurrentemente varios procesos. Se desperdicia mucho la CPU, por ejemplo al esperar operaciones E/S.

** Realice un esquema donde muestre el PCB (Process Control Block) de dos hilos (threads) de un mismo proceso. Detalle los campos que considere importantes.

Todos los recursos, sección de código y datos son compartidos por los dos threads del mismo proceso. En el esquema, se comparte la memoria utilizada, así como los recursos. Si se tiene un sistema multiprocesador, se permite que los threads se ejecuten en forma paralela.

Realice un diagrama de los estados y sus transiciones que los procesos tienen dentro del sistema operativos. Describa brevemente cada componente.

Crear Proceso ----(Si es aceptado) --- > Estado Ready.Estado Ready --- (El despachador lo elije para ejecutar) --- > Estado RunningEstado Running : --- (Con una interrupción, la CPU puede expropiar el recurso)

-- > Ready--- (Si espera algún evento u operación E/S) ----> Estado Waiting--- (Si termina la ejecución, ya sea normal o anormalmente) -->

Estado FinishedEstado Waiting: --- (Una vez que se completa el evento o la operación E/S,

pasa a ) -> Ready

Qué entiende por planificador expropiativo (preemptive scheduler)? Qué problema resuelveeste tipo de planificador?

Un planificador expropiativo permite en cualquier momento, quitarle al proceso en ejecución el recurso CPU, aunque éste aún no haya terminado su ejecución. En este caso, el proceso pasa del estado Running al estado Ready. También puede ocurrir que el proceso necesite un recurso de un dispositivo de E/S y, mediante una interrupción, se expropia al proceso, pasa a un estado Waiting, y cuando se completa la interrupción, pasa a Ready, a esperar que se le asigne un procesador. Tambien a la hora de crear un proceso hijo, se interrumpe la ejecución del proceso padre para atender y crear al hijo.Uno de los problemas que resuelve es que el SO quede ejecutando infinitamente un proceso. Los SO tienen timers (watchdogs) que controlan el tiempo que lleva cada proceso, y cuando éste no funciona adecuadamente, al ser el sistema expropiativo puede matarlo. Otro problema que resuelve es la ejecución de procesos con prioridades. El planificador elije ejecutar los procesos con mayor prioridad, y si en determinado momento aparece en la cola un nuevo proceso con mayor prioridad que el que se está ejecutando, se expropia el recurso procesador y se lo da al nuevo proceso, quedando el viejo en la cola de Ready.

Por cuáles etapas debe pasar un código fuente escrito en lenguaje C hasta convertirse enun proceso de un sistema operativo?

Se debe primero compilar (compile), luego ensamblar (link) con los demás códigosobjetos para crear un archivo ejecutable. Finalmente, el cargador del sistema lo debe cargar (loader).

Qué es un sistema multiprogramado y cuál es la principal ventaja de desarrollar un sistema de este tipo?

Page 2: 98189514 Preguntas Examen Sistemas Operativos

Un sistema multiprogramado es aquel que permite que procesos se ejecuten dinámicamente, gracias a un Planificador. Si se tiene un solo procesador, se ejecutará un solo proceso por vez, en caso de tener múltiples procesadores, se pueden ejecutar concurrentemente múltiples procesos. Al organizar la CPU entre los procesos, el SO puede hacer más productiva a la computadora. Es necesario tener varios trabajos simultáneamente en la memoria, por lo cual se necesita una correcta administración de la memoria, y protección de la misma, para evitar problemas que ocurren al ejecutar varios procesos a la vez. El objetivo de la multiprogramación es tener algún proceso en ejecución en todo momento, así se puede aprovechar al máximo la capacidad de la CPU.

Qué ventaja tiene un sistema simétrico frente a uno asimétrico?Cada procesador de un sistema simétrico ejecuta una copia idéntica del SO y

se comunican entre sí, lo cual es ventajoso, ya que el código del núcleo se dispone en memoria común, por lo cual los procesadores son considerados “iguales”, se pierde toda jerarquía entre procesadores.

Qué es el registro “program counter” de un proceso? Y de un hilo (thread)?

Cada hilo de un proceso debe tener un valor del registro program counter. Dicho registro contiene la dirección de la siguiente instrucción a ejecutar por ese hilo.

Defina y describa ventajas y desventajas entre los sistemas simétricos y asimétricos.

Cada procesador de un sistema simétrico ejecuta una copia idéntica del SO que se encuentra en la memoria común, lo que hace que no existan jerarquías de tareas como sucede con los procesadores asimétricos, donde se ejecuta el SO en un solo procesador, y de acuerdo a la importancia de determinadas tareas, se destinan a distintos procesadores.

Describa el planificador de colas multinivel con retroalimentación (multilevel feedbackqueue).

En un Multilevel feedback queue scheduler, los procesos pueden clasificarse según sus cualidades; es posible dividir la lista de procesos listos en varias colas (una para cada clasificación), donde cada cola tiene su algoritmo de planificación propio. Se debe tener en cuenta una estrategia de planificación entre dichas colas, por ejemplo que una tenga mayor prioridad que la otra. En este tipo de planificador, los procesos pueden cambiar de cola. Se suelen categorizar según el uso de la CPU (CPU Burst), donde la cola de mayor prioridad será la de procesos I/O bound y la de menor prioridad la de procesos con alto CPU-bound.

Los procesos son generalmente clasificados como CPU-bound o IO-bound. En unplanificador que maneja prioridades, a qué clase de proceso le daría mayor prioridad ?

A las IO-bound, ya que éstas consumen mucho menos recursos de la CPU, por lo tanto tendrán un tiempo de ejecución menor a las de CPU-bound, lo cual permitirá que haya menos procesos en cola de ready esperando ser atendidos.

Realice un diagrama de estado de los procesos y explique las transiciones entre ellos para un planificador (scheduler) no expropiativo (non-preemptive).

Similar al expropiativo, con la vital diferencia que la CPU no puede terminar por la mitad con la ejecución de un proceso, debe esperar a que este termine, por lo tanto el proceso debe tener un mecanismo de finalización que le permita, si necesita

Page 3: 98189514 Preguntas Examen Sistemas Operativos

algún recurso proveniente de un dispositivo E/S, parar y quedar en estado Waiting, así hasta que el procesador consiga ese recurso, y retome el proceso de la cola y lo pase a Ready

Qué tareas implica un cambio de contexto (context switch) entre procesos? • Salvar el estado del proceso que se está ejecutando en su PCB.• Cambiar el estado del proceso que se estaba ejecutando al que

corresponda.• Cargar el estado del proceso asignado a la CPU a partir de su PCB.• Cambiar el estado del proceso nuevo a ejecutando.

Describa dos servicios que brinda el subsistema de Entrada/Salida. El sistema debe ocultar las características específicas de los diferentes

dispositivos de almacenamiento y ofrecer servicios comunes para todos los medios de almacenamiento. Estos servicios son:

Proveer una interfaz con el subsistema e implementar técnicas de buffering, spooling y cache.

Proveer una interfaz cliente-SO para los manejadores de dispositivos que permitirá interactuar con cualquier modelo de dispositivo.

Montaje y Desmontaje de dispositivos.

¿Qué son los llamados al sistema (system call)? Realice un dibujo/diagrama que muestre comoson usados.

Los System Call son interfaces que permiten al programa hacer peticiones de los servicios que brinda el SO. Se les son asignados un numero identificatorio. Los servicios son invocados en modo usuario, ejecutados en modo monitor, y retornados en modo usuario.

Describa las características principales de un sistema con micronúcleo (microkernel).

Un sistema con Micronúcleo se constituye de un núcleo que brinde un manejo mínimo de procesos, memoria y además, provea de una capa de comunicación entre procesos (es la principal funcionalidad). Los restantes servicios del sistema son construidos como procesos separados al micronúcleo, que ejecutan en modo usuario. El acceso a los servicios del sistema se realiza a través de pasaje de mensajes. Aumenta la escalabilidad y la portabilidad. Es mas seguro. Diseño simple y funcional. Ejemplo: Windows NT

Qué es un sistema operativo?Un Sistema operativo es un programa o conjunto de programas que hacen

productivo, eficaz y amigable al uso del hardware, y permite la ejecución de aplicaciones del usuario. Sus principales metas son: Brindar un ambiente para realizar y ejecutar aplicaciones; proveer un entorno libre de interferencias; administrar de forma equitativa los recursos del sistema; hacer que el uso del sistema sea tan amigable, intuitivo y expresivo como lo permita el estado de la tecnología.

Cómo expone un sistema operativo sus servicios a las aplicaciones?Mediante una interfaz conocida como System Services.

Qué entiende que es un programa? un proceso? un thread?Un programa es un código programado en algún lenguaje, compilado y

linkeditado, en espera de ser ejecutado. Es una entidad Pasiva. Un proceso es un programa en ejecución, una entidad activa, que incluye el valor del Program Counter, los registros y las variables que este modifica.

Page 4: 98189514 Preguntas Examen Sistemas Operativos

Un thread es una unidad básica de utilización de la CPU consistente en un juego de registros, y un espacio de pila. Es también conocido como proceso ligero. Comparten código, datos y recursos con sus hebras pares. Es útil cuando es necesario compartir recursos concurrentemente.

Describa 4 componentes de los componentes más importantes de un sistema operativo.

• Administrador de Procesos : Permite la creación, destrucción de procesos, la suspensión, reanudación de procesos, provee mecanismos de comunicación entre los mismos, y provee métodos para prevenir Deadlocks, o lograr salir de ellos.

• Administrador de Memoria: El sistema debe administrar el lugar libre y ocupado de la memoria, debe decidir que proceso podrá comenzar cuando es cargado en memoria. Asigna y quita espacio de memoria según sea necesario.

• Administrador de almacenamiento secundario: Administra el espacio libre, asigna lugares para la información, provee algoritmos para la planificación de disco.

• Subsistema de Entrada/Salida: Encapsula y oculta características específicas de los dispositivos de almacenamiento y ofrece servicios comunes para todos los medios de almacenamiento.

• Subsistema de Red: Se generaliza el concepto de dispositivo virtual implementando un manejador, que encapsula el acceso a dispositivos remotos.

• Subsistema de Manejo de Archivos: Implementa métodos para abrir, cerrar, extender, leer, escribir archivos, crear y borrar directorios.

• Subsistema de Protección: Incorpora la posibilidad de definir reglas de acceso y asegura su verificación en toda ocasión que corresponda.

4. Sea un sistema que cuenta con los siguientes cuatro procesos con sus respectivos tiempos de ejecución (burst time):

Proceso Tiempo de ejecución

P1 5 P2 4 P3 1 P4 6

a. Realice un diagrama en el tiempo del uso del procesador para los siguientes planificadores: FCFS, SJF y RR con tiempo de quantum 2.

b. Calcule el tiempo promedio de espera para los 3 planificadores.

c. Realice el diagrama para el planificador RR con tiempo de quantum 5 y haga un análisis de cómo se comporta.

¿Qué tarea realiza el planificador de CPU en un sistema operativo?Asigna los procesos que están listos para ser ejecutados a los procesadores

disponibles, según sea su algoritmo de planificación, que puede ser por prioridades,

Page 5: 98189514 Preguntas Examen Sistemas Operativos

por orden de llegada, por orden según su tiempo de ejecución, etc. El objetivo de un planificador es aprovechar al máximo la capacidad de proceso de la máquina.

Defina dos métricas utilizadas para comparar planificadores de CPU.Orden de llegada, Prioridad, Utilización del CPU (porcentaje de uso),

Rendimiento(numero de procesos que ejecutaron completamente por unidad de tiempo), Tiempo de Retorno (intervalo de tiempo desde que un proceso es cargado hasta que finaliza su ejecución), Tiempo de Espera (suma de intervalos de tiempo que un proceso estuvo en Ready), Tiempo de Respuesta (intervalo de tiempo desde que el proceso es cargado hasta que dio su primer respuesta).

¿Qué tarea tiene asignada el cargador (loader) del sistema operativo?

Cargar los procesos a ejecutar en el planificador.

¿Qué es y cuáles ventajas propone un sistema de tiempo compartido?

Un sistema de tiempo compartido es un sistema multiprogramado en el que se le dá mucho énfasis a la interacción con el usuario. Como la conmutación de procesos es tan frecuente, los usuarios pueden interactuar con cada programa durante su ejecución como si fuera un único usuario.

Al implementar un algoritmo de planificación (scheduling) round-robin, ¿qué problema se puede presentar con el tamaño del quantum?

Es necesario asignar un ajustado tiempo de quantum. Si es muy chico generará muchos cambios de contexto, mientras que si es muy grande, el sistema tenderá a comportarse como un FCFS.

Sea un sistema operativo con un algoritmo de planificación expropiativo (preemptive) roundrobin. Un proceso en ejecución se le expropia el procesador solo si su quantum expira o si termina su ejecución. Suponiendo que el quantum es 2 y se disponde del siguiente esquema de procesos:Proceso Tiempo de creación Tiempo de cómputo1 0 42 1 63 3 4¿Cuál es el tiempo de retorno (turnaround time)?¿Cuál es el tiempo de retorno promedio?

3. ¿Por qué considera necesario mecanismos de inter-comunicación entre procesos (IPC) en un sistema operativo ?

Porque permiten la sincronización de procesos sin tener que compartir el espacio de direccionamiento en memoria. No habría mecanismos para hacer procesos cooperativos (pueden afectar o ser afectados por otros procesos, comparten datos).

Julio 2009 4. Sea un sistema monoprocesador con un planificador expropiativo (preemptive) que se ejecuta al comenzar cada unidad de tiempo.El planificador utiliza prioridades de 1 a 10 (a menor número mayor prioridad), la cual es decrementada en 1 (uno) cada vez que un proceso está esperando por el recurso procesador y se incrementa en 1 (uno) cada vez que un proceso está ejecutando en un procesador.Dada la siguiente tabla de procesos, con sus prioridades, unidades de tiempo restantes porejecutar y en que unidad de tiempo fue creado:

Page 6: 98189514 Preguntas Examen Sistemas Operativos

Proceso Prioridad Unidades de tiempo x ejecutar Tiempo de creación p1 10 5 0 p2 2 4 3 p3 6 4 2

a. Realice un esquema en el tiempo sobre como será distribuido el recurso procesadorentre los procesos en el tiempo.

b. ¿ Cuál es el tiempo de espera de cada proceso ?Nota: En caso de igualdad de prioridades asuma un caso.

¿ Qué ventajas presenta un sistema operativo que brinde soporte a hilos (threads) a nivel del sistema operativo ?

Tiene un mejor aprovechamiento de un sistema multiprocesador, se puede asignar threads de un mismo proceso a diferentes procesadores.

Tiene una ejecución independiente: si un thread se bloquea, los demás threads pueden seguir funcionando.

¿En que modelos de hilos es necesario un planificador a nivel de usuario ?

En el modelo Mx1 (Many to One) es necesario, ya que el sistema solo reconoce un thread de control para el proceso. Dado que solo un hilo puede acceder al kernel cada vez, no podrán ejecutarse varios hilos en paralelo en múltiples CPUs.

En el modelo MxN (Many to Many) también es necesario, ya que múltiples user threads se multiplexan con múltiples kernel threads, y el planificador a nivel de usuario asigna los hilos de usuario a los hilos kernel. Este modelo aprovecha lo mejor del modelo Mx1 y 1x1, ya que el usuario puede crear tantos threads como desee, y estos podrán ejecutarse en paralelo.

¿En qué tipos de sistemas se pueden utilizar planificadores expropiativos (preemptivescheduling)?

En los que se necesite tener prioridades entre los procesos, sin importar tener que cortar la ejecución de alguno si aparece otro de mayor prioridad. Ejemplos: Sistemas con Microkernel, como Windows NT; en Sistemas de Tiempo Real Blando (en el que los procesos críticos tienen más prioridad que los demás)

¿De que forma el sistema operativo se asegura que una aplicación no acceda directamente a un dispositivo?

Protegiéndolo implementando privilegios, obligando a la aplicación a pedir (desde modo usuario) al sistema operativo que se encargue de la situación (en modo monitor).

Compare ventajas/desventajas entre un sistema operativo monolítico frente a uno en capas.

Un sistema monolítico es frecuentemente utilizado cuando se busca mayor eficiencia, ya que al no tener una estructura bien definida, y ser una colección de procedimientos de usuario, cualquier procedimiento puede ser invocado por

Page 7: 98189514 Preguntas Examen Sistemas Operativos

cualquier otro, lo que hace que sea su principal desventaja, ya que cualquiera puede “meter mano”. Ejemplos: MS-DOS, UNIX

Un sistema en capas se divide en capas (jaja), siendo la capa más básica la del hardware, y la más alta la interfaz con el usuario. Una capa consiste en una estructura de datos y rutinas que las capas de nivel superior pueden invocar. Sus ventajas son: Modularidad y posibilidad de depuración y verificación de cada capa por separado. Sus desventajas son: Alto costo de definición de cada capa, y es menos eficiente que el sistema Monolitico ya que sufre de overhead al pasar por cada capa.

En un sistema que soporta hilos (threads) a nivel del núcleo, describa los pasos a seguir al realizar un cambio de contexto.

Es un proceso más lento que con threads a nivel del usuario, ya que debe realizar System Calls para realizar el cambio de contexto.

Cuando un proceso formado por hilos es planificado, el contexto del hilo se enlaza con el proceso, y el proceso ejecuta dicho hilo. Al ser kernel threads, tiene un mejor aprovechamiento en sistemas multiprocesadores, ya que varios threads se pueden enlazar con varios procesos y así ejecutar concurrentemente, y aunque un thread se bloquee, el resto puede seguir ejecutando, ya que son independientes.

Describa dos mecanismos de protección que le brinda el hardware al sistema operativo.

Modo Dual: El SO permite dos niveles de ejecución, una en Modo Usuario, donde las aplicaciones ejecutan su código y en caso de necesitar recursos o cosas que puedan comprometer la seguridad del sistema, se llama al SO para que se encargue de ellos, con su Modo Monitor. Este modo tiene a su disposición instrucciones privilegiadas, que impiden que programas dañinos o mal uso de los mismos causen problemas.

Otro mecanismo es la protección de E/S, donde se tienen instrucciones privilegiadas que impiden que dispositivos E/S entren y modifiquen directamente algún dato o dirección de memoria que pueda resultar perjudicial.

Otro mecanismo es la Protección de la CPU, mediante la introducción de un timer (también llamado watchdog) que permite limitar el uso de la CPU, por ejemplo para evitar quedar infinitamente funcionando algún proceso.

Otro es la protección de memoria, donde se utilizan dos registros: Base y Limite, y cada dirección es evaluada para ver si es consistente con su definición. El registro base contiene la minima dirección posible, y el limite es la amplitud que puede tomar la dirección. Una CPU evalua esto de la siguiente manera: si una dirección de memoria es válida entonces su valor estará entre el registro base y el registro base+limite.

Realice un diagrama mostrando los principales campos del descriptor de proceso (PCB -Process Control Block) asumiendo que está en un sistema que reconoce hilos a nivel del sistema operativo.

Ademas de contar con los principales campos como el Estado de la CPU (es un registro de flags que indica el estado en el que está la CPU), el Procesador (que contendrá el número del CPU que está utilizando al ejecutar un proceso, si no su valor es indefinido), la Memoria (que describe el espacio virtual y/o real de direccionamiento según sea su arquitectura), el estado del Proceso, los Recursos, el

Page 8: 98189514 Preguntas Examen Sistemas Operativos

tipo de Planificación, sus Ancestros y Descendientes, cuenta con un campo especial donde se guarda la información acerca de los hilos que se encuentran en funcionamiento en dicho proceso. Guarda todo lo que algún otro thread puede llegar a modificar en su ejecución: el PC, registros, registros en punto flotante, etc.

4. ¿Qué funciones desarrolla el despachador (dispatcher)?El despachador elije (mediante la planificación elegida por el Scheduler) cuál

proceso debe ser puesto en funcionamiento, de los que se encuentran en estado Ready. A su vez, realiza los cambios de contexto del proceso anterior, y el nuevo. Primero salva el estado del proceso anterior, que esta ejecutando en su PCB, luego cambia el estado del proceso al estado que corresponda. Carga el estado del proceso nuevo a partir de su PCB, y finalmente cambia el estado del nuevo proceso a Ejecutando.

Marzo 2008 - Sean los procesos y tiempos de procesador a utilizar que están en la siguiente Tabla:

Procesos TiempoP0 5P1 8P2 7P3 9

Asumiendo un sistema monoprocesador que utiliza un esquema de planificación de tipoRound-Robin con quantum igual a 3 unidades de procesador.a. Dibuje una gráfica de cómo varía en el tiempo el uso del procesador entre los procesos.b. Brinde los tiempos de retorno (turnaround time) y espera (waiting time) de todos losprocesos.

En un sistema de propósito general, ¿qué tipo (simétrico o asimétrico) de sistema operativo utilizaría? Justifique.

¿Qué estado de proceso debe tener un proceso cuando realiza una invocación a un llamado a sistema? Justifique.

El proceso debe estar ejecutándose, luego pasará a estar bloqueado hasta que se devuelva del llamado al sistema.

Un sistema cuenta con tres tipos de procesos: de tiempo real, procesamiento por lotes (batch) y de usuario. Desarrolle un algoritmo de planificación adecuado para este sistema, mencionando las características más relevantes.

Round-Robin?

Describa las cuatro condiciones que, si ocurren simultáneamente, pueden generar un deadlock.

1) Mutua Exclusión: Al menos un recurso debe adquirirse de forma no compartida. Si otro proceso lo requiere debe esperar.

2) Espera Limitada: Debe existir un proceso que haya adquirido al menos un recurso y esté esperando para adquirir recursos adicionales, que ya fueron otorgados a otros procesos.

3) No expropiativo: Los recursos no se pueden quitar al proceso.4) Cadena Circular: Debe existir un conjunto {P0, P1, … , Pn} de procesos en

espera tal que P0 espera a P1, P1 espera a P2, …, Pn espera a P0.

Page 9: 98189514 Preguntas Examen Sistemas Operativos

Describa la taxonomía de Flynn en cuanto a los sistemas paralelos.Tiene 4 tipos: SISD (una arquitectura secuencial, donde no existe paralelismo,

sistemas monoprocesadores), SIMD(Sistemas que ejecutan la misma instrucción sobre un conjunto distinto de datos, sistemas vectoriales) , MISD (Utilizado para paralelismo redundante, por ejemplo para comprobar varias veces un mismo dato, cosa de estar seguro de su resultado) y MIMD(Sistemas con procesadores autónomos que ejecutan en forma simultánea diferentes instrucciones sobre diferentes datos) .

¿En un sistema de tiempo compartido que características se le pedirían a un planificador deCPU?

Que posea una tasa elevada de despacho de procesador, de tal forma que permita a que los usuarios interactúen directamente con el sistema como si fuese su único usuario.

¿Que mas? ¿Cuál algoritmo?

Dada las características de los procesadores actuales (multi-cores) que ventaja presenta unsistema operativo tenga soporte de hilos (threads) a nivel del sistema operativo frente a otro queno lo tenga.

Tendrá un mejor tiempo de respuesta, los procesos tienen cambios de contexto más rápido ya que comparten memoria y los recursos que utilizan, y no es necesario acceder al kernel para comunicar o sincronizar los hilos de ejecución. Gracias a los multiples cores, los threads se pueden ejecutar concurrentemente. Tambien es más económico, ya que crear procesos es mas caro que crear threads.

Describa el modelo de hilos (threads) MxN (Many-To-Many).Cada proceso tiene asignado un conjunto de kernel threads independientes de

los threads a nivel de usuario que el proceso haya creado. El planificador a nivel de usuario asigna los threads en los kernel threads. El planificador de sistema solo reconoce los kernel threads.

6. Sea un sistema monoprocesador que utiliza un planificador de tipo round-roubin con quantum =2.Si se tiene la siguiente secuencia de ejecución de instrucciones para los procesos P0, P1 y P2:P0: C C C C E E CP1: C E C C CP2: E C C C Cdonde C representa un cómputo en una unidad de tiempo y E una operación de Entrada/Salidaque tarda 3 unidades de tiempo (1 ejecución y 2 de espera).A su vez, P0 está listo para ejecutar en el tiempo 0, P1 en el tiempo 1 y P2 en el tiempo 2.Dibuje como será la distribución del recurso procesador en una línea del tiempo. A su vez,mencione en que estado está cada instante del tiempo.Nota:· Asuma que el cambio de contexto es despreciable.· La cola de procesos listos es FIFO.

¿Qué es el tiempo de retorno (turnaround time)?Es el intervalo de tiempo de un proceso desde que está en estado Ready por

primera vez, hasta que termina su ejecución.¿Qué entiende por rendimiento (throughput) de un algoritmo de planificación?

Page 10: 98189514 Preguntas Examen Sistemas Operativos

El rendimiento es el numero de procesos que ejecutaron completamente por unidad de tiempo.

Clasifique el tipo de planificador (expropiativos o no expropiativos) a utilizar en cuanto a

sistemas por lotes, interactivos y de tiempo real.En un sistema por lotes, lo mejor es usar un planificador no expropiativo, ya

que no existe la interacción con el usuario.En un sistema interactivo, lo mejor es usar un planificador expropiativo, ya

que brindan un buen tiempo de respuesta a los usuarios.En un sistema de tiempo real, no es necesario que sea un panificador

expropiativo, ya que los procesos puede que no se ejecuten por un buen tiempo, y cuando lo hacen, es por un periodo muy corto.

¿Describa 2 actividades que son principales en la administración de la memoria de uncomputador?

Mantiene que partes de la memoria están siendo utilizada y por quién. Asigna o quita espacio de memoria según sea necesario. Decide cuales procesos serán cargados en memoria cuando exista espacio de memoria disponible.

Describa los 5 servicios básicos que debe brindar un sistema operativo.Ejecución de programasOperaciones de E/SManipulación de sistemas de archivosComunicación entre ProcesosManipulación de Errores

7. Se tiene un computador con 2 procesadores y con un sistema operativo de procesamientosimétrico, cuyo planificador tiene una política Round-Robin de quantum 1.¿Cual será el tiempo de espera promedio total de los siguientes procesos?Proceso Burst TimeP1 5P2 6P3 2P4 3Notas: Asuma que el sistema comienza con los 4 procesos en la cola de procesos listoscon el orden P1, P2, P3 y P4. Asuma que el cambio de contexto entre dos procesos es despreciable.

¿Cuáles son los objetivos principales de un sistema operativo?Brindar un entorno libre de interferencias, un entorno que sea amigable,

intuitivo y expresivo, que sea capaz de ejecutar los programas del usuario, y de administrar los recursos de una forma equitativa.

7. a) ¿Qué soluciona el algoritmo de Dekker?b) Escriba el algoritmo de Dekker.

1. Describa dos métodos a través de los cuales el sistema operativo se entera de que un dispositivo de E/S ha finalizado un pedido generado por el sistema operativo, mencionando las principales características de cada uno y compare los mismos.

Polling e Interrupciones.Polling: El sistema realiza el pedido y queda en una iteración consultando el

‘busy bit’ del controlador del dispositivo hasta que este quede limpio (señal que finalizó).

Page 11: 98189514 Preguntas Examen Sistemas Operativos

Interrupciones: El sistema realiza el pedido y será avisado de la finalización a través de una interrupción.

El polling tiene como desventaja el hacer ‘busy waiting’. Ciclos de CPU serán desperdiciados. En cambio el método de interrupciones permite ejecutar otros procesos mientras el dispositivo realiza el pedido. El polling sería útil en casos en que el dispositivo este libre y que tenga mayor velocidad que la del procesador.

Las interrupciones permiten un manejo asincrónico y además permiten ser atendidas cuando el sistema operativo lo crea conveniente.

Febrero 2006 - Considere el siguiente conjunto de procesos, donde la duración de la ráfaga de CPU se mide en milisegundos:Proceso Tiempo de ráfaga PrioridadP1 8 3P2 1 1P3 4 3P4 2 4P5 7 2Se dispone de un equipo monoprocesador y se supone que los procesos llegaron en elorden P1, P2, P3, P4, P5, todos en el instante 0.a. Dibuje un diagrama que ilustre la ejecución de estos procesos utilizandoplanificación: FCFS, SJF, una técnica por prioridad no expropiativa (a menornúmero, mayor prioridad), y RR con cuanto = 1.b. Calcule el tiempo de retorno y espera de los procesos para el algoritmo RR de laparte a.

Aplicando el algoritmo del banquero conteste si el siguiente sistema está o no en unestado seguro.Asignados Máximo DisponibleP0 1 0 0 3 2 0 1 3 3 1 1 0P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 6 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6

Una vez ocurrido un deadlock, describa un proceso que permita recuperarse del mismo.Mencione sus ventajas y desventajas.

• Matar todos los procesos. Es seguro pero costoso. Se pueden matar procesos que llevan mucho tiempo de cómputo. En este caso no es necesario ejecutar el algoritmo de detección de deadlock, ya que se matan todos los procesos involucrados.

• Matar un proceso a la vez hasta eliminar el ciclo que genera el deadlock. Tiene un costo elevado debido a que luego de matar cada proceso debe ejecutarse nuevamente el algoritmo de detección de deadlock para determinar si aún se está en deadlock

Describa 3 métodos para efectuar una operación de Entrada/Salida. (Formas de interacción con la controladora del dispositivo).

Polling, Interrupciones y DMA.DMA: Se utiliza un chip especial que permite transferir datos desde alguna

controladora a memoria sin que el procesador tenga que intervenir en forma contínua. Se ejecuta en paralelo.

Page 12: 98189514 Preguntas Examen Sistemas Operativos

Los system calls son una forma a los servicios del sistema operativo. ¿Existe alguna otra forma de acceder a estos servicios por parte de los procesos de usuario?

No, los system calls son la única forma de acceder a estos servicios.

En el Process Control Block existe una sección para los registros. ¿Cuándo es utilizada esta área?

Cuando el proceso no tiene asignado el recurso procesador. En esa área se guarda el estado de los registros del procesador cuando el proceso fue despachado. Cuando sea cargado de vuelta, el despachador tomará esos valores para cargarlo.

¿A nivel de sistema operativo y Process Control Block, cuáles estructuras son necesarias para describir un hilo (thread)?

A nivel del PCB, el sistema debe tener una estructura independiente para cada thread de un proceso que contenga por lo menos el stack, registros y el program counter.

Calcule el tiempo de espera promedio para los siguientes procesos:Proceso Burst TimeP1 5P2 6P3 2P4 3Utilizando:a) Un planificador Shortest Job First (SJF).b) Un planificador Round-Robin con tiempo de quantum 1.Nota: asuma que el sistema comienza con los 4 procesos en la cola de procesos listos con el orden P1, P2, P3 y P4.

Describa lo que entiende por sistema altamente acoplado/integrado.Es cuando el sistema multiprocesador comparte el bus, reloj, memoria y

periféricos.

¿Qué es lo que implementan los manejadores de los dispositivos (device drivers) ?¿ Forman parte del sistema operativo ?. Justifique.

Implementan primitivas definidas por el sistema operativo utilizando el lenguaje del dispositivo. El sistema operativo es el encargado de administrar el hardware, y de presentar al usuario una interfaz para el uso de los distintos componentes del sistema.

Enuncie y describa brevemente 3 tipos de llamados al sistema (system calls).

Control de procesos, Gestion de Archivos, Gestion de Dispositivos, Gestion de información y Comunicaciones

Enuncie y describa una herramienta que brindan los sistema operativos de tipo UNIX para permitirla sincronización entre los procesos.

Semáforos. Son primitivas de sincronización. En su implementación se utilizan primitivas que permiten la atomicidad de su ejecución.

Escriba un algoritmo en lenguaje de alto nivel (C o PASCAL) que solucione el problema de lasección crítica para dos procesos en un sistema monoprocesador. Asuma que las sentencias sonejecutadas de forma atómica. Solo se permitirá el uso de variables globales a los dos procesos, yes posible utilizar ‘busy waiting’.

flag[i] := true;

Page 13: 98189514 Preguntas Examen Sistemas Operativos

turn := j;while (flag[j] and turn=j) do no-op;SECCION CRITICAflag[i] := false;

¿ Que requerimientos debe satisfacer su solución para que esta sea correcta ? Solo enuncielos,no los describa.

Mutua exclusión, progreso y espera limitada.

Julio 2005 (con solución)-Para hacer un llamado al sistema, ¿es necesario estar en modo monitor o de usuario?Justifique.

Es necesario estar un modo usuario, ya que las aplicaciones que puedan realizar un system call siempre se ejecutan en modo usuario. Una vez que es realizado el llamado, se pasa a ejecutar en modo monitor, y luego vuelve a estar en modo usuario.

-En el diseño de un sistema operativo, ¿cuál debiera haber ido la justificación de elegir un sistema monolítico frente a un diseño por capas?

La necesidad de implementar un diseño con mayor rendimiento.

-En una arquitectura multiprocesador, ¿sería conveniente utilizar un sistema operativo cuyas primitivas o servicios no sean en su mayoría reentrantes?. Justifique.

No, dado que el código no reentrante si es ejecutado simultáneamente por más de un proceso puede generar inconsistencias.

-En una arquitectura multiprocesador, describa las ventajas y desventajas de contar con cache a nivel de los procesadores.

La cache a nivel de procesador incrementa el desempeño ya que los procesadores pueden obtener los datos de la cache y evitar la búsqueda en memoria principal. Se debe mantener la coherencia con los datos, lo cual vuelve mas complejo el hardware necesario.

Febrero 2005(solución)1. Enumere y explique cuales son los tres requisitos que debe cumplir una solución alproblema de la sección crítica.

Mutua Exclusion, Espera limitada y Progreso.La Espera limitada implica un límite, para el numero de veces que se permite

a otros procesos entrar en sus secciones críticas. No se permite posposición indefinida.

El Progreso implica la No alternación, no puedo obligar a que se ejecuten secuencialmente; y que no haya Deadlocks

Indique la diferencia entre planificación a corto, mediano y largo plazo.Largo Plazo: Determina qué programas son admitidos al sistema para

ejecución. Controla el grado de multiprogramación. Selecciona un proceso pendiente de ejecución (en un spooler, en almacenamiento secundario) para que pase a estado listo y empiece a competir con los demás procesos por CPU y memoria.

Mediano Plazo: Determina si agregar más programas a los que ya están parcialmente o totalmente en memoria principal. Sirve para reducir una excesiva contienda por CPU, para eliminar temporalmente procesos de memoria hacia almacenamiento secundario.Cuando hay más recursos disponibles, los retorna a donde quedó.

Corto Plazo: Determina qué proceso es ejecutado por el procesador. Debe ser Eficiente.

Page 14: 98189514 Preguntas Examen Sistemas Operativos

10. Utilizando el algoritmo del banquero, y dada la siguiente situación de procesos y recursosAsignación Max Disponible------------ ------- -----------A B C D A B C D A B C DP0 0 0 1 2 0 0 1 2 1 5 2 0P1 1 0 0 0 1 7 5 0P2 1 3 4 5 2 3 5 6P3 0 6 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6determine si el sistema está en estado seguro, y en caso afirmativo, si al llegar un solicitud delproceso P1 de (0,4,2,0), ésta puede ser satisfecha de inmediato. Justifique su/s respuesta/s.

Defina brevemente: sistema distribuido y sistema de tiempo real.Sistema distribuido: Sistema operativo fuertemente acoplado en software y

debilmente acoplado en hardware, donde los procesadores no comparten memoria física ni reloj. El objetivo es compartir recursos, compartir cargas, sostener la comunicación entre procesos y usuarios, y aumentar la confiabilidad del conjunto.

Sistema de tiempo real: Sistema que tiene restricciones temporales bien definidas, a diferencia de los sistemas por lotes o de tiempo compartido. La ejecución para considerarse correcta debe hacerse dentro de un margen de tiempo definido. Generalemente se utilizar ROM en vez de almacenamiento secundario. Suelen utilizarse para aplicaciones dedicadas.

Mencione el principal problema que debe enfrentar un sistema operativo si ejecuta sobre unequipo multiprocesador, con una única memoria común.

El principal desafío es proteger las secciones críticas del sistema operativo. Esto no era un problema cuando había un solo procesador y a lo sumo un proceso del sistema ejecutando en un momento dado.

Describa brevemente dos limitaciones de los hilos a nivel de usuario sin soporte del núcleo.

Un fallo de página de un hilo hace que se bloquee el proceso con todos los otros hilos.

Idem con E/S.I dem con llamadas al sistema.

Aún si el sistema es multiprocesador y tiene CPU’s ociosas, todos los hilos competirán por un solo procesador, el del proceso que los contiene. En caso de ser múltiples hilos de un proceso que ejerce como máquina virtual de ellos (por ejemplo planificándolos), una vez que está ejecutando un hilo, noexiste forma expropiarle el control para dárselo al proceso/máquina virtual. La única forma es que los propios hilos lo cedan (por ejemplo llamando algún servicio de la máquina virtual, en vez de hacer llamadas directas al sistema).

¿Cuál es la principal diferencia que hay entre implementar un servicio de comunicación demensajes entre procesos de un mismo computador, respecto a hacerlo entre hilos de unmismo proceso?

En que no es necesario acceder al kernel para comunicar o sincronizar los hilos de ejecución.

El IPC necesita un mecanismo gestionado por el sistema, como colas de mensajes, memoria compartida, etc, con sus respectivos costos.

Diciembre 2005 (con solución)En un equipo multiprocesador que dispone de 4 procesadores, se instaló un sistema operativo basado en multiprocesamiento simétrico. ¿Los procesos

Page 15: 98189514 Preguntas Examen Sistemas Operativos

del sistema operativo pueden ejecutar en cualquiera de ellos, o son restringidos a ser ejecutados en algún procesador específico?De estar restringido, describa como se organiza la estructura de los procesadores.

Pueden ejecutar en cualquier de ellos, ya que al ser simétricos, cada procesador ejecuta una copia del SO.

¿Cuáles son las principales actividades del sistema operativo relacionadas con manejo de memoria principal? ¿y cuáles son las relacionadas con el manejo de volúmenes y archivos?

Manejo de Memoria principal Mantener registros de qué partes de la memoria están siendo

utilizados ypor quién.Decidir qué procesos serán cargados en memoria cuando quede

espaciolibre. Asignar y quitar espacio de memoria de acuerdo a la necesidad.

Manejo de volúmenes y archivos:Definir, eliminar, incorporar volúmenes. Administración de volúmenes. Creación y eliminación de archivos. Creación y eliminación de directorios. Soportar primitivas para la manipulación tanto de archivos como dedirectorios. Mapeo de archivos en el almacenamiento secundario. Respaldos de archivos en medios de almacenamiento estables (no

volátiles).

4. Cuando los procesos realizan pedidos a dispositivos de entrada/salida. Además de la colade procesos bloqueados, ¿en qué otra cola del sistema son alojados mientras esperan queel dispositivo realice el pedido?

Cada dispositivo de entrada/salida posee de una cola de espera. Un proceso al ejecutaruna operación de entrada/salida sobre un dispositivo, es puesto en la cola respectiva aldispositivo

6. En un sistema monoprocesador, que gran ventaja tiene, a nivel de procesos de usuario, un sistema que soporte hilos (threads) a nivel de sistema, frente a uno que no lo haga.

Aprovechar que ejecuten otros hilos del mismo procesos mientras alguno de ellos sehaya bloqueado en una operación de entrada/salida. Esto es posible ya que el sistemaoperativo reconoce los hilos como unidades de ejecución independientes.

Julio 2004 (con solución)1. A continuación se propone una solución al problema de la sección crítica para dos procesosi y j que ejecutan en un único procesador. Las instrucciones son atómicas.

Page 16: 98189514 Preguntas Examen Sistemas Operativos

Proceso iwhile (true) do begin

flagi := true;while ( flagj ) do begin

flagi := false;while ( flagj ) do

no-op;flagi := true;end;

Sección Críticaflagi := false;Sección no crítica

end;

Proceso jwhile (true) do begin

flagj := true;while ( flagi ) do begin

flagj := false;while ( flagi ) do

no-op;flagj := true;end;

Sección Críticaflagj := false;Sección no crítica

end;Determine si es correcta. Justifique brevemente.

4. En la implementación de que tipo de programas resulta especialmente útil el contar con unservicio de hilos o procesos multihilados.

En aplicaciones que son servidores de múltiples usuarios atendidos en paralelo, como servidores de bases de datos, servidores de archivos, etc. Frecuentemente estos servidores mantienen un pool de hilos, evitando el costo de crearlos bajo demanda. Hilos es especialmente útil si en memoriase mantiene información común a todos los usuarios, por ejemplo información de estado de la aplicación.

Diciembre 2004 (solución)2. ¿Que tipo de procesamientos existen en un sistema multiprocesador? Describa brevementecada uno de los que nombre.

Simetrico y Asimétrico.

3. ¿Qué permite el bit de modo provisto a nivel de hardware?Pasar de modo usuario a modo monitor y viceversa.

Marzo 2003 (solución)a)¿Qué ventaja o desventaja tiene soportar threads a nivel de usuario en un multiprocesador?

La desventaja es que el sistema sólo gestiona a nivel de tareas o procesos, no de hilos dentro de tareas, y por tanto no les asigna distintos procesadores a hilos de una misma tarea.

Page 17: 98189514 Preguntas Examen Sistemas Operativos

c) Suponga que usted debe procesar una matriz de información, de N x N, donde N es muy grande.Discuta la conveniencia de utilizar tareas multihiladas o procesos para realizar esta acción

Es más conveniente el uso de threads colocando la matriz en el espacio común de direcciones, como una variable global. Es razonable esperar que la aplicación que procesa la matriz no requiera proteger sus hilos entre sí, y que en cambio cada thread deba acceder a toda la matriz.

Si se resuelve mediante procesos, debería emplearse un mecanismo de comunicación del sistema, con la pérdida de desempeño que cada llamada implica.

b) Discuta sobre la adecuación de un planificador no-preemptivo cuando se consideran aplicaciones con restricciones de tiempo real.

Un planificador no-preemptivo no es adecuado cuando se consideran aplicaciones de tiempo real, porque estas requieren garantías de tiempo de servicio, lo cual sólo es posible si se usa un planificador preemptivo.

Pregunta 5a) En el contexto de deadlock, explique la diferencia entre:· prevención· detección con recuperación del mismo

La prevención consiste en asegurarse de que al menos una de las condiciones necesarias de deadlock no se cumpla. Un ejemplo es prevenir una espera circular imponiendo una ordenación total de todos los tipos de recursos, siguiendo un orden de numeración ascendente, y forzando que para obtener unidades de un mismo recurso sea emitida una única solicitud.

La detección y recuperación no evita el deadlock, sino que examina el sistema para determinar si ha ocurrido, para recuperarse del mismo, ya sea terminando uno o más procesos involucrados, o expropiando recursos.

b) ¿Que medidas de prevención de deadlock conoce?Evitar retención y espera,

Forzando a que los procesos soliciten todos sus recursos y le sean asignados antes de que comience su ejecución.

O evitando que los procesos soliciten recursos sólo cuando no tienen ninguno asignado.

Evitar no expropiación,Forzando a que si un proceso que retiene algún recurso olicita otro que

no se le puede asignar de inmediato, entonces se le expropian todos los que ya tiene.

O si un proceso (A) solicita un recurso y no está disponible, sino que está asignado a otro proceso (B) que está esperando recursos adicionales, entonces se le quita y se le asigna a (A).

Evitar la condición de mutua exclusión, por ejemplo utilizando un spooler para el acceso a una impresora.

Evitar espera circular, La mencionada en (a). O exigir que cuando un proceso solicite un ejemplar de recurso libere

todo otro recurso que sea mayor en el ordenamiento definido en (a).

Page 18: 98189514 Preguntas Examen Sistemas Operativos

Febrero 2003 (con Solucion)b) Un proceso A recibe datos por la red y lo escribe en una zona de memoria. Un proceso B debe imprimir porpantalla cada uno de los datos recibidos por A. Explique si el siguiente código resuelve el problema.Semaphore ready = 0;Semaphore go = 0;While(TRUE) {Leer_red();v(go);poner_datos();P(ready); }While(TRUE) {P(go);Copiar_datos();V(ready);Imprimir();}