Preguntas Examen Sistemas operativos

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

Views 200 Downloads 54 File size 126KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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?

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 feedback queue). 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 un planificador 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 (nonpreemptive). 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

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 como son 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.

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,

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ómputo 1 0 4 2 1 6 3 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 por ejecutar y en que unidad de tiempo fue creado:

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 procesador entre 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 (preemptive scheduling)? 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

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

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 P0 P1 P2 P3

Tiempo 5 8 7 9

Asumiendo un sistema monoprocesador que utiliza un esquema de planificación de tipo Round-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 los procesos. 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.

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 de CPU? 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 un sistema operativo tenga soporte de hilos (threads) a nivel del sistema operativo frente a otro que no 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 roundroubin 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 C P1: C E C C C P2: E C C C C donde C representa un cómputo en una unidad de tiempo y E una operación de Entrada/Salida que 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?

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 un computador? 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 programas Operaciones de E/S Manipulación de sistemas de archivos Comunicación entre Procesos Manipulación de Errores 7. Se tiene un computador con 2 procesadores y con un sistema operativo de procesamiento simé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 Time P1 5 P2 6 P3 2 P4 3 Notas:  Asuma que el sistema comienza con los 4 procesos en la cola de procesos listos con 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ó).

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 Prioridad P1 8 3 P2 1 1 P3 4 3 P4 2 4 P5 7 2 Se dispone de un equipo monoprocesador y se supone que los procesos llegaron en el orden P1, P2, P3, P4, P5, todos en el instante 0. a. Dibuje un diagrama que ilustre la ejecución de estos procesos utilizando planificación: FCFS, SJF, una técnica por prioridad no expropiativa (a menor número, mayor prioridad), y RR con cuanto = 1. b. Calcule el tiempo de retorno y espera de los procesos para el algoritmo RR de la parte a. Aplicando el algoritmo del banquero conteste si el siguiente sistema está o no en un estado seguro. Asignados Máximo Disponible P0 1 0 0 3 2 0 1 3 3110 P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 6 3 2 0 6 5 2 P4 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.

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 Time P1 5 P2 6 P3 2 P4 3 Utilizando: 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 permitir la 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 la sección crítica para dos procesos en un sistema monoprocesador. Asuma que las sentencias son ejecutadas de forma atómica. Solo se permitirá el uso de variables globales a los dos procesos, y es posible utilizar ‘busy waiting’. flag[i] := true;

turn := j; while (flag[j] and turn=j) do no-op; SECCION CRITICA flag[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 al problema 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.

10. Utilizando el algoritmo del banquero, y dada la siguiente situación de procesos y recursos Asignación Max Disponible ------------------ ----------ABCD ABCD ABCD P0 0 0 1 2 0012 1520 P1 1 0 0 0 1750 P2 1 3 4 5 2356 P3 0 6 3 2 0652 P4 0 0 1 4 0656 determine si el sistema está en estado seguro, y en caso afirmativo, si al llegar un solicitud del proceso 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 un equipo 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, no existe 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 de mensajes entre procesos de un mismo computador, respecto a hacerlo entre hilos de un mismo 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

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 y por quién. Decidir qué procesos serán cargados en memoria cuando quede espacio libre. 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 de directorios. 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 cola de procesos bloqueados, ¿en qué otra cola del sistema son alojados mientras esperan que el dispositivo realice el pedido? Cada dispositivo de entrada/salida posee de una cola de espera. Un proceso al ejecutar una operación de entrada/salida sobre un dispositivo, es puesto en la cola respectiva al dispositivo 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 se haya bloqueado en una operación de entrada/salida. Esto es posible ya que el sistema operativo 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 procesos i y j que ejecutan en un único procesador. Las instrucciones son atómicas.

Proceso i while (true) do begin flagi := true; while ( flagj ) do begin flagi := false; while ( flagj ) do no-op; flagi := true; end; Sección Crítica flagi := false; Sección no crítica end; Proceso j while (true) do begin flagj := true; while ( flagi ) do begin flagj := false; while ( flagi ) do no-op; flagj := true; end; Sección Crítica flagj := 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 un servicio 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 memoria se 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 brevemente cada 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.

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 5 a) 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).

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 por pantalla 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(); }