Вы находитесь на странице: 1из 63

Sistemas Operativos

GUA DE EJERCICIOS 2004


Director de Ctedra : Lic. Carlos R. NEETZEL

AGRADECIMIENTO:
La Ctedra de Sistemas Operativos agradece especialmente la colaboracin de los alumnos (en especial el trabajo de recopilacin efectuado por Mariano E. Sciuto) y ayudantes de la Universidad Tecnolgica Nacional ( Fac. Regional Bs. As.) que han propuesto los ejercicios y las soluciones de los captulos mas importantes del libro Notas Sobre Sistemas Operativos. Tambin mi reconocimiento por la revisin efectuada por el Ing. Leonardo Catalano. La presente gua est disponible para todos aquellos alumnos que previamente decidan realizar los ejercicios de la Ctedra, puedan comparar sus resultados y as servir de gua de resolucin y correccin de los mismos. Esta gua de ejercicios han sido formulados en colaboracin con los ayudantes de la ctedra, como ejercitacin prctica adicional a la de la bibliografa de la materia. Constituyen ejercicios modelo extrados de finales anteriores, por lo que es importante utilizarlos como gua de estudios. Por ltimo, sugerimos que los alumnos traten de realizar un esfuerzo personal en resolver todos los ejercicios de la gua sin la ayuda de las soluciones propuestas, dado que el facilismo y el copiarse no aporta un aprendizaje.

Resumen de Conceptos Bsicos sobre S.O.


Los conceptos aqu explicados dan los conocimientos, trminos y frmulas necesarios para poder resolver los ejercicios que siguen a continuacin. Estos son pequeos puntos tericos que facilitan la resolucin de los problemas; desde ya que se recomienda completar esta teora con la de alguna bibliografa.

I. Planificacin
Comenzando por este tema, podemos decir que en un sistema encontramos bsicamente 4 tipos de planificacin: Una planificacin a largo plazo (la cual se encarga de determinar y organizar los nuevos programas que van a ser admitidos al sistema), una a mediano plazo (encargada del swapping (intercambio) de los procesos, entre la memoria principal y la virtual), una planificacin a corto plazo (el famoso dispatcher, quien determina cual es el prximo proceso que va a tomar la CPU), y finalmente la planificacin de E/S. Para los ejercicio de planificacin propiamente dicho, nos centraremos bsicamente en la planificacin a corto plazo, la cual se basa en una serie de algoritmos, los cuales vamos a repasar en esta pequea introduccin para tenerlos en claro; pero antes, una pequea aclaracin acerca de los trminos a utilizar: * Non preemtive = Apropiativo * Preemtive = No Apropiativo * CPU Burts = Utilizacin del procesador entre dos E/S. Obviamente, cuando un proceso comienza, el tiempo utilizado hasta la primera E/S tambin es un Burst de CPU. Bien, veamos entonces los algoritmos que vamos a utilizar: FCFS: Es el famoso FIFO; es decir, los procesos usan la CPU en el orden que llegaron. Es un algoritmo apropiativo, es decir, a medida que llegan los procesos van usando la CPU y cuando hacen uso de sta, no la abandonan hasta que se bloqueen por E/S o finalicen. Round Robin: El Round Robin viene siempre acompaado por un slice de tiempo, es decir, un tiempo determinado que tienen los procesos para ejecutar; finalizado ese tiempo el proceso abandona la CPU. Debido a esta caracterstica, el algoritmo es no apropiativo. Obviamente que el proceso puede abandonar antes la CPU en caso de que finalice o se bloquee por una E/S; caso contrario (que se le termina el tiempo), vuelve a la cola de listos. Round Robin Virtual: Es muy similar al anterior, pero hace esta diferencia: en vez de tener una cola de listo, tiene dos; una cola clsica para los procesos listos y una nueva cola de listos al que van a parar los procesos cuando finalizan su E/S. Esta segunda cola tiene mayor prioridad que la primera. El objetivo de este algoritmo es realizar un uso mas equitativo de la CPU cuando existen procesos que tienen mas burst de CPU que de E/S, y as mismo hay procesos que tienen mas burst de E/S que de procesador. Shortest Process Next (SPN): Es un algoritmo apropiativo. Cuando los procesos llegan a la cola de listos, stos se ordenan segn quien tiene el menor burst de CPU. El que queda a la cabeza, es quien pasa a usar la CPU. Shortest Remainig Time (SRT): Es muy similar al anterior, pero este s es un algoritmo no apropiativo. En la cola se siguen ordenando segn quien tenga el menor burst de CPU, pero si se da el caso de que en un momento hay un proceso ejecutando y llega uno nuevo, se determina si el proceso que est usando la CPU actualmente le falta menos del uso que va a hacer el nuevo proceso; si es menor, sigue ejecutando, si le queda ms, el proceso es desalojado del procesador y llevado nuevamente a la cola de listos. Prioridades: Pude tomarse como apropiativo o no apropiativo, salvo que lo expresen especficamente. Cada proceso tiene una prioridad y se orden en la cola de mayor a menor prioridad y pasan a usar la CPU en ese orden. En el caso de ser apropiativo, el proceso que pasa a ser uso del procesador queda ah hasta que se bloquee o finalice. En caso de ser no apropiativo, si llega un proceso con mayor prioridad, desaloja al que actualmente est haciendo uso del procesador, y este nuevo proceso toma la CPU.

Feedback: Es como el algoritmo de prioridades, pero se tiene una cola por cada una de las prioridades. Cada cola puede manejarse por un algoritmo Round Robin, teniendo un slice de tiempo para cada cola que aumenta a medida que disminuye la prioridad, es decir, la cola de mayor prioridad va a tener un quantum menor al de la prioridad inmediata inferior y as sucesivamente; Esto se realiza para que los procesos que llegan a la ltima cola son los mas viejos y por lo tanto se les da mas tiempo para que finalicen.

II. Sincronizacin / Semforos / Alg. Del Banquero


SEMAFOROS
Recordemos que un semforo es un mecanismo provedo por un lenguaje de programacin; estos semforos no son ni mas ni menos que variables por las cuales los procesos se envan seales. Los semforos se manejan mediante tres operaciones bsicas: - Una para inicializarlo - Una para decrementarlo - Una para incrementarlo Estas tres operaciones son primitivas, atmicas; es decir, no pueden ser interrumpidas. Para decrementar un semforo podemos encontrar la primitiva: P() o Down() y para incrementarlo, la primitiva V()o Up(). Si bien realizan lo mismo, su construccin no es la misma, por lo tanto se deben utilizar en esa combinacin; si utilizo P debo utilizar V (y viceversa) y si utilizo Down s o s debo utilizar Up (y viceversa). Mediante estas variables los procesos proceden a utilizar los recursos incrementando y decrementando los semforos. Cuando un proceso decrementa el valor del semforo y est queda en un valor negativo (<0), significa que los recursos controlados por dicho semforos estaban siendo utilizados y por lo tanto el proceso debe esperar a que alguno se desocupe, para lo cual se bloquea y queda a la espera de tener disponibilidad. Cuando un proceso incrementa el valor del semforo y ahora ste queda en un valor positivo o nulo (>=0), desencola (despierta) a alguno de los procesos que estaban a la espera del recurso, por lo cual el proceso deja de estar bloqueado y procede a continuar su ejecucin. Vale aclarar dos cosas: por un lado, cuando un proceso sale de la cola de espera a hacer uso del recurso no vuelve a decrementar el semforo sino que pasa directamente a la utilizacin del mismo. La disminucin del valor del semforo ya la realiz cuando intent acceder al recurso y qued bloqueado; en la cola slo estaba a la espera de que se libere dicho recurso. Por otro lado, podemos ver que cuando el semforo tiene un valor negativo, el mdulo del mismo nos indica la cantidad de procesos encolados (a la espera de la utilizacin del recurso). Teniendo en mente esto, podemos completar la idea anterior: Si hay dos procesos encolados el valor del semforo ser = -2, cuando el recurso se libera el valor del semforo pasar a ser = -1 , lo cual es correcto ya que el proceso a la cabeza de la cola har uso del recurso y ahora quedar un proceso esperando. De esta forma, podemos ver como las dos ideas se complementan: cuando el recurso se libera el valor del semforo pasa a ser =-1 y el proceso que estaba esperando a la cabeza de la cola puede utilizarlo pero no vuelve a decrementar el semforo; si lo hiciera, el semforo pasara a valer nuevamente = -2 lo cual no es coherente ya que hay un solo proceso esperando en la cola.

ALGORITMO DEL BANQUERO


Este algoritmo nos permite determinar si un sistema queda en un estado seguro o inseguro analizando las peticiones que van a realizar los procesos; por lo que se requiere conocer de antemano las solicitudes de recursos de cada uno de ellos. Vamos a decir que un sistema queda en un estado seguro si existe una traza de ejecucin en la cual todos los procesos finalizan, es decir, se tiene los recursos disponibles para poder satisfacer las solicitudes. Aunque suene ms que lgico, un estado que no es seguro, entonces es inseguro; lo que significa que si no puedo realizar una traza en el que todos los procesos finalicen, el estado del sistema es inseguro. Otra cosa a tener en cuenta es que un estado inseguro no asegura que los procesos estn en deadlock. El estado inseguro alerta que si la secuencia se ejecuta de una manera determinada, los procesos pueden llegar a quedar interbloqueados, pero no significa que s o s va a suceder. Ponindolo en claro: un estado inseguro no afirma que los procesos van a desembocar en un deadlock; puede suceder que en el momento de ejecucin un proceso sea abortado y libere sus recursos, por lo que quedarn disponibles y tal vez se pueda satisfacer las peticiones del resto de los procesos.

SINCRONIZACION

En cuanto a la sincronizacin, bsicamente el objetivo que se persigue es poder asegurar la exclusin mutua; es decir, que solo un proceso pueda entrar en su seccin crtica (la cual hace uso de algn recurso crtico). Entindase por recurso crtico a todo aquel que puede ser accedido por un proceso a la vez, ya sea una variable, un dispositivo, etc.

III. Memoria Central / Memoria Virtual


MEMORIA CENTRAL
En cuanto a la memoria principal, bsicamente es como organizamos el espacio disponible en sta: si utilizamos particiones fijas, particiones variables, buddy-system, paginacin o segmentacin. Cuando utilizamos particiones variables, al introducir y remover bloques comienza a producirse fragmentacin externa. Para poder hacer un uso mas eficiente de los espacios de memoria que comienzan a quedar libres, se utilizan diferentes algoritmos, los cuales repasamos aqu rpidamente: First Fit: Comienza a buscar en la memoria un bloque libre en el que quepa la particin. Cuando lo encuentra, lo introduce ah. Best Fit: Busca en toda la memoria, pero no se conforma con el primero que encuentra, sino que busca el que mejor le calce; es decir, el que menos espacio desperdicie. Worst Fit: Es prcticamente el contrario al anterior. Busca, por decirlo de alguna forma, el bloque libre ms grande posible para colocar al nuevo bloque; es decir, el que mas espacio desperdicie. Esto lo hace para que quede un nuevo bloque libre lo mas grande posible. Next Fit: Es parecido al Fist Fit. La diferencia es que la bsqueda de espacios libres la realiza a partir de la ubicacin del ltimo bloque; a partir de ah, el primer lugar que encuentra para ubicar el bloque lo ubica. Si utilizamos el algoritmo de buddy-system (o sistema de compaeros), lo que realiza es lo siguiente: va dividiendo a la memoria en mitades, y cada mitad la sigue dividiendo en mitades, as hasta llegar a una mitad cuyo tamao no alcanza para ubicar el bloque, en ese caso, vuelve a la divisin anterior (une los pedazos que parti en el paso anterior) para ubicar el bloque. Cuando un bloque se libera, si la otra mitad contigua tambin est libre, entonces une ambas mitades para poder formar un bloque libre mas grande; es decir, comienza a agrupar las divisiones libres. En la tcnica de paginacin, el proceso se dividen en pginas y la memoria en frames; tanto los frames como las pginas tienen el mismo tamao y suelen ser potencias de 2. A cada proceso se le adhiere una tabla de pginas donde la entrada de cada una de las pginas contiene el nmero de frame en el cual estn ubicadas. La tcnica de segmentacin es similar a la paginacin, con la diferencia de que el programa se divide en segmentos que suelen tener diferentes tamaos. Los procesos tienen tambin una tabla de segmentos, y cada entrada de segmento dice la direccin base y el tamao de dicho segmento. Si el desplazamiento referenciado en la instruccin es mayor al tamao del segmento, la direccin se toma como invlida; caso contrario se suma a la direccin base del segmento y se obtiene la direccin real. Tanto en la tcnica de paginacin como en la de segmentacin es necesario tener en cuenta el formato que adquiere la instruccin. Es decir, supongamos que se utiliza paginacin: en este caso, la direccin lgica estar formada por un nmero de pgina (bits ms a la izquierda) y el resto representar al desplazamiento (Offset) dentro de esa pgina. El nmero de pgina ser utilizado como entrada en la tabla de pginas del proceso para as obtener el nmero de frame, de esta manera la direccin fsica estar formada por el nmero de frame y el mismo desplazamiento que antes. Bsicamente: Direccin lgica: #Pag / #Offset Direccin fsica: #Frame / #Offset Teniendo en cuenta este concepto podemos deducir que el tamao de cada pgina (o el tamao del frame en memoria) estar dado por el tamao del desplazamiento; es decir, si el desplazamiento ocupa 8 bits, entonces el tamao de cada pgina ser de 2^8 = 256 bytes.

MEMORIA VIRTUAL
En memoria virtual se utiliza ya sea la tcnica de paginacin, de segmentacin o una combinacin entre ambas. En cualquier de los casos, a las tablas de segmentos o de paginacin de los procesos se les suele incorporar un bit de presencia y un bit de modificacin.

Cuando se hace referencia a una pgina (o segmento) que no tiene frame asignado, es decir, la pgina no est cargada en memoria, se produce un PAGE FAULT. Es en este momento cuando la pgina es trada de disco a memoria y el bit de presencia de la entrada a esa pgina es modificado. Lo mismo sucede con el bit de modificacin. Cuando se trae de memoria virtual la pgina que ha sido referenciada, suele suceder que hay que escoger una vctima a ser reemplazada (en el caso de no tener frames libres), es decir, alguna de las pginas que actualmente est ocupando un frame debe ser desalojada. Para elegir a esta vctima se suelen tener diferentes algoritmos: Optimo: En s es un algoritmo terico. Se basa en determinar que pginas sern referencias con menor frecuencia en el futuro, las cuales son candidatas a ser desalojadas ya que no sern utilizadas brevemente y por lo tanto no producirn demasiados PAGE FAULTS. Como se debe predecir de alguna forma el futuro, es un algoritmo que no suele ser aplicado. FIFO: Es el bsico algoritmo ya conocido. Las pginas van siendo reemplazadas en el orden en que fueron llegado. Last Recently Used (LRU): Escoge las pginas que mas tiempo han permanecido en memoria. Last Frecuently Used (LFU): Escoge las pginas que han tenido menor nmero de referencias. Reloj: Suele tener un bit de uso por pgina. Cuando una pgina es referenciada, este bit suele ponerse a 1 (uno). Cuando se debe elegir una pgina para reemplazar se recorren los bits de todas las pginas; aquellos que se encuentran en uno se ponen a cero y aquellos que ya estaban en cero indican que la pgina puede ser extrada. Tambin hay que tener en cuenta que las polticas de reemplazo se realizan sobre el conjunto residente de un proceso, esto es, las pginas que actualmente se ubican en memoria. Este conjunto residente puede ser fijo (el nmero de paginas siempre es el mismo) o variable (puede tener ms o menos pginas en memoria). Por otro lado, el alcance del reemplazo puede ser local (se reemplazan las pginas del proceso que produjo el fallo) o global (se consideran todas las pginas residentes en memoria). Teniendo en cuenta estas alternativas, veamos que posibilidades pueden ser aplicadas: Asignacin fija, alcance local: Se reemplazan alguna de las pginas del proceso que produjo el fallo. Asignacin variable, alcance local: Se consideran las pginas del proceso que produjo el fallo, pero se utilizan diferentes criterios (como el PFF) para determinar si le quito un frame al proceso o le sumo uno ms (le agrego una pgina mas en memoria). Asignacin fija, alcance global: Imposible de implementar. Como hemos visto, si la asignacin es fija el nmero de pginas del proceso no puede cambiar. Si consideramos todas las pginas de memoria, puede pasar que al proceso se le sume o se le quite un frame ms, lo cual contradice lo anterior. Asignacin variable, alcance global: Se toman en cuenta todas las pginas residentes en memoria (no solo las del proceso que produjo el Page Fault) y se reemplaza alguna segn el algoritmo utilizado. El nmero de frames asignados al proceso puede crecer o puede disminuir.

Vale aclarar tambin que cuando se hace referencia en el alcance global de considerar todos los frames en memoria, estamos tomando en cuenta a todos los frames disponibles (estn utilizados o no) y que no son frames bloqueados. Debe tenerse en cuenta que el sistema operativo (o al menos una parte de l) siempre reside en memoria y como tal, ocupa frames en la misma; la diferencia est en que reside en frames bloqueados, los cuales no pueden ser considerados para reemplazar o asignar pginas. Sobre la paginacin de procesos podemos hacer referencia tambin a un fenmeno denominadoAnomala de Belady. Est anomala se presenta cuando al aumentar la cantidad de pginas por procesos (se le asignan mas frames), tambin aumenta la cantidad de PAGE FAULT. Obviamente, esta es una situacin inesperada ya que al parecer, si se le das mas memoria a un proceso, cada vez que haga alguna referencia hay ms probabilidades de encuentre esa referencia en memoria, sin embargo, esto no sucede y los fallos de pginas se incrementan.

IV. Entrada Salida / i-Nodos


Los ejercicios de E/S e I-nodos no son los ms complicados, pero tienen una serie de frmulas y consideraciones a tener en cuenta que tratar de explicar lo ms claramente posible.

ENTRADA-SALIDA

