guia de ejercicios 2004 so sin cont

63
Sistemas Operativos GUÍA DE EJERCICIOS 2004 Director de Cátedra : Lic. Carlos R. NEETZEL AGRADECIMIENTO: La Cátedra de Sistemas Operativos agradece especialmente la colaboración de los alumnos (en especial el trabajo de recopilación efectuado por Mariano E. Sciuto) y ayudantes de la Universidad Tecnológica Nacional ( Fac. Regional Bs. As.) que han propuesto los ejercicios y las soluciones de los capítulos mas importantes del libro “Notas Sobre Sistemas Operativos”. También mi reconocimiento por la revisión efectuada por el Ing. Leonardo Catalano. La presente guía está disponible para todos aquellos alumnos que previamente decidan realizar los ejercicios de la Cátedra, puedan comparar sus resultados y así servir de guía de resolución y corrección de los mismos. Esta guía de ejercicios han sido formulados en colaboración con los ayudantes de la cátedra, como ejercitación práctica adicional a la de la bibliografía de la materia. Constituyen ejercicios modelo extraídos de finales anteriores, por lo que es importante utilizarlos como guía de estudios. Por último, sugerimos que los alumnos traten de realizar un esfuerzo personal en resolver todos los ejercicios de la guía sin la ayuda de las soluciones propuestas, dado que el facilismo y el “copiarse” no aporta un aprendizaje.

Upload: maxs-lamas

Post on 24-Jul-2015

372 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Guia de Ejercicios 2004 SO Sin Cont

Sistemas Operativos

GUÍA DE EJERCICIOS 2004

Director de Cátedra : Lic. Carlos R. NEETZEL

AGRADECIMIENTO:

La Cátedra de Sistemas Operativos agradece especialmente la colaboración de los alumnos (en especial eltrabajo de recopilación efectuado por Mariano E. Sciuto) y ayudantes de la Universidad TecnológicaNacional ( Fac. Regional Bs. As.) que han propuesto los ejercicios y las soluciones de los capítulos masimportantes del libro “Notas Sobre Sistemas Operativos”. También mi reconocimiento por la revisiónefectuada por el Ing. Leonardo Catalano.

La presente guía está disponible para todos aquellos alumnos que previamente decidan realizar losejercicios de la Cátedra, puedan comparar sus resultados y así servir de guía de resolución y corrección delos mismos.

Esta guía de ejercicios han sido formulados en colaboración con los ayudantes de la cátedra, comoejercitación práctica adicional a la de la bibliografía de la materia. Constituyen ejercicios modelo extraídosde finales anteriores, por lo que es importante utilizarlos como guía de estudios.

Por último, sugerimos que los alumnos traten de realizar un esfuerzo personal en resolver todos losejercicios de la guía sin la ayuda de las soluciones propuestas, dado que el facilismo y el “copiarse” noaporta un aprendizaje.

Page 2: Guia de Ejercicios 2004 SO Sin Cont

Resumen de Conceptos Básicossobre S.O.

Los conceptos aquí explicados dan los conocimientos, términos y fórmulas necesarios para poderresolver los ejercicios que siguen a continuación. Estos son pequeños puntos teóricos que facilitan laresolución de los problemas; desde ya que se recomienda completar esta teoría con la de algunabibliografía.

I. PlanificaciónComenzando por este tema, podemos decir que en un sistema encontramos básicamente 4 tipos de

planificación: Una planificación a largo plazo (la cual se encarga de determinar y organizar los nuevosprogramas 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 planificación a corto plazo (elfamoso “dispatcher”, quien determina cual es el próximo proceso que va a tomar la CPU), y finalmentela planificación de E/S.

Para los ejercicio de planificación propiamente dicho, nos centraremos básicamente en laplanificación a corto plazo, la cual se basa en una serie de algoritmos, los cuales vamos a repasar enesta pequeña introducción para tenerlos en claro; pero antes, una pequeña aclaración acerca de lostérminos a utilizar:

* Non – preemtive = Apropiativo* Preemtive = No – Apropiativo* CPU Burts = Utilización del procesador entre dos E/S. Obviamente, cuando un procesocomienza, el tiempo utilizado hasta la primera E/S también 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 unalgoritmo apropiativo, es decir, a medida que llegan los procesos van usando la CPU y cuandohacen uso de ésta, no la abandonan hasta que se bloqueen por E/S o finalicen.

• Round Robin: El Round Robin viene siempre acompañado por un slice de tiempo, es decir, untiempo determinado que tienen los procesos para ejecutar; finalizado ese tiempo el procesoabandona la CPU. Debido a esta característica, el algoritmo es no apropiativo. Obviamente que elproceso puede abandonar antes la CPU en caso de que finalice o se bloquee por una E/S; casocontrario (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 unacola de listo, tiene dos; una cola “clásica” para los procesos listos y una nueva cola de listos al quevan a parar los procesos cuando finalizan su E/S. Esta segunda cola tiene mayor prioridad que laprimera.El objetivo de este algoritmo es realizar un uso mas equitativo de la CPU cuando existen procesosque tienen mas burst de CPU que de E/S, y así mismo hay procesos que tienen mas burst de E/Sque de procesador.

• Shortest Process Next (SPN): Es un algoritmo apropiativo. Cuando los procesos llegan a la colade listos, éstos se ordenan según quien tiene el menor burst de CPU. El que queda a la cabeza, esquien pasa a usar la CPU.

• Shortest Remainig Time (SRT): Es muy similar al anterior, pero este sí es un algoritmo noapropiativo. En la cola se siguen ordenando según quien tenga el menor burst de CPU, pero si seda el caso de que en un momento hay un proceso ejecutando y llega uno nuevo, se determina si elproceso que está usando la CPU actualmente le falta menos del uso que va a hacer el nuevoproceso; si es menor, sigue ejecutando, si le queda más, el proceso es desalojado del procesador yllevado nuevamente a la cola de listos.

• Prioridades: Pude tomarse como apropiativo o no apropiativo, salvo que lo expresenespecíficamente. Cada proceso tiene una prioridad y se orden en la cola de mayor a menorprioridad y pasan a usar la CPU en ese orden. En el caso de ser apropiativo, el proceso que pasa aser uso del procesador queda ahí hasta que se bloquee o finalice. En caso de ser no apropiativo, sillega un proceso con mayor prioridad, desaloja al que actualmente está haciendo uso delprocesador, y este nuevo proceso toma la CPU.

Page 3: Guia de Ejercicios 2004 SO Sin Cont

• Feedback: Es como el algoritmo de prioridades, pero se tiene una cola por cada una de lasprioridades. Cada cola puede manejarse por un algoritmo Round Robin, teniendo un slice detiempo para cada cola que aumenta a medida que disminuye la prioridad, es decir, la cola de mayorprioridad 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 seles da mas tiempo para que finalicen.

II. Sincronización / Semáforos / Alg. Del Banquero

SEMAFOROS

Recordemos que un semáforo es un mecanismo proveído por un lenguaje de programación; estossemáforos no son ni mas ni menos que variables por las cuales los procesos se envían señales.

Los semáforos se manejan mediante tres operaciones básicas:- Una para inicializarlo- Una para decrementarlo- Una para incrementarloEstas tres operaciones son primitivas, atómicas; es decir, no pueden ser interrumpidas. Para

decrementar un semáforo podemos encontrar la primitiva: P() o Down() y para incrementarlo, la primitivaV()o Up(). Si bien realizan lo mismo, su construcción no es la misma, por lo tanto se deben utilizar en esacombinación; 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 ydecrementando los semáforos. Cuando un proceso decrementa el valor del semáforo y está queda en unvalor negativo (<0), significa que los recursos controlados por dicho semáforos estaban siendo utilizados ypor lo tanto el proceso debe esperar a que alguno se desocupe, para lo cual se bloquea y queda a la esperade tener disponibilidad. Cuando un proceso incrementa el valor del semáforo y ahora éste queda en un valorpositivo 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 ejecución.

Vale aclarar dos cosas: por un lado, cuando un proceso sale de la cola de espera a hacer uso delrecurso no vuelve a decrementar el semáforo sino que pasa directamente a la utilización del mismo. Ladisminución del valor del semáforo ya la realizó cuando intentó acceder al recurso y quedó bloqueado; en lacola sólo estaba a la espera de que se libere dicho recurso. Por otro lado, podemos ver que cuando elsemáforo tiene un valor negativo, el módulo del mismo nos indica la cantidad de procesos encolados (a laespera de la utilización del recurso). Teniendo en mente esto, podemos completar la idea anterior: Si haydos procesos encolados el valor del semáforo será = -2, cuando el recurso se libera el valor del semáforopasará a ser = -1 , lo cual es correcto ya que el proceso a la cabeza de la cola hará uso del recurso y ahoraquedará un proceso esperando.

De esta forma, podemos ver como las dos ideas se complementan: cuando el recurso se libera elvalor del semáforo pasa a ser =-1 y el proceso que estaba esperando a la cabeza de la cola puede utilizarlopero no vuelve a decrementar el semáforo; si lo hiciera, el semáforo pasaría a valer nuevamente = -2 lo cualno 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 inseguroanalizando las peticiones que van a realizar los procesos; por lo que se requiere conocer de antemano lassolicitudes de recursos de cada uno de ellos.

Vamos a decir que un sistema queda en un estado seguro si existe una traza de ejecución en lacual todos los procesos finalizan, es decir, se tiene los recursos disponibles para poder satisfacer lassolicitudes. Aunque suene más que lógico, un estado que no es seguro, entonces es inseguro; lo quesignifica que si no puedo realizar una traza en el que todos los procesos finalicen, el estado del sistema esinseguro.

Otra cosa a tener en cuenta es que un estado inseguro no asegura que los procesos están endeadlock. El estado inseguro alerta que si la secuencia se ejecuta de una manera determinada, losprocesos pueden llegar a quedar interbloqueados, pero no significa que sí o sí va a suceder. Poniéndolo enclaro: un estado inseguro no afirma que los procesos van a desembocar en un deadlock; puede sucederque en el momento de ejecución un proceso sea abortado y libere sus recursos, por lo que quedarándisponibles y tal vez se pueda satisfacer las peticiones del resto de los procesos.

SINCRONIZACION

Page 4: Guia de Ejercicios 2004 SO Sin Cont

En cuanto a la sincronización, básicamente el objetivo que se persigue es poder asegurar laexclusión mutua; es decir, que solo un proceso pueda entrar en su sección crítica (la cual hace uso de algúnrecurso crítico). Entiéndase por recurso crítico 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, básicamente es como organizamos el espacio disponible en ésta:si utilizamos particiones fijas, particiones variables, buddy-system, paginación o segmentación.

Cuando utilizamos particiones variables, al introducir y remover bloques comienza a producirsefragmentación externa. Para poder hacer un uso mas eficiente de los espacios de memoria que comienzana quedar libres, se utilizan diferentes algoritmos, los cuales repasamos aquí rápidamente:

• First Fit: Comienza a buscar en la memoria un bloque libre en el que quepa la partición. Cuando loencuentra, lo introduce ahí.

• Best Fit: Busca en toda la memoria, pero no se conforma con el primero que encuentra, sino quebusca el que mejor le calce; es decir, el que menos espacio desperdicie.

• Worst Fit: Es prácticamente el contrario al anterior. Busca, por decirlo de alguna forma, el bloquelibre más 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 búsqueda de espacios libres la realiza apartir de la ubicación del último bloque; a partir de ahí, el primer lugar que encuentra para ubicar elbloque lo ubica.

Si utilizamos el algoritmo de buddy-system (o sistema de compañeros), lo que realiza es losiguiente: va dividiendo a la memoria en mitades, y cada mitad la sigue dividiendo en mitades, así hastallegar a una mitad cuyo tamaño no alcanza para ubicar el bloque, en ese caso, vuelve a la divisiónanterior (une los pedazos que partió en el paso anterior) para ubicar el bloque. Cuando un bloque selibera, si la otra mitad contigua también está libre, entonces une ambas mitades para poder formar unbloque libre mas grande; es decir, comienza a agrupar las divisiones libres.

En la técnica de paginación, el proceso se dividen en páginas y la memoria en frames; tanto losframes como las páginas tienen el mismo tamaño y suelen ser potencias de 2. A cada proceso se leadhiere una tabla de páginas donde la entrada de cada una de las páginas contiene el número de frameen el cual están ubicadas.

La técnica de segmentación es similar a la paginación, con la diferencia de que el programa sedivide en segmentos que suelen tener diferentes tamaños. Los procesos tienen también una tabla desegmentos, y cada entrada de segmento dice la dirección base y el tamaño de dicho segmento. Si eldesplazamiento referenciado en la instrucción es mayor al tamaño del segmento, la dirección se tomacomo inválida; caso contrario se suma a la dirección base del segmento y se obtiene la dirección real.

Tanto en la técnica de paginación como en la de segmentación es necesario tener en cuenta el“formato” que adquiere la instrucción. Es decir, supongamos que se utiliza paginación: en este caso, ladirección lógica estará formada por un número de página (bits más a la izquierda) y el restorepresentará al desplazamiento (Offset) dentro de esa página. El número de página será utilizado comoentrada en la tabla de páginas del proceso para así obtener el número de frame, de esta manera ladirección física estará formada por el número de frame y el mismo desplazamiento que antes.Básicamente:

Dirección lógica: #Pag / #OffsetDirección física: #Frame / #OffsetTeniendo en cuenta este concepto podemos deducir que el tamaño de cada página (o el tamaño del

frame en memoria) estará dado por el tamaño del desplazamiento; es decir, si el desplazamiento ocupa8 bits, entonces el tamaño de cada página será de 2^8 = 256 bytes.

MEMORIA VIRTUAL

En memoria virtual se utiliza ya sea la técnica de paginación, de segmentación o una combinaciónentre ambas. En cualquier de los casos, a las tablas de segmentos o de paginación de los procesos seles suele incorporar un bit de presencia y un bit de modificación.

Page 5: Guia de Ejercicios 2004 SO Sin Cont

Cuando se hace referencia a una página (o segmento) que no tiene frame asignado, es decir, lapágina no está cargada en memoria, se produce un PAGE FAULT. Es en este momento cuando lapágina es traída de disco a memoria y el bit de presencia de la entrada a esa página es modificado. Lomismo sucede con el bit de modificación.

Cuando se trae de memoria virtual la página que ha sido referenciada, suele suceder que hay queescoger una víctima a ser reemplazada (en el caso de no tener frames libres), es decir, alguna de laspáginas que actualmente está ocupando un frame debe ser desalojada. Para elegir a esta “víctima” sesuelen tener diferentes algoritmos:• Optimo: En sí es un algoritmo teórico. Se basa en determinar que páginas serán referencias con

menor frecuencia en el futuro, las cuales son candidatas a ser desalojadas ya que no seránutilizadas brevemente y por lo tanto no producirán demasiados PAGE FAULTS. Como se debepredecir de alguna forma el futuro, es un algoritmo que no suele ser aplicado.

• FIFO: Es el básico algoritmo ya conocido. Las páginas van siendo reemplazadas en el orden en quefueron llegado.

• Last Recently Used (LRU): Escoge las páginas que mas tiempo han permanecido en memoria.• Last Frecuently Used (LFU): Escoge las páginas que han tenido menor número de referencias.• Reloj: Suele tener un bit de uso por página. Cuando una página es referenciada, este bit suele

ponerse a 1 (uno). Cuando se debe elegir una página para reemplazar se recorren los bits de todaslas páginas; aquellos que se encuentran en “uno” se ponen a “cero” y aquellos que ya estaban en“cero” indican que la página puede ser extraída.

También hay que tener en cuenta que las políticas de reemplazo se realizan sobre el conjuntoresidente de un proceso, esto es, las páginas que actualmente se ubican en memoria. Este conjuntoresidente puede ser fijo (el número de paginas siempre es el mismo) o variable (puede tener más o menospáginas en memoria). Por otro lado, el alcance del reemplazo puede ser local (se reemplazan las páginasdel proceso que produjo el fallo) o global (se consideran todas las páginas residentes en memoria).Teniendo en cuenta estas alternativas, veamos que posibilidades pueden ser aplicadas:

• Asignación fija, alcance local: Se reemplazan alguna de las páginas del proceso que produjo elfallo.

• Asignación variable, alcance local: Se consideran las páginas del proceso que produjo el fallo,pero se utilizan diferentes criterios (como el PFF) para determinar si le quito un frame al proceso ole sumo uno más (le agrego una página mas en memoria).

• Asignación fija, alcance global: Imposible de implementar. Como hemos visto, si la asignación esfija el número de páginas del proceso no puede cambiar. Si consideramos todas las páginas dememoria, puede pasar que al proceso se le sume o se le quite un frame más, lo cual contradice loanterior.

• Asignación variable, alcance global: Se toman en cuenta todas las páginas residentes enmemoria (no solo las del proceso que produjo el Page Fault) y se reemplaza alguna según elalgoritmo utilizado. El número de frames asignados al proceso puede crecer o puede disminuir.

Vale aclarar también que cuando se hace referencia en el alcance global de “considerar todos losframes en memoria”, estamos tomando en cuenta a todos los frames disponibles (estén utilizados o no)y que no son frames bloqueados. Debe tenerse en cuenta que el sistema operativo (o al menos unaparte de él) siempre reside en memoria y como tal, ocupa frames en la misma; la diferencia está en quereside en frames bloqueados, los cuales no pueden ser considerados para reemplazar o asignarpáginas.

Sobre la paginación de procesos podemos hacer referencia también a un fenómenodenominado“Anomalía de Belady”. Está anomalía se presenta cuando al aumentar la cantidad depáginas por procesos (se le asignan mas frames), también aumenta la cantidad de PAGE FAULT.Obviamente, esta es una situación inesperada ya que al parecer, si se le das mas memoria a unproceso, cada vez que haga alguna referencia hay más probabilidades de encuentre esa referencia enmemoria, sin embargo, esto no sucede y los fallos de páginas se incrementan.

IV. Entrada – Salida / i-NodosLos ejercicios de E/S e I-nodos no son los más complicados, pero tienen una serie de fórmulas y

consideraciones a tener en cuenta que trataré de explicar lo más claramente posible.

ENTRADA-SALIDA

Page 6: Guia de Ejercicios 2004 SO Sin Cont

Con respecto a E/S, o su término en inglés (I/0), lo que usualmente se suele pedir es el tiempo quese 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 acilindro), el tiempo que tarda en pasar de sector a sector y el tiempo de transferencia.

