You are on page 1of 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, seccin de cdigo 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 interrupcin, la CPU puede expropiar el recurso) -- > Ready --- (Si espera algn evento u operacin E/S) ----> Estado Waiting --- (Si termina la ejecucin, ya sea normal o anormalmente) --> Estado Finished Estado Waiting: --- (Una vez que se completa el evento o la operacin 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 ejecucin el recurso CPU, aunque ste an no haya terminado su ejecucin. En este caso, el proceso pasa del estado Running al estado Ready. Tambin puede ocurrir que el proceso necesite un recurso de un dispositivo de E/S y, mediante una interrupcin, se expropia al proceso, pasa a un estado Waiting, y cuando se completa la interrupcin, pasa a Ready, a esperar que se le asigne un procesador. Tambien a la hora de crear un proceso hijo, se interrumpe la ejecucin 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 ejecucin 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 cules etapas debe pasar un cdigo fuente escrito en lenguaje C hasta convertirse en un proceso de un sistema operativo? Se debe primero compilar (compile), luego ensamblar (link) con los dems cdigos objetos para crear un archivo ejecutable. Finalmente, el cargador del sistema lo debe cargar (loader). Qu es un sistema multiprogramado y cul es la principal ventaja de desarrollar un sistema de este tipo?

Un sistema multiprogramado es aquel que permite que procesos se ejecuten dinmicamente, gracias a un Planificador. Si se tiene un solo procesador, se ejecutar un solo proceso por vez, en caso de tener mltiples procesadores, se pueden ejecutar concurrentemente mltiples procesos. Al organizar la CPU entre los procesos, el SO puede hacer ms productiva a la computadora. Es necesario tener varios trabajos simultneamente en la memoria, por lo cual se necesita una correcta administracin de la memoria, y proteccin de la misma, para evitar problemas que ocurren al ejecutar varios procesos a la vez. El objetivo de la multiprogramacin es tener algn proceso en ejecucin en todo momento, as se puede aprovechar al mximo la capacidad de la CPU. Qu ventaja tiene un sistema simtrico frente a uno asimtrico? Cada procesador de un sistema simtrico ejecuta una copia idntica del SO y se comunican entre s, lo cual es ventajoso, ya que el cdigo del ncleo se dispone en memoria comn, por lo cual los procesadores son considerados iguales, se pierde toda jerarqua 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 direccin de la siguiente instruccin a ejecutar por ese hilo. Defina y describa ventajas y desventajas entre los sistemas simtricos y asimtricos. Cada procesador de un sistema simtrico ejecuta una copia idntica del SO que se encuentra en la memoria comn, lo que hace que no existan jerarquas de tareas como sucede con los procesadores asimtricos, 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 retroalimentacin (multilevel feedback queue). En un Multilevel feedback queue scheduler, los procesos pueden clasificarse segn sus cualidades; es posible dividir la lista de procesos listos en varias colas (una para cada clasificacin), donde cada cola tiene su algoritmo de planificacin propio. Se debe tener en cuenta una estrategia de planificacin 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 segn 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 dara mayor prioridad ? A las IO-bound, ya que stas consumen mucho menos recursos de la CPU, por lo tanto tendrn un tiempo de ejecucin 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 ejecucin de un proceso, debe esperar a que este termine, por lo tanto el proceso debe tener un mecanismo de finalizacin que le permita, si necesita

algn 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 caractersticas especficas 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 tcnicas 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 caractersticas principales de un sistema con microncleo (microkernel). Un sistema con Microncleo se constituye de un ncleo que brinde un manejo mnimo de procesos, memoria y adems, provea de una capa de comunicacin entre procesos (es la principal funcionalidad). Los restantes servicios del sistema son construidos como procesos separados al microncleo, que ejecutan en modo usuario. El acceso a los servicios del sistema se realiza a travs de pasaje de mensajes. Aumenta la escalabilidad y la portabilidad. Es mas seguro. Diseo 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 ejecucin 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 tecnologa. Cmo 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 cdigo programado en algn lenguaje, compilado y linkeditado, en espera de ser ejecutado. Es una entidad Pasiva. Un proceso es un programa en ejecucin, una entidad activa, que incluye el valor del Program Counter, los registros y las variables que este modifica.

Un thread es una unidad bsica de utilizacin de la CPU consistente en un juego de registros, y un espacio de pila. Es tambin conocido como proceso ligero. Comparten cdigo, datos y recursos con sus hebras pares. Es til cuando es necesario compartir recursos concurrentemente. Describa 4 componentes de los componentes ms importantes de un sistema operativo.

Administrador de Procesos: Permite la creacin, destruccin de procesos, la

suspensin, reanudacin de procesos, provee mecanismos de comunicacin entre los mismos, y provee mtodos para prevenir Deadlocks, o lograr salir de ellos. ocupado de la memoria, debe decidir que proceso podr comenzar cuando es cargado en memoria. Asigna y quita espacio de memoria segn sea necesario. asigna lugares para la informacin, provee algoritmos para la planificacin de disco. de los dispositivos de almacenamiento y ofrece servicios comunes para todos los medios de almacenamiento. implementando un manejador, que encapsula el acceso a dispositivos remotos. extender, leer, escribir archivos, crear y borrar directorios.

Administrador de Memoria: El sistema debe administrar el lugar libre y

Administrador de almacenamiento secundario: Administra el espacio libre,

Subsistema de Entrada/Salida: Encapsula y oculta caractersticas especficas Subsistema de Red: Se generaliza el concepto de dispositivo virtual

Subsistema de Manejo de Archivos: Implementa mtodos para abrir, cerrar, Subsistema de Proteccin: Incorpora la posibilidad de definir reglas de acceso
y asegura su verificacin en toda ocasin que corresponda.

4. Sea un sistema que cuenta con los siguientes cuatro procesos con sus respectivos tiempos de ejecucin (burst time): Proceso Tiempo de ejecucin 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 anlisis de cmo se comporta. Qu tarea realiza el planificador de CPU en un sistema operativo? Asigna los procesos que estn listos para ser ejecutados a los procesadores disponibles, segn sea su algoritmo de planificacin, que puede ser por prioridades,

por orden de llegada, por orden segn su tiempo de ejecucin, etc. El objetivo de un planificador es aprovechar al mximo la capacidad de proceso de la mquina. Defina dos mtricas utilizadas para comparar planificadores de CPU. Orden de llegada, Prioridad, Utilizacin 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 ejecucin), 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 cules 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 interaccin con el usuario. Como la conmutacin de procesos es tan frecuente, los usuarios pueden interactuar con cada programa durante su ejecucin como si fuera un nico usuario. Al implementar un algoritmo de planificacin (scheduling) round-robin, qu problema se puede presentar con el tamao 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 planificacin expropiativo (preemptive) roundrobin. Un proceso en ejecucin se le expropia el procesador solo si su quantum expira o si termina su ejecucin. Suponiendo que el quantum es 2 y se disponde del siguiente esquema de procesos: Proceso Tiempo de creacin Tiempo de cmputo 1 0 4 2 1 6 3 3 4 Cul es el tiempo de retorno (turnaround time)? Cul es el tiempo de retorno promedio? 3. Por qu considera necesario mecanismos de inter-comunicacin entre procesos (IPC) en un sistema operativo ? Porque permiten la sincronizacin de procesos sin tener que compartir el espacio de direccionamiento en memoria. No habra 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 nmero 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 creacin 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. Cul 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 ejecucin independiente: si un thread se bloquea, los dems 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 podrn ejecutarse varios hilos en paralelo en mltiples CPUs. En el modelo MxN (Many to Many) tambin es necesario, ya que mltiples user threads se multiplexan con mltiples 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 podrn 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 ejecucin 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 crticos tienen ms prioridad que los dems)