Con respecto a E/S, o su trmino en ingls (I/0), lo que usualmente se suele pedir es el tiempo que se tarda en atender a los pedidos y el orden en que stos fueron atendidos. Para poder calcular esto, necesitamos varios datos: el tiempo que tarda la cabeza en pasar de una pista a otra (o de cilindro a cilindro), el tiempo que tarda en pasar de sector a sector y el tiempo de transferencia. Tiempo de bsqueda: Es el tiempo que tarda en pasar de cilindro a cilindro, o de pista a pista. Usualmente este dato viene en el problema. Tiempo rotacional: Es el tiempo que tarda en pasar de sector a sector. Suele venir como dato, o suele informar las revoluciones del disco. En este ltimo caso, supongamos que nos dicen que el disco gira a 6000 rpm. Entonces, con una regla de tres simple podemos calcular cuanto tarda en dar una vuelta: 6000 vueltas______________1 min 1 vuelta______________ 0.0016 min = 0.01 seg = 10 ms Si una pista tiene, por ejemplo, 10 sectores, entonces dividimos el tiempo que tarda en dar una vuelta (pasar los 10 sectores) por la cantidad de sectores y nos da el tiempo que tarda en pasar de sector a sector. En nuestro caso: 10 ms / 10 sect. = 1 ms/sector. Tiempo de transferencia: Cuando se informa la capacidad de los sectores, debemos calcular el tiempo que le lleva a la cabeza leer la informacin del sector; lo que se denomina tiempo de transferencia, y se calcula como: T= b / r * N b = cant. de bytes a transferir r = revoluciones por segundo N =cant. de bytes por pista

Muy bien, conocemos como calcular los tiempos, lo que necesitamos ahora es saber cuantos cilindros se recorren de pedido en pedido para poder aplicarle el tiempo de bsqueda y cuantos sectores hay que recorrer para atender el pedido. Para poder hacer esto, necesitamos tener las direcciones fsicas de los pedidos, las cuales suelen venir expresadas como direcciones lgicas. Convertir una direccin lgica a fsica representa saber que cilindro, que sector y que cabeza lo lee. Para ello necesitamos conocer la cantidad de cilindros, sectores y cabezas (o platos) que tenemos. Volviendo nuevamente a los 10 sectores por pista, y que tambin tenemos 50 cilindros y 3 platos (lo que seran 6 cabezas), primero debemos realizar las siguientes cuentas: Sectores por plato x cant. de platos = 20 x 3 = 60 Recordemos que de un lado del plato tenemos 10 sectores, pero en la cara opuesta tenemos 10 sectores mas, por lo tanto, en un plato tenemos 20 sectores. Luego, tambin calculamos: Sectores x pista = 10 (ya lo sabamos por dato)

Una vez calculado esto, podemos comenzar a convertir las direcciones lgicas a fsicas. Supongamos la direccin lgica 1305. Lo primero que hacemos es dividir la direccin por los sectores por plato x cant. de platos: 1305 / 60 = Esta divisin da un cociente (C), del cual se toma la parte entera y un (R) C = representa el cilindro de la direccin El resto, dado por R, lo divido nuevamente, pero ahora por los sectores por pista: R / 10 = Esta divisin da un nuevo cociente (C), del cual se toma la parte entera y un resto (R) C = representa la cabeza que lee a la direccin R + 1 = representa el sector El DOS hace esta conversin: El nmero de sector lgico se numera a partir del cero. Los sectores BIOS (para distinguirlos de los lgicos) se numeran a partir del 1. resto

Volviendo a nuestra direccin 1305, si la dividimos por 60: C= 21 R = 45 Dividimos R (=45) por 10: C = 4 R = 5 => 1305 = (21,4,6) siendo (cilindro,cabeza,sector)

Ahora ya tenemos las direcciones fsicas y los tiempos calculados, solamente nos falta ver cuanto se tarda en pasar de una direccin a la otra. Para ello vamos a suponer dos direccin lgicas ms: 469 y 1040 cuyas direcciones fsicas son (7,4,10) y (17,2,1) respectivamente. Entonces supongamos que se atienden los pedidos en ese orden: DIR: CIL: SECTOR: 1305 21 6 469 7 10 1040 17 1

* 1305 469: Supongamos que la direccin 1305 fue un pedido que se atendi, por lo tanto, cuando la cabeza ley ese sector qued al final del sector 6 (comienzo del 7). Para pasar a la direccin 496 debe atravesar 14 cilindros (21-7 = 14), que si lo multiplicamos por 1 ms que tarda de pasar de pista a pista, nos da un total de 14 ms. Ahora bien, durante esos 14 ms, el disco sigui girando, y los sectores siguieron pasando. Si tard 14 ms y tardo 1 ms en pasar un sector, significa que pas 14 sectores (es decir, una vuelta y 4 sectores ms). Como me encontraba al principio del sector 7, cuando peg una vuelta (pas 10 sectores) qued en el mismo lugar, pero como tard 4 ms ms (4 sectores ms) me muevo hasta el comienzo del sector 1. Pero como el pedido de la direccin 469 est en el sector 10, y yo estoy al comienzo del sector 1, debo volver a pegar toda la vuelta (lo que sera el tiempo rotacional de bsqueda del sector) hasta ponerme al comienzo del sector 10, lo cual me lleva 9 ms (tengo que atravesar 9 sectores). Entonces, lo que tarde en pasar de la direccin 1305 a la 469 fueron 14 ms + 9 ms = 23 ms. Para atender este pedido, leo el 10 sector y la cabeza queda nuevamente al comienzo del sector 1. * 469 1040: Ahora me encuentro al comienzo del sector 1 ya que acabo de atender el pedido anterior; para atender el siguiente pedido realizo el mismo anlisis que antes. Tengo que atravesar 10 cilindros (17-7 = 10), cada uno me lleva 1 ms, entonces tardo 10 ms. Durante esos 10 ms el disco sigui girando; como tardo 1 ms en pasar de sector a sector, esos 10 ms me hicieron pegar una vuelta entera (10 sectores) y volv a quedar nuevamente al comienzo del sector 1. Como el pedido que tengo que atender est en el sector 1, y me encuentro al inicio de ste, ya estoy listo para leerlo por lo que el tiempo rotacional es nulo. Por lo tanto, el tiempo que me llev atender este pedido fueron solamente 10 ms, que si los sumo a los 23 ms del pedido anterior, el tiempo total para atender todos los pedidos fue de 33 ms. Este es el anlisis que se debe realizar cuando se deben atender pedidos. Por un tema de simplicidad no consideramos aqu el tiempo de transferencia, es decir, si tengo el tamao en bytes de los sectores, cuando llego al comienzo del sector solicitado, debo atender el pedido. El tiempo que tarda esta atencin se calcula con la frmula que expres al comienzo de la explicacin de E/S, y que est denominada como Tiempo de transferencia. Por supuesto que la suma de todos los tiempo (lo que tard en atender cada uno de los pedidos y lo que tardo en transferirlos) me va a dar el tiempo total de atencin. Puede existir el caso en que simplemente se tenga como dato el tiempo que se tarda en pasar de una pista a la otra y se pida el tiempo promedio de atencin. En tal caso, se calcula cuantas pistas se atravesaron entre pedido y pedido (como lo calculamos anteriormente, realizando la resta de los cilindros y multiplicando por el tiempo que se tarda de pista a pista), se suman todos estos tiempos y se divide por la cantidad de pedidos. Otro punto a tener en cuenta en las solicitudes de E/S es en el orden en que se atienden. Para ello existen diferentes algoritmos que se detallan a continuacin: FIFO: Como siempre, tenemos un algoritmo FIFO. Los pedidos se atienden en el orden en que llegan.

Shortest Seek Time First: Se atiende al pedido que mas cercano est a la posicin actual del brazo; en otras palabras, el que hace un menor desplazamiento del brazo. Puede producir inanicin de aquellos pedidos que estn en direcciones alejadas. Scan: Va escaneado las pistas del disco. Es decir, atiende a los pedidos movindose en una direccin hasta que llega al lmite del disco, cuando no hay mas pistas, comienza a atender los pedidos en la direccin contraria. C-scan: Es igual que el anterior, pero no sube y baja sino que siempre atiende los pedidos en una direccin. Cuando llega al final, baja (o sube) abruptamente hasta el extremo contrario y vuelve a atender los pedidos en la misma direccin. El tiempo que le lleva realizar el retroceso se considera despreciable. Look: Es igual que el Scan, pero no llega hasta el final del disco para comenzar a moverse en la direccin contraria sino que cambia de direccin cuando atiende el ltimo pedido en ese sentido. Supongamos que el brazo est ascendiendo, cuando atiende el ltimo pedido en esta direccin, entonces comienza a descender y atender solicitudes en esta nueva direccin hasta que llega a la ltima y vuelve a cambiar de sentido. C-Look: Es igual que el C-scan, pero utiliza el mismo criterio que el Look. Cuando atendi el ltimo pedido en una direccin, desciende (o asciende) abruptamente hasta la primera direccin a atender en el sentido que utiliza. Para dejarlo ms claro, supongamos que est atendiendo una solicitud en la direccin 150, y sta es la ltima en direccin ascendente, entonces baja abruptamente hasta el prximo pedido ms bajo (supongamos que hay un pedido en la direccin 15) y a partir de este pedido comienza a ascender nuevamente. N-scan: Es el algoritmo Scan pero no se tiene una nica cola para encolar los pedidos, sino que se tienen N colas. Cuando se estn atendiendo los pedidos de una cola, los nuevos que lleguen NO pueden ingresar a la cola en uso, se deben encolar en alguna de las otras colas. Cuando se atendieron todos los pedidos de una lista, se pasa a atender los pedidos de otra con el mismo criterio (no se pueden encolar nuevos pedidos en esta nueva cola atendida) F-scan: Es un caso particular del N-scan; solo que tiene 2 colas. Los criterios a tener en cuenta son los mismos: cuando se atiende una cola, los nuevos pedidos se encolan en la otra.

I-NODOS
Realicemos un repaso de los tipos de archivos que reconoce UNIX. Ordinarios: Son los tpicos archivos de los usuarios, para almacenar informacin o para realizar otra funcin, pero bsicamente no tienen propiedades particulares. Directorios: Son tambin un tipo de archivo pero que son propiedad del SO y que poseen derechos e informacin adicional para poder ser reconocidos como tales y poder manejar los archivos contenidos en ellos. De enlace: Son los que permiten hacer vinculaciones dentro del sistema de archivos. Existen dos tipos de archivos de enlace: o Enlace duro: No permite hacer vnculos entre distintos filesystem; solo permite en archivos dentro de una misma particin. o Enlace blando: Permite hacer enlaces entre distintos filesystem ya que los archivos son referencias al archivo original. Pueden existir estos tipos de archivos incluso si no existe el archivo original. Pipes: Son archivos que permiten la comunicacin entre procesos. Existen tambin dos tipos de estos archivos: o Nombrados: Permiten comunicar a procesos que no se conocen o son independientes. o Sin nombre: Permiten comunicar a procesos que se relacionan entre s, como ser un proceso padre y su hijo. Especiales: Son archivos que representan a todo dispositivo en el sistema. Estos dispositivos pueden estar orientados a bloques (utilizan buffer) o a caracteres (utilizan cola de caracteres)

Ya sea cualquiera de estos archivos, UNIX los maneja mediante i-nodos. Estos son estructuras de control que tienen la informacin necesaria para poder manipular a los archivos. Hay que tener en claro que varios archivos pueden referenciar a un mismo i-nodo, pero un i-nodo solo controla un archivo y un archivo es siempre controlado por un solo i-nodo. Basndonos en esto, podemos ver que el tamao mximo de un archivo estar determinado por la capacidad de direccionamiento que tenga el i-nodo. En cambio, el tamao mximo de la particin del filesystem estar relacionada con la capacidad mxima que yo tenga de almacenamiento. Los i-nodos son estructuras que se basan en punteros, estos pueden ser: Directo (apuntan directamente al bloque de datos), Indirecto (apunta a un bloque, el cual tiene punteros que apuntan

directamente a los datos), Doblemente indirecto (apunta a un bloque, el cual tiene punteros y cada uno de ellos apunta a nuevo bloque basado tambin en punteros que apuntan a los bloques de datos) y Triplemente indirecto (igual que el doblemente indirecto, solamente que se agrega un nivel ms de bloques). Para calcular la capacidad de direccionamiento del i-nodo, nos bastara con saber cunto pueden direccionar los punteros directos, cunto los indirectos, cunto los doble y triplemente indirectos, y sumando todo, obtendramos el tamao mximo del archivo. Para calcular est capacidad de direccionamiento por cada tipo de puntero contamos con una frmula (cuya explicacin queda para razonar), que es la siguiente:

CAPACIDAD = Tb x ( Tb / Tp) ^n x cant. de Punteros de n

Donde n tendr el valor: = 0 ; si estamos calculando la capacidad de los punteros directos = 1 ; si estamos calculando la capacidad de los punteros indirectos = 2 ; si estamos calculando la capacidad de los punteros doblemente indirectos = 3; si estamos calculando la capacidad de los punteros triplemente indirectos

En cuanto al tamao del filesystem, solo tenemos que calcular la capacidad de almacenamiento que poseemos en nuestros discos. Los discos pueden adoptar diferentes organizaciones, la cuales se denominan RAID y se dividen en 6 niveles: NIVEL 0: Un disco lgico y n discos fsicos. Las n primeras stripes del disco lgico representarn las primeras stripes de cada uno de los discos fsicos. NIVEL 1: Utiliza la tcnica de espejo, es decir, duplica la informacin. Por lo tanto, siempre habr un nmero par de discos, lo cual no significa que todos ellos estn disponibles. Solamente se podr utilizar la mitad de la cantidad total de discos ya que la otra mitad contendr la misma informacin duplicada. NIVEL 2: Utiliza un cdigo de deteccin y correccin de errores (el cdigo de Hamming) NIVEL 3: Cambia el cdigo de Hamming por un bit de paridad, el cual los almacena en discos de paridad. NIVEL 4: Utiliza un solo disco de paridad, donde guarda los bits por stripes. Es decir, para las primeras stripes de todos los discos calcula un stripe de paridad que lo guarda en este ltimo disco de paridad. NIVEL 5: Es idntico que el nivel 4, pero en vez de tener todas las strips de paridad agrupadas en un solo disco, distribuye las bandas de paridad por los diferentes discos.

V. Seguridad
En cuanto a seguridad debemos tener en cuenta los requerimientos que deben ser protegidos por la misma: Secreto o privacidad: La informacin debe ser confidencial para las personas que no sean autorizadas Integridad: Las posesiones del sistema no pueden ser modificadas por personas que no estn autorizadas Disponibilidad: Los elementos del sistemas deben estar disponibles para toda persona autorizada al uso de los mismos Autenticidad: Debe asegurarse la autenticidad de las personas que ingresan al sistema; un ejemplo clsico es mediante las passwords. Por supuesto que estos requerimientos son atacados constantemente por diferentes amenazas, dichas amenazas afectarn tanto a uno como a varios de estos aspectos segn la funcin que adopte esta amenaza. Para verlo mas claro, podemos decir que tenemos 4 tipos de amenazas en un sentido general: Interceptacin: Afecta sobre todo al secreto. Un flujo de informacin es interceptado por un ente que no est autorizado. Modificacin: Factor clave que afecta a la integridad del sistema. Los datos, o incluso el hardware es modificado para acceder a la informacin.

Interrupcin: Ataca a la disponibilidad. La informacin no llega a destino ya que se interrumpe en el camino. Fabricacin: Un ente no autorizado crea o inventa informacin que la hace pasar como si fuese autntica; obviamente afecta a la autenticidad.

Hasta ahora pareciera ser que solo la informacin del sistema es afectada por las diferentes amenazas, y si bien es una de las posesiones del sistema que suele ser atacada con mayor frecuencia, no es la nica. Tanto el hardware, como el software, las lneas de comunicaciones y las redes son usualmente afectadas por diferentes tipos de amenazas. El hardware se ve amenazado principalmente desde el aspecto de la disponibilidad, el software suele correr el riesgo de ser borrado, modificado (integridad) y tambin peligra su uso no autorizado (secreto). En cuanto a las lneas de comunicacin y las redes podemos hacer una diferencia entre lo que son las amenazas activas y las amenazas pasivas. Las primeras, las amenazas activas, suelen atentar contra la disponibilidad y la integridad; ejemplos clsicos son la modificacin o creacin de mensajes. En cuanto a la segunda clase de amenazas, las pasivas, son aquellas que suelen atentar contra el secreto; son del tipo de escuchas, es decir, no modifican informacin pero es accedida por personas no autorizadas. Ahora bien, como el sistema operativo debe ocuparse de mantener la seguridad en el sistema, debe adoptar alguna tcnica para cumplir con los requisitos que sta plantea. Dentro de todas las posibilidades que hay, aqu veremos una de las mas utilizadas que es la de la matriz de acceso. Para ello, debemos definir tres trminos: - objeto: cualquier cosa a la cual se controla su acceso. - sujeto: entidad capaz de utilizar objetos. - derechos de acceso: la manera en que un sujeto puede hacer uso de un objeto. Con estos tres conceptos, el sistemas operativo arma una matriz referenciando a los recursos por columna y los dominios por cada fila; en las intersecciones se ubican los derechos que tiene dicho dominio para tal objeto. De esta forma queda organizada una matriz de acceso, pero tambin debemos tener en cuenta los trminos que hacen referencia a lo que se denomina lista de control de acceso y lista de capacidades. Estas no son ni mas ni menos que distintos puntos de vista de ver a la matriz: si armamos una lista por cada dominio (tomamos cada una de las filas por separado) obtendremos una lista de capacidades. Por otro lado, si armamos una lista por cada objeto (tomamos ahora cada una de las columnas por separado) obtendremos listas de control de accesos. Otra forma de controlar los accesos a los recursos que tiene el sistema operativo es mediante el uso de contraseas o claves. En cuanto a las contraseas, podemos comenzar mencionando que existen diferentes estrategias de seleccin de las mismas: Educacin al usuario: Darle reglas al usuario para la eleccin de passwords. Explicarle la importancia de seleccionar contraseas que mezcle diferentes caracteres (blancos, nmeros, etc.), que no sean contraseas relacionadas con direcciones o nombres conocidos, que no sean excesivamente cortas, evitar palabras de diccionarios, y as diferentes consideraciones. Generadas por computadora: Son difciles de adivinar, lo cual es ventajoso, pero tambin son difciles de recordar, lo cual tienta al usuario a anotarlas, cosa sumamente indeseable. Detector Reactivo: Peridicamente el sistema ejecuta un programa para adivinar passwords y detecta si posee contraseas vulnerables, es decir, fciles de adivinar. Detector Proactivo: En el momento que el usuario elige su password, el sistema controla que se cumpla con las reglas establecidas; caso contrario, rechaza la contrasea. Por supuesto que las contraseas deben estar guardadas en algn sitio para que cuando un usuario desee ingresar al sistema se pueda controlar la password ingresada con la ya almacenada. Para evitar un uso indeseado de este archivo que contiene contraseas, se pueden tomar dos medidas: una es la de controlar que personas tienen acceso a dicho archivo, y por otro lado tenemos la tcnica de encriptacin. Encriptar una clave no es ni mas ni menos que modificarla mediante un algoritmo de tal manera que no pueda ser visible su contenido. Uno de estos algoritmos de encriptacin es el DES (Data Encryption Estndar). Esta funcin tiene dos inputs: un texto a encriptar de 64 bits y la clave de 56 bits. Los bloques mayores de texto se encriptan en bloques de 64 bits. El DES procesa el texto a travs de 16 iteraciones, produciendo un valor intermedio de 64 bits al final de cada iteracin. Cada una de estas iteraciones es la misma funcin compleja que involucra una permutacin de los bits y sustituye un patrn de bit por otro. El input de cada paso es la salida del paso anterior ms una permutacin en los bits clave, y esta permutacin se conoce como subclave. En el caso especfico de las claves en UNIX, cada usuario elige una clave de hasta 8 caracteres. Esta clave es convertida a un valor de 56 bits que sirve de input a una rutina de encriptacin, la cual es una modificacin