- Tiempo de búsqueda: 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 queel disco gira a 6000 rpm. Entonces, con una regla de tres simple podemos calcular cuanto tardaen dar una vuelta:

6000 vueltas______________1 min1 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 unavuelta (pasar los 10 sectores) por la cantidad de sectores y nos da el tiempo que tarda en pasar desector a sector. En nuestro caso: 10 ms / 10 sect. = 1 ms/sector.

- Tiempo de transferencia: Cuando se informa la capacidad de los sectores, debemos calcularel tiempo que le lleva a la cabeza leer la información del sector; lo que se denomina tiempo detransferencia, 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 cuantoscilindros se recorren de pedido en pedido para poder aplicarle el tiempo de búsqueda y cuantossectores hay que recorrer para atender el pedido. Para poder hacer esto, necesitamos tener lasdirecciones físicas de los pedidos, las cuales suelen venir expresadas como direcciones lógicas.Convertir una dirección lógica a física 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 también tenemos 50 cilindros y 3 platos (loque serían 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 10sectores mas, por lo tanto, en un plato tenemos 20 sectores. Luego, también calculamos:

Sectores x pista = 10 (ya lo sabíamos por dato)

Una vez calculado esto, podemos comenzar a convertir las direcciones lógicas a físicas.Supongamos la dirección lógica 1305. Lo primero que hacemos es dividir la dirección por los sectorespor plato x cant. de platos:

1305 / 60 = Esta división da un cociente (C), del cual se toma la parte entera y un resto(R)

C = representa el cilindro de la direcciónEl resto, dado por “R”, lo divido nuevamente, pero ahora por los sectores por pista:

R / 10 = Esta división da un nuevo cociente (C’), del cual se toma la parte entera y un resto(R’)

C’ = representa la cabeza que lee a la direcciónR’ + 1 = representa el sector

El DOS hace esta conversión: El número de sector lógico se numera a partir del cero. Lossectores BIOS (para distinguirlos de los lógicos) se numeran a partir del 1.

Page 7: Guia de Ejercicios 2004 SO Sin Cont

Volviendo a nuestra dirección 1305, si la dividimos por 60:C= 21R = 45

Dividimos R (=45) por 10:C’ = 4R’ = 5

=> 1305 = (21,4,6) siendo (cilindro,cabeza,sector)

Ahora ya tenemos las direcciones físicas y los tiempos calculados, solamente nos falta ver cuanto setarda en pasar de una dirección a la otra. Para ello vamos a suponer dos dirección lógicas más: 469 y1040 cuyas direcciones físicas son (7,4,10) y (17,2,1) respectivamente. Entonces supongamos que seatienden los pedidos en ese orden:

DIR: 1305 469 1040CIL: 21 7 17

SECTOR: 6 10 1

* 1305 469: Supongamos que la dirección 1305 fue un pedido que se atendió, por lo tanto, cuando lacabeza leyó ese sector quedó al final del sector 6 (comienzo del 7). Para pasar a la dirección 496 debeatravesar 14 cilindros (21-7 = 14), que si lo multiplicamos por 1 ms que tarda de pasar de pista a pista, nosda un total de 14 ms. Ahora bien, durante esos 14 ms, el disco siguió girando, y los sectores siguieronpasando. Si tardé 14 ms y tardo 1 ms en pasar un sector, significa que pasé 14 sectores (es decir, unavuelta y 4 sectores más). Como me encontraba al principio del sector 7, cuando pegó una vuelta (pasó 10sectores) quedó en el mismo lugar, pero como tardé 4 ms más (4 sectores más) me muevo hasta elcomienzo del sector 1. Pero como el pedido de la dirección 469 está en el sector 10, y yo estoy al comienzodel sector 1, debo volver a pegar toda la vuelta (lo que sería el tiempo rotacional de búsqueda 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 dirección 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 análisis 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; comotardo 1 ms en pasar de sector a sector, esos 10 ms me hicieron pegar una vuelta entera (10 sectores) yvolví a quedar nuevamente al comienzo del sector 1. Como el pedido que tengo que atender está en elsector 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 23ms del pedido anterior, el tiempo total para atender todos los pedidos fue de 33 ms.

Este es el análisis que se debe realizar cuando se deben atender pedidos. Por un tema desimplicidad no consideramos aquí el tiempo de transferencia, es decir, si tengo el tamaño en bytes de lossectores, cuando llego al comienzo del sector solicitado, debo atender el pedido. El tiempo que tarda estaatención se calcula con la fórmula que expresé al comienzo de la explicación 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 atención.

Puede existir el caso en que simplemente se tenga como dato el tiempo que se tarda en pasar deuna pista a la otra y se pida el tiempo promedio de atención. En tal caso, se calcula cuantas pistas seatravesaron entre pedido y pedido (como lo calculamos anteriormente, realizando la resta de los cilindros ymultiplicando por el tiempo que se tarda de pista a pista), se suman todos estos tiempos y se divide por lacantidad de pedidos.

Otro punto a tener en cuenta en las solicitudes de E/S es en el orden en que se atienden. Para elloexisten diferentes algoritmos que se detallan a continuación:

• FIFO: Como siempre, tenemos un algoritmo FIFO. Los pedidos se atienden en el orden en quellegan.

Page 8: Guia de Ejercicios 2004 SO Sin Cont

• Shortest Seek Time First: Se atiende al pedido que mas cercano está a la posición actual delbrazo; en otras palabras, el que hace un menor desplazamiento del brazo. Puede producir inaniciónde aquellos pedidos que están en direcciones alejadas.

• Scan: Va “escaneado” las pistas del disco. Es decir, atiende a los pedidos moviéndose en unadirección hasta que llega al límite del disco, cuando no hay mas pistas, comienza a atender lospedidos en la dirección contraria.

• C-scan: Es igual que el anterior, pero no sube y baja sino que siempre atiende los pedidos en unadirección. Cuando llega al final, baja (o sube) abruptamente hasta el extremo contrario y vuelve aatender los pedidos en la misma dirección. El tiempo que le lleva realizar el retroceso se consideradespreciable.

• Look: Es igual que el Scan, pero no llega hasta el final del disco para comenzar a moverse en ladirección contraria sino que cambia de dirección cuando atiende el último pedido en ese sentido.Supongamos que el brazo está ascendiendo, cuando atiende el último pedido en esta dirección,entonces comienza a descender y atender solicitudes en esta nueva dirección 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 últimopedido en una dirección, desciende (o asciende) abruptamente hasta la primera dirección a atenderen el sentido que utiliza. Para dejarlo más claro, supongamos que está atendiendo una solicitud enla dirección 150, y ésta es la última en dirección ascendente, entonces baja abruptamente hasta elpróximo pedido “más bajo” (supongamos que hay un pedido en la dirección 15) y a partir de estepedido comienza a ascender nuevamente.

• N-scan: Es el algoritmo Scan pero no se tiene una única cola para encolar los pedidos, sino que setienen N colas. Cuando se están atendiendo los pedidos de una cola, los nuevos que lleguen NOpueden ingresar a la cola en uso, se deben encolar en alguna de las otras colas. Cuando seatendieron todos los pedidos de una lista, se pasa a atender los pedidos de otra con el mismocriterio (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 sonlos 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 típicos archivos de los usuarios, para almacenar información o para realizar otra

función, pero básicamente no tienen propiedades particulares.• Directorios: Son también un tipo de archivo pero que son propiedad del SO y que poseen derechos

e información adicional para poder ser reconocidos como tales y poder manejar los archivoscontenidos en ellos.

• De enlace: Son los que permiten hacer vinculaciones dentro del sistema de archivos. Existen dostipos de archivos de enlace:

o Enlace duro: No permite hacer vínculos entre distintos filesystem; solo permite en archivosdentro de una misma partición.

o Enlace blando: Permite hacer enlaces entre distintos filesystem ya que los archivos sonreferencias al archivo original. Pueden existir estos tipos de archivos incluso si no existe elarchivo original.

• Pipes: Son archivos que permiten la comunicación entre procesos. Existen también dos tipos deestos 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 decontrol que tienen la información 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-nodosolo controla un archivo y un archivo es siempre controlado por un solo i-nodo. Basándonos en esto,podemos ver que el tamaño máximo de un archivo estará determinado por la capacidad dedireccionamiento que tenga el i-nodo. En cambio, el tamaño máximo de la partición del filesystem estarárelacionada con la capacidad máxima que yo tenga de almacenamiento.

Los i-nodos son estructuras que se basan en punteros, estos pueden ser: Directo (apuntandirectamente al bloque de datos), Indirecto (apunta a un bloque, el cual tiene punteros que apuntan

Page 9: Guia de Ejercicios 2004 SO Sin Cont

directamente a los datos), Doblemente indirecto (apunta a un bloque, el cual tiene punteros y cada unode ellos apunta a nuevo bloque basado también en punteros que apuntan a los bloques de datos) yTriplemente indirecto (igual que el doblemente indirecto, solamente que se agrega un nivel más debloques).

Para calcular la capacidad de direccionamiento del i-nodo, nos bastaría con saber cuánto puedendireccionar los punteros directos, cuánto los indirectos, cuánto los doble y triplemente indirectos, ysumando todo, obtendríamos el tamaño máximo del archivo. Para calcular está capacidad dedireccionamiento por cada tipo de puntero contamos con una fórmula (cuya explicación queda pararazonar), 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 tamaño del filesystem, solo tenemos que calcular la capacidad de almacenamiento queposeemos en nuestros discos. Los discos pueden adoptar diferentes organizaciones, la cuales sedenominan RAID y se dividen en 6 niveles:

• NIVEL 0: Un disco lógico y n discos físicos. Las n primeras stripes del disco lógico representarán lasprimeras stripes de cada uno de los discos físicos.

• NIVEL 1: Utiliza la técnica de espejo, es decir, duplica la información. Por lo tanto, siempre habrá unnúmero par de discos, lo cual no significa que todos ellos estén disponibles. Solamente se podráutilizar la mitad de la cantidad total de discos ya que la otra mitad contendrá la misma informaciónduplicada.

• NIVEL 2: Utiliza un código de detección y corrección de errores (el código de Hamming)• NIVEL 3: Cambia el código 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 discode paridad.

• NIVEL 5: Es idéntico que el nivel 4, pero en vez de tener todas las strips de paridad agrupadas enun 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 lamisma:

• Secreto o privacidad: La información debe ser confidencial para las personas que no seanautorizadas

• Integridad: Las “posesiones” del sistema no pueden ser modificadas por personas que no esténautorizadas

• Disponibilidad: Los elementos del sistemas deben estar disponibles para toda persona autorizada aluso de los mismos

• Autenticidad: Debe asegurarse la autenticidad de las personas que ingresan al sistema; un ejemploclásico es mediante las passwords.

Por supuesto que estos requerimientos son atacados constantemente por diferentes amenazas, dichasamenazas afectarán tanto a uno como a varios de estos aspectos según la función que adopte estaamenaza. Para verlo mas claro, podemos decir que tenemos 4 tipos de amenazas en un sentido general:

• Interceptación: Afecta sobre todo al secreto. Un flujo de información es interceptado por un ente queno está autorizado.

• Modificación: Factor clave que afecta a la integridad del sistema. Los datos, o incluso el hardwarees modificado para acceder a la información.

Page 10: Guia de Ejercicios 2004 SO Sin Cont

• Interrupción: Ataca a la disponibilidad. La información no llega a destino ya que se interrumpe en elcamino.

• Fabricación: Un ente no autorizado crea o inventa información que la hace pasar como si fueseauténtica; obviamente afecta a la autenticidad.

Hasta ahora pareciera ser que solo la información 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 líneas de comunicaciones y las redes son usualmente afectadaspor diferentes tipos de amenazas. El hardware se ve amenazado principalmente desde el aspecto de ladisponibilidad, el software suele correr el riesgo de ser borrado, modificado (integridad) y también peligra suuso no autorizado (secreto). En cuanto a las líneas de comunicación y las redes podemos hacer unadiferencia entre lo que son las amenazas activas y las amenazas pasivas. Las primeras, las amenazasactivas, suelen atentar contra la disponibilidad y la integridad; ejemplos clásicos son la modificación ocreación de mensajes. En cuanto a la segunda clase de amenazas, las pasivas, son aquellas que suelenatentar contra el secreto; son del tipo de escuchas, es decir, no modifican información pero es accedida porpersonas no autorizadas.

Ahora bien, como el sistema operativo debe ocuparse de mantener la seguridad en el sistema, debeadoptar alguna técnica para cumplir con los requisitos que ésta plantea. Dentro de todas las posibilidadesque hay, aquí veremos una de las mas utilizadas que es la de la matriz de acceso. Para ello, debemosdefinir tres términos:

- 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 porcolumna y los dominios por cada fila; en las intersecciones se ubican los derechos que tiene dicho dominiopara tal objeto. De esta forma queda organizada una matriz de acceso, pero también debemos tener encuenta los términos que hacen referencia a lo que se denomina “lista de control de acceso” y “lista decapacidades”. Estas no son ni mas ni menos que distintos puntos de vista de ver a la matriz: si armamosuna lista por cada dominio (tomamos cada una de las filas por separado) obtendremos una lista decapacidades. Por otro lado, si armamos una lista por cada objeto (tomamos ahora cada una de lascolumnas 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 decontraseñas o claves. En cuanto a las contraseñas, podemos comenzar mencionando que existendiferentes estrategias de selección de las mismas:

• Educación al usuario: Darle reglas al usuario para la elección de passwords. Explicarle laimportancia de seleccionar contraseñas que mezcle diferentes caracteres (blancos, números, etc.),que no sean contraseñas relacionadas con direcciones o nombres conocidos, que no seanexcesivamente cortas, evitar palabras de diccionarios, y así diferentes consideraciones.

• Generadas por computadora: Son difíciles de adivinar, lo cual es ventajoso, pero también sondifíciles de recordar, lo cual tienta al usuario a anotarlas, cosa sumamente indeseable.

• Detector Reactivo: Periódicamente el sistema ejecuta un programa para adivinar passwords ydetecta si posee contraseñas vulnerables, es decir, fáciles de adivinar.

• Detector Proactivo: En el momento que el usuario elige su password, el sistema controla que secumpla con las reglas establecidas; caso contrario, rechaza la contraseña.

Por supuesto que las contraseñas deben estar guardadas en algún sitio para que cuando un usuariodesee ingresar al sistema se pueda controlar la password ingresada con la ya almacenada. Para evitar unuso indeseado de este archivo que contiene contraseñas, se pueden tomar dos medidas: una es la decontrolar que personas tienen acceso a dicho archivo, y por otro lado tenemos la técnica de encriptación.Encriptar una clave no es ni mas ni menos que modificarla mediante un algoritmo de tal manera que nopueda ser visible su contenido.

Uno de estos algoritmos de encriptación es el DES (Data Encryption Estándar). Esta función tiene dosinputs: un texto a encriptar de 64 bits y la clave de 56 bits. Los bloques mayores de texto se encriptan enbloques de 64 bits. El DES procesa el texto a través de 16 iteraciones, produciendo un valor intermedio de64 bits al final de cada iteración. Cada una de estas iteraciones es la misma función compleja que involucrauna permutación de los bits y sustituye un patrón de bit por otro. El input de cada paso es la salida del pasoanterior más una permutación en los bits clave, y esta permutación se conoce como subclave. En el casoespecífico de las claves en UNIX, cada usuario elige una clave de hasta 8 caracteres. Esta clave esconvertida a un valor de 56 bits que sirve de input a una rutina de encriptación, la cual es una modificación

Page 11: Guia de Ejercicios 2004 SO Sin Cont

del algoritmo DES. Esta modificación se basa en tomar un valor de 12 bits llamado SALT. Este valor guardarelación 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 permutación en los bits, estaidea nos da pie a clasificar dos tipos de encriptación de claves:

- Encriptado convencional o simétrico: Su algoritmo se basa en operaciones simples sobrepatrones de bits. Por otro lado, en este tipo de cifrado, se utiliza la misma clave para cifrar comopara descifrar el mensaje. Como hemos visto, el DES es un ejemplo de este tipo de algoritmo.

- Encriptado de clave pública o asimétrico: Su algoritmo se basa en operaciones matemáticasy no en operaciones sobre los bits. Como diferencia podemos decir también que este algoritmoutilizar una clave para cifrar los mensajes y otra para descifrarlos.

Finalmente vamos a decir también que la encriptación por clave pública soluciona la distribución de laclave; en el caso del encriptado simétrico es necesario la transmisión de la clave ya que con ésta se cifra ydescifra el mensaje. El sentido de utilizar una clave privada y una clave pública en los cifrados asimétricoses que permite la autenticación de un mensaje; es decir, la clave privada lo que hace es “firmar” el mensaje.Cuando éste se recibe, utilizando la clave pública del remitente es posible asegurar la procedencia delmensaje.

Page 12: Guia de Ejercicios 2004 SO Sin Cont

1. P l a n i f i c a c i ó n1. Un sistema computacional de un solo procesador planifica el procesamiento de trabajos según elsiguiente modelo:

La planificaciónusando una polpolítica Round

ProcesP1P2P3P4P5P6

Para la rescorto plazode quantumSuponiendodispositivo

2. SupongShortest Rela primera cde ejecució

Pr

Cola largo plazo

de largo plazo se encarga ítica SJF (Shortest Job FirsRobin con un quantum de 2

o T. Llegada0024

1015

olución del ejercicio, si exist, ordénelos arbitrariamente . que el overhead para el ca

de E/S (planificado por FIFO

a un planificador que utilizamaining Time (SRT), y la sola tiene mayor prioridad y n de los procesos con el sig

oceso Tiempo LlegP1 0P2 3P3 5P4 7P5 7

Cola corto plazo

de mantener el grado de multiprogramación t). En el corto plazo el procesador es asignad unidades de tiempo

CPU E/S CPU5 3 32 4 33 4 26 2 22 3 23 4 4

e coincidencia de tiempos en los eventos deen el siguiente orden: 1) Fin de E/S 2) Cola d

mbio de contexto es despreciable y que exi) se pide la traza de ejecución de los proces

dos colas con distintos algoritmos de planifiegunda, Round Robin (RR) con un quantumque existe un único dispositivo de E/S, se piuiente esquema de estados:

ada CPU I/O6 22 44 31 24 1

CPU

E / S

Cola E/S

Fin de quantum

en tres procesos,o usando una

Tiempo Est.12108

117

12

entrada a la cola dee largo plazo 3) fin

ste un únicoos.

cación: la primera, de 3. Sabiendo quede realizar la traza

CPU22321

Page 13: Guia de Ejercicios 2004 SO Sin Cont

3. SuponFirst), y dque al SOcon los s