De que forma el sistema operativo se asegura que una aplicacin no acceda directamente a un dispositivo? Protegindolo implementando privilegios, obligando a la aplicacin a pedir (desde modo usuario) al sistema operativo que se encargue de la situacin (en modo monitor).

Compare ventajas/desventajas entre un sistema operativo monoltico frente a uno en capas. Un sistema monoltico es frecuentemente utilizado cuando se busca mayor eficiencia, ya que al no tener una estructura bien definida, y ser una coleccin 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 ms bsica la del hardware, y la ms 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 depuracin y verificacin de cada capa por separado. Sus desventajas son: Alto costo de definicin 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 ncleo, describa los pasos a seguir al realizar un cambio de contexto. Es un proceso ms 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 proteccin que le brinda el hardware al sistema operativo. Modo Dual: El SO permite dos niveles de ejecucin, una en Modo Usuario, donde las aplicaciones ejecutan su cdigo 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 disposicin instrucciones privilegiadas, que impiden que programas dainos o mal uso de los mismos causen problemas. Otro mecanismo es la proteccin de E/S, donde se tienen instrucciones privilegiadas que impiden que dispositivos E/S entren y modifiquen directamente algn dato o direccin de memoria que pueda resultar perjudicial. Otro mecanismo es la Proteccin de la CPU, mediante la introduccin de un timer (tambin llamado watchdog) que permite limitar el uso de la CPU, por ejemplo para evitar quedar infinitamente funcionando algn proceso. Otro es la proteccin de memoria, donde se utilizan dos registros: Base y Limite, y cada direccin es evaluada para ver si es consistente con su definicin. El registro base contiene la minima direccin posible, y el limite es la amplitud que puede tomar la direccin. Una CPU evalua esto de la siguiente manera: si una direccin de memoria es vlida 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 nmero 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 segn sea su arquitectura), el estado del Proceso, los Recursos, el