del algoritmo DES. Esta modificacin se basa en tomar un valor de 12 bits llamado SALT. Este valor guarda relacin con la hora en que la password se asign al usuario. De esta forma podemos ver que el algoritmo DES se basa en realizar una permutacin en los bits, esta idea nos da pie a clasificar dos tipos de encriptacin de claves: - Encriptado convencional o simtrico: Su algoritmo se basa en operaciones simples sobre patrones de bits. Por otro lado, en este tipo de cifrado, se utiliza la misma clave para cifrar como para descifrar el mensaje. Como hemos visto, el DES es un ejemplo de este tipo de algoritmo. - Encriptado de clave pblica o asimtrico: Su algoritmo se basa en operaciones matemticas y no en operaciones sobre los bits. Como diferencia podemos decir tambin que este algoritmo utilizar una clave para cifrar los mensajes y otra para descifrarlos. Finalmente vamos a decir tambin que la encriptacin por clave pblica soluciona la distribucin de la clave; en el caso del encriptado simtrico es necesario la transmisin de la clave ya que con sta se cifra y descifra el mensaje. El sentido de utilizar una clave privada y una clave pblica en los cifrados asimtricos es que permite la autenticacin de un mensaje; es decir, la clave privada lo que hace es firmar el mensaje. Cuando ste se recibe, utilizando la clave pblica del remitente es posible asegurar la procedencia del mensaje.

1. P l a n i f i c a c i n
1. Un sistema computacional de un solo procesador planifica el procesamiento de trabajos segn el siguiente modelo:
Fin de quantum

CPU Cola largo plazo Cola corto plazo

E/S Cola E/S La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos, usando una poltica SJF (Shortest Job First). En el corto plazo el procesador es asignado usando una poltica Round Robin con un quantum de 2 unidades de tiempo

Proceso P1 P2 P3 P4 P5 P6

T. Llegada 0 0 2 4 10 15

CPU 5 2 3 6 2 3

E/S 3 4 4 2 3 4

CPU 3 3 2 2 2 4

Tiempo Est. 12 10 8 11 7 12

Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) Fin de E/S 2) Cola de largo plazo 3) fin de quantum. Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo de E/S (planificado por FIFO) se pide la traza de ejecucin de los procesos.

2.

Suponga un planificador que utiliza dos colas con distintos algoritmos de planificacin: la primera, Shortest Remaining Time (SRT), y la segunda, Round Robin (RR) con un quantum de 3. Sabiendo que la primera cola tiene mayor prioridad y que existe un nico dispositivo de E/S, se pide realizar la traza de ejecucin de los procesos con el siguiente esquema de estados:

Proceso P1 P2 P3 P4 P5

Tiempo Llegada 0 3 5 7 7

CPU 6 2 4 1 4

I/O 2 4 3 2 1

CPU 2 2 3 2 1

New SRT

Run

End

RR Blocked

3. Suponga un sistema que posee un procesador, el cual posee una planificacin SJF (Shortest Job First), y dos dispositivos que planifican segn FIFO; uno es una impresora y otro un disco. Suponiendo que al SO le lleva un ciclo de CPU realizar el cambio de proceso, se pide realizar la traza de los mismo con los siguientes datos:
Proceso P1 P2 P3 P4 P5 T. Llegada 0 0 3 5 9 CPU 5 4 2 7 1 E/S Imp: 2 Disco: 3 Disco: 5 Imp: 1 Disco: 3 CPU 2 3 4 1 5 E/S Disco: 5 Disco: 2 Imp: 7 Imp: 2 Imp: 1 CPU 3 1 2 3 2

4. Un sistema de multiprocesamiento posee dos CPU, la primera de ellas planifica segn un algoritmo no apropiativo (Round Robin con quantum=3), mientras que la segunda CPU planifica segn un algoritmo basado en prioridades preemtive; a menor nmero mayor prioridad. Adems se tienen dos dispositivos de E/S que planifican FIFO, una impresora y un escner. Segn el siguiente esquema y los datos de los procesos, se pide la traza de ejecucin:
Proceso P1 Pri: 2 P2 Pri: 3 P3 Pri: 5 P4 Pri: 1 T. llegada 0 (CPU1) 0 (CPU2) 1 (CPU2) 3 (CPU2) CPU 10 5 3 1 E/S Scanner: 5 Imp: 1 Scanner: 6 Imp: 2 CPU 4 3 3 8

CPU 1 RR q=3 New Exit Imp

CPU 2 Prioridades

Sca

5. Un sistema operativo planifica segn un algoritmo de RR=4. Adems se tiene un disco que encola los pedidos segn un algoritmo FIFO. Se pide la traza de ejecucin de los procesos teniendo en cuenta el siguiente cuadro: (KLT = Hilo a nivel Kernel - ULT =Hilo a nivel Usuario)
Proceso P1 KLT ULT P2 KLT KLT P3 ULT ULT Llegada 0 2 4 CPU 3 5 6 5 2 7 I/O 3 2 1 4 2 5 CPU 5 7 2 1 5 3 I/O 2 3 CPU 1 1

6. Suponga un sistema distribuido, en el que se cuenta con dos mquinas:


Mquina A Algoritmo SRT Disco rgido 1.8 Gb Mquina B Algoritmo FCFS Impresora lser Blanco y Negro

Solo se migran los procesos por falta de recursos, y eso consume un ciclo reloj. Dibuje la traza de los procesos, teniendo en cuenta que ambas mquinas estn perfectamente sincronizadas.

Proceso P1

Mquina A

Ciclo Inicio 0

P2

P3

P4

P5

Recurso CPU Disco CPU CPU Disco CPU CPU Impresora CPU CPU Disco Impresora CPU CPU DISCO Impresora CPU

Ciclos duracin 3 1 2 1 2 4 1 2 1 2 2 2 3 1 2 3 1

7. Considere los procesos cuyo comportamiento se recoge en la siguiente tabla:


Proceso Llegada CPU
A B C D 0 1 2 4 1 1 2 4

I/O
2 1 1 3

CPU
1 5 2 3

I/O
2 1 3 -

CPU
1 7 2 -

I/O
4 -

CPU
2 -

Sabiendo que hay una sola cola de bloqueados, se pide realizar la traza de ejecucin segn: a. FIFO b. RR (q=1)

c. SRT d. Prioridades Apropiativo (A=3, B=2, C=D=1) e. Prioridades NO-apropiativo (las mismas que para d.)

** Considerar que a menor nmero, mayor prioridad

8. Suponga un sistema con el siguiente diagrama, en el cual existen dos procesadores, cada uno de los cuales tienes su propia cola de listos, la primera planifica segn el algoritmo no- apropiativo Round Robin (q=3) y la segunda mediante un algoritmo apropiativo; el Shortest Process Next. Adems existen 3 dispositivos de E/S: una impresora, un disco y un scanner; cada uno con su propia cola planificando mediante FIFO. Teniendo en que para ambos procesador se consume un ciclo de CPU cuando se debe realizar un cambio de proceso; se pide realizar el diagrama de Gantt.
Proceso P1 P2 P3 P4 P5 P6 T. Llegada 0 (Proc: 1) 0 (Proc: 2) 1 (Proc: 1) 2 (Proc: 1) 3 (Proc: 2) 5 (Proc: 2) CPU 4 8 2 7 3 1 E/S Imp: 3 Sca: 1 Sca: 2 Disco: 3 Disco: 5 Imp: 2 CPU 3 6 1 2 5 4 E/S Sca: 2 Disco: 5 Sca: 1 Disco: 3 Imp: 7 Imp: 3 CPU 3 1 4 5 2 2

CPU 1 RR q=3 Exit

Imp

Disk

CPU 2 SJF

Sca

(En caso de superposicin de tiempos, dar prioridad a los procesos que vuelven de los dispositivos)

9. Suponga un sistema operativo que realiza una planificacin no-apropiativa con un Round Robin cuyo quantum es igual a 2 (q=2). Se tiene adems una impresora que ordena sus pedidos segn un algoritmo FIFO. Sabiendo que se consume un ciclo de procesador cada vez que el sistema operativo debe asignar un nuevo proceso al CPU, se pide la traza de los mismos.

Proceso P1

P2

ULT ULT KLT ULT ULT

Llegada 0

CPU 1 1 3 3 2

E/S 6 2 2 3 1

CPU 2 3 1 3 4

E/S 5 1 -

CPU 2 3 -

10. Se cuenta con dos maquinas que poseen la siguientes caractersticas:


Planificacin Recursos Mquina A SRT Disco rgido de 20 Gb Mquina B SPN Impresora Scanner

Teniendo en cuenta que se consume 1 ciclo de CPU cada vez que se necesita migra un proceso (solamente por falta de recursos), se pide la siguiente traza de procesos:

Proceso

Mquina

Ciclo Inicio

P1

P2

P3

P4

Recurso CPU Disco CPU Scanner CPU CPU Disco CPU CPU Impresora CPU CPU Scanner CPU Impresora CPU

Duracin 7 5 3 4 1 2 3 5 3 5 2 3 2 1 3 3

2. Semforos / Algoritmo del Banquero / Sincronizacin


1. Realizar la siguiente traza de ejecucin, sabiendo que los semforos estn inicializados de la siguiente manera: A=B=1 y C=0. Determinar que procesos quedan bloqueados y en que semforos:
P1
V(A) P(B) P(B) V(B) V(C) V(A)

P2
P(A) V(C) P(A) P(B) P(A) V(A)

P3
P(B) P(C) V(B) V(A) P(C) P(A)

P4
V(A) V(B) P(C) P(A) P(C) V(C)

2. Realizar la siguiente secuencia de ejecucin y determinar que procesos finalizan y cuales no. En el caso
de aquellos que no finalicen, indicar en que semforos quedaron bloqueados. Los semforos estn inicializados de la siguiente forma: A=D=E=1 B=C=F=0

P1 P(A) P(C) V(A) P(E) P(F)

P2 V(E) P(D) P(B) V(E) V(F)

P3 P(A) V(B) P(F) V(F) P(E)

P4 V(F) P(E) V(A) P(B) P(A)

P5 V(D) V(B) P(A) P(F) V(C)

3. Realizar la siguiente traza de ejecucin. Determinar los procesos que finalizan y los que no.
J=T=S=R=U=0 H=E=C=O=1

P1
Down(S) Down(C) Up(R) Down(T) Up(J) Down(E) Up(E) Up(C) Up(T) Down(H)

P2
Down(E) Down(H) Up(U) Down(J) Up(T) Down(O) Up(O) Down(T) Up(H) Up(E)

P3
Down(R) Down(O) Up(R) Up(J) Down(C) Up(O) Down(R) Up(R) Up(R) Up(C)

P4
Down(R) Up(R) Down(H) Down(J) Down(T) Down(O) Up(J) Up(T) Up(O)

P5
Down(U) Up(S) Down(J)

4.

Dadas las siguientes matrices de procesos y recursos, contestar las siguientes preguntas: Disponibles: A(2), B(1), C(0), D(0)

P0 P1 P2 P3 P4

A 0 2 6 4 0

Mx. Pedido de recursos B C D 0 1 2 7 5 0 6 5 6 3 5 6 6 5 2

A 0 2 0 2 0

Recursos Asignados B C 0 1 0 0 0 3 3 5 3 3
que

D 2 0 4 4 2

a) Es un estado seguro? b) Suponga que P2 luego de terminar su ejecucin realiza el siguiente pedido (0,3,0,0). En estado queda el sistema si se otorga el pedido.

5. Dada las siguiente matrices de procesos y recursos, determinar en que estado se encuentra el sistema.
Los recursos disponibles son: R1 (0), R2 (7), R3 (1), R4 (2)

P0 P1 P2 P3 P4 P5 P6

R1 5 2 4 0 1 4 1

Mx. Pedido de recursos R2 R3 0 2 3 5 3 5 8 0 3 2 5 5 2 0

R4 4 0 6 3 4 7 6

R1 2 1 3 0 0 2 1

Recursos Asignados R2 R3 0 0 3 5 2 2 0 0 0 2 1 3 1 0

R4 2 0 2 2 4 0 5

6. Un hotel est compuesto por la siguiente infraestructura: 5 habitaciones de suite (S), 30 habitaciones matrimoniales con vista panormica (MVP), 50 habitaciones matrimoniales comunes (MC), 20 habitaciones base doble con vista panormica (BDVP), 45 habitaciones base doble comunes (BDC) , y 20 habitaciones base triple (BT). La agencia de turismo A le confirma al administrador del hotel que a partir del domingo 13/7, todos los domingos hasta el 3/8 se renovar un tour que requerir 10 MVP, 20 MC, 10 BDVP, 30 BDC. La segunda agencia B le confirma un tour que arribar al hotel el martes 15/7, que se renovar por nica vez el 29/7 y cuyos requerimientos son 3 S, 15 MVP, 20 MC, 10 BDVP, 10 BDC y 15 BT. Finalmente, la agencia C le confirma un tour que se har todos los viernes a partir del 11/7 y que tendr una duracin de 4 das (hasta el lunes inclusive) y cuyos requerimientos son: 2 S, 10 MVP y 8 BDVP. El administrador le ha confirmado a las tres agencias su servicio. Quedar el hotel en una situacin segura o insegura? Por qu?

7. Dados los siguiente procesos que se ejecutan concurrentemente, y que la funcin de incremento en C se
descompone de tres instrucciones mquina: 1) cargar el valor de la variable X en el acumulador; 2) incrementar el acumulador; 3) almacenar el valor del acumulador en la posicin de memoria correspondiente. Determinar si existe la posibilidad de que ninguno de los procesos imprima por pantalla, y en caso de que lo hagan, determinar que imprimen cada uno. (Tener en cuenta que no hay errores en el cdigo)

#define FALSE 0 #define TRUE 1 int interesado[2]={0,0}; int x=0;

PROGRAMA A
Main() { Int i=0; For(i=0;i<5;i++) { interesado[0]=true; While(interesado[1]==true); ++x; If(i==4) printf(%d\n,x); interesado[0]=false; } }

PROGRAMA B
Main(){ Int j=0; For(j=0;j<5;j++) { interesado[1]=true; While(interesado[0]==true); ++x; If(j==4) printf(%d\n,x); interesado[1]=false; } }

8. Suponga los siguientes 2 procesos que son ejecutados concurrentemente en un sistema operativo
preemptive y comparten los contadores generales de los semforos A y B y la variable CONT; inicializados de la siguiente manera: A=B=1; CONT=0; Responder: Puede llegar a ocurrir deadlock? Justificar la respuesta Puede llegar a ocurrir starvation? Justificar la respuesta Considera que los procesos se encuentran correctamente sincronizados?

PROCESO 1
Repeat Wait(A); Writeln(hago); If(CONT>0) then writeln(hola); Wait(B); CONT:=CONT+1; Signal(A); Siignal(B); Forever

PROCESO 2
Repeat While(random(0;1)<0.5 && CONT!=0) { Wait(B); Writeln(algo); Wait(A); CONT:=CONT-1; Writeln(CONT); Signal(A); Signal(B); } Forever

9. Dados dos procesos que se ejecutan concurrentemente, los cuales comparten las siguiente variables, se pide saber si el algoritmo a continuacin desarrollado cumple con los requisitos para solucionar el problema de la seccin crtica, y en caso de que no, indique como lo modificara. Var indicador: array[0..1] of boolean; (inicializado en falso) Var turno: 0..1;
El siguiente programa es para el proceso Pi (i=0 o i=1) y para el Pj (j=1 o j=0)

Repeat indicador[i]:=verdadero; while(indicador[j]) do if (turno=j) then begin indicador[i]:=false while turno=j do nothing; indicador[i]:=verdadero; end; ... seccin crtica; ... turno:=j; indicador[i]:=falso; ... seccin restante; until falso;

10. Debido al gran trnsito que se produce sobre la avenida Juan B. Justo, debajo de la interseccin con la
General Paz cuando los autos intentan ingresar a capital o ingresar a provincia, el gobierno de la ciudad de Bs. As. Ha decidido implementar un semforo en los dos extremos de la avenida (uno del lado de capital y otro del lado de provincia) para que nicamente pasen los autos en un solo sentido. Cuando el semforo se encuentra en verde en cualquiera de las dos entradas significa que los autos pueden circular; si se encuentra en rojo, ninguno puede hacerlo. Se realiz un estudio y se determin que solo pueden circular los autos en un solo sentido (es decir, o pasan todos los de provincia para capital o pasan todos los de capital para provincia en un momento dado), y adems que la capacidad mxima de autos que puede circular por la avenida Juan B. Justo por debajo de la Gral. Paz es de 20 autos. Viendo este problema, se pide que lo solucione implementando un pseudo-cdigo, utilizando semforos, para prevenir accidentes y realizar una circulacin equitativa del trnsito. Tenga en cuenta que deber realizar dos pseudo-cdigos, uno para los autos que provengan de capital y otro para los de provincia, y que el semforo cambia de estado cada 1 minuto. Para resolver este ejercicio considere nicamente las siguiente funciones: entrar_puente(), cruzar_puente(), salir_puente().

3. Memoria Central /Memoria Virtual


1. Considere un sistema de intercambio (Swapping) en el que la memoria consta de los siguientes tamaos de espacios en orden de memoria: 10k, 4k, 20k, 18k, 7k, 9k, 12k y 15k. Cual es el espacio que se elige si se solicitan en forma sucesiva segmentos de: a) 12k b) 10k c) 9k
con el mtodo first fit, best fit, worst fit y next fit.

2. Un bloque de 128 kb utiliza el algoritmo de asignacin de memoria BUDDY SYSTEM. Despus de un tiempo, el bloque queda de la siguiente manera, donde los bloques de memoria identificados con X estn asignados. Luego los bloques se liberan de la siguiente manera:
* Direccin: 64 k * Direccin: 0 k * Direccin 96 k Tamao: 8 k Tamao: 24 k Tamao: 16 k

MEM X DIR 0

X 8

X 16

24

32

X 40

X 48

56

X 64

72

X 80

X 88

X 96

X 104 112 120