ProceP1P2P3P4P5

4. Un sisno apropalgoritmodispositivdatos de

ProP1 P2 P3 P4

New

ga un sistema que posee un procesador, el cual posee uos dispositivos que planifican según FIFO; uno es una im le lleva un ciclo de CPU realizar el cambio de proceso,

iguientes datos:

so T. Llegada CPU E/S C0 5 Imp: 20 4 Disco: 33 2 Disco: 55 7 Imp: 19 1 Disco: 3

tema de multiprocesamiento posee dos CPU, la primeraiativo (Round Robin con quantum=3), mientras que la se basado en prioridades preemtive; a menor número mayoos de E/S que planifican FIFO, una impresora y un escánlos procesos, se pide la traza de ejecución:

ceso T. llegada CPUPri: 2 0 (CPU1) 10Pri: 3 0 (CPU2) 5Pri: 5 1 (CPU2) 3Pri: 1 3 (CPU2) 1

T

CPU1

CPU2

t

RR q=3

Prioridades

Run

na planificación SJF (Shortest Jpresora y otro un disco. Suponi

se pide realizar la traza de los m

PU E/S CP2 Disco: 5 33 Disco: 2 14 Imp: 7 21 Imp: 2 35 Imp: 1 2

de ellas planifica según un algogunda CPU planifica según unr prioridad. Además se tienen der. Según el siguiente esquema

E/S CPUScanner: 5 4

Imp: 1 3Scanner: 6 3

Imp: 2 8

d

End

Blocke

SR

RR

obendoismo

U

ritmo

os y los

New

Exi

Imp

Sca

Page 14: Guia de Ejercicios 2004 SO Sin Cont

5. Un sistema operativo planifica según un algoritmo de RR=4. Además se tiene un disco que encolalos pedidos según un algoritmo FIFO. Se pide la traza de ejecución de los procesos teniendo en cuentael siguiente cuadro:

(KLT = Hilo a nivel Kernel - ULT =Hilo a nivel Usuario)

Proceso Llegada CPU I/O CPU I/O CPUKLT 3 3 5 2 1P1ULT

05 2 7

KLT 6 1 2 3 1P2KLT

25 4 1

ULT 2 2 5P3ULT

47 5 3 1 3

6. Suponga un sistema distribuido, en el que se cuenta con dos máquinas:Máquina A Máquina BAlgoritmo SRT Algoritmo FCFSDisco rígido 1.8 Gb Impresora láser Blanco y Negro

Solo se migran los procesos por falta de recursos, y eso consume un ciclo reloj. Dibuje la traza delos procesos, teniendo en cuenta que ambas máquinas están perfectamente sincronizadas.

Proceso Máquina Ciclo Inicio Recurso Ciclos duraciónCPU 3Disco 1P1 A 0CPU 2CPU 1Disco 2P2 B 0CPU 4CPU 1

Impresora 2P3 A 1CPU 1CPU 2Disco 2

Impresora 2P4 A 2

CPU 3CPU 1

DISCO 2Impresora 3

P5 B 2

CPU 1

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

Proceso Llegada CPU I/O CPU I/O CPU I/O CPUA 0 1 2 1 2 1 4 2B 1 1 1 5 1 7 - -C 2 2 1 2 3 2 - -D 4 4 3 3 - - - -

Sabiendo que hay una sola cola de bloqueados, se pide realizar la traza de ejecución según:a. FIFOb. RR (q=1)

Page 15: Guia de Ejercicios 2004 SO Sin Cont

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

** Considerar que a menor número, mayor prioridad

8. Suponga un sistema con el siguiente diagrama, en el cual existen dos procesadores, cada uno delos cuales tienes su propia cola de listos, la primera planifica según el algoritmo no- apropiativo RoundRobin (q=3) y la segunda mediante un algoritmo apropiativo; el Shortest Process Next.

Además existen 3 dispositivos de E/S: una impresora, un disco y un scanner; cada uno con supropia cola planificando mediante FIFO.Teniendo en que para ambos procesador se consume un ciclo de CPU cuando se debe realizar uncambio de proceso; se pide realizar el diagrama de Gantt.

Proceso T. Llegada CPU E/S CPU E/S CPUP1 0 (Proc: 1) 4 Imp: 3 3 Sca: 2 3P2 0 (Proc: 2) 8 Sca: 1 6 Disco: 5 1P3 1 (Proc: 1) 2 Sca: 2 1 Sca: 1 4P4 2 (Proc: 1) 7 Disco: 3 2 Disco: 3 5P5 3 (Proc: 2) 3 Disco: 5 5 Imp: 7 2P6 5 (Proc: 2) 1 Imp: 2 4 Imp: 3 2

(En caso de superposición de tiempos, dardispositivos)

9. Suponga un sistema operativo que realiza una pquantum es igual a 2 (q=2). Se tiene además una imFIFO. Sabiendo que se consume un ciclo de prasignar un nuevo proceso al CPU, se pide la traza d

CPU1

t

RR q=3

SJF

Exi

prioridad a los procesos que

lanificación no-apropiativa con unpresora que ordena sus pedidos

ocesador cada vez que el sistee los mismos.

CPU2

Imp

Sca

Disk

vuelven de los

Round Robin cuyo según un algoritmoma operativo debe

Page 16: Guia de Ejercicios 2004 SO Sin Cont

Proceso Llegada CPU E/S CPU E/S CPUULT 1 6 2 5 2ULT 1 2 3 - -

P1

KLT

0

3 2 1 - -ULT 3 3 3 1 3P2ULT

52 1 4 - -

10. Se cuenta con dos maquinas que poseen la siguientes características:

Máquina A Máquina BPlanificación SRT SPN

Recursos Disco rígido de 20 Gb ImpresoraScanner

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 Máquina Ciclo Inicio Recurso DuraciónCPU 7Disco 5CPU 3

Scanner 4P1 A 0

CPU 1CPU 2Disco 3P2 B 1CPU 5CPU 3

Impresora 5P3 A 2CPU 2CPU 3

Scanner 2CPU 1

Impresora 3P4 B 4

CPU 3

Page 17: Guia de Ejercicios 2004 SO Sin Cont

2. Semáforos /Algoritmo del Banquero /

Sincronización

1. Realizar la siguiente traza de ejecución, sabiendo que los semáforos están inicializados de la siguientemanera: A=B=1 y C=0. Determinar que procesos quedan bloqueados y en que semáforos:

P1 P2 P3 P4V(A) P(A) P(B) V(A)P(B) V(C) P(C) V(B)P(B) P(A) V(B) P(C)V(B) P(B) V(A) P(A)V(C) P(A) P(C) P(C)V(A) V(A) P(A) V(C)

2. Realizar la siguiente secuencia de ejecución y determinar que procesos finalizan y cuales no. En el casode aquellos que no finalicen, indicar en que semáforos quedaron bloqueados. Los semáforos estáninicializados de la siguiente forma:

A=D=E=1B=C=F=0

P1 P2 P3 P4 P5P(A) V(E) P(A) V(F) V(D)P(C) P(D) V(B) P(E) V(B)V(A) P(B) P(F) V(A) P(A)P(E) V(E) V(F) P(B) P(F)P(F) V(F) P(E) P(A) V(C)

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

P1 P2 P3 P4 P5Down(S) Down(E) Down(R) Down(R) Down(U)Down(C) Down(H) Down(O) Up(R) Up(S)

Up(R) Up(U) Up(R) Down(H) Down(J)Down(T) Down(J) Up(J) Down(J)

Up(J) Up(T) Down(C) Down(T)Down(E) Down(O) Up(O) Down(O)

Up(E) Up(O) Down(R) Up(J)Up(C) Down(T) Up(R) Up(T)Up(T) Up(H) Up(R) Up(O)

Down(H) Up(E) Up(C)

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

Page 18: Guia de Ejercicios 2004 SO Sin Cont

Máx. Pedido de recursos Recursos AsignadosA B C D A B C D

P0 0 0 1 2 0 0 1 2P1 2 7 5 0 2 0 0 0P2 6 6 5 6 0 0 3 4P3 4 3 5 6 2 3 5 4P4 0 6 5 2 0 3 3 2

a) ¿Es un estado seguro?b) Suponga que P2 luego de terminar su ejecución realiza el siguiente pedido (0,3,0,0). En que

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)

Máx. Pedido de recursos Recursos AsignadosR1 R2 R3 R4 R1 R2 R3 R4

P0 5 0 2 4 2 0 0 2P1 2 3 5 0 1 3 5 0P2 4 3 5 6 3 2 2 2P3 0 8 0 3 0 0 0 2P4 1 3 2 4 0 0 2 4P5 4 5 5 7 2 1 3 0P6 1 2 0 6 1 1 0 5

6. Un hotel está compuesto por la siguiente infraestructura: 5 habitaciones de suite (S), 30 habitacionesmatrimoniales con vista panorámica (MVP), 50 habitaciones matrimoniales comunes (MC), 20 habitacionesbase doble con vista panorámica (BDVP), 45 habitaciones base doble comunes (BDC) , y 20 habitacionesbase triple (BT).La agencia de turismo “A” le confirma al administrador del hotel que a partir del domingo 13/7, todos losdomingos hasta el 3/8 se renovará un tour que requerirá 10 MVP, 20 MC, 10 BDVP, 30 BDC. La segundaagencia “B” le confirma un tour que arribará al hotel el martes 15/7, que se renovará por única vez el 29/7 ycuyos requerimientos son 3 S, 15 MVP, 20 MC, 10 BDVP, 10 BDC y 15 BT. Finalmente, la agencia “C” leconfirma un tour que se hará todos los viernes a partir del 11/7 y que tendrá una duración de 4 días (hastael 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 situación segurao insegura? ¿Por qué?

7. Dados los siguiente procesos que se ejecutan concurrentemente, y que la función de incremento en C sedescompone de tres instrucciones máquina: 1) cargar el valor de la variable X en el acumulador; 2)incrementar el acumulador; 3) almacenar el valor del acumulador en la posición de memoriacorrespondiente. Determinar si existe la posibilidad de que ninguno de los procesos imprima por pantalla, yen caso de que lo hagan, determinar que imprimen cada uno. (Tener en cuenta que no hay errores en elcódigo)

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

Page 19: Guia de Ejercicios 2004 SO Sin Cont

PROGRAMA A PROGRAMA BMain() {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; }}

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 operativopreemptive y comparten los contadores generales de los semáforos A y B y la variable CONT; inicializadosde 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 PROCESO 2Repeat Wait(A); Writeln(“hago”); If(CONT>0) then writeln(“hola”); Wait(B); CONT:=CONT+1; Signal(A); Siignal(B);Forever

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, sepide saber si el algoritmo a continuación desarrollado cumple con los requisitos para solucionar el problemade la sección crítica, y en caso de que no, indique como lo modificaría.

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 beginindicador[i]:=falsewhile turno=j do nothing;

indicador[i]:=verdadero; end;