tipo de Planificacin, sus Ancestros y Descendientes, cuenta con un campo especial donde se guarda la informacin acerca de los hilos que se encuentran en funcionamiento en dicho proceso. Guarda todo lo que algn otro thread puede llegar a modificar en su ejecucin: el PC, registros, registros en punto flotante, etc. 4. Qu funciones desarrolla el despachador (dispatcher)? El despachador elije (mediante la planificacin elegida por el Scheduler) cul 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 estn en la siguiente Tabla: Procesos P0 P1 P2 P3 Tiempo 5 8 7 9

Asumiendo un sistema monoprocesador que utiliza un esquema de planificacin de tipo Round-Robin con quantum igual a 3 unidades de procesador. a. Dibuje una grfica de cmo vara 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 propsito general, qu tipo (simtrico o asimtrico) de sistema operativo utilizara? Justifique. Qu estado de proceso debe tener un proceso cuando realiza una invocacin a un llamado a sistema? Justifique. El proceso debe estar ejecutndose, 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 planificacin adecuado para este sistema, mencionando las caractersticas ms relevantes. Round-Robin? Describa las cuatro condiciones que, si ocurren simultneamente, pueden generar un deadlock. 1) Mutua Exclusin: 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 taxonoma 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 instruccin 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 autnomos que ejecutan en forma simultnea diferentes instrucciones sobre diferentes datos) . En un sistema de tiempo compartido que caractersticas se le pediran a un planificador de CPU? Que posea una tasa elevada de despacho de procesador, de tal forma que permita a que los usuarios interacten directamente con el sistema como si fuese su nico usuario. Que mas? Cul algoritmo? Dada las caractersticas 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 ms rpido ya que comparten memoria y los recursos que utilizan, y no es necesario acceder al kernel para comunicar o sincronizar los hilos de ejecucin. Gracias a los multiples cores, los threads se pueden ejecutar concurrentemente. Tambien es ms econmico, 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 ejecucin 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 cmputo en una unidad de tiempo y E una operacin de Entrada/Salida que tarda 3 unidades de tiempo (1 ejecucin 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 distribucin del recurso procesador en una lnea 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 ejecucin. Qu entiende por rendimiento (throughput) de un algoritmo de planificacin?

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 interaccin 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 administracin de la memoria de un computador? Mantiene que partes de la memoria estn siendo utilizada y por quin. Asigna o quita espacio de memoria segn sea necesario. Decide cuales procesos sern cargados en memoria cuando exista espacio de memoria disponible. Describa los 5 servicios bsicos que debe brindar un sistema operativo. Ejecucin de programas Operaciones de E/S Manipulacin de sistemas de archivos Comunicacin entre Procesos Manipulacin de Errores 7. Se tiene un computador con 2 procesadores y con un sistema operativo de procesamiento simtrico, cuyo planificador tiene una poltica 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. Cules 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 mtodos a travs 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 caractersticas de cada uno y compare los mismos. Polling e Interrupciones. Polling: El sistema realiza el pedido y queda en una iteracin consultando el busy bit del controlador del dispositivo hasta que este quede limpio (seal que finaliz).

Interrupciones: El sistema realiza el pedido y ser avisado de la finalizacin a travs de una interrupcin. El polling tiene como desventaja el hacer busy waiting. Ciclos de CPU sern desperdiciados. En cambio el mtodo de interrupciones permite ejecutar otros procesos mientras el dispositivo realiza el pedido. El polling sera til en casos en que el dispositivo este libre y que tenga mayor velocidad que la del procesador. Las interrupciones permiten un manejo asincrnico y adems permiten ser atendidas cuando el sistema operativo lo crea conveniente. Febrero 2006 - Considere el siguiente conjunto de procesos, donde la duracin de la rfaga de CPU se mide en milisegundos: Proceso Tiempo de rfaga 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 ejecucin de estos procesos utilizando planificacin: FCFS, SJF, una tcnica por prioridad no expropiativa (a menor nmero, 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 Mximo 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 cmputo. En este caso no es necesario ejecutar el algoritmo de deteccin 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 deteccin de deadlock para determinar si an se est en deadlock Describa 3 mtodos para efectuar una operacin de Entrada/Salida. (Formas de interaccin 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 contnua. 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 seccin para los registros. Cundo 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, cules 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 perifricos. 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 informacin y Comunicaciones Enuncie y describa una herramienta que brindan los sistema operativos de tipo UNIX para permitir la sincronizacin entre los procesos. Semforos. Son primitivas de sincronizacin. En su implementacin se utilizan primitivas que permiten la atomicidad de su ejecucin. Escriba un algoritmo en lenguaje de alto nivel (C o PASCAL) que solucione el problema de la seccin crtica para dos procesos en un sistema monoprocesador. Asuma que las sentencias son ejecutadas de forma atmica. 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 solucin para que esta sea correcta ? Solo enuncielos, no los describa. Mutua exclusin, progreso y espera limitada. Julio 2005 (con solucin) -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 diseo de un sistema operativo, cul debiera haber ido la justificacin de elegir un sistema monoltico frente a un diseo por capas? La necesidad de implementar un diseo con mayor rendimiento. -En una arquitectura multiprocesador, sera conveniente utilizar un sistema operativo cuyas primitivas o servicios no sean en su mayora reentrantes?. Justifique. No, dado que el cdigo no reentrante si es ejecutado simultneamente por ms 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 desempeo ya que los procesadores pueden obtener los datos de la cache y evitar la bsqueda en memoria principal. Se debe mantener la coherencia con los datos, lo cual vuelve mas complejo el hardware necesario. Febrero 2005(solucin) 1. Enumere y explique cuales son los tres requisitos que debe cumplir una solucin al problema de la seccin crtica. Mutua Exclusion, Espera limitada y Progreso. La Espera limitada implica un lmite, para el numero de veces que se permite a otros procesos entrar en sus secciones crticas. No se permite posposicin indefinida. El Progreso implica la No alternacin, no puedo obligar a que se ejecuten secuencialmente; y que no haya Deadlocks Indique la diferencia entre planificacin a corto, mediano y largo plazo. Largo Plazo: Determina qu programas son admitidos al sistema para ejecucin. Controla el grado de multiprogramacin. Selecciona un proceso pendiente de ejecucin (en un spooler, en almacenamiento secundario) para que pase a estado listo y empiece a competir con los dems procesos por CPU y memoria. Mediano Plazo: Determina si agregar ms programas a los que ya estn 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 ms 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 situacin de procesos y recursos Asignacin 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 fsica ni reloj. El objetivo es compartir recursos, compartir cargas, sostener la comunicacin 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 ejecucin 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 comn. El principal desafo es proteger las secciones crticas del sistema operativo. Esto no era un problema cuando haba 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 ncleo. Un fallo de pgina de un hilo hace que se bloquee el proceso con todos los otros hilos. Idem con E/S. I dem con llamadas al sistema. An si el sistema es multiprocesador y tiene CPUs ociosas, todos los hilos competirn por un solo procesador, el del proceso que los contiene. En caso de ser mltiples hilos de un proceso que ejerce como mquina virtual de ellos (por ejemplo planificndolos), una vez que est ejecutando un hilo, no existe forma expropiarle el control para drselo al proceso/mquina virtual. La nica forma es que los propios hilos lo cedan (por ejemplo llamando algn servicio de la mquina virtual, en vez de hacer llamadas directas al sistema). Cul es la principal diferencia que hay entre implementar un servicio de comunicacin 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 ejecucin. El IPC necesita un mecanismo gestionado por el sistema, como colas de mensajes, memoria compartida, etc, con sus respectivos costos. Diciembre 2005 (con solucin) En un equipo multiprocesador que dispone de 4 procesadores, se instal un sistema operativo basado en multiprocesamiento simtrico. Los procesos

del sistema operativo pueden ejecutar en cualquiera de ellos, o son restringidos a ser ejecutados en algn procesador especfico? De estar restringido, describa como se organiza la estructura de los procesadores. Pueden ejecutar en cualquier de ellos, ya que al ser simtricos, cada procesador ejecuta una copia del SO. Cules son las principales actividades del sistema operativo relacionadas con manejo de memoria principal? y cules son las relacionadas con el manejo de volmenes y archivos? Manejo de Memoria principal Mantener registros de qu partes de la memoria estn siendo utilizados y por quin. Decidir qu procesos sern cargados en memoria cuando quede espacio libre. Asignar y quitar espacio de memoria de acuerdo a la necesidad. Manejo de volmenes y archivos: Definir, eliminar, incorporar volmenes. Administracin de volmenes. Creacin y eliminacin de archivos. Creacin y eliminacin de directorios. Soportar primitivas para la manipulacin tanto de archivos como de directorios. Mapeo de archivos en el almacenamiento secundario. Respaldos de archivos en medios de almacenamiento estables (no voltiles). 4. Cuando los procesos realizan pedidos a dispositivos de entrada/salida. Adems 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 operacin 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 operacin de entrada/salida. Esto es posible ya que el sistema operativo reconoce los hilos como unidades de ejecucin independientes.

Julio 2004 (con solucin) 1. A continuacin se propone una solucin al problema de la seccin crtica para dos procesos i y j que ejecutan en un nico procesador. Las instrucciones son atmicas.

Proceso i while (true) do begin flagi := true; while ( flagj ) do begin flagi := false; while ( flagj ) do no-op; flagi := true; end; Seccin Crtica flagi := false; Seccin no crtica end; Proceso j while (true) do begin flagj := true; while ( flagi ) do begin flagj := false; while ( flagi ) do no-op; flagj := true; end; Seccin Crtica flagj := false; Seccin no crtica end; Determine si es correcta. Justifique brevemente. 4. En la implementacin de que tipo de programas resulta especialmente til el contar con un servicio de hilos o procesos multihilados. En aplicaciones que son servidores de mltiples 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 informacin comn a todos los usuarios, por ejemplo informacin de estado de la aplicacin. Diciembre 2004 (solucin) 2. Que tipo de procesamientos existen en un sistema multiprocesador? Describa brevemente cada uno de los que nombre. Simetrico y Asimtrico. 3. Qu permite el bit de modo provisto a nivel de hardware? Pasar de modo usuario a modo monitor y viceversa. Marzo 2003 (solucin) a)Qu ventaja o desventaja tiene soportar threads a nivel de usuario en un multiprocesador? La desventaja es que el sistema slo 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 informacin, de N x N, donde N es muy grande. Discuta la conveniencia de utilizar tareas multihiladas o procesos para realizar esta accin Es ms conveniente el uso de threads colocando la matriz en el espacio comn de direcciones, como una variable global. Es razonable esperar que la aplicacin 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, debera emplearse un mecanismo de comunicacin del sistema, con la prdida de desempeo que cada llamada implica. b) Discuta sobre la adecuacin 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 garantas de tiempo de servicio, lo cual slo es posible si se usa un planificador preemptivo. Pregunta 5 a) En el contexto de deadlock, explique la diferencia entre: prevencin deteccin con recuperacin del mismo La prevencin 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 ordenacin total de todos los tipos de recursos, siguiendo un orden de numeracin ascendente, y forzando que para obtener unidades de un mismo recurso sea emitida una nica solicitud. La deteccin y recuperacin no evita el deadlock, sino que examina el sistema para determinar si ha ocurrido, para recuperarse del mismo, ya sea terminando uno o ms procesos involucrados, o expropiando recursos. b) Que medidas de prevencin de deadlock conoce? Evitar retencin y espera, Forzando a que los procesos soliciten todos sus recursos y le sean asignados antes de que comience su ejecucin. O evitando que los procesos soliciten recursos slo cuando no tienen ninguno asignado. Evitar no expropiacin, Forzando a que si un proceso que retiene algn 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 condicin de mutua exclusin, 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 cdigo 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(); }