3. Supongamos un sistema que usa paginacin basado en 64 entradas en la tabla de pagina y 10 bits de desplazamiento (Offset) como direccionamiento lgico. El programa genera la direccin 05DE (hexa). El programa fue cargado en los siguientes Frame: page 0 = frame 5, page 1 = frame 6, y as sucesivamente. Se pide:
a) Representar la direccin lgica. b) Calcular la direccin fsica. c) Indicar la longitud mxima del Programa.

4. Asumir que una tarea esta dividida en 4 segmentos de igual tamao. El sistema construye una tabla de
pginas con 8 entradas para cada segmento (paginacin con segmentacin). Cada pgina es de 2 kb a) Tamao mximo de cada segmento b) Espacio direccin lgico mximo

5. El proceso A tiene asignados 4 frames de memoria y comenz a ejecutar en t=0. En el momento t=10 los frames se encuentran de la siguiente forma:
Si se utiliza LRU como poltica de se realizaron en el siguiente Indicar la cantidad de Page Faults el estado final de memoria.

Frame 2 5 1 3

Ref en t reemplazo, y sabiendo que los pedidos restantes 9 orden: 4-5-2-1-4-6-4-1-2. 4 que ocurrieron, sealando los mismos al igual que 6 8

6. Dada la siguiente cadena de referencias { 1 , 3 , 2 , 5 , 1 , 3 , 4 , 1 , 3 , 2 , 5 , 4 } y suponiendo que existen 3 frames asignados, los cuales ests actualmente vacos, determine los fallos de pginas que se producen aplicando las siguientes polticas de reemplazo: a) LRU b) FIFO c) Optimo 7. Considere el siguiente esquema de paginacin segmentacin:
Tabla de segmentos Nmero de segmento 0 1 2 Tabla pgina 0 Pgina Frame Presente 0 10 S 1 17 N 2 89 S 3 90 S 4 29 S 5 47 N 6 55 S 7 32 S 8 39 S 9 9 S Tabla pgina 1 Pgina Frame Presente 0 1 N 1 22 N 2 73 S 3 74 S 4 85 S 5 29 S 6 63 S 7 93 S 8 85 S 9 15 S 10 27 S 11 34 S Tabla de pginas 2 0 1 Tabal pgina 2 Pgina Frame Presente 0 33 S 1 43 S 2 54 N 3 6 S 4 6 N 5 7 S 6 21 S

Asumir tambin que el tamao de la pgina 1000 utilizando direcciones en base 10; as la primera pgina de memoria cubre desde la direccin 0 (cero) hasta la direccin 999. El nmero mximo de entradas a tabla de pginas es de 100 (0 a 99). Si la pgina es invlida (Presente = N), asuma que el fallo de pgina causa que el Sistema Operativo cargue la pgina que caus el fallo en el nmero de marco de pgina dato. Por ejemplo: un acceso a la pgina virtual 2 en la tabla causa un fallo de pgina donde el sistema carga la pgina virtual 2 en el marco 54. Se pide responder: a) Cuntos dgitos enteros se necesitan para el nmero de segmento, nmero de pgina y offset? b) A qu direccin fsica acceden las siguientes direcciones virtuales? (Asumir que los dgitos faltantes son ceros a la izquierda). 21333 5345 1810627

104806 200097 1501053 210270

8. Considere una mquina con direcciones de 16 bits, con 10 bits de offset y un proceso P1 cuyas referencias a memoria son las siguientes (en decimal): 535 3451 7548 487 2087 147 9843 521 65537 8544 1024 65530 EL proceso P1 tiene asignado 3 frames de memoria (0,1,2) los cuales se encuentran inicialmente vacos. Si se utiliza LRU con reemplazo local como poltica de eleccin de la vctima, se pide: a) El estado de memoria en cada instante de tiempo indicando en cada uno de ellos, si fuese necesario, los fallos de pgina correspondiente b) La traduccin de las direcciones lgicas a fsicas de las referencias de P1 c) Enuncie si cambiara su respuesta en el caso de utilizar LRU con asignacin fija y alcance global. 9. Una mquina tiene un espacio de direccionamiento de 32 bits y una pgina de 8K. La tabla de pginas se encuentra completamente en registros asociativos, con una palabra de 32 bits por entrada. Cuando un proceso comienza, la tabla se copia de memoria a los registros a razn de una palabra cada 100 nseg. Si cada proceso ejecuta 100 mseg (incluyendo el tiempo de bsqueda en la tabla de pginas) Qu fraccin de tiempo de CPU es destinado a buscar la tabla de pginas? 10. Un computador con un espacio de direccionamiento de 32 bits utiliza una tabla de pginas de 2
niveles. Las direcciones virtuales son divididas en un campo de ms alto nivel de 9 bits, un campo de segundo nivel de 11 bits, y un desplazamiento. De qu longitud son las pginas y cuntas ay en el espacio de direccionamiento virtual?

11. Considere un sistema de paginacin con la tabla de pginas almacenada en memoria.


a) Si una referencia a memoria lleva 1,2 useg. Cunto durar una referencia a memoria paginada?

b) Si aadimos 8 registros asociativos y el 75% de todas las referencias se encuentran en ellos. Cul es el tiempo efectivo de referencia a memoria? (Supongamos que encontrar una entrada en la tabla de pginas de los registros asociativos si se encuentra all, lleva un tiempo nulo).

12. Un computador cuyos procesos tienen 1024 pginas en sus espacios de direcciones mantiene su tabla
de pginas en memoria. El overhead requerido para leer una palabra de la tabla es de 500 nseg. Para reducir el overhead, el computador tiene una memoria asociativa que posee 32 registros, y pueden realizar la lectura en 100 nseg. Cul ser el hit ratio (porcentaje de aciertos) necesario para reducir el overhead a 200 nseg.?

13. Una memoria tiene 48 bits de espacio de direccionamiento virtual y 32 bits de espacio de
direccionamiento fsico. Las pginas son de 8K. Cuntas entradas son necesarias para una tabla de pginas convencional? Cuntas para una tabla de pginas invertida?

14. Consideremos la siguiente cadena de referencias de pgina :


12342156212376321236 Cuntos fallos de pgina se producirn con los algoritmos de reemplazo siguientes suponiendo 1, 2, 3, 4, 5, 6, 7 celdas (page frames)? Recuerde que todas las celdas estn inicialmente vacas, de modo que la primera referencia a una pgina supondr un fallo cada una.

LRU FIFO OPTIMO

15. Considere un sistema de paginacin bajo demanda, con un tambor de paginacin que tiene un tiempo
medio de acceso y transferencia de 5 mseg. Las direcciones se traducen por medio de una tabla de

pginas en memoria principal, con un tiempo de acceso de 1 useg. por acceso a memoria. As, cada referencia a memoria a travs de la tabla de pginas precisa dos accesos. Para mejorar ese tiempo, se ha aadido una memoria asociativa que reduce el tiempo de acceso a un acceso a memoria, si la entrada en la tabla de pginas se encuentra en la memoria asociativa. Suponiendo que el 80% de los accesos se encuentran en la memoria asociativa y que para el resto, el 10% (o el 2% del total) generan fallos de pgina. Cul es el tiempo efectivo de acceso a memoria? Tambor: Disco de un solo cilindro

16.Supongamos que tenemos una memoria con paginacin bajo demanda. La tabla de pginas se mantiene en registros asociativos. Servir un fallo de pgina lleva 8 mseg si es que hay disponible una pgina vaca o la pgina reemplazada no ha sido modificada. El tiempo de acceso a memoria es de 1 useg. Suponiendo que la pgina a reemplazar esta sucia (modificada) el 70% de las veces Cul es la tasa de fallos de pgina mxima aceptable para un tiempo efectivo de acceso de no ms de 2 useg? 17. Supongamos un sistema de paginacin con un tambor de paginacin de 4 millones de palabras y con
un tiempo de acceso y transferencia de 5 mseg y una memoria de ncleos paginada de 262.144 palabras, con un tiempo de acceso de 2 useg. Si queremos que nuestro sistema de paginacin aparezca ante el usuario como una memoria de 4 millones con un tiempo de acceso de 4 useg (en promedio). Qu porcentaje de accesos tienen que realizarse sin incurrir en fallo de pgina?

4. Entrada Salida / I - nodos


1. Se dispone de un almacenamiento compuesto por un RAID nivel 1. Se tiene 3 paltos y ada uno de los discos est compuesto por 300 cilindros, y cada uno de ellos tiene 10 sectores (sin interleave). La velocidad de rotacin es de 6000 r.p.m y el cabezal tarda 1ms en pasar de una pista a la otra. Actualmente la cabeza est ubicada en la direccin 1107 y se dirige a la 1108. En la cola estn los siguiente pedidos: 100, 1244, 15, 955. Se pide el tiempo que se tarda en atender a todos los pedidos con el algoritmo: - SSTF (Shortest seek time first) - C-SCAN

2. Una mquina posee un disco rgido formado por cuatro cabezas numeradas del 0 a 3. Se tiene tambin 100 pistas numeradas del 0 al 99 y cada una de ellas tiene 10 sectores, numerados del 1 al 10 sin interleave; cada sector tiene un tamao de 512 bytes. El disco gira a 50 r.p.s y tarda 5ms en pasar de una pista a la otra. En un momento, se quiere leer el archivo GUIATP.txt de 2kb, por lo que al driver le llegan los siguientes pedidos en el orden cilindro-cabeza-sector: (15,3,10), (55,0,1), (50,1,8) y (75,0,2). Actualmente la cabeza est en cilindro 20 en el comienzo del sector 1 y con direccin saliente. Si se utiliza el algoritmo C-LOOK, calcular el tiempo que llevara cargarse en el buffer todo el archivo. 3. Se tiene un disco con las siguientes caractersticas: 3 platos, 100 sectores y total de 500 cilindros. Los pedidos encolados son: 535 3451 7548 487 2087 3147 9843 3521 6841 8544 6024 987. Se pide el tiempo promedio de atencin para cada uno de los siguiente algoritmos: FIFO SCAN LOOK STSF. (El brazo est en la direccin 50 descendiendo) 4. Dado un servidor que posee cinco discos rgidos de 23 Gb cada uno, formando un RADI 5, en el que se posee un filesystem basado en i-nodos (con dos punteros directos, uno indirecto y otro doble indirecto) es que puede direccionar como mximo 10.000.000 bloques de 12 Kb cada uno. - Cul es el tamao de una particin de filesystem?

Cul es el tamao mximo de un archivo? Cul es el tamao mximo que contiene un directorio?

5. Dado un servidor de 6 discos rgidos de 40 Gb cada uno, formando un RAID 1, el cual posee un
filesystem basado en i-nodos (con tres punteros directos, uno de indireccin simple, uno doble y otro triple), los cuales pueden direccionar como mximo 20.000.000 bloques de 24 Kb cada uno. Se pide: - Tamao mximo de una particin de filesystem - Tamao mximo de un archivo

6. Considerando la organizacin del sistema UNIX por i-nodos. Asumir que hay 12 punteros directos a bloques, un puntero simple, uno doble y uno triple. Asumir tambin que el tamao de bloque es de 8 Kb. Si se utiliza un puntero de 32 bits con 8 bits para identificar al disco. Se pide: - El tamao mximo de un archivo soportado por el sistema - Cuntos accesos se necesitan para localizar el byte en la posicin 13.423.956? Y el de la posicin 35.134.753.309? 7. Un servidor posee 3 discos rgidos de 60 Gb cada uno, los cuales conforman una organizacin RAID 4. Sobre estos discos se monta un filesystem que trabaja con i-nodos, los cuales estn compuesto por 3 punteros directos, 2 punteros indirectos y un puntero doblemente indirecto. Si los bloques de datos son de 8 kb y se utilizan punteros de 32 bits:
Cul es el tamao mximo de la particin del filesystem? Cul es el tamao mximo soportado por un archivo? Cuntos accesos se necesitan para acceder al byte 23.579?

5. PROTECCIN Y SEGURIDAD
1. Algunos sistemas reescriben las reas que fueron ocupadas por archivos ya borrados.
necesario? Bajo qu esquema es esto

2. Supongamos un sistema en el cual el derecho al uso de terminales est distribudo de la siguiente manera:
Alumnos 00:00 a 08:00 hs Investigadores 07:00 a 24:00 hs Admin. Sistema 00:00 a 24:00 hs Construya la matriz de accesos e implemente la Tabla Global, las Listas de Accesos, las Listas de Capacidad y el LockKey. Cul es la ms eficiente?.

3. Cul es la principal diferencia entre Lista de Acceso y Lista de Capacidad? 4. En un sistema de Administracin de Memoria Paginada por Demanda, cundo es necesario utilizar claves de proteccin para las Pginas / Bloques? 5. Supongamos un sistema en el cual cada proceso tiene asociado un nmero n y cada objeto un nmero m.
quiere que un proceso pueda acceder a un objeto slo si n > m, qu tipo de proteccin se debe implementar? Si se

6. Supongamos un sistema en el cual la Capacidad de Acceso a un objeto le est permitida slo n veces.
esquema de proteccin implementara?

Qu

7. 8.

Si todos los derechos de acceso a un objeto fueron eliminados, el objeto puede ser tambin eliminado. Qu implementacin utilizara? Las listas de Capacidad son generalmente guardadas dentro del espacio de direcciones del programa. Qu implementacin utilizara?

9.

Utilice alguna clave criptogrfica para el mtodo DES para cifrar la palabra SECRETO escrita en ASCII. Verifique su descifrado. Verifique para algn mensaje que el mtodo RSA funciona con p=7, q= 13, e=5, d=29.

10.

11. Explique claramente quin posee la capacidad (dominio u objeto) en los casos:
- Lista de Accesos - Lista de Capacidad - Lock-Key

12. La lista de todas las passwords se mantiene dentro del sistema operativo. Luego, si un usuario administra en forma de lectura tal lista el sistema de proteccin de passwords se torna muy dbil. Sugiera un esquema que impida este problema (ayuda: utilice una representacin interna que difiera de la representacin externa). 13.
Realizar el cifrado de la palabra ABEJA por: a. el mtodo de sustitucin con la palabra clave "SISTEMAS OPERATIVOS". Detalle los pasos que realiza. b. el mtodo de cifrado por sustitucin para el n=4. Detalle los pasos realizados.

14. Asuma que las passwords se seleccionan a partir de combinaciones de 4 caracteres de un total de 26 caracteres
alfabticos. Imagine que un intruso puede ensayar distintas claves a una tasa de una por segundo. Responder: a. Si el intruso no tiene retroalimentacin hasta que cada intento ha sido completado, cul es el tiempo aproximado en que se descubrir la clave? b. Si el intruso tiene retroalimentacin, es decir, se muestra un mensaje de error cada vez que se ingresa un carcter incorrecto, cul es el tiempo en que se descubrir la clave?

15. Un generador de claves fonticas escoge dos segmentos al azar para cada clave (de seis letras cada una). La forma de cada segmento es consonante-vocal-consonante. Se pide: a) cul es la cantidad total de claves? b) cul es la probabilidad de que un intruso adivine una clave correctamente? 16. Suponga que las passwords se limitan a los 95 caracteres imprimibles del cdigo ASCII y que todas las claves
tienen 10 caracteres de longitud. Suponga que un atacante que posee una tasa de encriptacin de 6.4 millones

6. Ejercicios Integrados
1. Sea un sistema operativo que utiliza un planificador con el algoritmo RR de q=4 y que dispone de las funciones: leer, escribir y ejecutar, as como tambin las funciones atmicas: up y down. Conociendo que las colas de los semforos y la nica cola de entrada/salida son independientes y como estn inicializados los semforos, indique la traza de ejecucin y el orden de terminacin de los siguientes procesos:
Semforos (valor inicial) A=0 B=0 C=1 Proceso 1 Up/Down Leer/Escribir Ejecutar Funciones CPU (al inicio) 2 1 3 Proceso 2 I/O (al final) 0 3 0 Proceso 3

Down(A) Up(C) Leer(Archivo A, y) Down(A) Ejecutar(Func2) Up(B) Down(C)

Down(B) Ejecutar(Func 2) Up(A) Escribir(Archivo A, y) Ejecutar(Func 1) Down(B) Up(C)

Down(C) Leer(Archivo A, y) Up(B) Ejecutar(Func 2) Escribir (Archivo A , x) Ejecutar (Func 1) Up(A)

2. Dados los siguientes semforos: A=C=0 y B=1. Cada proceso referencia a su propio espacio de memoria. Cantidad 8 (0..7) con 3 frames asignados y un tamao de pgina de 512 bytes.
P1 (0 2 1 ) 0 1 2 y los procesos: P2 ( 2 0 3) 0 2 3

P1 Read(1400) Down(A) Write(1536) Up(C) Read(1024) Down(B) Read(512) Up(A) Write(3000) Down(C) Read(1500)
Responder: a) Cuntos fallos de pgina se producen para cada proceso? a. 1. LRU Asignacin fija , alcance global a. 2. LRU Asignacin Fija, alcance local b) Estn en deadlock? c) Terminan de ejecutarse?

P2 Down(B) Write(2048) Up(A) Write(3070) Down(C) Read(560) Up(B) Write(1050) Down(A) Read(2560) Up(C) Read(4096)

3.

Un sistema en el cual se utiliza memoria virtual con particiones fijas para la organizacin de la memoria fsica de: 10 Kb, 30 Kb, 42 Kb y 60 Kb, posee el siguiente juego de procesos:

Procesos

Operaciones

P1 Down(A) Up(A) Exe() Up(C) Up(E) Down(H)

P2 Down(G) Exe() Up(I) Exe() Up(J)

T. Llegada Memoria

0 24 Kb

0 2 Kb

P3 Down(G) Down(A) Exe() Down(C) Down(I) Up(C) Exe() Exe() Up(J) 0 32 Kb

P4 Down(F) Up(A) Exe() Down(F) Up(B)

P5 Down(B) Exe() Up(B) Exe() Exe() Up(G)

P6 Down(J) Up(A) Exe() Up(G)

P7 Down(E) Up(I) Down(C) Exe() Up(F)

2 4 Kb

3 40 Kb

4 22 Kb

4 60 Kb

Teniendo en cuenta que: Las operaciones atmicas consumen 1 ms.

La funcin Exe() representa una E/S de lectura o de escritura, y ambas consumen 5 ms. El sistema operativo tiene un algoritmo de planificacin SPN (Shortest Process Next) Cada vez que un proceso toma la memoria principal no la libera hasta que finalice o hasta que se bloque por algn motivo. El algoritmo de seleccin de la vctima es el BEST FIT. Los semforos estn inicializados A=B=E=G=I=J=30 y C=F=H=25

Se pide realizar la traza de ejecucin de los procesos, indicando el orden de finalizacin y el instante en que lo hacen. En caso que alguno no finalice, indicar el motivo.