...sección crítica;...turno:=j;indicador[i]:=falso;...sección restante;

until falso;

Page 20: Guia de Ejercicios 2004 SO Sin Cont

10. Debido al gran tránsito que se produce sobre la avenida Juan B. Justo, debajo de la intersección con laGeneral Paz cuando los autos intentan ingresar a capital o ingresar a provincia, el gobierno de la ciudad deBs. As. Ha decidido implementar un semáforo en los dos extremos de la avenida (uno del lado de capital yotro del lado de provincia) para que únicamente pasen los autos en un solo sentido. Cuando el semáforo seencuentra en verde en cualquiera de las dos entradas significa que los autos pueden circular; si seencuentra en rojo, ninguno puede hacerlo.Se realizó un estudio y se determinó que solo pueden circular los autos en un solo sentido (es decir, opasan todos los de provincia para capital o pasan todos los de capital para provincia en un momento dado),y además que la capacidad máxima de autos que puede circular por la avenida Juan B. Justo por debajo dela Gral. Paz es de 20 autos.Viendo este problema, se pide que lo solucione implementando un pseudo-código, utilizando semáforos,para prevenir accidentes y realizar una circulación equitativa del tránsito.Tenga en cuenta que deberá realizar dos pseudo-códigos, uno para los autos que provengan de capital yotro para los de provincia, y que el semáforo 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 Virtual1. Considere un sistema de intercambio (Swapping) en el que la memoria consta de los siguientes tamañosde espacios en orden de memoria: 10k, 4k, 20k, 18k, 7k, 9k, 12k y 15k. Cual es el espacio que se elige si sesolicitan en forma sucesiva segmentos de:

a) 12kb) 10kc) 9k

con el método first fit, best fit, worst fit y next fit.

2. Un bloque de 128 kb utiliza el algoritmo de asignación de memoria BUDDY SYSTEM. Después de untiempo, el bloque queda de la siguiente manera, donde los bloques de memoria identificados con X estánasignados. Luego los bloques se liberan de la siguiente manera:

* Dirección: 64 k Tamaño: 8 k* Dirección: 0 k Tamaño: 24 k* Dirección 96 k Tamaño: 16 k

MEM X X X X X X X X X XDIR 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120

3. Supongamos un sistema que usa paginación basado en 64 entradas en la tabla de pagina y 10 bits dedesplazamiento (Offset) como direccionamiento lógico. El programa genera la dirección 05DE (hexa). Elprograma fue cargado en los siguientes Frame: page 0 = frame 5, page 1 = frame 6, y así sucesivamente.Se pide:

a) Representar la dirección lógica.b) Calcular la dirección física.c) Indicar la longitud máxima del Programa.

4. Asumir que una tarea esta dividida en 4 segmentos de igual tamaño. El sistema construye una tabla depáginas con 8 entradas para cada segmento (paginación con segmentación). Cada página es de 2 kb

a) Tamaño máximo de cada segmentob) Espacio dirección lógico máximo

Page 21: Guia de Ejercicios 2004 SO Sin Cont

5. El proceso A tiene asignados 4 frames de memoria y comenzó a ejecutar en t=0. En el momento t=10 losframes se encuentran de la siguiente forma:

Si se utiliza LRU como política de reemplazo, y sabiendo que los pedidos restantesse realizaron en el siguiente orden: 4-5-2-1-4-6-4-1-2.Indicar la cantidad de Page Faults que ocurrieron, señalando los mismos al igual queel estado final de memoria.

6. Dada la siguiente cadena de referencias { 1 , 3 , 2 , 5 , 1 , 3 , 4 , 1 , 3 , 2 , 5 , 4 } y suponiendo queexisten 3 frames asignados, los cuales estás actualmente vacíos, determine los fallos de páginas que seproducen aplicando las siguientes políticas de reemplazo:

a) LRUb) FIFOc) Optimo

7. Considere el siguiente esquema de paginación – segmentación:

Tabla de segmentosNúmero de segmento Tabla de páginas

0 21 02 1

Tabla página 0 Tabla página 1 Tabal página 2Página Frame Presente Página Frame Presente Página Frame Presente

0 10 S 0 1 N 0 33 S1 17 N 1 22 N 1 43 S2 89 S 2 73 S 2 54 N3 90 S 3 74 S 3 6 S4 29 S 4 85 S 4 6 N5 47 N 5 29 S 5 7 S6 55 S 6 63 S 6 21 S7 32 S 7 93 S8 39 S 8 85 S9 9 S 9 15 S

10 27 S11 34 S

Asumir también que el tamaño de la página 1000 utilizando direcciones en base 10; así la primera página dememoria cubre desde la dirección 0 (cero) hasta la dirección 999. El número máximo de entradas a tabla depáginas es de 100 (0 a 99). Si la página es inválida (Presente = N), asuma que el fallo de página causa queel Sistema Operativo cargue la página que causó el fallo en el número de marco de página dato. Porejemplo: un acceso a la página virtual 2 en la tabla causa un fallo de página donde el sistema carga lapágina virtual 2 en el marco 54.Se pide responder:

a) ¿Cuántos dígitos enteros se necesitan para el número de segmento, número de página y offset?b) ¿A qué dirección física acceden las siguientes direcciones virtuales? (Asumir que los dígitos

faltantes son ceros a la izquierda).• 21333• 5345• 1810627

Frame Ref en t2 95 41 63 8

Page 22: Guia de Ejercicios 2004 SO Sin Cont

• 104806• 200097• 1501053• 210270

8. Considere una máquina con direcciones de 16 bits, con 10 bits de offset y un proceso P1 cuyasreferencias a memoria son las siguientes (en decimal): 535 – 3451 – 7548 – 487 – 2087 – 147 – 9843 – 521– 65537 – 8544 – 1024 – 65530EL proceso P1 tiene asignado 3 frames de memoria (0,1,2) los cuales se encuentran inicialmente vacíos. Sise utiliza LRU con reemplazo local como política de elección de la víctima, se pide:

a) El estado de memoria en cada instante de tiempo indicando en cada uno de ellos, si fuesenecesario, los fallos de página correspondiente

b) La traducción de las direcciones lógicas a físicas de las referencias de P1c) Enuncie si cambiaría su respuesta en el caso de utilizar LRU con asignación fija y alcance

global.

9. Una máquina tiene un espacio de direccionamiento de 32 bits y una página de 8K. La tabla de páginasse encuentra completamente en registros asociativos, con una palabra de 32 bits por entrada. Cuando unproceso comienza, la tabla se copia de memoria a los registros a razón de una palabra cada 100 nseg. Sicada proceso ejecuta 100 mseg (incluyendo el tiempo de búsqueda en la tabla de páginas) ¿Qué fracciónde tiempo de CPU es destinado a buscar la tabla de páginas?

10. Un computador con un espacio de direccionamiento de 32 bits utiliza una tabla de páginas de 2niveles. Las direcciones virtuales son divididas en un campo de más alto nivel de 9 bits, un campo desegundo nivel de 11 bits, y un desplazamiento. ¿De qué longitud son las páginas y cuántas ay en elespacio de direccionamiento virtual?

11. Considere un sistema de paginación con la tabla de páginas almacenada en memoria.a) Si una referencia a memoria lleva 1,2 useg. ¿Cuánto durará una referencia a memoria paginada?b) Si añadimos 8 registros asociativos y el 75% de todas las referencias seencuentran en ellos. ¿Cuál es el tiempo efectivo de referencia a memoria?(Supongamos que encontrar una entrada en la tabla de páginas de los registrosasociativos si se encuentra allí, lleva un tiempo nulo).

12. Un computador cuyos procesos tienen 1024 páginas en sus espacios de direcciones mantiene su tablade páginas en memoria. El overhead requerido para leer una palabra de la tabla es de 500 nseg. Parareducir el overhead, el computador tiene una memoria asociativa que posee 32 registros, y pueden realizarla lectura en 100 nseg. ¿Cuál será el hit ratio (porcentaje de aciertos) necesario para reducir el overhead a200 nseg.?

13. Una memoria tiene 48 bits de espacio de direccionamiento virtual y 32 bits de espacio dedireccionamiento físico. Las páginas son de 8K. ¿Cuántas entradas son necesarias para una tabla depáginas convencional? ¿Cuántas para una tabla de páginas invertida?

14. Consideremos la siguiente cadena de referencias de página :1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6¿Cuántos fallos de página se producirán con los algoritmos de reemplazo siguientes suponiendo 1, 2, 3, 4,5, 6, ó 7 celdas (page frames)? Recuerde que todas las celdas están inicialmente vacías, de modo que laprimera referencia a una página supondrá un fallo cada una.LRUFIFOOPTIMO

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

Page 23: Guia de Ejercicios 2004 SO Sin Cont

páginas en memoria principal, con un tiempo de acceso de 1 useg. por acceso a memoria. Así, cadareferencia a memoria a través de la tabla de páginas precisa dos accesos. Para mejorar ese tiempo, se haañadido una memoria asociativa que reduce el tiempo de acceso a un acceso a memoria, si la entrada en latabla de páginas se encuentra en la memoria asociativa. Suponiendo que el 80% de los accesos seencuentran en la memoria asociativa y que para el resto, el 10% (o el 2% del total) generan fallos de página.¿Cuál es el tiempo efectivo de acceso a memoria?Tambor: Disco de un solo cilindro

16.Supongamos que tenemos una memoria con paginación bajo demanda. La tabla de páginas semantiene en registros asociativos. Servir un fallo de página lleva 8 mseg si es que hay disponibleuna página vacía o la página reemplazada no ha sido modificada. El tiempo de acceso a memoria esde 1 useg. Suponiendo que la página a reemplazar esta sucia (modificada) el 70% de las veces¿Cuál es la tasa de fallos de página máxima aceptable para un tiempo efectivo de acceso de no másde 2 useg?

17. Supongamos un sistema de paginación con un tambor de paginación de 4 millones de palabras y conun tiempo de acceso y transferencia de 5 mseg y una memoria de núcleos paginada de 262.144 palabras,con un tiempo de acceso de 2 useg. Si queremos que nuestro sistema de paginación aparezca ante elusuario 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 página?

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 losdiscos está compuesto por 300 cilindros, y cada uno de ellos tiene 10 sectores (sin interleave). La velocidadde rotación es de 6000 r.p.m y el cabezal tarda 1ms en pasar de una pista a la otra. Actualmente la cabezaestá ubicada en la dirección 1107 y se dirige a la 1108. En la cola están 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 máquina posee un disco rígido formado por cuatro cabezas numeradas del 0 a 3. Se tiene también100 pistas numeradas del 0 al 99 y cada una de ellas tiene 10 sectores, numerados del 1 al 10 sininterleave; cada sector tiene un tamaño de 512 bytes. El disco gira a 50 r.p.s y tarda 5ms en pasar de unapista a la otra.En un momento, se quiere leer el archivo GUIATP.txt de 2kb, por lo que al driver le llegan los siguientespedidos en el orden “cilindro-cabeza-sector”: (15,3,10), (55,0,1), (50,1,8) y (75,0,2). Actualmente la cabezaestá en cilindro 20 en el comienzo del sector 1 y con dirección 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 características: 3 platos, 100 sectores y total de 500 cilindros. Lospedidos encolados son: 535 – 3451 – 7548 – 487 – 2087 – 3147 – 9843 – 3521 – 6841 – 8544 – 6024 –987.Se pide el tiempo promedio de atención para cada uno de los siguiente algoritmos: FIFO – SCAN – LOOK –STSF. (El brazo está en la dirección 50 descendiendo)

4. Dado un servidor que posee cinco discos rígidos de 23 Gb cada uno, formando un RADI 5, en el que seposee un filesystem basado en i-nodos (con dos punteros directos, uno indirecto y otro doble indirecto) esque puede direccionar como máximo 10.000.000 bloques de 12 Kb cada uno.

- Cuál es el tamaño de una partición de filesystem?

Page 24: Guia de Ejercicios 2004 SO Sin Cont

- Cuál es el tamaño máximo de un archivo?- Cuál es el tamaño máximo que contiene un directorio?

5. Dado un servidor de 6 discos rígidos de 40 Gb cada uno, formando un RAID 1, el cual posee unfilesystem basado en i-nodos (con tres punteros directos, uno de indirección simple, uno doble y otro triple),los cuales pueden direccionar como máximo 20.000.000 bloques de 24 Kb cada uno. Se pide:

- Tamaño máximo de una partición de filesystem- Tamaño máximo de un archivo

6. Considerando la organización del sistema UNIX por i-nodos. Asumir que hay 12 punteros directos abloques, un puntero simple, uno doble y uno triple. Asumir también que el tamaño de bloque es de 8 Kb. Sise utiliza un puntero de 32 bits con 8 bits para identificar al disco. Se pide:

- El tamaño máximo de un archivo soportado por el sistema- Cuántos accesos se necesitan para localizar el byte en la posición

13.423.956? Y el de la posición 35.134.753.309?

7. Un servidor posee 3 discos rígidos de 60 Gb cada uno, los cuales conforman una organización RAID 4.Sobre estos discos se monta un filesystem que trabaja con i-nodos, los cuales están compuesto por 3punteros directos, 2 punteros indirectos y un puntero doblemente indirecto. Si los bloques de datos son de 8kb y se utilizan punteros de 32 bits:

- ¿Cuál es el tamaño máximo de la partición del filesystem?- ¿Cuál es el tamaño máximo soportado por un archivo?- ¿Cuántos accesos se necesitan para acceder al byte 23.579?

5. PROTECCIÓN Y SEGURIDAD

1. Algunos sistemas reescriben las áreas que fueron ocupadas por archivos ya borrados. ¿Bajo qué esquema es estonecesario?

2. Supongamos un sistema en el cual el derecho al uso de terminales está distribuído de la siguiente manera:

Alumnos 00:00 a 08:00 hsInvestigadores 07:00 a 24:00 hsAdmin. 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 Lock-Key. ¿Cuál es la más eficiente?.

3. ¿Cuál es la principal diferencia entre Lista de Acceso y Lista de Capacidad?

4. En un sistema de Administración de Memoria Paginada por Demanda, ¿cuándo es necesario utilizar claves deprotección para las Páginas / Bloques?

5. Supongamos un sistema en el cual cada proceso tiene asociado un número n y cada objeto un número m. Si sequiere que un proceso pueda acceder a un objeto sólo si n > m, ¿qué tipo de protección se debe implementar?

6. Supongamos un sistema en el cual la Capacidad de Acceso a un objeto le está permitida sólo n veces. ¿Quéesquema de protección implementaría?

7. Si todos los derechos de acceso a un objeto fueron eliminados, el objeto puede ser también eliminado. ¿Quéimplementación utilizaría?

8. Las listas de Capacidad son generalmente guardadas dentro del espacio de direcciones del programa. ¿Quéimplementación utilizaría?

Page 25: Guia de Ejercicios 2004 SO Sin Cont

9. Utilice alguna clave criptográfica para el método DES para cifrar la palabra SECRETO escrita en ASCII. Verifiquesu descifrado.

10. Verifique para algún mensaje que el método RSA funciona conp=7, q= 13, e=5, d=29.

11. Explique claramente quién 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 enforma de lectura tal lista el sistema de protección de passwords se torna muy débil. Sugiera un esquema que impidaeste problema (ayuda: utilice una representación interna que difiera de la representación externa).

13. Realizar el cifrado de la palabra ABEJA por:

a. el método de sustitución con la palabra clave "SISTEMAS OPERATIVOS". Detalle los pasos que realiza.

b. el método de cifrado por sustitución 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 caracteresalfabéticos. Imagine que un intruso puede ensayar distintas claves a una tasa de una por segundo. Responder:

a. Si el intruso no tiene retroalimentación hasta que cada intento ha sido completado, ¿cuál es eltiempo aproximado en que se descubrirá la clave?

b. Si el intruso tiene retroalimentación, es decir, se muestra un mensaje de error cada vez que seingresa un carácter incorrecto, ¿cuál es el tiempo en que se descubrirá la clave?

15. Un generador de claves fonéticas escoge dos segmentos al azar para cada clave (de seis letras cada una). Laforma de cada segmento es “consonante-vocal-consonante. Se pide:

a) ¿cuál es la cantidad total de claves?b) ¿cuál es la probabilidad de que un intruso adivine una clave correctamente?

16. Suponga que las passwords se limitan a los 95 caracteres imprimibles del código ASCII y que todas las clavestienen 10 caracteres de longitud. Suponga que un atacante que posee una tasa de encriptación 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 lasfunciones: leer, escribir y ejecutar, así como también las funciones atómicas: up y down. Conociendo quelas colas de los semáforos y la única cola de entrada/salida son independientes y como están inicializadoslos semáforos, indique la traza de ejecución y el orden de terminación de los siguientes procesos:

Semáforos Funciones(valor inicial) CPU (al inicio) I/O (al final)

A=0 Up/Down 2 0B=0 Leer/Escribir 1 3C=1 Ejecutar 3 0

Proceso 1 Proceso 2 Proceso 3

Page 26: Guia de Ejercicios 2004 SO Sin Cont

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

2. Dados los siguientes semáforos: A=C=0 y B=1. Cada proceso referencia a su propio espacio dememoria. Cantidad 8 (0..7) con 3 frames asignados y un tamaño de página de 512 bytes.

P1 (0 – 2 –1 ) P2 ( 2 – 0 – 3)0 01 22 3y los procesos:

P1 P2Read(1400) Down(B)

Down(A) Write(2048)Write(1536) Up(A)

Up(C) Write(3070)Read(1024) Down(C)

Down(B) Read(560)Read(512) Up(B)

Up(A) Write(1050)Write(3000) Down(A)

Down(C) Read(2560)Read(1500) Up(C)

Read(4096)

Responder:a) Cuántos fallos de página se producen para cada proceso?

a. 1. LRU – Asignación fija , alcance globala. 2. LRU – Asignación Fija, alcance local

b) Están en deadlock?c) Terminan de ejecutarse?

3. Un sistema en el cual se utiliza memoria virtual con particiones fijas para la organización de la memoriafísica de: 10 Kb, 30 Kb, 42 Kb y 60 Kb, posee el siguiente juego de procesos:

Procesos P1 P2 P3 P4 P5 P6 P7Down(A) Down(G) Down(G) Down(F) Down(B) Down(J) Down(E)

Up(A) Exe() Down(A) Up(A) Exe() Up(A) Up(I)Exe() Up(I) Exe() Exe() Up(B) Exe() Down(C)Up(C) Exe() Down(C) Down(F) Exe() Up(G) Exe()Up(E) Up(J) Down(I) Up(B) Exe() Up(F)

Down(H) Up(C) Up(G)Exe()Exe()

Operaciones

Up(J)T. Llegada 0 0 0 2 3 4 4Memoria 24 Kb 2 Kb 32 Kb 4 Kb 40 Kb 22 Kb 60 Kb

Teniendo en cuenta que:• Las operaciones atómicas consumen 1 ms.

Page 27: Guia de Ejercicios 2004 SO Sin Cont

• La función Exe() representa una E/S de lectura o de escritura, y ambas consumen 5 ms.• El sistema operativo tiene un algoritmo de planificación 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 algún motivo.• El algoritmo de selección de la víctima es el BEST FIT.• Los semáforos están inicializados A=B=E=G=I=J=30 y C=F=H=25

Se pide realizar la traza de ejecución de los procesos, indicando el orden de finalización y el instante en quelo hacen. En caso que alguno no finalice, indicar el motivo.

4. Se tiene una máquina con direcciones de 16 bits, cuyo offset ocupa 10 bits. Un proceso realiza lassiguientes referencias a memoria (en decimal): 535 – 3451 – 7548 – 487 – 2087 – 3147 – 9843 – 3521 –6841 – 8544 – 6024 – 987El proceso tiene asignado 3 frames de memoria (0,1,2), los cuales se encuentran vacíos. A su vez se poseeun disco rígido con las siguientes características: 3 platos, formando 6 cabezas, 100 sectores por pista, untotal de 500 cilindros y sectores de 512 bytes. Suponga que las direcciones lógicas de las referencias amemoria son las mismas que las referencias a disco. Ej: la dirección lógica de memoria 100 se encuentra enla dirección lógica 100 del disco.Se utiliza LRU con reemplazo local como política de elección de la víctima y el LOOk como política deplanificación de disco. Sabiendo que la cabeza se encuentra en la dirección lógica 50 descendiendo, sepide:

a. El estado de memoria en cada instante de tiempo, indicando los fallos de páginassi fuese necesario y las traducciones de las direcciones lógicas a físicas.

b. EL tiempo promedio de atención de los pedidos a disco y el orden en que fueronatendidos, sabiendo que el tiempo entre cilindros es de 100 ms.

5. Considere una máquina con memoria paginada de 32 bits de direccionamiento, donde 24 bits son elnúmero de página y los 8 restantes son el desplazamiento. Se cuenta con 4 Mb de memoria RAM y un totalde 12 Mb de memoria virtual. En todo el sistema hay 4 procesos, en el que se tiene para cada uno de losmismos 3 frames asignados, inicialmente vacíos, uno de los cuales se utiliza para el código y el heap. Elalgoritmo de elección es el LRU con asignación fija y alcance local, mientras que la planificación deprocesos es SRT (Shortest Remaining Time); además, los semáforos se encuentra inicializados de lasiguiente manera: S=C=R=E=H=0 y T=J=U=O=1Se sabe que cuando se quiere leer de disco, son 3 ciclos de E/S. Actualmente la cabeza del disco estáubicada en el sector lógico 1110 y se dirige al sector 1111. Las operaciones atómicas insumen 2 ciclos deCPU, mientras que los accesos a memoria insumen 3 ciclos.

P1 P2 P3 P4Down(S) Down(E) Down(U) Up(S)

Up(C) Up(H) Read(4587) Read(358)Read(5400) Up(E) Up(S) Down(J)

Up(R) Write(3457) Read(4888) Escribir_disco(15)Down(T) Up(U) Escribir_disco(1244) Down(U)

Read(1024) Read(4587) Up(R) Read(1025)Up(H) Down(J) Read(8745) Escribir_disco(1542)

Down(E) Down(O) Escribir_disco(574) Down(H)Escribir_disco(955) Up(O) Up(U) Up(E)

Down(E) Leer_disco(788)Write(3755) Down(T)

Up(c) Read(9800)Up(T) Up(H)

Read(9853) Up(E)Down(H) Read(3214)

Se pide:

Page 28: Guia de Ejercicios 2004 SO Sin Cont

a) Indicar los fallos de página 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 almismo consume en promedio 3 ciclos de E/S cuando se quiere leer y 4 cuando se quiereescribir. 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 delos discos posee 400 cilindros y sus pistas tiene 10 sectores y posee 3 platos formando 6cabezas. La velocidad de rotación es de 8000 rmp y el cabezal tarda 2ms en pasar de una pistaa la otra. Las cabezas leen del sector mas chico al mas grande y actualmente están encoladoslos siguientes pedidos: 87, 1254, 19, 940, 1447, 987, 231, 104.Se requiere el tiempo total de atención de los pedidos según el algoritmo C-LOOK.

6. En una memoria se utiliza un algoritmo de reemplazo Next Fit. Sabiendo que actualmente en la memoriahay tres bloques libres de: 10 Kb, 15 Kb y 9 Kb, y que los procesos se descargan de memoria solamentecuando finalizan o quedan bloqueados, realizar la traza de procesos indicando que procesos finalizan ycuales no, sabiendo que los semáforos se encuentran inicializados: A=B=0 y C=D=1 y llevar a cabo algunade las funciones atómicas consume 2 ciclos de CPU.

P1 P2 P3 P4P(C) P(A) V(B) P(B)V(A) P(D) V(C) V(A)V(B) P(A) P(A) V(C)P(C) P(B) V(D) V(D)P(D) V(D) P(B) V(D)P(D) V(C) V(B) P(B)

Tamaño: 14 Kb Tamaño: 9 Kb Tamaño: 13 Kb Tamaño: 8 Kb

Page 29: Guia de Ejercicios 2004 SO Sin Cont

SOLUCIONESI. Planificación

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

P6 Ll I/O I/O I/O I/O P5 Ll I/O I/O I/O FP4 Ll P3 Ll I/O I/O I/O I/O FP2 Ll I/O I/O I/O I/O FP1 Ll I/O I/O I/O

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

P6 FP5P4 I/O I/O FP3P2P1

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 Ll F FP4 Ll I/O I/O FP3 Ll I/O I/O I/O FP2 Ll I/O I/O I/O I/O FP1 Ll I/O I/O 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 27 28

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

so P5 Ll D D DP4 LlP3 Ll D D D D D Im Im Im Im Im Im Im FP2 Ll D D D D D FP1 Ll Im Im

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

so P5 Im FP4 Im Im Im FP3P2P1 D D D D D 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 55 56 57 58 59 60 61 62 63

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

P4 Ll Im Im FP3 Ll S S S S S S F

Page 30: Guia de Ejercicios 2004 SO Sin Cont

P2 Ll Im FP1 Ll S S S S S 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

5. Finalizan en el siguiente orden: P1(48), P2(49), P3(56)P3u Ll P3u Ll I/O I/OP2k Ll I/O I/O I/OP2k Ll I/OP1u Ll I/O I/OP1k Ll I/O I/O I/O

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

P3u I/O I/O I/O I/O I/O I/O FP3u FP2k I/O FP2k I/O I/O I/O FP1u FP1k I/O I/O 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 55 56

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

P5 Ll B B D D A Im Im Im B FP4 Ll A A D D A Im Im B B B FP3 Ll A A Im Im B FP2 Ll B B D D A A A A FP1 Ll A A A D A A

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

7.a. FIFO

D Ll I/O I/O I/O FC Ll I/O I/O I/O I/O FB Ll I/O I/O FA 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 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 I/O I/O I/O FC Ll I/O I/O I/O I/O FB Ll I/O I/O FA Ll 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 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

c. SRTD Ll I/O I/O I/O FC Ll I/O I/O I/O I/O FB Ll I/O I/O FA 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 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 ApropiativoD Ll I/O I/O I/O F

Page 31: Guia de Ejercicios 2004 SO Sin Cont

C Ll I/O I/O I/O I/O FB Ll I/O I/O FA Ll I/O I/O I/O I/O

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

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

31 32 33 34 35 36 37 38

e. Prioridades No-apropiativoD Ll I/O I/O I/O FC Ll I/O I/O I/O I/O FB Ll I/O I/O FA Ll I/O I/O I/O I/O I/O

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

DCBA I/O I/O I/O F

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 Ll Im Im P5 Ll D D D D D P4 Ll D D DP3 Ll S S S FP2 Ll S DP1 Ll Im Im Im S S

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

so2 so1 P6 Im Im Im FP5 Im Im Im Im Im Im Im FP4 FP3P2 D D D D FP1 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 Ll ImP2u Ll Im Im Im ImP1k Ll Im Im FP1u Ll Im Im fP1u Ll Im Im Im Im Im Im Im Im Im Im Im

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

so

Page 32: Guia de Ejercicios 2004 SO Sin Cont

P2u fP2u FP1kP1uP1u 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 FP3 Ll a a a a Im Im Im Im Im b b FP2 Ll b b b D D D a a a a a FP1 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. Semáforos / Algoritmo del Banquero / Sincronización

1. P1 y P2 finalizan. {B}~P3 {C}~P42. P2 y P3 finalizan. {A}~P5~P4 {C}~P13. P5 finaliza. {C}~P3 {E}~P1 {H}~P4 {O}~P24.

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

5. Es un estado seguro. Finalizan P6, P1, P2, P3, P4, P5, P06. Queda en un estado inseguro ya que cuando el tour “C” quiere tomar el segundo viernes no hayhabitaciones disponibles.7. Pueden quedar en deadlock si PROGRAMA A pone su bandera a true y luego lo hace PROGRAMAB. En esa caso, ambos quedarán ciclando en el while. (Es similar a la 2da solución 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 solución)9. Si, cumple. Es muy similar al algoritmo de Peterson.10. Suponga la siguiente solución (no única):

#define VERDE 1#define ROJO 0int capacidad=20;int semáforo=1;

int main(void) {parbegin(autos_capital,autos_prov);}

repeatwhile(semáforo) {

wait(capacidad);entrar_puente();cruzar_puente();salir_puente();signal(capacidad);}

until falso;

Page 33: Guia de Ejercicios 2004 SO Sin Cont

/* este es el mismo código tanto para autos_capital como para autos_prov. Cuando semáforo es rojopara uno, es verde para el otro */

III. Memoria Central / Memoria Virtual

1.10 k 4 k 20 k 18 k 7 k 9 k 12 k 15 k

F.F 10 K 12 K 9 KB.F 10 K 9 K 12 KW.F 12 K 10 K 9 KN.F 12 K 10 K 9 K

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

3.b. #Pag / #Offset = 0000010111011110c. #Frame / #Offset = 0001010111011110d. Tam. Página x cant. páginas = 1024 bytes x 64 = 64 K

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

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

2461

6.LRU FIFO OPTIMO

2 4 25 2 54 5 4

10 PF 9 PF 7 PF

7.a. #Seg / # Pag / #Offset = 1 dig. / 2 dig. / 3 dig. = 6 dígitosb.

Dirección virtualSegmento Página Offset

Dirección física Validación

0 21 333 - Pag. Inválida0 5 345 7 345 Ok18 10 627 - Seg. Inválido1 4 806 29 806 Ok2 0 097 1 97 Pag. Fault15 1 053 - Seg. Inválido2 10 270 27 270 Ok

Page 34: Guia de Ejercicios 2004 SO Sin Cont

8.a. Hay 5 Page Faults

029

b. # Pag. / # Offset = 6 bits / 10 bitsDir 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 2^0 Pag.535 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 03451 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 37548 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 7487 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 02087 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 2147 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 09843 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 9521 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0

65537 ERROR. Termina el programa por querer direccionar más de lo que se puede -

c. No cambia ya que es imposible implementar dicha técnica. (Ver Conceptos Básicos)

9. SoluciónEspacio de direcciones 32 bits 2 32 = 424.967.300Página 8K 2 32 / 8K = 524.288 entradasSi la tabla se carga a razón de una palabra cada 100 nseg, entonces la tabla completa se cargará en524.288 x 100 nseg = 52.428.800 nseg o sea 52,429 mseg aproximadamente. Sabiendo que cadaproceso ejecuta 100 mseg, se usa el 52,429% del tiempo a buscar en la tabla.

10. SoluciónEl esquema del espacio de direcciones es el siguiente:9 bits de altonivel

11 bits de segundonivel

12 bits dedesplazamiento

Número de páginas: 2 20 = 1.048.576Tamaño de páginas 2 12 = 4096 = 4K

11. Solucióna) 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 búsqueda 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. SoluciónAcceso a la memoria asociativa 100 nsegAcceso a memoria central 500 nsegOverhead requerido 200 nsegO seahr x 100 nseg + (100 % – hr) x 500 nseg = 200 nseg

100 %Despejando, tenemos que el hit ratio debe ser un 75%

13. SoluciónTamaño de página: 8K = 8 x 1024 = 2 3 x 2 10 = 2 13

Para el espacio de direccionamiento virtual (48 bits) el esquema es el siguiente:

Page 35: Guia de Ejercicios 2004 SO Sin Cont

35 bits para el número depágina

13 bits de desplazamiento

Para este esquema se necesitan 2 35 entradas (O sea 34.359.738.368 páginas).Para la tabla en memoria convencional (32 bits) tenemos:

19 bits para el número depágina

13 bits de desplazamiento

Con una necesidad de 2 19 entradas (524.288 páginas).

14. Solución

LRU – 1 PF1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 620 fallosLRU – 2 PF1 1 3 3 2 2 5 5 2 2 2 2 7 7 3 3 1 1 3 3

2 2 4 4 1 1 6 6 1 1 3 3 6 6 2 2 2 2 618 fallosLRU – 3 PF1 1 1 4 4 4 5 5 5 1 1 1 7 7 7 2 2 2 2 2