4. Se tiene una mquina con direcciones de 16 bits, cuyo offset ocupa 10 bits. Un proceso realiza las siguientes referencias a memoria (en decimal): 535 3451 7548 487 2087 3147 9843 3521 6841 8544 6024 987 El proceso tiene asignado 3 frames de memoria (0,1,2), los cuales se encuentran vacos. A su vez se posee un disco rgido con las siguientes caractersticas: 3 platos, formando 6 cabezas, 100 sectores por pista, un total de 500 cilindros y sectores de 512 bytes. Suponga que las direcciones lgicas de las referencias a memoria son las mismas que las referencias a disco. Ej: la direccin lgica de memoria 100 se encuentra en la direccin lgica 100 del disco. Se utiliza LRU con reemplazo local como poltica de eleccin de la vctima y el LOOk como poltica de planificacin de disco. Sabiendo que la cabeza se encuentra en la direccin lgica 50 descendiendo, se pide:
a. El estado de memoria en cada instante de tiempo, indicando los fallos de pginas si fuese necesario y las traducciones de las direcciones lgicas a fsicas. b. EL tiempo promedio de atencin de los pedidos a disco y el orden en que fueron atendidos, sabiendo que el tiempo entre cilindros es de 100 ms.

5. Considere una mquina con memoria paginada de 32 bits de direccionamiento, donde 24 bits son el nmero de pgina y los 8 restantes son el desplazamiento. Se cuenta con 4 Mb de memoria RAM y un total de 12 Mb de memoria virtual. En todo el sistema hay 4 procesos, en el que se tiene para cada uno de los mismos 3 frames asignados, inicialmente vacos, uno de los cuales se utiliza para el cdigo y el heap. El algoritmo de eleccin es el LRU con asignacin fija y alcance local, mientras que la planificacin de procesos es SRT (Shortest Remaining Time); adems, los semforos se encuentra inicializados de la siguiente manera: S=C=R=E=H=0 y T=J=U=O=1 Se sabe que cuando se quiere leer de disco, son 3 ciclos de E/S. Actualmente la cabeza del disco est ubicada en el sector lgico 1110 y se dirige al sector 1111. Las operaciones atmicas insumen 2 ciclos de CPU, mientras que los accesos a memoria insumen 3 ciclos.
P1 Down(S) Up(C) Read(5400) Up(R) Down(T) Read(1024) Up(H) Down(E) Escribir_disco(955) Down(E) Write(3755) Up(c) Up(T) Read(9853) Down(H)
Se pide:

P2 Down(E) Up(H) Up(E) Write(3457) Up(U) Read(4587) Down(J) Down(O) Up(O) Leer_disco(788) Down(T) Read(9800) Up(H) Up(E) Read(3214)

P3 Down(U) Read(4587) Up(S) Read(4888) Escribir_disco(1244) Up(R) Read(8745) Escribir_disco(574) Up(U)

P4 Up(S) Read(358) Down(J) Escribir_disco(15) Down(U) Read(1025) Escribir_disco(1542) Down(H) Up(E)

a) Indicar los fallos de pgina que se producen en el sistema, y el estado final de la memoria. b) Dibujar la traza de los procesos indicando, en el caso de que alguno no finalice, el motivo por cual no lo realiza. Tenga en cuenta que existe un nico dispositivo de E/S y que acceder al mismo consume en promedio 3 ciclos de E/S cuando se quiere leer y 4 cuando se quiere escribir. Asumir que todos los procesos se encuentran en la cola de Ready. c) Sabiendo que el dispositivo de almacenamiento estaba compuesto por un RAID 1, cada uno de los discos posee 400 cilindros y sus pistas tiene 10 sectores y posee 3 platos formando 6 cabezas. La velocidad de rotacin es de 8000 rmp y el cabezal tarda 2ms en pasar de una pista a la otra. Las cabezas leen del sector mas chico al mas grande y actualmente estn encolados los siguientes pedidos: 87, 1254, 19, 940, 1447, 987, 231, 104. Se requiere el tiempo total de atencin de los pedidos segn el algoritmo C-LOOK.

6. En una memoria se utiliza un algoritmo de reemplazo Next Fit. Sabiendo que actualmente en la memoria hay tres bloques libres de: 10 Kb, 15 Kb y 9 Kb, y que los procesos se descargan de memoria solamente cuando finalizan o quedan bloqueados, realizar la traza de procesos indicando que procesos finalizan y cuales no, sabiendo que los semforos se encuentran inicializados: A=B=0 y C=D=1 y llevar a cabo alguna de las funciones atmicas consume 2 ciclos de CPU.
P1 P(C) V(A) V(B) P(C) P(D) P(D) Tamao: 14 Kb P2 P(A) P(D) P(A) P(B) V(D) V(C) Tamao: 9 Kb P3 V(B) V(C) P(A) V(D) P(B) V(B) Tamao: 13 Kb P4 P(B) V(A) V(C) V(D) V(D) P(B) Tamao: 8 Kb

SOLUCIONES
I. Planificacin
1. Finalizan en el siguiente orden: P2 (16), P3(18), P5(27), P1(28), P6(36), P4(42) P6 P5 P4 P3 P2 Ll P1 Ll
0 1

Ll Ll Ll Ll I/O I/O I/O I/O


2 3 4 5 6 7 8

I/O I/O I/O I/O I/O I/O I/O F F I/O I/O I/O

I/O I/O I/O I/O F

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

P6 P5 P4 P3 P2 P1

F I/O I/O F

31 32 33 34 35 36 37 38 39 40 41 42

2. Finalizan en el siguiente orden: P2(12), P4(14), P1(21), P3(27), P5(28)


P5 P4 P3 P2 P1 Ll
0 1 2

Ll Ll Ll Ll
3 4 5

F I/O I/O F I/O I/O F F I/O I/O I/O F

I/O I/O I/O I/O


6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

3. Finalizan en el siguiente orden: P2(16), P3(30), P1(43), P5(46), P4(63)


so

P5 P4 P3 P2 Ll P1 Ll
0 so 1 2

Ll Ll Ll D D D
3 4 5 6 7 8

D D D Im Im Im Im Im Im Im D D F Im Im F

D D D D D

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

P5 P4 P3 P2 P1

Im

F Im Im Im F

D D D D D

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

4. Finalizan en el siguiente orden: P2(16), P3(19), P4(22), P1(26)


P4 P3 Ll Ll Im Im S S S S S S F F

P2 Ll P1 Ll
0 1 2 3 4 5 6

Im
7 8

F S S S S S F
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

5. Finalizan en el siguiente orden: P1(48), P2(49), P3(56)


P3u P3u P2k P2k P1u P1k

Ll Ll Ll Ll Ll Ll
0 1 2 3

I/O I/O I/O I/O I/O I/O I/O I/O

I/O I/O I/O


4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

P3u P3u P2k I/O P2k P1u P1k

I/O I/O I/O I/O I/O F F I/O I/O I/O F I/O I/O F F

I/O

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

6. Finalizan en el siguiente orden: P3(7), P1(11), P5(13), P2(17), P4(18)


P5 P4 P3 Ll P2 Ll B P1 Ll A
0 1

A Im Im Im B F Ll B B D D Ll A A D D A Im Im B B B F A A Im Im B F B D D A A A A F A A D A A
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

7.
a. FIFO D Ll C Ll I/O B Ll I/O A Ll I/O I/O I/O I/O
0 1 2 3 4 5 6 7 8 9

I/O I/O I/O I/O I/O I/O I/O

F F F I/O I/O I/O I/O F

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

b. RR (q=1) D Ll C Ll B Ll I/O A Ll I/O I/O


0 1 2 3 4 5

I/O I/O I/O I/O I/O


6 7 8

F F I/O F

I/O I/O I/O I/O I/O I/O I/O


9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

c. SRT D Ll I/O I/O I/O C Ll I/O I/O I/O I/O F B Ll I/O A Ll I/O I/O I/O I/O I/O I/O I/O I/O F
0 1 2 3 4 5 6 7 8 9

F I/O F

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

d. Prioridades Apropiativo D Ll I/O I/O I/O

C Ll I/O B Ll I/O A Ll I/O I/O


0 1 2 3 4 5 6 7 8 9

I/O I/O I/O I/O

F F I/O I/O

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

D C B A

I/O I/O I/O I/O

31 32 33 34 35 36 37 38

e. Prioridades No-apropiativo I/O I/O I/O F D Ll C Ll I/O I/O I/O I/O B Ll I/O A Ll I/O I/O
0 1 2 3 4 5 6 7 8 9

F I/O I/O I/O F I/O

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

D C B A I/O I/O I/O

31 32 33 34 35 36

8. Finalizan en el siguiente orden: P3(22), P1 (33), P2(41), P6(44), P5(51), P4(54)


So2 So1

P6 P5 Ll P4 Ll P3 Ll P2 Ll P1 Ll
0
so2 so1

Ll

Im Im D D D D D D D D S S S Im Im Im S S S F D

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

P6 Im Im Im P5 P4 P3 P2 D D D D P1 F

F Im Im Im Im Im Im Im

F F

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

9. Finalizan en el siguiente orden: P1 (36), P2 (42)


so
P2u P2u P1k P1u P1u

Ll Ll Ll Ll Ll
0 1

Im Im Im Im Im Im Im Im F f Im Im Im Im Im
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Im

Im Im Im Im Im Im
2 3 4 5 6 7

so

P2u P2u P1k P1u P1u

f F

F
31 32 33 34 35 36 37 38 39 40 41 42

10. Finalizan en el siguiente orden: P3(14), P2(17), P4(18), P1(26)


P4 Ll b b b S S b Im Im Im b b b F P3 Ll a a a a Im Im Im Im Im b b F P2 Ll b b b D D D a a a a a F P1 Ll a a a a a a a D D D D D a a a a S S S S a F
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

II.

Semforos / Algoritmo del Banquero / Sincronizacin


{C}~P4 {C}~P1 {H}~P4 {O}~P2

1. P1 y P2 finalizan. {B}~P3 2. P2 y P3 finalizan. {A}~P5~P4 3. P5 finaliza. {C}~P3 {E}~P1 4.

a. Si, es un estado seguro. Finalizan P0, P3, P4, P1, P2 b. Queda en estado seguro. Hay recursos disponibles

5. Es un estado seguro. Finalizan P6, P1, P2, P3, P4, P5, P0 6. Queda en un estado inseguro ya que cuando el tour C quiere tomar el segundo viernes no hay
habitaciones disponibles.

7. Pueden quedar en deadlock si PROGRAMA A pone su bandera a true y luego lo hace PROGRAMA
B. En esa caso, ambos quedarn ciclando en el while. (Es similar a la 2da solucin de Deckker)

8.
Si, puede ocurrir deadlock. Puede quedar el proceso 1 bloqueado en B y el proceso 2 en A. Puede ocurrir en el caso que el proceso 2 nunca pueda entrar a su ciclo. No. (Proponga una solucin)

9. Si, cumple. Es muy similar al algoritmo de Peterson. 10. Suponga la siguiente solucin (no nica):
#define VERDE 1 #define ROJO 0 int capacidad=20; int semforo=1; int main(void) { parbegin(autos_capital,autos_prov); } repeat while(semforo) { wait(capacidad); entrar_puente(); cruzar_puente(); salir_puente(); signal(capacidad); } until falso;

/* este es el mismo cdigo tanto para autos_capital como para autos_prov. Cuando semforo es rojo para uno, es verde para el otro */

III.

Memoria Central / Memoria Virtual


10 k 10 K 10 K 4k 20 k 12 K 12 K 12 K 18 k 9K 10 K 10 K 7k 9k 9K 9K 12 k 12 K 9K 15 k

1.
F.F B.F W.F N.F

2.
MEM DIR 0 32 X 40 X 48 56 64 X 80 X 88 96

3.
b. #Pag / #Offset = 0000010111011110 c. #Frame / #Offset = 0001010111011110 d. Tam. Pgina x cant. pginas = 1024 bytes x 64 = 64 K

4.
a. 2 K x 8 = 16 K b. #Seg. / #Pag. / #Offset = 16 b its = 2^16 = 64 K

5.
Hay 4 Page Faults. El estado final de la memoria es: 2 4 6 1

6.
LRU 2 5 4 10 PF FIFO 4 2 5 9 PF OPTIMO 2 5 4 7 PF

7.
a. #Seg / # Pag / #Offset = 1 dig. / b. Direccin virtual Segmento Pgina 0 21 0 5 18 10 1 4 2 0 15 1 2 10 2 dig. / 3 dig. = 6 dgitos Direccin fsica Offset 333 345 627 806 097 053 270 7 29 1 27 270 806 97 345 Validacin Pag. Invlida Ok Seg. Invlido Ok Pag. Fault Seg. Invlido Ok

8.
a. Hay 5 Page Faults 0 2 9 b. # Pag. / # Offset = 6 bits / 10 bits Dir 2^15 2^14 2^13 2^12 2^11 2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 535 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 3451 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 7548 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 487 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 2087 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 147 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 9843 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 521 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 65537 ERROR. Termina el programa por querer direccionar ms de lo que se puede c. No cambia ya que es imposible implementar dicha tcnica. (Ver Conceptos Bsicos)

2^0

Pag.

1 1 0 1 1 1 1 1

0 3 7 0 2 0 9 0 -

9. Solucin
Espacio de direcciones 32 bits 2 32 = 424.967.300 Pgina 8K 2 32 / 8K = 524.288 entradas Si la tabla se carga a razn de una palabra cada 100 nseg, entonces la tabla completa se cargar en 524.288 x 100 nseg = 52.428.800 nseg o sea 52,429 mseg aproximadamente. Sabiendo que cada proceso ejecuta 100 mseg, se usa el 52,429% del tiempo a buscar en la tabla.

10. Solucin El esquema del espacio de direcciones es el siguiente: 9 bits de alto 11 bits de segundo 12 bits de nivel nivel desplazamiento 20 Nmero de pginas: 2 = 1.048.576 Tamao de pginas 2 12 = 4096 = 4K 11. Solucin a) Una referencia a memoria paginada tardar 2,4 useg (1,2 useg de referencia a la tabla + 1,2 useg de referencia a memoria) b) Suponiendo un tiempo nulo de bsqueda en memoria asociativa, tenemos un tiempo de 1,2 useg El tiempo efectivo ser: 75% x 1,2 useg + 25% x 2,4 useg = 1,5 useg. 100 12. Solucin
Acceso a la memoria asociativa 100 nseg Acceso a memoria central 500 nseg Overhead requerido 200 nseg O sea hr x 100 nseg + (100 % hr) x 500 nseg = 200 nseg 100 % Despejando, tenemos que el hit ratio debe ser un 75%

13. Solucin
Tamao de pgina: 8K = 8 x 1024 = 2 3 x 2 10 = 2 13 Para el espacio de direccionamiento virtual (48 bits) el esquema es el siguiente:

35 bits para el nmero de 13 bits de desplazamiento pgina Para este esquema se necesitan 2 35 entradas (O sea 34.359.738.368 pginas). Para la tabla en memoria convencional (32 bits) tenemos: 19 bits para el nmero de 13 bits de desplazamiento pgina Con una necesidad de 2 19 entradas (524.288 pginas).

14. Solucin
1 2 3 20 fallos LRU 2 PF 1 1 3 2 2 18 fallos LRU 3 PF 1 1 1 2 2 3 15 fallos LRU 4 PF 1 1 1 2 2 3 4 2 1 5 6 2 1 LRU 1 PF 2 3 7 6 3 2 1 2 3 6

3 4

2 4

2 1

5 1

5 6

2 6

2 1

2 1

2 3

7 3

7 6

3 6

3 2

1 2

1 2

3 2

3 6

4 2 3

4 2 3

4 2 1

5 2 1

5 6 1

5 6 2

1 6 2

1 6 2

1 3 2

7 3 2

7 3 6

7 3 6

2 3 6

2 3 1

2 3 1

2 3 1

2 3 6

1 2 3 4

1 2 3 4

1 2 3 4

1 2 5 4

1 2 5 6

1 2 5 6

1 2 5 6

1 2 5 6

1 2 3 6

1 2 3 7

6 2 3 7

6 2 3 7

6 2 3 7

6 2 3 1

6 2 3 1

6 2 3 1

6 2 3 1

10 fallos LRU 5 PF 1 1 1 1 2 2 2 3 3 4 8 fallos LRU 6 PF 1 1 1 1 2 2 2 3 3 4

1 2 3 4

1 2 3 4

1 2 3 4 5

1 2 6 4 5

1 2 6 4 5

1 2 6 4 5

1 2 6 4 5

1 2 6 3 5

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 6 3 7

1 2 3 4

1 2 3 4

1 2 3 4 5

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

7 fallos LRU 7 PF
Habr 7 fallos ocasionados por la entrada de cada pgina de memoria a las 7 celdas.

1 2 3 4 20 fallos FIFO 2 PF 1 2 3 4

FIFO 1 PF 1 2 3 7

1 2 18 fallos FIFO 3 PF 1 2 3 1 2 1 16 fallos 1 2 1 3 2 1

4 3 2

4 3 2

1 4 3

5 1 4

6 5 1

2 6 5

1 2 6

1 2 6

3 1 2

7 3 1

6 7 3

6 7 3

2 6 7

1 2 9

1 2 9

3 1 2

6 3 1

4 3 2 1

4 3 2 1

4 3 2 1

5 4 3 2

6 5 4 3

2 6 5 4

1 2 6 3

FIFO 4 PF 1 1 7 2 2 1 6 6 2 3 3 6 FIFO 5 PF 2 3 7 1 2 3 6 1 2 5 6 1 4 5 6

7 1 2 6

3 7 1 2

3 7 1 2

3 7 1 2

3 7 1 2

3 7 1 2

6 3 7 1

11 fallos 1 2 1 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 6 5 4 3 2 1 6 5 4 3 6 7 3 2 1 6 7 3 2 1 6 7 3 2 1 6 7 3 2 1 6 7 3 2 1 6 7 3 2 1 6 7 3 2 1

11 fallos FIFO 6 PF 1 2 3 4 1 2 3 1 2 1

4 3 2 1

4 3 2 1

5 4 3 2 1

6 5 4 3 2 1

6 5 4 3 2 1

6 5 4 3 2 1

6 5 4 3 2 1

6 5 4 3 2 1

7 6 5 4 3 2

7 6 5 4 3 2

7 6 5 4 3 2

7 6 5 4 3 2

1 7 6 5 4 3

2 1 7 6 5 4

3 2 1 7 6 5

3 2 1 7 6 5

10 fallos FIFO 7 PF
Idem a LRU con 7 celdas.

OPTIMO 1 PF 1 2 3 7 6

20 fallos

OPTIMO 2 PF 1 1 3 4 4 2 2 2 2 15 fallos 1 1 2 1 2 3 1 2 4 1 2 4

1 2

5 2

6 2

6 2

1 2

1 2

3 2

3 7

3 6

3 6

3 2

1 2