2 2 2 2 2 2 6 6 6 6 3 3 3 3 3 3 3 3 33 3 3 1 1 1 2 2 2 2 2 6 6 6 1 1 1 6

15 fallosLRU – 4 PF1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6 6

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 3 3 3 5 5 5 5 5 3 3 3 3 3 3 3 3 3

4 4 4 4 6 6 6 6 6 7 7 7 7 1 1 1 110 fallosLRU – 5 PF1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 3 3 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6

4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 35 5 5 5 5 5 7 7 7 7 7 7 7 7

8 fallosLRU – 6 PF1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 7 75 5 5 5 5 5 5 5 5 5 5 5 5 5

6 6 6 6 6 6 6 6 6 6 6 6 67 fallosLRU – 7 PF

Habrá 7 fallos ocasionados por la entrada de cada página de memoria a las 7celdas.

FIFO – 1 PF1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 620 fallosFIFO – 2 PF1 2 3 4 2 1 5 6 2 1 1 3 7 6 3 2 1 1 3 6

Page 36: Guia de Ejercicios 2004 SO Sin Cont

1 2 3 4 2 1 5 6 2 2 1 3 7 6 3 2 2 1 318 fallosFIFO – 3 PF1 2 3 4 4 1 5 6 2 1 1 3 7 6 6 2 1 1 3 6

1 2 3 3 4 1 5 6 2 2 1 3 7 7 6 2 2 1 31 2 2 3 4 1 5 6 6 2 1 3 3 7 9 9 2 1

16 fallos

FIFO – 4 PF1 2 3 4 4 4 5 6 2 1 1 1 7 7 3 3 3 3 3 6

1 2 3 3 3 4 5 6 2 2 2 1 1 7 7 7 7 7 31 2 2 2 3 4 5 6 6 6 2 2 1 1 1 1 1 7

1 1 1 2 3 4 3 3 3 6 6 2 2 2 2 2 111 fallos

FIFO – 5 PF1 2 3 4 4 4 5 6 6 1 2 3 7 6 6 6 6 6 6 6

1 2 3 3 3 4 5 5 6 1 2 3 7 7 7 7 7 7 71 2 2 2 3 4 4 5 6 1 2 3 3 3 3 3 3 3

1 1 1 2 3 3 4 5 6 1 2 2 2 2 2 2 21 2 2 3 4 5 6 1 1 1 1 1 1 1

11 fallosFIFO – 6 PF1 2 3 4 4 4 5 6 6 6 6 6 7 7 7 7 1 2 3 3

1 2 3 3 3 4 5 5 5 5 5 6 6 6 6 7 1 2 21 2 2 2 3 4 4 4 4 4 5 5 5 5 6 7 1 1

1 1 1 2 3 3 3 3 3 4 4 4 4 5 6 7 71 2 2 2 2 2 3 3 3 3 4 5 6 6

1 1 1 1 1 2 2 2 2 3 4 5 510 fallosFIFO – 7 PF

Idem a LRU con 7 celdas.

OPTIMO – 1 PF1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

20 fallosOPTIMO – 2 PF1 1 3 4 4 1 5 6 6 1 1 3 3 3 3 3 1 1 3 3

2 2 2 2 2 2 2 2 2 2 2 7 6 6 2 2 2 2 615 fallos

OPTIMO – 3 PF1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3

2 2 2 2 2 2 2 2 2 2 2 7 7 7 2 2 2 2 23 4 4 4 5 6 6 6 6 6 6 6 6 6 1 1 1 6

11 fallosOPTIMO – 4 PF1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 1 1 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

4 4 4 5 6 6 6 6 6 6 6 6 6 6 6 6 68 fallosOPTIMO – 5 PF

Page 37: Guia de Ejercicios 2004 SO Sin Cont

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 34 4 4 4 6 6 6 6 6 6 6 6 6 6 6 6 6

5 5 5 5 5 5 7 7 7 7 7 7 7 77 fallosOPTIMO – 6 PF1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 7 75 5 5 5 5 5 5 5 5 5 5 5 5 5

6 6 6 6 6 6 6 6 6 6 6 6 67 fallosOPTIMO – 7 PFIdem LRU para 7 celdas.

15. SoluciónTiempo de acceso al tambor y transferencia desde el mismo: 5 mseg = 5.000 usegTiempo de acceso a memoria principal: 1 usegTiempo de acceso a la tabla en memoria principal: 2 x 1 useg = 2 usegTiempo de acceso a la tabla en memoria asociativa: 1 usegEl 80% de los accesos está en la tabla de memoria asociativa, del 20% restante, el 18% está enmemoria principal (2 accesos) y el 2% genera una falla de página (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. SoluciónTiempo de acceso a memoria central: 1 usegTiempo para servir un fallo de página “limpio”: 8 mseg = 8.000 usegTiempo para servir un fallo de página “sucio”: 8.000 useg x 2 (guardar la página modificada y traer

la nueva) = 16.000 usegEl 70% de las páginas a reemplazar está “sucio”, y el 30% “limpio”Se intenta calcular la tasa de fallos de página (hit ratio) máxima 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 usegTMA = 100% 100 = 2 useg

100%hr = 99,992%, por lo que la tasa máxima de fallo de página resulta menor al 0,01%

17 SoluciónSin haber fallos de página, tenemos un tiempo de acceso de 2 useg

Con fallos de página, 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

Page 38: Guia de Ejercicios 2004 SO Sin Cont

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 -> 15Sec: 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 también es un archivo. (Ver Conceptos Básicos)

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

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

4.

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

V Protección y Seguridad14.

a. 26^4 / 2 = 228488 seg.

3600 seg. _________ 1 hora228488 seg. _______ 63.5 horas

b) 13 x 4 = 52 segundos (se promedian 13 intentos por cada posición)

15.

Page 39: Guia de Ejercicios 2004 SO Sin Cont

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

16.6.4 x 10^6 claves ________________ 1 seg.95 ^10 claves ________________ 9.81 x 10 ^12 seg. (312500 años aprox.)

VI Ejercicios Integrados

1. Finalizan: P3(30), P1(44), P2(46)

P3 I/O I/O I/O I/O I/O I/O FP2 I/O I/O I/OP1 I/O I/O I/O

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

P3P2 FP1 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 técnica (Ver Conceptos Básicos)a.2. Para P1 se producen 2 Page Faults. Para P2 se producen 4.

b. Noc. P1 si. P2 es abortado por referenciar un frame inexistente.

3.4.5.6.

Page 40: Guia de Ejercicios 2004 SO Sin Cont

FINAL de Sistemas Operativos y Computación II (90 min.)07/12/2002

Apellido y Nombre:.................................................................... Profesor:............................A B

PARA CONTESTAR ESTE FINAL USE ÚNICAMENTE ESTA HOJA ESCRIBIENDO EN ESTA CARA YEN SU CONTRACARA.

A) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO surespuesta en no más de 3 líneas.

1. Una de las ventajas que presentan los sistemas basados en micronúcleos, con respecto a otrasarquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso demensajes.

2. Para permitir un mayor grado de multiprogramación Es mejor optar por páginas de un tamañopequeño.

3. La planificación SSTF tiende a favorecer menos a los cilindros externos e internos que a los de lazona intermedia.

4. La existencia de un planificador a corto plazo sólo tiene sentido en los sistemas conmultiprogramación.

5. El algoritmo de Peterson es una estrategia para la sincronización de procesos.

B) Resolver los siguientes ejercicios.

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

Proceso

Tllegada

Tiempo deCPU

Comienzo deE/S

Duración deE/S

PrioridadBase

Tamaño

1 0 7 2 2 BAJA 2000 k2 1 9 3

7 843

MEDIA 1800 k

3 2 7 59 10

44

MEDIA 800 k

4 3 5 4 4 ALTA 1000 k5 3 4 - - MEDIA 1700 k

Page 41: Guia de Ejercicios 2004 SO Sin Cont

Orden de prioridad: ALTA > MEDIA > BAJA. Tamaño de la memoria disponible: 5.500 k. Cantidad de instancias de E/S: 1. Administración de Memoria: particiones dinámicas, con realocación cada vez que sea necesario

y algoritmo de asignación de peor ajuste. Administración de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los

procesos aumentan a medida que pasa el tiempo. El método de aumento de prioridad se realizacuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasaa 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 porenvejecimiento, entra a la cola de listo último de su nueva prioridad. En caso de simultaneidadde 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 sufinalización, cualquiera sea su prioridad.

Se pide que realice la traza de ejecución completa de los procesos y el mapa de memoria en losinstantes correspondientes.

2. Dado el clásico problema de productores y consumidores, se plantea una soluciónutilizando semáforos con el siguiente código:

Typedef int semaforo;typedef char* msg;int N=100; /*Longitud del buffer */semaforo mutex = 1; /*Da la exclusión mutua */semaforo lleno = 0; /*Cuenta lugares llenos */semaforo vacio = N; /*Cuenta lugares vacíos */

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 solución planteada es válida?. En caso de que no lo sea, explique por qué.

3. Un sistema de archivos utiliza una política de asignación de espacio indexada. En este sistema,los bloques de datos de un archivo, ¿se pueden ubicar de forma contigua? ¿Es necesario que losbloques estén ubicados de forma contigua? ¿Da igual que lo estén? Justifique con mucha claridadsu respuesta. ¿Cambiaría en algo su contestación si la asignación de espacio fuera enlazada?

Page 42: Guia de Ejercicios 2004 SO Sin Cont

Ejemplo de finales tomados:07/12/2002Enunciados:B) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO su

respuesta en no más de 3 líneas.

1. Una de las ventajas que presentan los sistemas basados en micronúcleos, con respecto a otrasarquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso demensajes.

2. Para permitir un mayor grado de multiprogramación Es mejor optar por páginas de un tamañopequeño.

3. La planificación SSTF tiende a favorecer menos a los cilindros externos e internos que a los de lazona intermedia.

4. La existencia de un planificador a corto plazo sólo tiene sentido en los sistemas conmultiprogramación.

5. El algoritmo de Peterson es una estrategia para la sincronización de procesos.

B) Resolver los siguientes ejercicios.

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

Proceso

Tllegada

Tiempo deCPU

Comienzo deE/S

Duración deE/S

PrioridadBase

Tamaño

1 0 7 2 2 BAJA 2000 k2 1 9 3

7 843

MEDIA 1800 k

3 2 7 59 10

44

MEDIA 800 k

4 3 5 4 4 ALTA 1000 k5 3 4 - - MEDIA 1700 k

Orden de prioridad: ALTA > MEDIA > BAJA. Tamaño de la memoria disponible: 5.500 k. Cantidad de instancias de E/S: 1. Administración de Memoria: particiones dinámicas, con realocación cada vez que sea necesario

y algoritmo de asignación de peor ajuste. Administración de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los

procesos aumentan a medida que pasa el tiempo. El método de aumento de prioridad se realizacuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasaa 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 porenvejecimiento, entra a la cola de listo último de su nueva prioridad. En caso de simultaneidadde 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.

Page 43: Guia de Ejercicios 2004 SO Sin Cont

- Considere que cuando un job toma un segmento de memoria, no lo libera hasta sufinalización, cualquiera sea su prioridad.

Se pide que realice la traza de ejecución completa de los procesos y el mapa de memoria en losinstantes correspondientes.

2. Dado el clásico problema de productores y consumidores, se plantea una soluciónutilizando semáforos con el siguiente código:

Typedef int semaforo;typedef char* msg;int N=100; /*Longitud del buffer */semaforo mutex = 1; /*Da la exclusión mutua */semaforo lleno = 0; /*Cuenta lugares llenos */semaforo vacio = N; /*Cuenta lugares vacíos */

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 solución planteada es válida?. En caso de que no lo sea, explique por qué.

3. Un sistema de archivos utiliza una política de asignación de espacio indexada. En este sistema,los bloques de datos de un archivo, ¿se pueden ubicar de forma contigua? ¿Es necesario que losbloques estén ubicados de forma contigua? ¿Da igual que lo estén? Justifique con mucha claridadsu respuesta. ¿Cambiaría en algo su contestación si la asignación de espacio fuera enlazada?

Respuestas:Parte A1. F. Precisamente el basarse en el paso de mensajes constituye un problema para su rendimiento.

2. V. Así caben más páginas en memoria principal, lo que permitirá también tener más procesos

3. V. en los extremos, cilindros internos y externos, sólo se tiene una posibilidad de movimiento, unúnico sentido, que les aleja de dichas zonas y además, les conduce a las zonas intermedias.

4. V. Sólo en este caso hay varios procesos en el sistema entre los que repartir la CPU

5. F. Es una solución al problema de la exclusión mutua.

Page 44: Guia de Ejercicios 2004 SO Sin Cont

Parte B1. Solución a verificar:a.

P5 P4 IO IO IO IO P3 IO IO IO IO IO IO IO IO P2 IO IOIOIO IO IO IO P1 IO IO

0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233

P1 termina en 16P4 termina en 28P5 termina en 29P2 termina en 31P3 termina en 32

b. MEMORIA (el número en paréntesis 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) después de hacer eldown(&mutex) y el consumidor se bloquea en el down(&mutex) después de hacer eldown(&lleno)... entonces productor está esperando el VACIO y consumidor está esperando elMUTEX.Para el ejemplo supongo que primero se inicia el productor y corre hasta bloquearse y después seinicia el consumidor.

Productor Consumidor Mutex Vacio LlenoSe inicia el productor 1 1 0down mutex 0 1 0down vacio 0 0 0up mutex 1 0 0up lleno 1 0 1down mutex 0 0 1down vacio (se bloquea) 0 0 1

se inicia el consumidor 0 0 1

Page 45: Guia de Ejercicios 2004 SO Sin Cont

down lleno 0 0 0down mutex (se bloquea) 0 0 0

LOS DOS ESTAN BLOQUEADOS LOS DOS ESTAN BLOQUEADOS

3. La asignación indexada permite que los bloques de datos de un archivo se encuentren dispersospor el disco, pero evidentemente no obliga a ello. Así que los bloques de un archivo indexadopueden estar contiguos.Sin embargo, no es indiferente el que los bloques estén contiguos. Los accesos secuenciales alarchivo serán más eficientes en ese caso, porque el desplazamiento de los cabezales del disco serámenor, comparado con el recorrido que tendría que hacer el cabezal si los bloques estuvierandesperdigados por la superficie del disco. Lacontigüidad ocasiona un menor tiempo de acceso. En el mejor caso, todos los bloques del archivoestarían en un mismo cilindro y la cabeza lectora no tendría que hacer ningún movimiento para leerel archivo completo.Si la asignación de espacio fuera enlazada, la respuesta sería similar. Incluso tendría más impactoen el rendimiento el hecho de que los bloques estén contiguos, ya que en la asignación enlazadacualquier acceso al archivo, ya sea secuencial o ya sea directo, exige recorrer los enlaces de losbloques. Si los bloques están contiguos, el cabezal del disco hará un recorrido más pequeño.

FINAL DEL 28/05/03Parte Práctica

Ejercicio 1

Un sistema computacional de un solo procesador planifica el procesamiento de trabajossegún el siguiente modelo:

La planificación de largo plazo se encarga de mantener el grado de multiprogramación en tres procesos,usando una política SJF (Shortest Job First). En el corto plazo el procesador es asignado usando unapolítica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos:

Proceso Tiempo dellegada

CPU E/S CPU Tiempo estimado deproceso (SJF)

P1 0 5 3 3 12P2 0 2 4 3 10P3 2 3 4 2 8P4 4 6 2 2 11P5 10 2 3 2 7P6 15 3 4 4 12

Cola de largoplazo

Fin de Quantum

Cola de cortoplazo

Cola de E/S

E/S

CPULlegada Salida

PlanificaciónLargo Plazo Planificación Corto Plazo

Page 46: Guia de Ejercicios 2004 SO Sin Cont

Para la resolución del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola decorto plazo, ordénelos arbitrariamente en el siguiente orden: 1°) fin de E/S, 2°) Cola de Largo Plazo y 3°) finde quantum.

Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un único dispositivode E/S (el cual planifica FIFO) se pide la traza de ejecución de los procesos mediante un Diagrama deGantt.

Ejercicio 2

Se tiene un disco con la siguiente geometría: 3 platos, 100 sectores por pista, un total de500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3registros del archivo 1 y los primeros 4 registros del archivo 2.

Sean los archivos con sus respectivos sectores lógicos: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 ejecución de los pedidos,asumiendo que están en la cola, para cada uno de los siguientes algoritmos:

a) SSTF.b) 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 P2 P2 P2 P2 P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 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

CPU P1 P4 P4 P6 P6 P4 P4 P6 P6 P6 P6 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 finalizaP1 0 26P2 0 (encola primero por SJF) 13P3 2 17P4 17 32P5 13 25P6 25 41

Pto 2

Direcciones Físicas

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

Page 47: Guia de Ejercicios 2004 SO Sin Cont

(50, 0, 25)(6, 2, 1)(100, 1, 3)

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

SSTF

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8

Cili

ndro

s

Series1

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

F-SCAN

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8

Cili

ndro

s

Series1

RESOLUCIÖN

Parte Práctica

Ejercicio 1

Page 48: Guia de Ejercicios 2004 SO Sin Cont

Un sistema computacional de un solo procesador planifica el procesamiento de trabajossegún el siguiente modelo:

La planificación de largo plazo se encarga de mantener el grado de multiprogramación en tres procesos,usando una política SJF (Shortest Job First). En el corto plazo el procesador es asignado usando unapolítica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos:

Proceso Tiempo dellegada

CPU E/S CPU Tiempo estimado deproceso (SJF)

P1 0 5 3 3 12P2 0 2 4 3 10P3 2 3 4 2 8P4 4 6 2 2 11P5 10 2 3 2 7P6 15 3 4 4 12

Para la resolución del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola decorto plazo, ordénelos arbitrariamente en el siguiente orden: 1°) fin de E/S, 2°) Cola de Largo Plazo y 3°) finde quantum.

Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un único dispositivode E/S (el cual planifica FIFO) se pide la traza de ejecución de los procesos mediante un Diagrama deGantt.

Ejercicio 2

Se tiene un disco con la siguiente geometría: 3 platos, 100 sectores por pista, un total de500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3registros del archivo 1 y los primeros 4 registros del archivo 2.

Sean los archivos con sus respectivos sectores lógicos: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 ejecución de los pedidos,asumiendo que están 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

Cola de largoplazo

Fin de Quantum

Cola de cortoplazo

Cola de E/S

E/S

CPULlegada Salida

PlanificaciónLargo Plazo Planificación Corto Plazo

Page 49: Guia de Ejercicios 2004 SO Sin Cont

E/S P2 P2 P2 P2 P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 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

CPU P1 P4 P4 P6 P6 P4 P4 P6 P6 P6 P6 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 finalizaP1 0 26P2 0 (encola primero por SJF) 13P3 2 17P4 17 32P5 13 25P6 25 41

Pto 2

Direcciones Físicas

(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

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8

Cili

ndro

s

Series1

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

Page 50: Guia de Ejercicios 2004 SO Sin Cont

F-SCAN

0

20

40

60

80

100

120

1 2 3 4 5 6 7 8

Cili

ndro

s

Series1

FINAL DEL 21/12/2002

C) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDOsu respuesta en no más de 3 líneas.

1. Una de las estrategias para detectar el deadlock distribuido son los algoritmos centralizados. Eneste tipo de algoritmos todos los procesos cooperan para detectar el deadlock. (ST 611)

2. No existe diferencia entre la operación de espera de un semáforo y de una variable de condiciónde un monitor.

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

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

Page 51: Guia de Ejercicios 2004 SO Sin Cont

5. La limitación que trae el método de clustering por servidores separables, es que usualmenterequiere discos espejados o alguna tecnología de RAID para compensar los riesgos de falla de algúndisco. (ST 575)

B) Resolver PAPÁ NOEL Y LOS RENOS.

Desde fines de noviembre, Papá Noel se encuentra planificando su itinerario de viaje. Existe unpueblito en particular en el que no se decide como repartir los regalos. Se trata de Villa Circular, unpueblo con 200 calles (numeradas de 0 a 199) las cuales se encuentran dispuestas de forma similarque los cilindros de un disco. Los cálculos de aterrizaje de su trineo le indican que deberá empezarsu recorrido por la calle 100. Además, Papá Noel tiene la lista de pedidos de los niños de acuerdo alorden en que le fueron llegando las cartitas (para simplificar, ha anotado sólo el número de calle):81, 142, 86, 172, 89, 145, 97, 170 y 125. Dado que Papá Noel ha leído el libro de Stallings, hadecidido elegir la forma en que repartirá los regalos de acuerdo a algunos de estos dos algoritmos deplanificación 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 cadauno de los algoritmos de planificación de disco, por lo que Ud. debe ayudarlo a encontrar elalgoritmo que le brinde la menor longitud media de búsqueda para satisfacer las entregas deregalos (es necesario indicar la longitud de ambos algoritmos). También debe refrescarle queinconvenientes presentan estos dos algoritmos.

Una semana antes del 24 de diciembre, Papá Noel ya va pensando en como ubicar los regalitos delos niños en su trineo. Para ello cuenta con un espacio total que equivale a 64 megabytes de unamemoria principal instalada en una maquina, que utiliza memoria segmentada, en la cual unsegmento equivale a un regalo, y cuyas direcciones lógicas (lista de ubicación de los paquetes en eltrineo) tienen esta estructura: 10 bits para el campo del regalo y 22 bits para el tamaño del regalo.En un momento dado, el trineo está organizado de la siguiente forma: las maletas de Papá Noel, queson inalterables, residen en los primeros 128 Kbytes del trineo. Hay un único proceso P, que es elencargado de llevar a cabo el proceso de reparto de los regalos a las casas, con cuatro regalitosasignados por el momento: los regalos 0, 1 y 2 tienen longitudes respectivas 10 Kbytes, 25 Kbytes y2 Kbytes y se hallan en las posiciones del trineo 300.000, 200.000 y 700.000, respectivamente. Elregalo 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 cuál es la direccióndel trineo que se corresponde con la posición en la lista de ubicaciones que tiene el regalo=2 y eldesplazamiento=1000. Indique además, hasta cuantos paquetes podría llevar Papá Noel y eltamaño máximo 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 asignaría si se solicitaun espacio para un regalo de 400 KB.

Después de una larga recorrida por la Villa Circular los renos están sedientos y necesitan tomaragua para poder volver a sus establos, que se encuentran en el Polo Norte. Para ello el único lugardonde se les puede dar de tomar es en algún hípico, ya que poseen bebederos para caballos. Alllegar los renos toman agua del primer bebedero que encuentran lleno y cuando comienza a beber,Papá Noel, nota una situación que siempre le resultó indiferente. Cuando el bebedero se vacía,automáticamente un sistema de llenado detecta que el mismo esta vacío y lo vuelve a llenar para

Page 52: Guia de Ejercicios 2004 SO Sin Cont

que los renos sigan tomando. Por el ruido del motor del sistema de llenado, los renos tienen miedo yno toman mientras se llena. Este sistema esta activo las 24 hs. En ese instante llega un estudiante deIngeniería en Sistemas de la UTN y Papá Noel le comenta esta rutina y también le pregunta si sepodrá hacer el pseudocódigo del reno y del sistema de llenado que están sincronizados y libres dedeadlock y starvation.

Para ayudar a Papá Noel a llevar cabo su difícil rutina dispondrá de 80 minutos. Tenga en cuentaque si logra resolverlo, miles de niños estarán contentos por haber recibido sus regalos y tambiénporque se aseguran que volverá el año próximo debido a que usted seguramente no va a matar a losrenos de sed.

RESPUESTASTeóricas.

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

2) Falsa. La diferencia que existe es que en el caso de la variable de condición siempre se suspendeel proceso que la emite.

3) (ST 115) Falsa. Si es posible y se justifica dando una explicación de porque se hace ese cambiode estados.

4) (ST 169) Verdadera.

5) (ST 575) Falsa. Esa limitación la presenta el método servers connected to disks.

Práctica

Papá Noel leyó este libro hace bastante tiempo, y no recuerda con exactitud como trabajacada uno de los algoritmos de planificación de disco, por lo que Ud. debe ayudarlo aencontrar el algoritmo que le brinde la menor longitud media de búsqueda para satisfacer lasentregas de regalos (es necesario indicar la longitud de ambos algoritmos). También deberefrescarle que inconvenientes presentan estos dos algoritmos.

Planificación FCFS: En este algoritmo la primera petición que llega es la primera que se sirve:Pista a la que se Accede 81 142 86 172 89 145 97 170 125Nº de pistas que se atraviesan 19 61 56 86 83 56 48 73 45Rta: 58.5Inconveniente: Los movimientos bruscos de vaivén a los que se ve sometida la cabeza de lectura /escritura, pudiendo llegar a problemas físicos del equipo.

Planificación SSTF: Este algoritmo consiste en atender la petición que requiere el menormovimiento de la cabeza de lectura / escritura desde su posición actual.Pista a la que se accede 97 89 86 81 125 142 145 170 172Nº de pistas que se atraviesan 3 8 3 5 44 17 3 25 2Rta: 12.2Inconveniente: Se puede presentar el bloqueo indefinido. Si las peticiones de pista que se sucedenestán más próximas a la actual, aquellas que se pidieron con anterioridad pueden quedarpostergadas de manera indefinida.

Page 53: Guia de Ejercicios 2004 SO Sin Cont

Es necesario que usted represente la tabla de regalos del proceso P

Podría ser algo así:segmento Longitud (bytes) Dir. base Dir. Fin0 10.240 300.000 310.2401 25.600 200.000 225.6002 2.048 700.000 702.0483 131.072 0 131.072

, y que diga cuál es la dirección del trineo que se corresponde con la posición en la lista deubicaciones que tiene el regalo=2 y el desplazamiento=1000.

Base[2]+desplazamiento = 700000 + 1000 = 701000

Indique además, hasta cuantos paquetes podría llevar Papá Noel y el tamaño máximo de cadauno en un trineo sin limitaciones.

Cant. Max de paquetes: 210 = 1 KTamaño máx. : 222 = 4 M

Suponga que el sistema que utiliza Papá Noel para alocar a los regalos es el best-fit. Indiquequé zona del trineo le asignaría si se solicita un espacio para un regalo de 400 KB.

Si observamos el reparto de la memoria física, vemos que sólo hay un hueco que tiene más de400Kb, y es el espacio que queda a continuación de la dirección física 702048. Por tanto, el huecoserá concedido en esa dirección, o bien justo al final de la memoria física (que también dejaría unúnico hueco compacto).

FINAL DEL 01/03/2003D) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO

su respuesta en no más de 3 líneas. (Condición de aprobación: 3/5).

1. Cuando se va a leer un archivo que es accedido simultáneamente por varios usuarios es conveniente usar el Método de Fuerza Bruta(Bruce-Force).

Page 54: Guia de Ejercicios 2004 SO Sin Cont

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 segmentación simple, la memoria principal no está particionada

E) Conteste en no más de 5 renglones:

¿Qué ventaja(s) hay en tomar tamaños diferentes de quantum en niveles diferentes de un sistema de encolamiento multinivel?

F) Resolver los siguientes ejercicios. (Condición de aprobación 1/2).Nuestro Servidor es un AS/400 modelo 150, sub-modelo 2269, cuyo número de serie es 101492R. Es uno de los “pequeños” de IBM, suPerformance 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 PTFaplicada (Service Pack) es TL00350. Se dispone de 1 solo procesador con 64 MB de memoria RAM y el nivel de seguridad adoptado es30 (Permisos a nivel usuario).En la plataforma AS/400, la memoria física se divide en agrupaciones lógicas llamadas POOLes de memoria. Cada POOL tiene asociadosuno o más subsistemas en el cual corren trabajos y tareas del sistema.Algunos POOLes son específicos 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 impresión.*INTERACT, donde corren los trabajos interactivos (Los que provienen de una consola interactiva y/o emulación 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 tamaño de losPOOLes es estático, Cada POOL queda con el tamaño que el usuario indica y no se modifica, si es 0, o si el tamaño del POOL va a seradministrado dinámicamente 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 losusuarios, para lo cuál nos enfocaremos en el subsistema *INTERACT.

Para dicha tarea hemos puesto el valor del sistema QPFRADJ en 0 , sin ajuste, y mediante la ejecución de un trabajo interactivo(QPADEV0005) que realiza un query en el archivo físico SUELDOS, hemos logrado la siguiente instantánea de Performance, obtenidacon una herramienta de monitorización ON-Line:

Al cambiar el valor de QPFRADJ a 3, la nueva distribución de los POOLes es:

Pool Tamaño*MACHINE 10 MB*INTERACT 20 MB*SPOOL 4 MB*BASE 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 paradesplazamiento. La pila de llamadas del proceso interactivo (QPADEV0005) tiene las siguientes referencias a memoria: 1052 – 12864 –5968 – 658 – 8954 – 147 (decimal)

Si la política de elección de la victima es LRU con asignación fija y alcance local, se pregunta:

1) ¿Se puede afirmar que es conveniente el ajuste automático 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, mientrasque los trabajos tienen prioridades entre 1 y 99 , el menor valor indica la máxima prioridad.A su vez, cada trabajo dispone de un quantum de tiempo, llamado Timeslice. Dicho valor se mide en milisegundos y puede sercualquiera dentro del rango 1 y 9999999.

Page 55: Guia de Ejercicios 2004 SO Sin Cont

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 omisión de Timeslice de cada trabajo dependen del subsistema en el cual fueron creados pero para simplificar las cosastomaremos 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 operación de Entrada/Salida, alcanceel total de su Timeslice, finalice su ejecución, 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 únicodispositivo de entrada / salida, determinar la traza de ejecución y el orden de finalización, mediante un diagrama de Gantt, en formaclara y detallada.

Instante de entrada (milisegundos) Nombre Trabajo (Tipo) CPU E/S CPU E/S CPU0 STRBDMON (BATCH) xxx 3000 xxx 5000 xxx2200 P_USRSPC (INTERACT) xxx 1000 xxx 1000 xxx3500 DLTSPOOL (BATCH) xxx 2000 xxx 800 xxx2600 WRKACTJOB (SYSTEM) xxx 2800 xxx 4000 xxx

RESPUESTASA)

1. FALSO: El método lo que hace es bloquear el archivo cuando se va a actualizar cuando hayacceso paralelo, pero si lo único que voy a hacer es leer un archivo no hace falta bloquearlo.

2. VERDADERO. Además, si determina que el error es fatal, debe mover el proceso al estadode exit y realizar un process switch.

3. a

4. VERDADERO. Es una de las características de la segmentación simple (st 3-322)

B) Los procesos que necesitan servicios mas frecuentes, desde luego procesos interactivos talescomo editores, pueden estar en una cola con un pequeño quantum. Los procesos que nonecesitan pueden estar en una cola con un quantum más grande, requiriendo menos contextswitches para completar los procesos haciendo el uso más eficiente de la computadora.

Pto b Pto aPedidoPágina Offset FrameDesplazamiento Dirección Física PFMapa de Memoria1052 0 1052 0 1052 1052 (0, , )

12864 3 576 1 576 4672 (0,3, )5968 1 1872 2 1872 10064 (0,3,1)658 0 658 0 658 658 (0,3,1)8954 2 762 1 762 4858 SI (0,2,1)147 0 147 0 147 147 (0,2,1)

PedidoPágina Offset FrameDesplazamiento Dirección Física PFMapa de Memoria1052 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)

Page 56: Guia de Ejercicios 2004 SO Sin Cont

147 0 10010011 0 10010011 10010011 (0,2,1)

G) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmacionesFUNDAMENTANDO su respuesta en no más de 3 líneas. (Condición de aprobación: 3/5)