1 2

3 2

3 6

1 2 4

1 2 5

1 2 6

1 2 6

OPTIMO 3 PF 1 1 3 3 3 2 2 2 7 7 6 6 6 6 6

3 7 6

3 2 6

3 2 1

3 2 1

3 2 1

3 2 6

11 fallos OPTIMO 4 PF 1 1 1 1 2 2 2 3 3 4 8 fallos OPTIMO 5 PF

1 2 3 4

1 2 3 4

1 2 3 5

1 2 3 6

1 2 3 6

1 2 3 6

1 2 3 6

1 2 3 6

7 2 3 6

7 2 3 6

7 2 3 6

7 2 3 6

1 2 3 6

1 2 3 6

1 2 3 6

1 2 3 6

1 2

1 2 3

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4 5

1 2 3 6 5

1 2 3 6 5

1 2 3 6 5

1 2 3 6 5

1 2 3 6 5

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

1 2 3 6 7

7 fallos OPTIMO 6 PF 1 1 1 1 2 2 2 3 3 4

1 2 3 4

1 2 3 4

1 2 3 4 5

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

1 2 3 7 5 6

7 fallos OPTIMO 7 PF Idem LRU para 7 celdas.

15. Solucin
Tiempo de acceso al tambor y transferencia desde el mismo: 5 mseg = 5.000 useg Tiempo de acceso a memoria principal: 1 useg Tiempo de acceso a la tabla en memoria principal: 2 x 1 useg = 2 useg Tiempo de acceso a la tabla en memoria asociativa: 1 useg El 80% de los accesos est en la tabla de memoria asociativa, del 20% restante, el 18% est en memoria principal (2 accesos) y el 2% genera una falla de pgina (est en el tambor). El tiempo medio de acceso ser: Tma = 80% x 1useg + 18% x 2 useg + 2% x 5.000 useg = 101,16 useg 100 %

16. Solucin
Tiempo de acceso a memoria central: 1 useg Tiempo para servir un fallo de pgina limpio: 8 mseg = 8.000 useg Tiempo para servir un fallo de pgina sucio: 8.000 useg x 2 (guardar la pgina modificada y traer la nueva) = 16.000 useg El 70% de las pginas a reemplazar est sucio, y el 30% limpio Se intenta calcular la tasa de fallos de pgina (hit ratio) mxima para un TMA de 2 useg. hr x 1 useg + (100 hr) x 70% x 16.000 useg + (100 x hr) x 30% x 8.000 useg TMA = 100% 100 = 2 useg 100% hr = 99,992%, por lo que la tasa mxima de fallo de pgina resulta menor al 0,01%

17 Solucin
Sin haber fallos de pgina, tenemos un tiempo de acceso de 2 useg Con fallos de pgina, el mismo tiempo es de 5 mseg (5.000 useg).

Se desea un TMA de 4 useg, o sea: TMA = hr x 2 useg + (100 hr) x 5.000 useg = 4 useg 100% Resolviendo, tenemos un hit ratio de aproximadamente 99,96% IV.

Entrada-Salida / I-nodos

1.
SSTF: (Total = 35 ms) 1107 -> 1108 -> 1244 -> 955 -> 100 -> 15 C-SCAN: (Total = 314 ms) 1107 -> 1108 -> 1244 -> Fin -> Inicio -> 15 -> 100 -> 955

2.
Cil: 20 -> 50 -> 55 -> 75 -> 15 Sec: 1 -> 8 -> 1 -> 2 -> 10 El tiempo total es: 620 ms (No olvidar el tiempo de Transferencia)

3.
FIFO: (Total= 73/12 = 6.08 ms) 50->535->3451->7548->487->2087->3147->9843->3521->6841->8544->6024->987 SCAN: (Total = 16/12 = 1.3 ms) 50->487->535->987->2087->3147->3451->3521->6024->6841->7548->8544->9843 LOOK: (Total = 16 / 12 = 1.3 ms) Igual que el Scan STSF: (Total = 16 / 12 = 1.3 ms) Igual que el Scan

4.
-92 Gb -24 Kb + 48 Mb + 192 Gb = 2062087864 bytes -El mismo que el anterior. Un directorio tambin es un archivo. (Ver Conceptos Bsicos)

5.
-120 Gb -72 Kb + 144 Mb + 864 Gb + 5184 Tb = 5567183732808 Kb

6.
-96Kb + 16 Mb + 32 Gb + 64 Tb -Para la posicin 13.423.956 se necesitan 2 accesos. Para la posicin 35.134.753.309 se necesitan 4.

7.
-120 Gb -24Kb + 32 Mb + 32 Gb -Se necesitan 1 acceso

V Proteccin y Seguridad
14. a. 26^4 / 2 = 228488 seg. 3600 seg. _________ 1 hora 228488 seg. _______ 63.5 horas b) 13 x 4 = 52 segundos (se promedian 13 intentos por cada posicin)

15.

a. T= (21x 5 x 21) ^ 2 = 4862025 claves b) 1/T = 0.0000002

16.

6.4 x 10^6 claves ________________ 1 seg. 95 ^10 claves ________________ 9.81 x 10 ^12 seg. (312500 aos aprox.)

VI Ejercicios Integrados
1. Finalizan: P3(30), P1(44), P2(46)
P3 P2 P1
0 1 2 3 4 5 6

I/O I/O I/O

I/O I/O I/O I/O I/O I/O I/O I/O I/O

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

P3 P2 P1

F F
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

2.
a. Los estados finales de la memoria son: P1=[5,1,2] y P2=[5,2,1] a.1. No se puede aplicar dicha tcnica (Ver Conceptos Bsicos) a.2. Para P1 se producen 2 Page Faults. Para P2 se producen 4. b. No c. P1 si. P2 es abortado por referenciar un frame inexistente.

3. 4. 5. 6.

FINAL de Sistemas Operativos y Computacin II (90 min.) 07/12/2002


Apellido y Nombre:.................................................................... Profesor:............................ A B
PARA CONTESTAR ESTE FINAL USE NICAMENTE ESTA HOJA ESCRIBIENDO EN ESTA CARA Y EN SU CONTRACARA.
A) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO su respuesta en no ms de 3 lneas.

1. Una de las ventajas que presentan los sistemas basados en microncleos, con respecto a otras arquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso de mensajes.

2. Para permitir un mayor grado de multiprogramacin Es mejor optar por pginas de un tamao pequeo.

3. La planificacin SSTF tiende a favorecer menos a los cilindros externos e internos que a los de la zona intermedia.

4. La existencia de un planificador a corto plazo slo tiene sentido en los sistemas con multiprogramacin.

5. El algoritmo de Peterson es una estrategia para la sincronizacin de procesos.

B) Resolver los siguientes ejercicios.

1. Sea el siguiente esquema de llegada de trabajos a ser procesados en un sistema monoprocesador:

Proces o 1 2 3 4 5

T llegada 0 1 2 3 3

Tiempo de CPU 7 9 7 5 4

Comienzo de E/S 2 3 78 5 9 10 4 -

Duracin de E/S 2 4 3 4 4 4 -

Prioridad Base BAJA MEDIA MEDIA ALTA MEDIA

Tamao 2000 k 1800 k 800 k 1000 k 1700 k

Orden de prioridad: ALTA > MEDIA > BAJA. Tamao de la memoria disponible: 5.500 k. Cantidad de instancias de E/S: 1. Administracin de Memoria: particiones dinmicas, con realocacin cada vez que sea necesario y algoritmo de asignacin de peor ajuste. Administracin de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los procesos aumentan a medida que pasa el tiempo. El mtodo de aumento de prioridad se realiza cuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasa a la prioridad siguiente (envejecimiento o ageing) y as sucesivamente hasta que tome la CPU, luego de dejar la CPU vuelven a su prioridad base. Cuando un proceso cambia la prioridad por envejecimiento, entra a la cola de listo ltimo de su nueva prioridad. En caso de simultaneidad de eventos, tiene prioridad el proceso envejecido. Notas: - Recuerde que para acceder a la cola de ready, un job debe estar en memoria real, o sea, antes debe competir por el recurso memoria. - Considere que cuando un job toma un segmento de memoria, no lo libera hasta su finalizacin, cualquiera sea su prioridad.
Se pide que realice la traza de ejecucin completa de los procesos y el mapa de memoria en los instantes correspondientes.

2. Dado el clsico problema de productores y consumidores, se plantea una solucin utilizando semforos con el siguiente cdigo:
Typedef typedef int semaforo semaforo semaforo int semaforo; char* msg; N=100; mutex = 1; lleno = 0; vacio = N;

/*Longitud del buffer /*Da la exclusin mutua /*Cuenta lugares llenos /*Cuenta lugares vacos

*/ */ */ */

Productor() { msg mensaje; while(TRUE) { producir(mensaje); down(&mutex); down(&vacio); entrar_msg(mensaje); up(&mutex); up(&lleno); } }

Consumidor() { msg mensaje; while(TRUE) { down(&lleno); down(&mutex); remover_msg(mensaje); up(&mutex); up(&vacio); consumir_msg(mensaje); } }

La solucin planteada es vlida?. En caso de que no lo sea, explique por qu. 3. Un sistema de archivos utiliza una poltica de asignacin de espacio indexada. En este sistema, los bloques de datos de un archivo, se pueden ubicar de forma contigua? Es necesario que los bloques estn ubicados de forma contigua? Da igual que lo estn? Justifique con mucha claridad su respuesta. Cambiara en algo su contestacin si la asignacin de espacio fuera enlazada?

Ejemplo de finales tomados:

07/12/2002 Enunciados:
B) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO su respuesta en no ms de 3 lneas.

1. Una de las ventajas que presentan los sistemas basados en microncleos, con respecto a otras arquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso de mensajes. 2. Para permitir un mayor grado de multiprogramacin Es mejor optar por pginas de un tamao pequeo. 3. La planificacin SSTF tiende a favorecer menos a los cilindros externos e internos que a los de la zona intermedia. 4. La existencia de un planificador a corto plazo slo tiene sentido en los sistemas con multiprogramacin. 5. El algoritmo de Peterson es una estrategia para la sincronizacin de procesos.
B) Resolver los siguientes ejercicios.

1. Sea el siguiente esquema de llegada de trabajos a ser procesados en un sistema monoprocesador:

Comienzo de Duracin de Prioridad Tamao E/S E/S Base 2 2 BAJA 2000 k 3 4 MEDIA 1800 k 78 3 3 2 7 5 4 MEDIA 800 k 9 10 4 4 3 5 4 4 ALTA 1000 k 5 3 4 MEDIA 1700 k Orden de prioridad: ALTA > MEDIA > BAJA. Tamao de la memoria disponible: 5.500 k. Cantidad de instancias de E/S: 1. Administracin de Memoria: particiones dinmicas, con realocacin cada vez que sea necesario y algoritmo de asignacin de peor ajuste. Administracin de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los procesos aumentan a medida que pasa el tiempo. El mtodo de aumento de prioridad se realiza cuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasa a la prioridad siguiente (envejecimiento o ageing) y as sucesivamente hasta que tome la CPU, luego de dejar la CPU vuelven a su prioridad base. Cuando un proceso cambia la prioridad por envejecimiento, entra a la cola de listo ltimo de su nueva prioridad. En caso de simultaneidad de eventos, tiene prioridad el proceso envejecido. Notas: - Recuerde que para acceder a la cola de ready, un job debe estar en memoria real, o sea, antes debe competir por el recurso memoria.

Proces o 1 2

T llegada 0 1

Tiempo de CPU 7 9

- Considere que cuando un job toma un segmento de memoria, no lo libera hasta su finalizacin, cualquiera sea su prioridad.
Se pide que realice la traza de ejecucin completa de los procesos y el mapa de memoria en los instantes correspondientes.

2. Dado el clsico problema de productores y consumidores, se plantea una solucin utilizando semforos con el siguiente cdigo:
Typedef typedef int semaforo semaforo semaforo int semaforo; char* msg; N=100; mutex = 1; lleno = 0; vacio = N;

/*Longitud del buffer /*Da la exclusin mutua /*Cuenta lugares llenos /*Cuenta lugares vacos

*/ */ */ */

Productor() { msg mensaje; while(TRUE) { producir(mensaje); down(&mutex); down(&vacio); entrar_msg(mensaje); up(&mutex); up(&lleno); } }

Consumidor() { msg mensaje; while(TRUE) { down(&lleno); down(&mutex); remover_msg(mensaje); up(&mutex); up(&vacio); consumir_msg(mensaje); } }

La solucin planteada es vlida?. En caso de que no lo sea, explique por qu. 3. Un sistema de archivos utiliza una poltica de asignacin de espacio indexada. En este sistema, los bloques de datos de un archivo, se pueden ubicar de forma contigua? Es necesario que los bloques estn ubicados de forma contigua? Da igual que lo estn? Justifique con mucha claridad su respuesta. Cambiara en algo su contestacin si la asignacin de espacio fuera enlazada?

Respuestas: Parte A
1. F. Precisamente el basarse en el paso de mensajes constituye un problema para su rendimiento. 2. V. As caben ms pginas en memoria principal, lo que permitir tambin tener ms procesos 3. V. en los extremos, cilindros internos y externos, slo se tiene una posibilidad de movimiento, un nico sentido, que les aleja de dichas zonas y adems, les conduce a las zonas intermedias. 4. V. Slo en este caso hay varios procesos en el sistema entre los que repartir la CPU 5. F. Es una solucin al problema de la exclusin mutua.

Parte B
1. Solucin a verificar: a. P5 P4 IO IO IO IO P3 IO IO IO IO IO IO IO IO P2 IO IO IO IO IO IO IO P1 IO IO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 P1 termina en 16 P4 termina en 28 P5 termina en 29 P2 termina en 31 P3 termina en 32 b. MEMORIA (el nmero en parntesis es el espacio libre) 0> P1 (3500) 1> P1, P2 (1700) 2> P1, P2, P3 (900) 16> P2, P3, P4, P5 (200) 28> P2, P3, P5 (1200) 19> P2, P3 (2900) 31> P3 (4700) 32> (5500)

2. Se queda en deadlock. si el productor da dos vueltas seguidas se bloquea en down(&vacio) despus de hacer el down(&mutex) y el consumidor se bloquea en el down(&mutex) despus de hacer el down(&lleno)... entonces productor est esperando el VACIO y consumidor est esperando el MUTEX. Para el ejemplo supongo que primero se inicia el productor y corre hasta bloquearse y despus se inicia el consumidor. Productor Se inicia el productor down mutex down vacio up mutex up lleno down mutex down vacio (se bloquea) Consumidor Mutex 1 0 0 1 1 0 0 0 Vacio 1 1 0 0 0 0 0 0 Lleno 0 0 0 0 1 1 1 1

se inicia el consumidor

LOS DOS ESTAN BLOQUEADOS

down lleno down mutex (se bloquea) LOS DOS ESTAN BLOQUEADOS

0 0

0 0

0 0

3. La asignacin indexada permite que los bloques de datos de un archivo se encuentren dispersos por el disco, pero evidentemente no obliga a ello. As que los bloques de un archivo indexado pueden estar contiguos. Sin embargo, no es indiferente el que los bloques estn contiguos. Los accesos secuenciales al archivo sern ms eficientes en ese caso, porque el desplazamiento de los cabezales del disco ser menor, comparado con el recorrido que tendra que hacer el cabezal si los bloques estuvieran desperdigados por la superficie del disco. La contigidad ocasiona un menor tiempo de acceso. En el mejor caso, todos los bloques del archivo estaran en un mismo cilindro y la cabeza lectora no tendra que hacer ningn movimiento para leer el archivo completo. Si la asignacin de espacio fuera enlazada, la respuesta sera similar. Incluso tendra ms impacto en el rendimiento el hecho de que los bloques estn contiguos, ya que en la asignacin enlazada cualquier acceso al archivo, ya sea secuencial o ya sea directo, exige recorrer los enlaces de los bloques. Si los bloques estn contiguos, el cabezal del disco har un recorrido ms pequeo.

FINAL DEL 28/05/03


Parte Prctica
Ejercicio 1 Un sistema computacional de un solo procesador planifica el procesamiento de trabajos segn el siguiente modelo:
Fin de Quantum

Cola de largo plazo Llegada

Cola de corto plazo CPU Salida

Cola de E/S Planificacin Largo Plazo E/S Planificacin Corto Plazo

La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos, usando una poltica SJF (Shortest Job First). En el corto plazo el procesador es asignado usando una poltica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos: Proceso P1 P2 P3 P4 P5 P6 Tiempo de llegada 0 0 2 4 10 15 CPU 5 2 3 6 2 3 E/S 3 4 4 2 3 4 CPU 3 3 2 2 2 4 Tiempo estimado de proceso (SJF) 12 10 8 11 7 12

Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) fin de E/S, 2) Cola de Largo Plazo y 3) fin de quantum. Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo de E/S (el cual planifica FIFO) se pide la traza de ejecucin de los procesos mediante un Diagrama de Gantt.

Ejercicio 2 Se tiene un disco con la siguiente geometra: 3 platos, 100 sectores por pista, un total de 500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3 registros del archivo 1 y los primeros 4 registros del archivo 2.
Sean los archivos con sus respectivos sectores lgicos: Archivo 1 (tiene registros de 1024 bytes): 1301 / 1902, 2503 / 3704, 599 / 600. Archivo 2 (tiene registros de 512 bytes): 30023, 30024, 3800, 60102. Si se sabe que el brazo del disco se encuentra en el cilindro 4, graficar el orden de ejecucin de los pedidos, asumiendo que estn en la cola, para cada uno de los siguientes algoritmos: a) SSTF. b) F-SCAN El brazo est ascendiendo.

RDO: Pto 1 CPU E/S 1 P2 P2 P1 P1 P3 P3 P1 P1 P2 P2 P3 P1 P2 P5 P5 P3 P3 P4 P4 P1 P1 P4 P4 P5 P5 P2 P2 P2 P2 2 3 4 5 6 P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 P6 P6 P6 P6

CPU P1 P4 P4 P6 P6 P4 P4 P6 E/S

P4 P4 P6 P6 P6 P6 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Proceso Instante en que ingresa Instante en que finaliza P1 0 26 P2 0 (encola primero por SJF) 13 P3 2 17 P4 17 32 P5 13 25 P6 25 41

Pto 2 Direcciones Fsicas (cilindro, cabeza, sector) (2, 1, 2) (3, 1, 3) (4, 1, 4) (6, 1, 5) (0, 5, 100) (1, 0, 1) (50, 0, 24)

(50, 0, 25) (6, 2, 1) (100, 1, 3) a) 4 3 2 1 0 6 (x2) 50 (x2) 100

SSTF
120 100 Cilindros 80 60 40 20 0 1 2 3 4 5 6 7 8 Series1

b) 4 6 (x2) 50 (x2) 100 3 2 1 0

F-SCAN
120 100 Cilindros 80 60 40 20 0 1 2 3 4 5 6 7 8 Series1

RESOLUCIN
Parte Prctica
Ejercicio 1

Un sistema computacional de un solo procesador planifica el procesamiento de trabajos segn el siguiente modelo:
Fin de Quantum

Cola de largo plazo Llegada

Cola de corto plazo CPU Salida

Cola de E/S Planificacin Largo Plazo E/S Planificacin Corto Plazo

La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos, usando una poltica SJF (Shortest Job First). En el corto plazo el procesador es asignado usando una poltica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos: Proceso P1 P2 P3 P4 P5 P6 Tiempo de llegada 0 0 2 4 10 15 CPU 5 2 3 6 2 3 E/S 3 4 4 2 3 4 CPU 3 3 2 2 2 4 Tiempo estimado de proceso (SJF) 12 10 8 11 7 12

Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) fin de E/S, 2) Cola de Largo Plazo y 3) fin de quantum. Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo de E/S (el cual planifica FIFO) se pide la traza de ejecucin de los procesos mediante un Diagrama de Gantt.

Ejercicio 2
Se tiene un disco con la siguiente geometra: 3 platos, 100 sectores por pista, un total de 500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3 registros del archivo 1 y los primeros 4 registros del archivo 2.
Sean los archivos con sus respectivos sectores lgicos: Archivo 1 (tiene registros de 1024 bytes): 1301 / 1902, 2503 / 3704, 599 / 600. Archivo 2 (tiene registros de 512 bytes): 30023, 30024, 3800, 60102. Si se sabe que el brazo del disco se encuentra en el cilindro 4, graficar el orden de ejecucin de los pedidos, asumiendo que estn en la cola, para cada uno de los siguientes algoritmos: c) SSTF. d) F-SCAN El brazo est ascendiendo.

RDO: Pto 1 CPU P2 P2 P1 P1 P3 P3 P1 P1 P2 P2 P3 P1 P2 P5 P5 P3 P3 P4 P4 P1 P1 P4 P4 P5 P5

E/S 1

P2 P2 P2 P2 2 3 4 5 6

P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 P6 P6 P6 P6

CPU P1 P4 P4 P6 P6 P4 P4 P6 E/S

P4 P4 P6 P6 P6 P6 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Proceso Instante en que ingresa Instante en que finaliza P1 0 26 P2 0 (encola primero por SJF) 13 P3 2 17 P4 17 32 P5 13 25 P6 25 41

Pto 2 Direcciones Fsicas (cilindro, cabeza, sector) (2, 1, 2) (3, 1, 3) (4, 1, 4) (6, 1, 5) (0, 5, 100) (1, 0, 1) (50, 0, 24) (50, 0, 25) (6, 2, 1) (100, 1, 3) c) 4 3 2 1 0 6 (x2) 50 (x2) 100

SSTF
120 100 Cilindros 80 60 40 20 0 1 2 3 4 5 6 7 8 Series1

d) 4 6 (x2) 50 (x2) 100 3 2 1 0

F-SCAN
120 100 Cilindros 80 60 40 20 0 1 2 3 4 5 6 7 8 Series1

FINAL DEL 21/12/2002


C) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas.

1. Una de las estrategias para detectar el deadlock distribuido son los algoritmos centralizados. En

este tipo de algoritmos todos los procesos cooperan para detectar el deadlock. (ST 611)

2. No existe diferencia entre la operacin de espera de un semforo y de una variable de condicin de un monitor.

3. En un sistema operativo que trabaja con memoria virtual, la transicin entre estados RUNNING READY SUSPEND no es posible. (ST 115)

4. El microkernel puede reconocer las interrupciones, pero no las puede manejar. (ST 169)

5. La limitacin que trae el mtodo de clustering por servidores separables, es que usualmente requiere discos espejados o alguna tecnologa de RAID para compensar los riesgos de falla de algn disco. (ST 575)

B) Resolver PAP NOEL Y LOS RENOS.

Desde fines de noviembre, Pap Noel se encuentra planificando su itinerario de viaje. Existe un pueblito en particular en el que no se decide como repartir los regalos. Se trata de Villa Circular, un pueblo con 200 calles (numeradas de 0 a 199) las cuales se encuentran dispuestas de forma similar que los cilindros de un disco. Los clculos de aterrizaje de su trineo le indican que deber empezar su recorrido por la calle 100. Adems, Pap Noel tiene la lista de pedidos de los nios de acuerdo al orden en que le fueron llegando las cartitas (para simplificar, ha anotado slo el nmero de calle): 81, 142, 86, 172, 89, 145, 97, 170 y 125. Dado que Pap Noel ha ledo el libro de Stallings, ha decidido elegir la forma en que repartir los regalos de acuerdo a algunos de estos dos algoritmos de planificacin de disco: el FCFS (First come-First Served) y el SSTF (Shortest Service Time First). Pap Noel ley este libro hace bastante tiempo, y no recuerda con exactitud como trabaja cada uno de los algoritmos de planificacin de disco, por lo que Ud. debe ayudarlo a encontrar el algoritmo que le brinde la menor longitud media de bsqueda para satisfacer las entregas de regalos (es necesario indicar la longitud de ambos algoritmos). Tambin debe refrescarle que inconvenientes presentan estos dos algoritmos. Una semana antes del 24 de diciembre, Pap Noel ya va pensando en como ubicar los regalitos de los nios en su trineo. Para ello cuenta con un espacio total que equivale a 64 megabytes de una memoria principal instalada en una maquina, que utiliza memoria segmentada, en la cual un segmento equivale a un regalo, y cuyas direcciones lgicas (lista de ubicacin de los paquetes en el trineo) tienen esta estructura: 10 bits para el campo del regalo y 22 bits para el tamao del regalo. En un momento dado, el trineo est organizado de la siguiente forma: las maletas de Pap Noel, que son inalterables, residen en los primeros 128 Kbytes del trineo. Hay un nico proceso P, que es el encargado de llevar a cabo el proceso de reparto de los regalos a las casas, con cuatro regalitos asignados por el momento: los regalos 0, 1 y 2 tienen longitudes respectivas 10 Kbytes, 25 Kbytes y 2 Kbytes y se hallan en las posiciones del trineo 300.000, 200.000 y 700.000, respectivamente. El regalo 3 permite acceder a toda el rea de las maletas. Es necesario que usted represente la tabla de regalos del proceso P, y que diga cul es la direccin del trineo que se corresponde con la posicin en la lista de ubicaciones que tiene el regalo=2 y el desplazamiento=1000. Indique adems, hasta cuantos paquetes podra llevar Pap Noel y el tamao mximo de cada uno en un trineo sin limitaciones. Suponga que el sistema que utiliza Pap Noel para alocar a los regalos es el best-fit. Indique qu zona del trineo le asignara si se solicita un espacio para un regalo de 400 KB. Despus de una larga recorrida por la Villa Circular los renos estn sedientos y necesitan tomar agua para poder volver a sus establos, que se encuentran en el Polo Norte. Para ello el nico lugar donde se les puede dar de tomar es en algn hpico, ya que poseen bebederos para caballos. Al llegar los renos toman agua del primer bebedero que encuentran lleno y cuando comienza a beber, Pap Noel, nota una situacin que siempre le result indiferente. Cuando el bebedero se vaca, automticamente un sistema de llenado detecta que el mismo esta vaco y lo vuelve a llenar para

que los renos sigan tomando. Por el ruido del motor del sistema de llenado, los renos tienen miedo y no toman mientras se llena. Este sistema esta activo las 24 hs. En ese instante llega un estudiante de Ingeniera en Sistemas de la UTN y Pap Noel le comenta esta rutina y tambin le pregunta si se podr hacer el pseudocdigo del reno y del sistema de llenado que estn sincronizados y libres de deadlock y starvation. Para ayudar a Pap Noel a llevar cabo su difcil rutina dispondr de 80 minutos. Tenga en cuenta que si logra resolverlo, miles de nios estarn contentos por haber recibido sus regalos y tambin porque se aseguran que volver el ao prximo debido a que usted seguramente no va a matar a los renos de sed.

RESPUESTAS
Tericas. 1) (ST 611) Falsa. Si todos los procesos cooperan estamos hablando de algoritmos distribuidos, en los algoritmos centralizados un nodo es responsable de detectar el deadlock. Los mensajes van a parar a un nodo central.

2) Falsa. La diferencia que existe es que en el caso de la variable de condicin siempre se suspende el proceso que la emite. 3) (ST 115) Falsa. Si es posible y se justifica dando una explicacin de porque se hace ese cambio de estados. 4) (ST 169) Verdadera. 5) (ST 575) Falsa. Esa limitacin la presenta el mtodo servers connected to disks. Prctica

Pap Noel ley este libro hace bastante tiempo, y no recuerda con exactitud como trabaja cada uno de los algoritmos de planificacin de disco, por lo que Ud. debe ayudarlo a encontrar el algoritmo que le brinde la menor longitud media de bsqueda para satisfacer las entregas de regalos (es necesario indicar la longitud de ambos algoritmos). Tambin debe refrescarle que inconvenientes presentan estos dos algoritmos.
Planificacin FCFS: En este algoritmo la primera peticin que llega es la primera que se sirve: Pista a la que se Accede 81 142 86 172 89 145 97 170 125 N de pistas que se atraviesan 19 61 56 86 83 56 48 73 45 Rta: 58.5 Inconveniente: Los movimientos bruscos de vaivn a los que se ve sometida la cabeza de lectura / escritura, pudiendo llegar a problemas fsicos del equipo. Planificacin SSTF: Este algoritmo consiste en atender la peticin que requiere el menor movimiento de la cabeza de lectura / escritura desde su posicin actual. Pista a la que se accede 97 89 86 81 125 142 145 170 172 N de pistas que se atraviesan 3 8 3 5 44 17 3 25 2 Rta: 12.2 Inconveniente: Se puede presentar el bloqueo indefinido. Si las peticiones de pista que se suceden estn ms prximas a la actual, aquellas que se pidieron con anterioridad pueden quedar postergadas de manera indefinida.

Es necesario que usted represente la tabla de regalos del proceso P Podra ser algo as: segmento 0 1 2 3

Longitud (bytes) 10.240 25.600 2.048 131.072

Dir. base 300.000 200.000 700.000 0

Dir. Fin 310.240 225.600 702.048 131.072

, y que diga cul es la direccin del trineo que se corresponde con la posicin en la lista de ubicaciones que tiene el regalo=2 y el desplazamiento=1000.
Base[2]+desplazamiento = 700000 + 1000 = 701000

Indique adems, hasta cuantos paquetes podra llevar Pap Noel y el tamao mximo de cada uno en un trineo sin limitaciones.
Cant. Max de paquetes: 210 = 1 K Tamao mx. : 222 = 4 M

Suponga que el sistema que utiliza Pap Noel para alocar a los regalos es el best-fit. Indique qu zona del trineo le asignara si se solicita un espacio para un regalo de 400 KB.
Si observamos el reparto de la memoria fsica, vemos que slo hay un hueco que tiene ms de 400Kb, y es el espacio que queda a continuacin de la direccin fsica 702048. Por tanto, el hueco ser concedido en esa direccin, o bien justo al final de la memoria fsica (que tambin dejara un nico hueco compacto).

FINAL DEL 01/03/2003


D) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5).
1. Cuando se va a leer un archivo que es accedido simultneamente por varios usuarios es conveniente usar el Mtodo de Fuerza Bruta (Bruce-Force).

2. Cuando se produce un trap, el sistema operativo debe decidir si el error es o no fatal. 3. Dado un SO que controla dos filesystems diferentes, el espacio libre de los mismos es manejado de igual forma para ambos. 4. En la segmentacin simple, la memoria principal no est particionada

E) Conteste en no ms de 5 renglones:
Qu ventaja(s) hay en tomar tamaos diferentes de quantum en niveles diferentes de un sistema de encolamiento multinivel?

F) Resolver los siguientes ejercicios. (Condicin de aprobacin 1/2).


Nuestro Servidor es un AS/400 modelo 150, sub-modelo 2269, cuyo nmero de serie es 101492R. Es uno de los pequeos de IBM, su Performance es de 27 (CPW), y el fitcher interactivo es de 13.8 CPW. El sistema Operativo es el OS400 V4R4M0 y el ltimo nivel de PTF aplicada (Service Pack) es TL00350. Se dispone de 1 solo procesador con 64 MB de memoria RAM y el nivel de seguridad adoptado es 30 (Permisos a nivel usuario). En la plataforma AS/400, la memoria fsica se divide en agrupaciones lgicas llamadas POOLes de memoria. Cada POOL tiene asociados uno o ms subsistemas en el cual corren trabajos y tareas del sistema. Algunos POOLes son especficos del sistema y otros son creados por los usuarios. Los POOLes del sistema son: *MACHINE, donde corren las tareas. *SPOOL, donde corren los trabajos de impresin. *INTERACT, donde corren los trabajos interactivos (Los que provienen de una consola interactiva y/o emulacin 5250) *BASE, donde corren los trabajos Batch y los que no tienen otro POOL especificado. En el AS/400, los defaults son regidos por valores del sistema. El valor del sistema QPFRADJ permite especificar si el tamao de los POOLes es esttico, Cada POOL queda con el tamao que el usuario indica y no se modifica, si es 0, o si el tamao del POOL va a ser administrado dinmicamente por el Sistema Operativo si fuese 3. La tarea que se nos encarga es analizar el rendimiento del AS/400. Lo que nos interesa optimizar es el tiempo de respuesta de los usuarios, para lo cul nos enfocaremos en el subsistema *INTERACT. Para dicha tarea hemos puesto el valor del sistema QPFRADJ en 0 , sin ajuste, y mediante la ejecucin de un trabajo interactivo (QPADEV0005) que realiza un query en el archivo fsico SUELDOS, hemos logrado la siguiente instantnea de Performance, obtenida con una herramienta de monitorizacin ON-Line:

Al cambiar el valor de QPFRADJ a 3, la nueva distribucin de los POOLes es: Pool *MACHINE *INTERACT *SPOOL *BASE

Tamao
10 MB 20 MB 4 MB 30 MB

Se disponen de 3 frames (0,1,2) para el proceso dentro del POOL *INTERACT. Las direcciones son de 20 bits, con 12 bits para desplazamiento. La pila de llamadas del proceso interactivo (QPADEV0005) tiene las siguientes referencias a memoria: 1052 12864 5968 658 8954 147 (decimal) Si la poltica de eleccin de la victima es LRU con asignacin fija y alcance local, se pregunta: 1) Se puede afirmar que es conveniente el ajuste automtico de memoria?. Justifique claramente su respuesta. En el AS/400, los procesos tienen un esquema de 100 posibles prioridades. Las tareas del sistema se ejecutan con prioridad 0, mientras que los trabajos tienen prioridades entre 1 y 99 , el menor valor indica la mxima prioridad. A su vez, cada trabajo dispone de un quantum de tiempo, llamado Timeslice. Dicho valor se mide en milisegundos y puede ser cualquiera dentro del rango 1 y 9999999.

La prioridad de cada trabajo se define en un objeto del tipo *CLS, siendo para los procesos BATCH de 50 y los INTERACTIVOS de 20. Los valores por omisin de Timeslice de cada trabajo dependen del subsistema en el cual fueron creados pero para simplificar las cosas tomaremos que: Trabajos BATCH : 5000 INTERACTIVOS: 2000 SYSTEM: 1000

Una vez que el trabajo obtiene la CPU para ser ejecutado, se mantiene hasta que necesite alguna operacin de Entrada/Salida, alcance el total de su Timeslice, finalice su ejecucin, o sea desplazado por otro trabajo con prioridad superior. 2) Dada la siguiente tabla de procesos, suponiendo que cada ciclo de CPU utiliza su timeslice completo y que se cuenta con un nico dispositivo de entrada / salida, determinar la traza de ejecucin y el orden de finalizacin, mediante un diagrama de Gantt, en forma clara y detallada. Instante de entrada (milisegundos) 0 2200 3500 2600 Nombre Trabajo (Tipo) STRBDMON (BATCH) P_USRSPC (INTERACT) DLTSPOOL (BATCH) WRKACTJOB (SYSTEM) CPU xxx xxx xxx xxx E/S 3000 1000 2000 2800 CPU xxx xxx xxx xxx E/S 5000 1000 800 4000 CPU xxx xxx xxx xxx

RESPUESTAS
A)
1.

FALSO: El mtodo lo que hace es bloquear el archivo cuando se va a actualizar cuando hay acceso paralelo, pero si lo nico que voy a hacer es leer un archivo no hace falta bloquearlo. VERDADERO. Adems, si determina que el error es fatal, debe mover el proceso al estado de exit y realizar un process switch. a VERDADERO. Es una de las caractersticas de la segmentacin simple (st 3-322)

2.

3. 4.

B) Los procesos que necesitan servicios mas frecuentes, desde luego procesos interactivos tales como editores, pueden estar en una cola con un pequeo quantum. Los procesos que no necesitan pueden estar en una cola con un quantum ms grande, requiriendo menos context switches para completar los procesos haciendo el uso ms eficiente de la computadora.

Pedido Pgina 1052 0 12864 3 5968 1 658 0 8954 2 147 0

Offset 1052 576 1872 658 762 147

Pto b Pto a Frame Desplazamiento Direccin Fsica PF Mapa de Memoria 0 1052 1052 (0, , ) 1 576 4672 (0,3, ) 2 1872 10064 (0,3,1) 0 658 658 (0,3,1) 1 762 4858 SI (0,2,1) 0 147 147 (0,2,1)

Pedido Pgina Offset Frame Desplazamiento Direccin Fsica PF Mapa de Memoria 1052 0 10000011100 0 10000011100 10000011100 (0, , ) 12864 11 1001000000 1 1001000000 11001001000000 (0,3, ) 5968 1 11101010000 10 11101010000 1011101010000 (0,3,1) 658 0 1010010010 0 1010010010 1010010010 (0,3,1) 8954 10 1011111010 1 1011111010 10001011111010 SI (0,2,1)

147

10010011

10010011

10010011

(0,2,1)

G) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5)

FINAL DEL 02/10/2003


1. En un sistema de clave pblica-privada para autentificar el origen de los datos se hace pblica la clave de desencripcin del receptor. 2. Cuando un proceso que se encuentra dentro de un monitor realiza una operacin wait sobre una variable de condicin, el proceso espera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condicin.

3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar en sistemas con mltiples procesadores, lo que si pueden ser realizado por los semforos.
4. El algoritmo de planificacin SJF (Shortest Job First) se puede implementar para la cola de nuevos, pero no para la cola de listos. 5. Como en todo FileSystem basado en i-nodos, en ext2, el super block es nico y no se repite.