FINAL DEL 02/10/20031. En un sistema de clave pública-privada para autentificar el origen de los datos se hace pública la clave de desencripción del receptor.

2. Cuando un proceso que se encuentra dentro de un monitor realiza una operación wait sobre una variable de condición, el procesoespera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condición.

3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar ensistemas con múltiples procesadores, lo que si pueden ser realizado por los semáforos.

4. El algoritmo de planificación 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. (condición de aprobación 1/2)

1. Dada la siguiente situación se requiere administrar la protección para garantizar la política 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 Dueño Nombre Dueño Nombre DueñoHorarios Carlos R-KUMANA-B Matias ARQ1 mariaTPSO1 Graciela R-KUMANA-C Matias ARQ2 JoseTPSO2 Pepe R-KUMANA-D Diego R-DPACMAN1 Dario

R-KUMANA-A Dario R-KUMANA-E Diego R-DPACMAN2 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 implementación por medio de ACL (Access Control List) y C-List (capability List) y bits deprotección tipo UNIX.

2. Un pequeño centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo códigos delos procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semáforos, para que no produzca Deadlock, niStarvation.

Page 57: Guia de Ejercicios 2004 SO Sin Cont

RESPUESTAS:H) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones

FUNDAMENTANDO su respuesta en no más de 3 líneas. (Condición de aprobación: 3/5)

1. En un sistema de clave pública-privada para autentificar el origen de los datos se hace pública la clave de desencripción del receptor.Falso. Se hace pública la clave de desencriptación del emisor. Sabiendo ésto sólo podemosdesencriptar los mensajes que hayan sido encriptados con la clave privada de encriptación del emisor, quesólo éste conoce, con lo que nos aseguramos que ha sido él.

2. Cuando un proceso que se encuentra dentro de un monitor realiza una operación wait sobre una variable de condición, el procesoespera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condición.

Falso. El proceso espera dentro del monitor a que otro proceso haga un signal sobre lamisma variable de condición.

3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar en sistemas con múltiplesprocesadores, lo que si pueden ser realizado por los semáforos.Falsa: Si usan memoria compartida se pueden usar semáforos tranquilamente y se puedenutilizar TAS para multiprocesadores.

void pasajero(){ while (1) {

llegar_a_la aerosilla()

subir_a_a_aerosilla()

bajar_de_la_aerosilla()

bajar_esquiando()

}}

void aerosilla(){ while(1) {

subir_la_montaña()

bajar_la_montaña()

}}

Page 58: Guia de Ejercicios 2004 SO Sin Cont

4. El algoritmo de planificación 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. (condición de aprobación 1/2)

1. Dada la siguiente situación se requiere administrar la protección para garantizar la política 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 Dueño Nombre Dueño Nombre DueñoHorarios Carlos R-KUMANA-B Matias ARQ1 mariaTPSO1 Graciela R-KUMANA-C Matias ARQ2 JoseTPSO2 Pepe R-KUMANA-D Diego R-DPACMAN1 Dario

R-KUMANA-A Dario R-KUMANA-E Diego R-DPACMAN2 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 implementación por medio de ACL (Access Control List) y C-List (capability List) y bits deprotección tipo UNIX.

2. Un pequeño centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo códigos delos procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semáforos, para que no produzca Deadlock, niStarvation.

FINAL DEL 27/05/2004

void pasajero(){ while (1) { llegar_a_la aerosilla()

subir_a_a_aerosilla()

bajar_de_la_aerosilla()

bajar_esquiando() }} void aerosilla(){ while(1) { subir_la_montaña()

bajar_la_montaña()

}}

Page 59: Guia de Ejercicios 2004 SO Sin Cont

I) Explícitamente defina como VERDADERA o FALSA cada una de las siguientes afirmacionesFUNDAMENTANDO su respuesta en no más de 3 líneas.

1. La organización del flujo de información entre la memoria principal y la secundaria en un ambiente multiprogramado, es unode 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 decodificación cuanto espacio tendrá disponible o donde estará el dato en memoria.

2. esperando para ejecutar.

FALSO: Si la asignación de los procesos es estática, es decir que siempre se le asignan a los procesos los mismosprocesadores se puede dar ese caso.

3. En un esquema del tipo Digital Envelope se realiza una doble encripción para incorporarle mayor seguridad al mensaje atransmitir.

FALSO: Se realiza una doble encripción para poder pasar la clase simétrica y después los sucesivos mensajes seencriptan con esa clave y de esta manera se reduce el tiempo de procesamiento de la encripción.

B) Responda las siguientes preguntas en no más de 5 líneas.

1. De su opinión acerca de la siguiente cuestión: "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 elsiguiente set de procesos:

Proceso Prioridad T. Llegada CPU I / O CPU I / O CPUP1 40 0 2 IMP (4) 3 DISCO (4) 2P2 30 0 3 PLOTTER (2) XP3 20 1 5 PLOTTER (3) 6 DISCO (2) 2P4 10 3 2 IMP (2) 1

Considerando que se tienen tres dispositivos de entrada / salida, los cuales planifican FIFO, que el tiempo que insume elSistema Operativo en realizar un process switch es de 1 ciclo de CPU y que a menor número mayor prioridad, se pide hallar elvalor de X y los tiempos de finalización de todos los procesos para el valor hallado, sabiendo que el Turnaround Time delproceso 2 es menor que el Turnaround Time del proceso 3. Justifique su respuesta.

NOTA: Para la resolución de este ejercicio tenga en cuenta que no se considera el inicio del mismo como un process switch yque ante la simultaneidad de eventos deberá elegir por FIFO al proceso a ejecutar.

2. Cuando la NASA inició el lanzamiento de astronautas, descubrieron rápidamente que los bolígrafos no funcionarían congravedad cero. Para combatir este problema, los científicos de la NASA emplearon una década y 12.000 millonesde dólares desarrollando un bolígrafo que escribiese con gravedad cero, hacia arriba y hacia abajo, bajo el agua, enprácticamente cualquier superficie incluido el cristal y en un rango de temperaturas desde bajo cero hasta más de 300ºC.Para poder realizar dicho experimento era necesaria una correcta sincronización en la máquina que generaba las pruebas.Para ello se definieron los siguientes procesos que se ejecutan concurrentemente en dicha máquina, donde a continuación sedetallan las operaciones faltantes por cada proceso a partir del instante Y del Sistema:

PROCESO A PROCESO B PROCESO C PROCESO D PROCESO E PROCESO F…… …… …… …… …… ……

DOWN (A) UP (B) DOWN (C) UP (A) UP (C) UP (B)DOWN (E) DOWN (C) UP (F) DOWN (B) UP (A) DOWN (C)DOWN (E) DOWN (C) DOWN (C) DOWN (F) DOWN (F) DOWN (G)

UP (C) UP (D) UP (G) DOWN (G) UP (E) DOWN (G)DOWN (C) DOWN (C) DOWN (C) DOWN (E) DOWN (E) DOWN (F)DOWN (B) DOWN (E) DOWN (A) UP (F) DOWN (F) UP (A)DOWN (E) DOWN (E) DOWN (F) DOWN (F) DOWN (C) DOWN (G)DOWN (C) UP (D) DOWN (E) DOWN (C) UP (G) DOWN (B)DOWN (A) DOWN (B) UP (C) DOWN (D) UP (F) DOWN (C)

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

A B C D E F GPA 2 1 0 0 0 0 0PB 0 1 0 0 0 0 0

Page 60: Guia de Ejercicios 2004 SO Sin Cont

PC 1 0 0 0 0 0 0PD 0 0 0 0 0 0 0PE 0 0 1 0 0 0 0PF 0 1 0 0 0 0 1

Se pide que demuestre si se puede llegar a producir deadlock, analizando el estado del Sistema. Justifique ampliamente surazonamiento.Si hubiera formado parte del equipo Ruso, seguramente no hubiera gastado tanto tiempo en realizar estos análisis ya queutilizaron un lápiz. (Sin comentarios ...)

J) Respond

a las siguientes preguntas en no más de 5 líneas.

1. Existen distintos puntos de vista ante esta cuestión, depende desde que punto de vista sea, se puede decirque el SO es un proceso “común y corriente” o es un proceso “privilegiado”, pero siempre se debería deconcluir que es un proceso, ya que por un lado es un programa en memoria que es ejecutado por el procesador,definición de proceso.

2. La idea es básicamente que contesten que el diagrama de 5 estados surge porque en el diagrama de 2estados había solamente una única cola de NOT RUNNING y se tenia que recorrer esa cola buscando losprocesos que estén listos para ejecutar, ya que en esa cola estaban todos mezclados, los listo y losbloqueados, con lo cual se producía un overhead en realizar esa búsqueda. Es por eso que se la cola de NOTURNG 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 X X X X X X XP4 X X I I X P3 X X X X X P P P X X X X X X DP2 X X X P P P1

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

X = 1Turnaround P3 = 29 - 1 = 28

Tiempos deFinalización de los

procesosTurnaround P2 = 26 - 0 = 26 P1 45 P3 29

P2 26 P4 10

X 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/2003L) Explícitamente defina como VERDADERA o FALSA cada una de estas afirmaciones

FUNDAMENTANDO su respuesta en no más de 3 líneas (condición de aprobación 3/5).

1. Cuantos más procesos hay activos en memoria, más fallos de página (Page Fault) existen y mejor es el uso delprocesador ya que aumenta la multiprogramación.

Para aprobar el examen deberá tener correctas, como mínimo, 3 preguntas teóricas y 1 ejercicio práctico.

Page 61: Guia de Ejercicios 2004 SO Sin Cont

2. Siempre es conveniente poseer un sistema de encripción de passwords que sea reversible.

3. En la TLB es posible identificar a que proceso pertenece cada página.

4. En el algoritmo de planificación de disco LOOK la cabeza de escritura / lectura empieza en un extremo del disco y semueve hacia el otro, sirviendo las solicitudes a medida que llega a cada pista, hasta que se encuentra en el otro extremodel disco, momento en el cual se invierte la dirección del movimiento y continúa 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 anfitrión paraexistir.

C) Resolver los siguientes ejercicios (condición de aprobación 2/3).

FINAL DEL 06/12/031. La gestión de memoria de un sistema operativo debe permitir que sea posible ejecutar concurrentemente 3 procesos,donde los tamaños en bytes de cada uno de los segmentos que forman parte de sus imágenes de memoria son lossiguientes:

PROCESO CODIGO DATOS PILA

A 16384 8700 8192

B 2048 1000 1024

C 4096 2272 2048

Además, se sabe que se dispone de una memoria física de 16 Kbytes y que el espacio de direcciones del sistema es de64 Kbytes.

Se pide:1.1) Determinar si son viables tamaños de página de 1024 bytes y 512 bytes suponiendo que una página no puede

contener partes de dos segmentos diferentes (código, datos o pila).1.2) Suponiendo de que ambos tamaños de página sean posibles, justificar qué tamaño debería utilizar el sistema de

paginación si se tiene en cuenta la fragmentación interna producida.1.3) Si se desea que las entradas de la tabla de páginas dispongan de 3 bits para referenciar el Frame de cada página,

¿qué tamaño de página debería utilizarse sin tener en cuenta la ejecución de los procesos A, B y C?

2. Dado el estado de un sistema, mediante el siguiente grafo de asignación de recursos:

Suponiendo que los procesos ya no piden más recursos durante el resto de su ejecución y no liberarán sus recursoshasta su finalización, indique si puede llegar a existir Deadlock. En caso negativo, de una secuencia de finalización de losprocesos; caso contrario diga cuáles procesos se encuentran en interbloqueo y proponga una solución.

P1 P3P4 P2

R1

R2

R3

Page 62: Guia de Ejercicios 2004 SO Sin Cont

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 controlarel lavarropas o que nos pueda hacer el desayuno a la mañana temprano con el solo hecho de programarla. Se sabe queen este tipo de sistemas la velocidad de respuesta tiene que ser muy alta. Como futuros Ingenieros en Sistemas deInformación se nos pide que evaluemos el planificador que mejor se adapte a las necesidades del cliente. Para elloshemos tomado la siguiente muestra de los procesos que habitualmente vamos a correr y que se adaptan a la dinámicadel uso que se le va a dar a nuestra PC, en lo que respecta al procesamiento de los datos.

NOTA: Para la resolución de este ejercicio deberá evaluar como mínimo dos algoritmos de planificación:uno PREEMTIVE y uno NONPREEMTIVE. Tenga en cuenta que para que se considere valido el punto deberáde JUSTIFICAR AMPLIAMENTE la decisión tomada.

Solución:Teoría:

PARTE A:

1.VERDADERO. No siempre... por belady. Hay un limite.2. FALSO3. FALSO4. FALSO

PARTE B:

1. Parásitos, los residentes en memoria, los residentes en el sector de booteo, polimórficos e invisibles.En ingles: Parasitic, Memory-resident, Boot sector, stealth y Polymorphic.

Práctica:

1.1. Sabiendo que una página no puede contener partes de dos segmentos diferentes (código, datos o pila), se obtienen los siguientesvalores:

PROCESO A Nº bytes Nº páginas1024 bytes

Fragmentacióninterna

Nº páginas512 bytes

Fragmentacióninterna

CODIGO 16384 16 0 32 0

DATOS 8700 9 516 17 4

PILA 8192 8 0 16 0

PROCESO B Nº bytes Nº páginas1024 bytes

Fragmentacióninterna

Nº páginas512 bytes

Fragmentacióninterna

CODIGO 2048 2 0 4 0

DATOS 1000 1 24 2 24

PILA 1024 1 0 2 0

PROCESO C Nº bytes Nº páginas1024 bytes

Fragmentacióninterna

Nº páginas512 bytes

Fragmentacióninterna

CODIGO 4096 4 0 8 0

DATOS 2272 3 800 5 288

PILA 2048 2 0 4 0

- Con páginas de 1024 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria:

16+9+8+2+1+1+4+3+2 = 46 páginas

Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el número de páginas posibles sería:

65536 / 1024 = 216 / 210 = 26 = 64 páginas.

Page 63: Guia de Ejercicios 2004 SO Sin Cont

Para poder ejecutar los procesos se necesitan 46 páginas al menos, y se dispone de 64 por lo que es posible utilizar páginas de 1024bytes.

- Con páginas de 512 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria:

32+17+16+4+2+2+8+5+4 = 90 páginas

Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el número de páginas posibles sería:

65536 / 512 = 216 / 29 = 27 = 128 páginas.

Para poder ejecutar los procesos se necesitan 90 páginas al menos, y se dispone de 128 por lo que es posible utilizar páginas de 512bytes.

Por tanto, es viable utilizar cualquiera de los dos tamaños de página.

1.2. Teniendo en cuenta la fragmentación interna producida se elegirá aquel tamaño de página en el que se desperdicie menosmemoria en las últimas páginas:

Con 1024 bytes ⇒ 516+24+800=1340 bytes desperdiciadosCon 512 bytes ⇒ 4+24+288=316 bytes desperdiciados

Por tanto se elegirán páginas de 512 bytes.

1.3. El número de marcos de página posibles en el sistema en función del tamaño de página es:

Páginas de 1024 bytes ⇒ 16384 / 1024 = 214 / 210 = 24 ⇒ Se necesitan 4 bits para hacer referencia al marco de página.Páginas de 512 bytes ⇒ 16384 / 512 = 214 / 29 = 25 ⇒ Se necesitan 5 bits para hacer referencia al marco de página.

Por tanto, ninguno de los dos tamaños de página propuestos es adecuado para los 3 bits de referencia al marco de página. Lo ideal espoder referenciar todos los marcos de página posibles en memoria física, por lo que se diseñaría un sistema con 23 = 8 marcos ⇒16384 / 8 = 2048 ⇒ Se deberían utilizar páginas de 2048 bytes.

2) No se produce Deadlock. Posibles Trazas de ejecución: P4, P3, P1, P2 y P4, P3, P2, P1.

3) El algoritmo que hay que elegir en base a los que evalúen es el que haga que los procesos finalicen mas rápido, debido al tiempo derespuesta alto.