B) Resuelva los siguientes ejercicios. (condicin de aprobacin 1/2)


1. Dada la siguiente situacin se requiere administrar la proteccin para garantizar la poltica definida. El dominio esta definido por el grupo de usuarios. Las operaciones permitidas son Read, Write y eXecute. Hay un administrador: Carlos. Hay dos docentes de Sistemas Operativos: Graciela y Pepe. Hay dos docentes de arquitectura: Maria y Jose. Hay tres Alumnos: Diego, Matias y Dario. Los grupos son: Administradores (Admins), Docentes de S.O (Doc-SO), Docentes de Arquitectura (Doc-Arq) y cada alumno tiene su propio grupo: Diego, Matias y Dario. Se tienen 12 archivos: Nombre Horarios TPSO1 TPSO2 R-KUMANA-A Dueo Carlos Graciela Pepe Dario Nombre R-KUMANA-B R-KUMANA-C R-KUMANA-D R-KUMANA-E Dueo Matias Matias Diego Diego Nombre ARQ1 ARQ2 R-DPACMAN1 R-DPACMAN2 Dueo maria Jose Dario Dario

El administrador puede leer, modificar y ejecutar todos los archivos suyos y puede leer los de todos. Los docentes de SO pueden leer, modificar y ejecutar todos los archivos de los docentes de SO y pueden leer y ejecutar todo los de sus alumnos. Los docentes de arquitectura solo pueden leer, modificar y ejecutar todos los archivos de los docentes de arquitectura y pueden leer todos los de sus alumnos. Cada alumno puede leer, modificar y ejecutar todos los archivos suyos y puede leer los de los docentes.

Se pide que arme la matriz y proponga la implementacin por medio de ACL (Access Control List) y C-List (capability List) y bits de proteccin tipo UNIX. 2. Un pequeo centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo cdigos de los procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semforos, para que no produzca Deadlock, ni Starvation.

void pasajero() { while (1) {

void aerosilla() { while(1) {

llegar_a_la aerosilla()

subir_la_montaa() subir_a_a_aerosilla()

bajar_de_la_aerosilla() bajar_la_montaa() bajar_esquiando()

} } }

RESPUESTAS:
H) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5) Falso. Se hace pblica la clave de desencriptacin del emisor. Sabiendo sto slo podemos desencriptar los mensajes que hayan sido encriptados con la clave privada de encriptacin del emisor, que slo ste conoce, con lo que nos aseguramos que ha sido l.
2. Cuando un proceso que se encuentra dentro de un monitor realiza una operacin wait sobre una variable de condicin, el proceso espera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condicin. 1. En un sistema de clave pblica-privada para autentificar el origen de los datos se hace pblica la clave de desencripcin del receptor.

Falso. El proceso espera dentro del monitor a que otro proceso haga un signal sobre la misma variable de condicin.
3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar en sistemas con mltiples procesadores, lo que si pueden ser realizado por los semforos.

Falsa: Si usan memoria compartida se pueden usar semforos tranquilamente y se pueden utilizar TAS para multiprocesadores.

4. El algoritmo de planificacin SJF (Shortest Job First) se puede implementar para la cola de nuevos, pero no para la cola de listos.

Verdadero: Ya que si estamos hablando de Jobs es porque estan en la cola de nuevo, sino estariamos hablando de SPN (sortest process first), se habla de procesos.
5. Como en todo FileSystem basado en i-nodos, en ext2, el super block es nico y no se repite.

B) Resuelva los siguientes ejercicios. (condicin de aprobacin 1/2)


1. Dada la siguiente situacin se requiere administrar la proteccin para garantizar la poltica definida. El dominio esta definido por el grupo de usuarios. Las operaciones permitidas son Read, Write y eXecute. Hay un administrador: Carlos. Hay dos docentes de Sistemas Operativos: Graciela y Pepe. Hay dos docentes de arquitectura: Maria y Jose. Hay tres Alumnos: Diego, Matias y Dario. Los grupos son: Administradores (Admins), Docentes de S.O (Doc-SO), Docentes de Arquitectura (Doc-Arq) y cada alumno tiene su propio grupo: Diego, Matias y Dario. Se tienen 12 archivos: Nombre Horarios TPSO1 TPSO2 R-KUMANA-A Dueo Carlos Graciela Pepe Dario Nombre R-KUMANA-B R-KUMANA-C R-KUMANA-D R-KUMANA-E Dueo Matias Matias Diego Diego Nombre ARQ1 ARQ2 R-DPACMAN1 R-DPACMAN2 Dueo maria Jose Dario Dario

El administrador puede leer, modificar y ejecutar todos los archivos suyos y puede leer los de todos. Los docentes de SO pueden leer, modificar y ejecutar todos los archivos de los docentes de SO y pueden leer y ejecutar todo los de sus alumnos. Los docentes de arquitectura solo pueden leer, modificar y ejecutar todos los archivos de los docentes de arquitectura y pueden leer todos los de sus alumnos. Cada alumno puede leer, modificar y ejecutar todos los archivos suyos y puede leer los de los docentes.

Se pide que arme la matriz y proponga la implementacin por medio de ACL (Access Control List) y C-List (capability List) y bits de proteccin tipo UNIX. 2. Un pequeo centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo cdigos de los procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semforos, para que no produzca Deadlock, ni Starvation. void pasajero() { while (1) { llegar_a_la aerosilla() subir_a_a_aerosilla() bajar_de_la_aerosilla() bajar_esquiando() } } { void aerosilla() while(1) { subir_la_montaa()

bajar_la_montaa() } }

FINAL DEL

27/05/2004

I)

Explcitamente defina como VERDADERA o FALSA cada una de las siguientes afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas.

1. La organizacin del flujo de informacin entre la memoria principal y la secundaria en un ambiente multiprogramado, es uno de los grandes inconvenientes a resolver por los programadores en tiempo de desarrollo. FALSO: Es el sistema Operativo es el que se encarga de eso, ya que el programador no sabe en tiempo de codificacin cuanto espacio tendr disponible o donde estar el dato en memoria. 2. esperando para ejecutar. FALSO: Si la asignacin de los procesos es esttica, es decir que siempre se le asignan a los procesos los mismos procesadores se puede dar ese caso. 3. En un esquema del tipo Digital Envelope se realiza una doble encripcin para incorporarle mayor seguridad al mensaje a transmitir. FALSO: Se realiza una doble encripcin para poder pasar la clase simtrica y despus los sucesivos mensajes se encriptan con esa clave y de esta manera se reduce el tiempo de procesamiento de la encripcin.

B) Responda las siguientes preguntas en no ms de 5 lneas.


1. De su opinin acerca de la siguiente cuestin: "El Sistema Operativo es un proceso". 2. Explique por qu surge y mencione la (s) desventaja (s) del diagrama de 5 estados.

C) Resuelva los siguientes ejercicios.


1. Se tiene un Sistema el cual utiliza un Short Term Scheduler por prioridades puras. En un momento dado se va a ejecutar el siguiente set de procesos: Proceso P1 P2 P3 P4 Prioridad 40 30 20 10 T. Llegada 0 0 1 3 CPU 2 3 5 2 I/O IMP (4) PLOTTER (2) PLOTTER (3) IMP (2) CPU 3 X 6 1 I/O DISCO (4) DISCO (2) CPU 2 2

Considerando que se tienen tres dispositivos de entrada / salida, los cuales planifican FIFO, que el tiempo que insume el Sistema Operativo en realizar un process switch es de 1 ciclo de CPU y que a menor nmero mayor prioridad, se pide hallar el valor de X y los tiempos de finalizacin de todos los procesos para el valor hallado, sabiendo que el Turnaround Time del proceso 2 es menor que el Turnaround Time del proceso 3. Justifique su respuesta. NOTA: Para la resolucin de este ejercicio tenga en cuenta que no se considera el inicio del mismo como un process switch y que ante la simultaneidad de eventos deber elegir por FIFO al proceso a ejecutar. 2. Cuando la NASA inici el lanzamiento de astronautas, descubrieron rpidamente que los bolgrafos no funcionaran con gravedad cero. Para combatir este problema, los cientficos de la NASA emplearon una dcada y 12.000 millones de dlares desarrollando un bolgrafo que escribiese con gravedad cero, hacia arriba y hacia abajo, bajo el agua, en prcticamente cualquier superficie incluido el cristal y en un rango de temperaturas desde bajo cero hasta ms de 300C. Para poder realizar dicho experimento era necesaria una correcta sincronizacin en la mquina que generaba las pruebas. Para ello se definieron los siguientes procesos que se ejecutan concurrentemente en dicha mquina, donde a continuacin se detallan las operaciones faltantes por cada proceso a partir del instante Y del Sistema: PROCESO A DOWN (A) DOWN (E) DOWN (E) UP (C) DOWN (C) DOWN (B) DOWN (E) DOWN (C) DOWN (A) PROCESO B UP (B) DOWN (C) DOWN (C) UP (D) DOWN (C) DOWN (E) DOWN (E) UP (D) DOWN (B) PROCESO C DOWN (C) UP (F) DOWN (C) UP (G) DOWN (C) DOWN (A) DOWN (F) DOWN (E) UP (C) PROCESO D UP (A) DOWN (B) DOWN (F) DOWN (G) DOWN (E) UP (F) DOWN (F) DOWN (C) DOWN (D) PROCESO E UP (C) UP (A) DOWN (F) UP (E) DOWN (E) DOWN (F) DOWN (C) UP (G) UP (F) PROCESO F UP (B) DOWN (C) DOWN (G) DOWN (G) DOWN (F) UP (A) DOWN (G) DOWN (B) DOWN (C)

Considerando que el valor inicial de los semforos es: A = 4, B = 5, C = 3, D = 1, E = 1, F = 1 y G = 4, y que en el mismo instante Y la cantidad de instancias de cada recurso que tienen asignados los procesos se detalla en la siguiente tabla: A 2 0 B 1 1 C 0 0 D 0 0 E 0 0 F 0 0 G 0 0

PA PB

PC PD PE PF

1 0 0 0

0 0 0 1

0 0 1 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

Se pide que demuestre si se puede llegar a producir deadlock, analizando el estado del Sistema. Justifique ampliamente su razonamiento. Si hubiera formado parte del equipo Ruso, seguramente no hubiera gastado tanto tiempo en realizar estos anlisis ya que utilizaron un lpiz. (Sin comentarios ...)
Para aprobar el examen deber tener correctas, como mnimo, 3 preguntas tericas y 1 ejercicio prctico.

J) R
esp ond

a las siguientes preguntas en no ms de 5 lneas. 1. Existen distintos puntos de vista ante esta cuestin, depende desde que punto de vista sea, se puede decir que el SO es un proceso comn y corriente o es un proceso privilegiado, pero siempre se debera de concluir que es un proceso, ya que por un lado es un programa en memoria que es ejecutado por el procesador, definicin de proceso. 2. La idea es bsicamente que contesten que el diagrama de 5 estados surge porque en el diagrama de 2 estados haba solamente una nica cola de NOT RUNNING y se tenia que recorrer esa cola buscando los procesos que estn listos para ejecutar, ya que en esa cola estaban todos mezclados, los listo y los bloqueados, con lo cual se produca un overhead en realizar esa bsqueda. Es por eso que se la cola de NOT URNG se dividi en READY y BLOCKED. La principal desventaja de ese diagrama es que no contempla el swapeo a memoria secundaria de los procesos.

K) Resuelva los siguientes ejercicios.


1.

SO X P4 P3 P2 X P1 0 1 2

X X

X X X X X X X X I I X X X X X P P P X X X X X X D X X P P 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Tiempos de Finalizacin de los procesos 29 P1 45 P3 10 P2 26 P4

X = 1
Turnaround P3 = 29 - 1 = 28 Turnaround P2 = 26 - 0 = 26

X D X X X

X X I I I I X X X D D D D X X 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

06/12/2003
L) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO su respuesta en no ms de 3 lneas (condicin de aprobacin 3/5).
1. Cuantos ms procesos hay activos en memoria, ms fallos de pgina (Page Fault) existen y mejor es el uso del procesador ya que aumenta la multiprogramacin.

2. Siempre es conveniente poseer un sistema de encripcin de passwords que sea reversible. 3. En la TLB es posible identificar a que proceso pertenece cada pgina. 4. En el algoritmo de planificacin de disco LOOK la cabeza de escritura / lectura empieza en un extremo del disco y se mueve hacia el otro, sirviendo las solicitudes a medida que llega a cada pista, hasta que se encuentra en el otro extremo del disco, momento en el cual se invierte la direccin del movimiento y contina el servicio hasta el otro extremo.

B) Responda la siguiente pregunta en no mas de 5 renglones.


Enumere y describa los distintos tipos de aplicaciones maliciosas que necesitan de un programa host o anfitrin para existir.

C) Resolver los siguientes ejercicios (condicin de aprobacin 2/3).

FINAL DEL 06/12/03


1. La gestin de memoria de un sistema operativo debe permitir que sea posible ejecutar concurrentemente 3 procesos, donde los tamaos en bytes de cada uno de los segmentos que forman parte de sus imgenes de memoria son los siguientes:

PROCESO A B C

CODIGO 16384 2048 4096

DATOS 8700 1000 2272

PILA 8192 1024 2048

Adems, se sabe que se dispone de una memoria fsica de 16 Kbytes y que el espacio de direcciones del sistema es de 64 Kbytes. Se pide: 1.1) Determinar si son viables tamaos de pgina de 1024 bytes y 512 bytes suponiendo que una pgina no puede contener partes de dos segmentos diferentes (cdigo, datos o pila). 1.2) Suponiendo de que ambos tamaos de pgina sean posibles, justificar qu tamao debera utilizar el sistema de paginacin si se tiene en cuenta la fragmentacin interna producida. 1.3) Si se desea que las entradas de la tabla de pginas dispongan de 3 bits para referenciar el Frame de cada pgina, qu tamao de pgina debera utilizarse sin tener en cuenta la ejecucin de los procesos A, B y C? 2. Dado el estado de un sistema, mediante el siguiente grafo de asignacin de recursos:

R1

R3 P1 P3 P4 P2

R2

Suponiendo que los procesos ya no piden ms recursos durante el resto de su ejecucin y no liberarn sus recursos hasta su finalizacin, indique si puede llegar a existir Deadlock. En caso negativo, de una secuencia de finalizacin de los procesos; caso contrario diga cules procesos se encuentran en interbloqueo y proponga una solucin.

3. Nuestro cliente nos ha contratado para que le recomendemos un sistema operativo para que pueda implementar los quehaceres del hogar, ya que su objetivo es lograr automatizarlos, como por ejemplo que nuestra PC pueda controlar el lavarropas o que nos pueda hacer el desayuno a la maana temprano con el solo hecho de programarla. Se sabe que en este tipo de sistemas la velocidad de respuesta tiene que ser muy alta. Como futuros Ingenieros en Sistemas de Informacin se nos pide que evaluemos el planificador que mejor se adapte a las necesidades del cliente. Para ellos hemos tomado la siguiente muestra de los procesos que habitualmente vamos a correr y que se adaptan a la dinmica del uso que se le va a dar a nuestra PC, en lo que respecta al procesamiento de los datos. NOTA: Para la resolucin de este ejercicio deber evaluar como mnimo dos algoritmos de planificacin: uno PREEMTIVE y uno NONPREEMTIVE. Tenga en cuenta que para que se considere valido el punto deber de JUSTIFICAR AMPLIAMENTE la decisin tomada.

Solucin:
Teora:
PARTE A: 1.VERDADERO. No siempre... por belady. Hay un limite. 2. FALSO 3. FALSO 4. FALSO

PARTE B:
1. Parsitos, los residentes en memoria, los residentes en el sector de booteo, polimrficos e invisibles. En ingles: Parasitic, Memory-resident, Boot sector, stealth y Polymorphic.

Prctica:
1.1. Sabiendo que una pgina no puede contener partes de dos segmentos diferentes (cdigo, datos o pila), se obtienen los siguientes valores: PROCESO A CODIGO DATOS PILA N bytes 16384 8700 8192 N pginas 1024 bytes 16 9 8 Fragmentacin interna 0 516 0 N pginas 512 bytes 32 17 16 Fragmentacin interna 0 4 0

PROCESO B CODIGO DATOS PILA

N bytes 2048 1000 1024

N pginas 1024 bytes 2 1 1

Fragmentacin interna 0 24 0

N pginas 512 bytes 4 2 2

Fragmentacin interna 0 24 0

PROCESO C CODIGO DATOS PILA

N bytes 4096 2272 2048

N pginas 1024 bytes 4 3 2

Fragmentacin interna 0 800 0

N pginas 512 bytes 8 5 4

Fragmentacin interna 0 288 0

- Con pginas de 1024 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria: 16+9+8+2+1+1+4+3+2 = 46 pginas Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el nmero de pginas posibles sera: 65536 / 1024 = 216 / 210 = 26 = 64 pginas.

Para poder ejecutar los procesos se necesitan 46 pginas al menos, y se dispone de 64 por lo que es posible utilizar pginas de 1024 bytes. - Con pginas de 512 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria: 32+17+16+4+2+2+8+5+4 = 90 pginas Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el nmero de pginas posibles sera: 65536 / 512 = 216 / 29 = 27 = 128 pginas. Para poder ejecutar los procesos se necesitan 90 pginas al menos, y se dispone de 128 por lo que es posible utilizar pginas de 512 bytes. Por tanto, es viable utilizar cualquiera de los dos tamaos de pgina. 1.2. Teniendo en cuenta la fragmentacin interna producida se elegir aquel tamao de pgina en el que se desperdicie menos memoria en las ltimas pginas: Con 1024 bytes 516+24+800=1340 bytes desperdiciados Con 512 bytes 4+24+288=316 bytes desperdiciados Por tanto se elegirn pginas de 512 bytes. 1.3. El nmero de marcos de pgina posibles en el sistema en funcin del tamao de pgina es: Pginas de 1024 bytes 16384 / 1024 = 214 / 210 = 24 Se necesitan 4 bits para hacer referencia al marco de pgina. Pginas de 512 bytes 16384 / 512 = 214 / 29 = 25 Se necesitan 5 bits para hacer referencia al marco de pgina. Por tanto, ninguno de los dos tamaos de pgina propuestos es adecuado para los 3 bits de referencia al marco de pgina. Lo ideal es poder referenciar todos los marcos de pgina posibles en memoria fsica, por lo que se diseara un sistema con 23 = 8 marcos 16384 / 8 = 2048 Se deberan utilizar pginas de 2048 bytes.

2) No se produce Deadlock. Posibles Trazas de ejecucin:

P4, P3, P1, P2 y P4, P3, P2, P1.

3) El algoritmo que hay que elegir en base a los que evalen es el que haga que los procesos finalicen mas rpido, debido al tiempo de respuesta alto.

Вам также может понравиться