Está en la página 1de 63

Sistemas Operativos

GUA DE EJERCICIOS 2004


Director de Ctedra : Lic. Carlos R. NEETZEL
AGRADECIMIENTO:
La Ctedra de Sistemas Operativos agradece especialmente la colaboracin de los alumnos (en especial el
trabajo de recopilacin efectuado por Mariano E. Sciuto) y ayudantes de la Universidad Tecnolgica
Nacional ( Fac. Regional Bs. As.) que han propuesto los ejercicios y las soluciones de los captulos mas
importantes del libro Notas Sobre Sistemas Operativos. Tambin mi reconocimiento por la revisin
efectuada por el Ing. Leonardo Catalano.
La presente gua est disponible para todos aquellos alumnos que previamente decidan realizar los
ejercicios de la Ctedra, puedan comparar sus resultados y as servir de gua de resolucin y correccin de
los mismos.
Esta gua de ejercicios han sido formulados en colaboracin con los ayudantes de la ctedra, como
ejercitacin prctica adicional a la de la bibliografa de la materia. Constituyen ejercicios modelo extrados
de finales anteriores, por lo que es importante utilizarlos como gua de estudios.
Por ltimo, sugerimos que los alumnos traten de realizar un esfuerzo personal en resolver todos los
ejercicios de la gua sin la ayuda de las soluciones propuestas, dado que el facilismo y el copiarse no
aporta un aprendizaje.
Resumen de Conceptos Bsicos
sobre S.O.
Los conceptos aqu explicados dan los conocimientos, trminos y frmulas necesarios para poder
resolver los ejercicios que siguen a continuacin. Estos son pequeos puntos tericos que facilitan la
resolucin de los problemas; desde ya que se recomienda completar esta teora con la de alguna
bibliografa.
I. Planificacin
Comenzando por este tema, podemos decir que en un sistema encontramos bsicamente 4 tipos de
planificacin: Una planificacin a largo plazo (la cual se encarga de determinar y organizar los nuevos
programas que van a ser admitidos al sistema), una a mediano plazo (encargada del swapping
(intercambio) de los procesos, entre la memoria principal y la virtual), una planificacin a corto plazo (el
famoso dispatcher, quien determina cual es el prximo proceso que va a tomar la CPU), y finalmente
la planificacin de E/S.
Para los ejercicio de planificacin propiamente dicho, nos centraremos bsicamente en la
planificacin a corto plazo, la cual se basa en una serie de algoritmos, los cuales vamos a repasar en
esta pequea introduccin para tenerlos en claro; pero antes, una pequea aclaracin acerca de los
trminos a utilizar:
* Non preemtive = Apropiativo
* Preemtive = No Apropiativo
* CPU Burts = Utilizacin del procesador entre dos E/S. Obviamente, cuando un proceso
comienza, el tiempo utilizado hasta la primera E/S tambin es un Burst de CPU.
Bien, veamos entonces los algoritmos que vamos a utilizar:
FCFS: Es el famoso FIFO; es decir, los procesos usan la CPU en el orden que llegaron. Es un
algoritmo apropiativo, es decir, a medida que llegan los procesos van usando la CPU y cuando
hacen uso de sta, no la abandonan hasta que se bloqueen por E/S o finalicen.
Round Robin: El Round Robin viene siempre acompaado por un slice de tiempo, es decir, un
tiempo determinado que tienen los procesos para ejecutar; finalizado ese tiempo el proceso
abandona la CPU. Debido a esta caracterstica, el algoritmo es no apropiativo. Obviamente que el
proceso puede abandonar antes la CPU en caso de que finalice o se bloquee por una E/S; caso
contrario (que se le termina el tiempo), vuelve a la cola de listos.
Round Robin Virtual: Es muy similar al anterior, pero hace esta diferencia: en vez de tener una
cola de listo, tiene dos; una cola clsica para los procesos listos y una nueva cola de listos al que
van a parar los procesos cuando finalizan su E/S. Esta segunda cola tiene mayor prioridad que la
primera.
El objetivo de este algoritmo es realizar un uso mas equitativo de la CPU cuando existen procesos
que tienen mas burst de CPU que de E/S, y as mismo hay procesos que tienen mas burst de E/S
que de procesador.
Shortest Process Next (SPN): Es un algoritmo apropiativo. Cuando los procesos llegan a la cola
de listos, stos se ordenan segn quien tiene el menor burst de CPU. El que queda a la cabeza, es
quien pasa a usar la CPU.
Shortest Remainig Time (SRT): Es muy similar al anterior, pero este s es un algoritmo no
apropiativo. En la cola se siguen ordenando segn quien tenga el menor burst de CPU, pero si se
da el caso de que en un momento hay un proceso ejecutando y llega uno nuevo, se determina si el
proceso que est usando la CPU actualmente le falta menos del uso que va a hacer el nuevo
proceso; si es menor, sigue ejecutando, si le queda ms, el proceso es desalojado del procesador y
llevado nuevamente a la cola de listos.
Prioridades: Pude tomarse como apropiativo o no apropiativo, salvo que lo expresen
especficamente. Cada proceso tiene una prioridad y se orden en la cola de mayor a menor
prioridad y pasan a usar la CPU en ese orden. En el caso de ser apropiativo, el proceso que pasa a
ser uso del procesador queda ah hasta que se bloquee o finalice. En caso de ser no apropiativo, si
llega un proceso con mayor prioridad, desaloja al que actualmente est haciendo uso del
procesador, y este nuevo proceso toma la CPU.
Feedback: Es como el algoritmo de prioridades, pero se tiene una cola por cada una de las
prioridades. Cada cola puede manejarse por un algoritmo Round Robin, teniendo un slice de
tiempo para cada cola que aumenta a medida que disminuye la prioridad, es decir, la cola de mayor
prioridad va a tener un quantum menor al de la prioridad inmediata inferior y as sucesivamente;
Esto se realiza para que los procesos que llegan a la ltima cola son los mas viejos y por lo tanto se
les da mas tiempo para que finalicen.
II. Sincronizacin / Semforos / Alg. Del Banquero
SEMAFOROS
Recordemos que un semforo es un mecanismo provedo por un lenguaje de programacin; estos
semforos no son ni mas ni menos que variables por las cuales los procesos se envan seales.
Los semforos se manejan mediante tres operaciones bsicas:
- Una para inicializarlo
- Una para decrementarlo
- Una para incrementarlo
Estas tres operaciones son primitivas, atmicas; es decir, no pueden ser interrumpidas. Para
decrementar un semforo podemos encontrar la primitiva: P() o Down() y para incrementarlo, la primitiva
V()o Up(). Si bien realizan lo mismo, su construccin no es la misma, por lo tanto se deben utilizar en esa
combinacin; si utilizo P debo utilizar V (y viceversa) y si utilizo Down s o s debo utilizar Up (y viceversa).
Mediante estas variables los procesos proceden a utilizar los recursos incrementando y
decrementando los semforos. Cuando un proceso decrementa el valor del semforo y est queda en un
valor negativo (<0), significa que los recursos controlados por dicho semforos estaban siendo utilizados y
por lo tanto el proceso debe esperar a que alguno se desocupe, para lo cual se bloquea y queda a la espera
de tener disponibilidad. Cuando un proceso incrementa el valor del semforo y ahora ste queda en un valor
positivo o nulo (>=0), desencola (despierta) a alguno de los procesos que estaban a la espera del recurso,
por lo cual el proceso deja de estar bloqueado y procede a continuar su ejecucin.
Vale aclarar dos cosas: por un lado, cuando un proceso sale de la cola de espera a hacer uso del
recurso no vuelve a decrementar el semforo sino que pasa directamente a la utilizacin del mismo. La
disminucin del valor del semforo ya la realiz cuando intent acceder al recurso y qued bloqueado; en la
cola slo estaba a la espera de que se libere dicho recurso. Por otro lado, podemos ver que cuando el
semforo tiene un valor negativo, el mdulo del mismo nos indica la cantidad de procesos encolados (a la
espera de la utilizacin del recurso). Teniendo en mente esto, podemos completar la idea anterior: Si hay
dos procesos encolados el valor del semforo ser =-2, cuando el recurso se libera el valor del semforo
pasar a ser =-1 , lo cual es correcto ya que el proceso a la cabeza de la cola har uso del recurso y ahora
quedar un proceso esperando.
De esta forma, podemos ver como las dos ideas se complementan: cuando el recurso se libera el
valor del semforo pasa a ser =-1 y el proceso que estaba esperando a la cabeza de la cola puede utilizarlo
pero no vuelve a decrementar el semforo; si lo hiciera, el semforo pasara a valer nuevamente =-2 lo cual
no es coherente ya que hay un solo proceso esperando en la cola.
ALGORITMO DEL BANQUERO
Este algoritmo nos permite determinar si un sistema queda en un estado seguro o inseguro
analizando las peticiones que van a realizar los procesos; por lo que se requiere conocer de antemano las
solicitudes de recursos de cada uno de ellos.
Vamos a decir que un sistema queda en un estado seguro si existe una traza de ejecucin en la
cual todos los procesos finalizan, es decir, se tiene los recursos disponibles para poder satisfacer las
solicitudes. Aunque suene ms que lgico, un estado que no es seguro, entonces es inseguro; lo que
significa que si no puedo realizar una traza en el que todos los procesos finalicen, el estado del sistema es
inseguro.
Otra cosa a tener en cuenta es que un estado inseguro no asegura que los procesos estn en
deadlock. El estado inseguro alerta que si la secuencia se ejecuta de una manera determinada, los
procesos pueden llegar a quedar interbloqueados, pero no significa que s o s va a suceder. Ponindolo en
claro: un estado inseguro no afirma que los procesos van a desembocar en un deadlock; puede suceder
que en el momento de ejecucin un proceso sea abortado y libere sus recursos, por lo que quedarn
disponibles y tal vez se pueda satisfacer las peticiones del resto de los procesos.
SINCRONIZACION
En cuanto a la sincronizacin, bsicamente el objetivo que se persigue es poder asegurar la
exclusin mutua; es decir, que solo un proceso pueda entrar en su seccin crtica (la cual hace uso de algn
recurso crtico). Entindase por recurso crtico a todo aquel que puede ser accedido por un proceso a la vez,
ya sea una variable, un dispositivo, etc.
III. Memoria Central / Memoria Virtual
MEMORIA CENTRAL
En cuanto a la memoria principal, bsicamente es como organizamos el espacio disponible en sta:
si utilizamos particiones fijas, particiones variables, buddy-system, paginacin o segmentacin.
Cuando utilizamos particiones variables, al introducir y remover bloques comienza a producirse
fragmentacin externa. Para poder hacer un uso mas eficiente de los espacios de memoria que comienzan
a quedar libres, se utilizan diferentes algoritmos, los cuales repasamos aqu rpidamente:
First Fit: Comienza a buscar en la memoria un bloque libre en el que quepa la particin. Cuando lo
encuentra, lo introduce ah.
Best Fit: Busca en toda la memoria, pero no se conforma con el primero que encuentra, sino que
busca el que mejor le calce; es decir, el que menos espacio desperdicie.
Worst Fit: Es prcticamente el contrario al anterior. Busca, por decirlo de alguna forma, el bloque
libre ms grande posible para colocar al nuevo bloque; es decir, el que mas espacio desperdicie.
Esto lo hace para que quede un nuevo bloque libre lo mas grande posible.
Next Fit: Es parecido al Fist Fit. La diferencia es que la bsqueda de espacios libres la realiza a
partir de la ubicacin del ltimo bloque; a partir de ah, el primer lugar que encuentra para ubicar el
bloque lo ubica.
Si utilizamos el algoritmo de buddy-system (o sistema de compaeros), lo que realiza es lo
siguiente: va dividiendo a la memoria en mitades, y cada mitad la sigue dividiendo en mitades, as hasta
llegar a una mitad cuyo tamao no alcanza para ubicar el bloque, en ese caso, vuelve a la divisin
anterior (une los pedazos que parti en el paso anterior) para ubicar el bloque. Cuando un bloque se
libera, si la otra mitad contigua tambin est libre, entonces une ambas mitades para poder formar un
bloque libre mas grande; es decir, comienza a agrupar las divisiones libres.
En la tcnica de paginacin, el proceso se dividen en pginas y la memoria en frames; tanto los
frames como las pginas tienen el mismo tamao y suelen ser potencias de 2. A cada proceso se le
adhiere una tabla de pginas donde la entrada de cada una de las pginas contiene el nmero de frame
en el cual estn ubicadas.
La tcnica de segmentacin es similar a la paginacin, con la diferencia de que el programa se
divide en segmentos que suelen tener diferentes tamaos. Los procesos tienen tambin una tabla de
segmentos, y cada entrada de segmento dice la direccin base y el tamao de dicho segmento. Si el
desplazamiento referenciado en la instruccin es mayor al tamao del segmento, la direccin se toma
como invlida; caso contrario se suma a la direccin base del segmento y se obtiene la direccin real.
Tanto en la tcnica de paginacin como en la de segmentacin es necesario tener en cuenta el
formato que adquiere la instruccin. Es decir, supongamos que se utiliza paginacin: en este caso, la
direccin lgica estar formada por un nmero de pgina (bits ms a la izquierda) y el resto
representar al desplazamiento (Offset) dentro de esa pgina. El nmero de pgina ser utilizado como
entrada en la tabla de pginas del proceso para as obtener el nmero de frame, de esta manera la
direccin fsica estar formada por el nmero de frame y el mismo desplazamiento que antes.
Bsicamente:
Direccin lgica: #Pag / #Offset
Direccin fsica: #Frame / #Offset
Teniendo en cuenta este concepto podemos deducir que el tamao de cada pgina (o el tamao del
frame en memoria) estar dado por el tamao del desplazamiento; es decir, si el desplazamiento ocupa
8 bits, entonces el tamao de cada pgina ser de 2^8 =256 bytes.
MEMORIA VIRTUAL
En memoria virtual se utiliza ya sea la tcnica de paginacin, de segmentacin o una combinacin
entre ambas. En cualquier de los casos, a las tablas de segmentos o de paginacin de los procesos se
les suele incorporar un bit de presencia y un bit de modificacin.
Cuando se hace referencia a una pgina (o segmento) que no tiene frame asignado, es decir, la
pgina no est cargada en memoria, se produce un PAGE FAULT. Es en este momento cuando la
pgina es trada de disco a memoria y el bit de presencia de la entrada a esa pgina es modificado. Lo
mismo sucede con el bit de modificacin.
Cuando se trae de memoria virtual la pgina que ha sido referenciada, suele suceder que hay que
escoger una vctima a ser reemplazada (en el caso de no tener frames libres), es decir, alguna de las
pginas que actualmente est ocupando un frame debe ser desalojada. Para elegir a esta vctima se
suelen tener diferentes algoritmos:
Optimo: En s es un algoritmo terico. Se basa en determinar que pginas sern referencias con
menor frecuencia en el futuro, las cuales son candidatas a ser desalojadas ya que no sern
utilizadas brevemente y por lo tanto no producirn demasiados PAGE FAULTS. Como se debe
predecir de alguna forma el futuro, es un algoritmo que no suele ser aplicado.
FIFO: Es el bsico algoritmo ya conocido. Las pginas van siendo reemplazadas en el orden en que
fueron llegado.
Last Recently Used (LRU): Escoge las pginas que mas tiempo han permanecido en memoria.
Last Frecuently Used (LFU): Escoge las pginas que han tenido menor nmero de referencias.
Reloj: Suele tener un bit de uso por pgina. Cuando una pgina es referenciada, este bit suele
ponerse a 1 (uno). Cuando se debe elegir una pgina para reemplazar se recorren los bits de todas
las pginas; aquellos que se encuentran en uno se ponen a cero y aquellos que ya estaban en
cero indican que la pgina puede ser extrada.
Tambin hay que tener en cuenta que las polticas de reemplazo se realizan sobre el conjunto
residente de un proceso, esto es, las pginas que actualmente se ubican en memoria. Este conjunto
residente puede ser fijo (el nmero de paginas siempre es el mismo) o variable (puede tener ms o menos
pginas en memoria). Por otro lado, el alcance del reemplazo puede ser local (se reemplazan las pginas
del proceso que produjo el fallo) o global (se consideran todas las pginas residentes en memoria).
Teniendo en cuenta estas alternativas, veamos que posibilidades pueden ser aplicadas:
Asignacin fija, alcance local: Se reemplazan alguna de las pginas del proceso que produjo el
fallo.
Asignacin variable, alcance local: Se consideran las pginas del proceso que produjo el fallo,
pero se utilizan diferentes criterios (como el PFF) para determinar si le quito un frame al proceso o
le sumo uno ms (le agrego una pgina mas en memoria).
Asignacin fija, alcance global: Imposible de implementar. Como hemos visto, si la asignacin es
fija el nmero de pginas del proceso no puede cambiar. Si consideramos todas las pginas de
memoria, puede pasar que al proceso se le sume o se le quite un frame ms, lo cual contradice lo
anterior.
Asignacin variable, alcance global: Se toman en cuenta todas las pginas residentes en
memoria (no solo las del proceso que produjo el Page Fault) y se reemplaza alguna segn el
algoritmo utilizado. El nmero de frames asignados al proceso puede crecer o puede disminuir.
Vale aclarar tambin que cuando se hace referencia en el alcance global de considerar todos los
frames en memoria, estamos tomando en cuenta a todos los frames disponibles (estn utilizados o no)
y que no son frames bloqueados. Debe tenerse en cuenta que el sistema operativo (o al menos una
parte de l) siempre reside en memoria y como tal, ocupa frames en la misma; la diferencia est en que
reside en frames bloqueados, los cuales no pueden ser considerados para reemplazar o asignar
pginas.
Sobre la paginacin de procesos podemos hacer referencia tambin a un fenmeno
denominadoAnomala de Belady. Est anomala se presenta cuando al aumentar la cantidad de
pginas por procesos (se le asignan mas frames), tambin aumenta la cantidad de PAGE FAULT.
Obviamente, esta es una situacin inesperada ya que al parecer, si se le das mas memoria a un
proceso, cada vez que haga alguna referencia hay ms probabilidades de encuentre esa referencia en
memoria, sin embargo, esto no sucede y los fallos de pginas se incrementan.
IV. Entrada Salida / i-Nodos
Los ejercicios de E/S e I-nodos no son los ms complicados, pero tienen una serie de frmulas y
consideraciones a tener en cuenta que tratar de explicar lo ms claramente posible.
ENTRADA-SALIDA
Con respecto a E/S, o su trmino en ingls (I/0), lo que usualmente se suele pedir es el tiempo que
se tarda en atender a los pedidos y el orden en que stos fueron atendidos. Para poder calcular esto,
necesitamos varios datos: el tiempo que tarda la cabeza en pasar de una pista a otra (o de cilindro a
cilindro), el tiempo que tarda en pasar de sector a sector y el tiempo de transferencia.
- Tiempo de bsqueda: Es el tiempo que tarda en pasar de cilindro a cilindro, o de pista a pista.
Usualmente este dato viene en el problema.
- Tiempo rotacional: Es el tiempo que tarda en pasar de sector a sector. Suele venir como dato,
o suele informar las revoluciones del disco. En este ltimo caso, supongamos que nos dicen que
el disco gira a 6000 rpm. Entonces, con una regla de tres simple podemos calcular cuanto tarda
en dar una vuelta:
6000 vueltas______________1 min
1 vuelta______________ 0.0016 min =0.01 seg =10 ms
Si una pista tiene, por ejemplo, 10 sectores, entonces dividimos el tiempo que tarda en dar una
vuelta (pasar los 10 sectores) por la cantidad de sectores y nos da el tiempo que tarda en pasar de
sector a sector. En nuestro caso: 10 ms / 10 sect. =1 ms/sector.
- Tiempo de transferencia: Cuando se informa la capacidad de los sectores, debemos calcular
el tiempo que le lleva a la cabeza leer la informacin del sector; lo que se denomina tiempo de
transferencia, y se calcula como:
T=b / r * N b =cant. de bytes a transferir
r =revoluciones por segundo
N =cant. de bytes por pista
Muy bien, conocemos como calcular los tiempos, lo que necesitamos ahora es saber cuantos
cilindros se recorren de pedido en pedido para poder aplicarle el tiempo de bsqueda y cuantos
sectores hay que recorrer para atender el pedido. Para poder hacer esto, necesitamos tener las
direcciones fsicas de los pedidos, las cuales suelen venir expresadas como direcciones lgicas.
Convertir una direccin lgica a fsica representa saber que cilindro, que sector y que cabeza lo lee.
Para ello necesitamos conocer la cantidad de cilindros, sectores y cabezas (o platos) que tenemos.
Volviendo nuevamente a los 10 sectores por pista, y que tambin tenemos 50 cilindros y 3 platos (lo
que seran 6 cabezas), primero debemos realizar las siguientes cuentas:
Sectores por plato x cant. de platos =20 x 3 =60
Recordemos que de un lado del plato tenemos 10 sectores, pero en la cara opuesta tenemos 10
sectores mas, por lo tanto, en un plato tenemos 20 sectores. Luego, tambin calculamos:
Sectores x pista =10 (ya lo sabamos por dato)
Una vez calculado esto, podemos comenzar a convertir las direcciones lgicas a fsicas.
Supongamos la direccin lgica 1305. Lo primero que hacemos es dividir la direccin por los sectores
por plato x cant. de platos:
1305 / 60 = Esta divisin da un cociente (C), del cual se toma la parte entera y un resto
(R)
C =representa el cilindro de la direccin
El resto, dado por R, lo divido nuevamente, pero ahora por los sectores por pista:
R / 10 =Esta divisin da un nuevo cociente (C), del cual se toma la parte entera y un resto
(R)
C =representa la cabeza que lee a la direccin
R +1 =representa el sector
El DOS hace esta conversin: El nmero de sector lgico se numera a partir del cero. Los
sectores BIOS (para distinguirlos de los lgicos) se numeran a partir del 1.
Volviendo a nuestra direccin 1305, si la dividimos por 60:
C=21
R =45
Dividimos R (=45) por 10:
C =4
R =5
=>1305 =(21,4,6) siendo (cilindro,cabeza,sector)
Ahora ya tenemos las direcciones fsicas y los tiempos calculados, solamente nos falta ver cuanto se
tarda en pasar de una direccin a la otra. Para ello vamos a suponer dos direccin lgicas ms: 469 y
1040 cuyas direcciones fsicas son (7,4,10) y (17,2,1) respectivamente. Entonces supongamos que se
atienden los pedidos en ese orden:
DIR: 1305 469 1040
CIL: 21 7 17
SECTOR: 6 10 1
* 1305 469: Supongamos que la direccin 1305 fue un pedido que se atendi, por lo tanto, cuando la
cabeza ley ese sector qued al final del sector 6 (comienzo del 7). Para pasar a la direccin 496 debe
atravesar 14 cilindros (21-7 =14), que si lo multiplicamos por 1 ms que tarda de pasar de pista a pista, nos
da un total de 14 ms. Ahora bien, durante esos 14 ms, el disco sigui girando, y los sectores siguieron
pasando. Si tard 14 ms y tardo 1 ms en pasar un sector, significa que pas 14 sectores (es decir, una
vuelta y 4 sectores ms). Como me encontraba al principio del sector 7, cuando peg una vuelta (pas 10
sectores) qued en el mismo lugar, pero como tard 4 ms ms (4 sectores ms) me muevo hasta el
comienzo del sector 1. Pero como el pedido de la direccin 469 est en el sector 10, y yo estoy al comienzo
del sector 1, debo volver a pegar toda la vuelta (lo que sera el tiempo rotacional de bsqueda del sector)
hasta ponerme al comienzo del sector 10, lo cual me lleva 9 ms (tengo que atravesar 9 sectores). Entonces,
lo que tarde en pasar de la direccin 1305 a la 469 fueron 14 ms +9 ms =23 ms. Para atender este pedido,
leo el 10 sector y la cabeza queda nuevamente al comienzo del sector 1.
* 469 1040: Ahora me encuentro al comienzo del sector 1 ya que acabo de atender el pedido anterior;
para atender el siguiente pedido realizo el mismo anlisis que antes. Tengo que atravesar 10 cilindros (17-7
=10), cada uno me lleva 1 ms, entonces tardo 10 ms. Durante esos 10 ms el disco sigui girando; como
tardo 1 ms en pasar de sector a sector, esos 10 ms me hicieron pegar una vuelta entera (10 sectores) y
volv a quedar nuevamente al comienzo del sector 1. Como el pedido que tengo que atender est en el
sector 1, y me encuentro al inicio de ste, ya estoy listo para leerlo por lo que el tiempo rotacional es nulo.
Por lo tanto, el tiempo que me llev atender este pedido fueron solamente 10 ms, que si los sumo a los 23
ms del pedido anterior, el tiempo total para atender todos los pedidos fue de 33 ms.
Este es el anlisis que se debe realizar cuando se deben atender pedidos. Por un tema de
simplicidad no consideramos aqu el tiempo de transferencia, es decir, si tengo el tamao en bytes de los
sectores, cuando llego al comienzo del sector solicitado, debo atender el pedido. El tiempo que tarda esta
atencin se calcula con la frmula que expres al comienzo de la explicacin de E/S, y que est
denominada como Tiempo de transferencia. Por supuesto que la suma de todos los tiempo (lo que tard
en atender cada uno de los pedidos y lo que tardo en transferirlos) me va a dar el tiempo total de atencin.
Puede existir el caso en que simplemente se tenga como dato el tiempo que se tarda en pasar de
una pista a la otra y se pida el tiempo promedio de atencin. En tal caso, se calcula cuantas pistas se
atravesaron entre pedido y pedido (como lo calculamos anteriormente, realizando la resta de los cilindros y
multiplicando por el tiempo que se tarda de pista a pista), se suman todos estos tiempos y se divide por la
cantidad de pedidos.
Otro punto a tener en cuenta en las solicitudes de E/S es en el orden en que se atienden. Para ello
existen diferentes algoritmos que se detallan a continuacin:
FIFO: Como siempre, tenemos un algoritmo FIFO. Los pedidos se atienden en el orden en que
llegan.
Shortest Seek Time First: Se atiende al pedido que mas cercano est a la posicin actual del
brazo; en otras palabras, el que hace un menor desplazamiento del brazo. Puede producir inanicin
de aquellos pedidos que estn en direcciones alejadas.
Scan: Va escaneado las pistas del disco. Es decir, atiende a los pedidos movindose en una
direccin hasta que llega al lmite del disco, cuando no hay mas pistas, comienza a atender los
pedidos en la direccin contraria.
C-scan: Es igual que el anterior, pero no sube y baja sino que siempre atiende los pedidos en una
direccin. Cuando llega al final, baja (o sube) abruptamente hasta el extremo contrario y vuelve a
atender los pedidos en la misma direccin. El tiempo que le lleva realizar el retroceso se considera
despreciable.
Look: Es igual que el Scan, pero no llega hasta el final del disco para comenzar a moverse en la
direccin contraria sino que cambia de direccin cuando atiende el ltimo pedido en ese sentido.
Supongamos que el brazo est ascendiendo, cuando atiende el ltimo pedido en esta direccin,
entonces comienza a descender y atender solicitudes en esta nueva direccin hasta que llega a la
ltima y vuelve a cambiar de sentido.
C-Look: Es igual que el C-scan, pero utiliza el mismo criterio que el Look. Cuando atendi el ltimo
pedido en una direccin, desciende (o asciende) abruptamente hasta la primera direccin a atender
en el sentido que utiliza. Para dejarlo ms claro, supongamos que est atendiendo una solicitud en
la direccin 150, y sta es la ltima en direccin ascendente, entonces baja abruptamente hasta el
prximo pedido ms bajo (supongamos que hay un pedido en la direccin 15) y a partir de este
pedido comienza a ascender nuevamente.
N-scan: Es el algoritmo Scan pero no se tiene una nica cola para encolar los pedidos, sino que se
tienen N colas. Cuando se estn atendiendo los pedidos de una cola, los nuevos que lleguen NO
pueden ingresar a la cola en uso, se deben encolar en alguna de las otras colas. Cuando se
atendieron todos los pedidos de una lista, se pasa a atender los pedidos de otra con el mismo
criterio (no se pueden encolar nuevos pedidos en esta nueva cola atendida)
F-scan: Es un caso particular del N-scan; solo que tiene 2 colas. Los criterios a tener en cuenta son
los mismos: cuando se atiende una cola, los nuevos pedidos se encolan en la otra.
I-NODOS
Realicemos un repaso de los tipos de archivos que reconoce UNIX.
Ordinarios: Son los tpicos archivos de los usuarios, para almacenar informacin o para realizar otra
funcin, pero bsicamente no tienen propiedades particulares.
Directorios: Son tambin un tipo de archivo pero que son propiedad del SO y que poseen derechos
e informacin adicional para poder ser reconocidos como tales y poder manejar los archivos
contenidos en ellos.
De enlace: Son los que permiten hacer vinculaciones dentro del sistema de archivos. Existen dos
tipos de archivos de enlace:
o Enlace duro: No permite hacer vnculos entre distintos filesystem; solo permite en archivos
dentro de una misma particin.
o Enlace blando: Permite hacer enlaces entre distintos filesystem ya que los archivos son
referencias al archivo original. Pueden existir estos tipos de archivos incluso si no existe el
archivo original.
Pipes: Son archivos que permiten la comunicacin entre procesos. Existen tambin dos tipos de
estos archivos:
o Nombrados: Permiten comunicar a procesos que no se conocen o son independientes.
o Sin nombre: Permiten comunicar a procesos que se relacionan entre s, como ser un
proceso padre y su hijo.
Especiales: Son archivos que representan a todo dispositivo en el sistema. Estos dispositivos
pueden estar orientados a bloques (utilizan buffer) o a caracteres (utilizan cola de caracteres)
Ya sea cualquiera de estos archivos, UNIX los maneja mediante i-nodos. Estos son estructuras de
control que tienen la informacin necesaria para poder manipular a los archivos.
Hay que tener en claro que varios archivos pueden referenciar a un mismo i-nodo, pero un i-nodo
solo controla un archivo y un archivo es siempre controlado por un solo i-nodo. Basndonos en esto,
podemos ver que el tamao mximo de un archivo estar determinado por la capacidad de
direccionamiento que tenga el i-nodo. En cambio, el tamao mximo de la particin del filesystem estar
relacionada con la capacidad mxima que yo tenga de almacenamiento.
Los i-nodos son estructuras que se basan en punteros, estos pueden ser: Directo (apuntan
directamente al bloque de datos), Indirecto (apunta a un bloque, el cual tiene punteros que apuntan
directamente a los datos), Doblemente indirecto (apunta a un bloque, el cual tiene punteros y cada uno
de ellos apunta a nuevo bloque basado tambin en punteros que apuntan a los bloques de datos) y
Triplemente indirecto (igual que el doblemente indirecto, solamente que se agrega un nivel ms de
bloques).
Para calcular la capacidad de direccionamiento del i-nodo, nos bastara con saber cunto pueden
direccionar los punteros directos, cunto los indirectos, cunto los doble y triplemente indirectos, y
sumando todo, obtendramos el tamao mximo del archivo. Para calcular est capacidad de
direccionamiento por cada tipo de puntero contamos con una frmula (cuya explicacin queda para
razonar), que es la siguiente:
CAPACIDAD =Tb x ( Tb / Tp) ^n x cant. de Punteros de n
Donde n tendr el valor:
=0 ; si estamos calculando la capacidad de los punteros directos
=1 ; si estamos calculando la capacidad de los punteros indirectos
=2 ; si estamos calculando la capacidad de los punteros doblemente indirectos
=3; si estamos calculando la capacidad de los punteros triplemente indirectos
En cuanto al tamao del filesystem, solo tenemos que calcular la capacidad de almacenamiento que
poseemos en nuestros discos. Los discos pueden adoptar diferentes organizaciones, la cuales se
denominan RAID y se dividen en 6 niveles:
NIVEL 0: Un disco lgico y n discos fsicos. Las n primeras stripes del disco lgico representarn las
primeras stripes de cada uno de los discos fsicos.
NIVEL 1: Utiliza la tcnica de espejo, es decir, duplica la informacin. Por lo tanto, siempre habr un
nmero par de discos, lo cual no significa que todos ellos estn disponibles. Solamente se podr
utilizar la mitad de la cantidad total de discos ya que la otra mitad contendr la misma informacin
duplicada.
NIVEL 2: Utiliza un cdigo de deteccin y correccin de errores (el cdigo de Hamming)
NIVEL 3: Cambia el cdigo de Hamming por un bit de paridad, el cual los almacena en discos de
paridad.
NIVEL 4: Utiliza un solo disco de paridad, donde guarda los bits por stripes. Es decir, para las
primeras stripes de todos los discos calcula un stripe de paridad que lo guarda en este ltimo disco
de paridad.
NIVEL 5: Es idntico que el nivel 4, pero en vez de tener todas las strips de paridad agrupadas en
un solo disco, distribuye las bandas de paridad por los diferentes discos.
V. Seguridad
En cuanto a seguridad debemos tener en cuenta los requerimientos que deben ser protegidos por la
misma:
Secreto o privacidad: La informacin debe ser confidencial para las personas que no sean
autorizadas
Integridad: Las posesiones del sistema no pueden ser modificadas por personas que no estn
autorizadas
Disponibilidad: Los elementos del sistemas deben estar disponibles para toda persona autorizada al
uso de los mismos
Autenticidad: Debe asegurarse la autenticidad de las personas que ingresan al sistema; un ejemplo
clsico es mediante las passwords.
Por supuesto que estos requerimientos son atacados constantemente por diferentes amenazas, dichas
amenazas afectarn tanto a uno como a varios de estos aspectos segn la funcin que adopte esta
amenaza. Para verlo mas claro, podemos decir que tenemos 4 tipos de amenazas en un sentido general:
Interceptacin: Afecta sobre todo al secreto. Un flujo de informacin es interceptado por un ente que
no est autorizado.
Modificacin: Factor clave que afecta a la integridad del sistema. Los datos, o incluso el hardware
es modificado para acceder a la informacin.
Interrupcin: Ataca a la disponibilidad. La informacin no llega a destino ya que se interrumpe en el
camino.
Fabricacin: Un ente no autorizado crea o inventa informacin que la hace pasar como si fuese
autntica; obviamente afecta a la autenticidad.
Hasta ahora pareciera ser que solo la informacin del sistema es afectada por las diferentes amenazas,
y si bien es una de las posesiones del sistema que suele ser atacada con mayor frecuencia, no es la nica.
Tanto el hardware, como el software, las lneas de comunicaciones y las redes son usualmente afectadas
por diferentes tipos de amenazas. El hardware se ve amenazado principalmente desde el aspecto de la
disponibilidad, el software suele correr el riesgo de ser borrado, modificado (integridad) y tambin peligra su
uso no autorizado (secreto). En cuanto a las lneas de comunicacin y las redes podemos hacer una
diferencia entre lo que son las amenazas activas y las amenazas pasivas. Las primeras, las amenazas
activas, suelen atentar contra la disponibilidad y la integridad; ejemplos clsicos son la modificacin o
creacin de mensajes. En cuanto a la segunda clase de amenazas, las pasivas, son aquellas que suelen
atentar contra el secreto; son del tipo de escuchas, es decir, no modifican informacin pero es accedida por
personas no autorizadas.
Ahora bien, como el sistema operativo debe ocuparse de mantener la seguridad en el sistema, debe
adoptar alguna tcnica para cumplir con los requisitos que sta plantea. Dentro de todas las posibilidades
que hay, aqu veremos una de las mas utilizadas que es la de la matriz de acceso. Para ello, debemos
definir tres trminos:
- objeto: cualquier cosa a la cual se controla su acceso.
- sujeto: entidad capaz de utilizar objetos.
- derechos de acceso: la manera en que un sujeto puede hacer uso de un objeto.
Con estos tres conceptos, el sistemas operativo arma una matriz referenciando a los recursos por
columna y los dominios por cada fila; en las intersecciones se ubican los derechos que tiene dicho dominio
para tal objeto. De esta forma queda organizada una matriz de acceso, pero tambin debemos tener en
cuenta los trminos que hacen referencia a lo que se denomina lista de control de acceso y lista de
capacidades. Estas no son ni mas ni menos que distintos puntos de vista de ver a la matriz: si armamos
una lista por cada dominio (tomamos cada una de las filas por separado) obtendremos una lista de
capacidades. Por otro lado, si armamos una lista por cada objeto (tomamos ahora cada una de las
columnas por separado) obtendremos listas de control de accesos.
Otra forma de controlar los accesos a los recursos que tiene el sistema operativo es mediante el uso de
contraseas o claves. En cuanto a las contraseas, podemos comenzar mencionando que existen
diferentes estrategias de seleccin de las mismas:
Educacin al usuario: Darle reglas al usuario para la eleccin de passwords. Explicarle la
importancia de seleccionar contraseas que mezcle diferentes caracteres (blancos, nmeros, etc.),
que no sean contraseas relacionadas con direcciones o nombres conocidos, que no sean
excesivamente cortas, evitar palabras de diccionarios, y as diferentes consideraciones.
Generadas por computadora: Son difciles de adivinar, lo cual es ventajoso, pero tambin son
difciles de recordar, lo cual tienta al usuario a anotarlas, cosa sumamente indeseable.
Detector Reactivo: Peridicamente el sistema ejecuta un programa para adivinar passwords y
detecta si posee contraseas vulnerables, es decir, fciles de adivinar.
Detector Proactivo: En el momento que el usuario elige su password, el sistema controla que se
cumpla con las reglas establecidas; caso contrario, rechaza la contrasea.
Por supuesto que las contraseas deben estar guardadas en algn sitio para que cuando un usuario
desee ingresar al sistema se pueda controlar la password ingresada con la ya almacenada. Para evitar un
uso indeseado de este archivo que contiene contraseas, se pueden tomar dos medidas: una es la de
controlar que personas tienen acceso a dicho archivo, y por otro lado tenemos la tcnica de encriptacin.
Encriptar una clave no es ni mas ni menos que modificarla mediante un algoritmo de tal manera que no
pueda ser visible su contenido.
Uno de estos algoritmos de encriptacin es el DES (Data Encryption Estndar). Esta funcin tiene dos
inputs: un texto a encriptar de 64 bits y la clave de 56 bits. Los bloques mayores de texto se encriptan en
bloques de 64 bits. El DES procesa el texto a travs de 16 iteraciones, produciendo un valor intermedio de
64 bits al final de cada iteracin. Cada una de estas iteraciones es la misma funcin compleja que involucra
una permutacin de los bits y sustituye un patrn de bit por otro. El input de cada paso es la salida del paso
anterior ms una permutacin en los bits clave, y esta permutacin se conoce como subclave. En el caso
especfico de las claves en UNIX, cada usuario elige una clave de hasta 8 caracteres. Esta clave es
convertida a un valor de 56 bits que sirve de input a una rutina de encriptacin, la cual es una modificacin
del algoritmo DES. Esta modificacin se basa en tomar un valor de 12 bits llamado SALT. Este valor guarda
relacin con la hora en que la password se asign al usuario.
De esta forma podemos ver que el algoritmo DES se basa en realizar una permutacin en los bits, esta
idea nos da pie a clasificar dos tipos de encriptacin de claves:
- Encriptado convencional o simtrico: Su algoritmo se basa en operaciones simples sobre
patrones de bits. Por otro lado, en este tipo de cifrado, se utiliza la misma clave para cifrar como
para descifrar el mensaje. Como hemos visto, el DES es un ejemplo de este tipo de algoritmo.
- Encriptado de clave pblica o asimtrico: Su algoritmo se basa en operaciones matemticas
y no en operaciones sobre los bits. Como diferencia podemos decir tambin que este algoritmo
utilizar una clave para cifrar los mensajes y otra para descifrarlos.
Finalmente vamos a decir tambin que la encriptacin por clave pblica soluciona la distribucin de la
clave; en el caso del encriptado simtrico es necesario la transmisin de la clave ya que con sta se cifra y
descifra el mensaje. El sentido de utilizar una clave privada y una clave pblica en los cifrados asimtricos
es que permite la autenticacin de un mensaje; es decir, la clave privada lo que hace es firmar el mensaje.
Cuando ste se recibe, utilizando la clave pblica del remitente es posible asegurar la procedencia del
mensaje.
1. P l a n i f i c a c i n
1. Un sistema computacional de un solo procesador planifica el procesamiento de trabajos segn el
siguiente modelo:
La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos,
usando una poltica SJ F (Shortest J ob First). En el corto plazo el procesador es asignado usando una
poltica Round Robin con un quantum de 2 unidades de tiempo
Proceso T. Llegada CPU E/S CPU Tiempo Est.
P1 0 5 3 3 12
P2 0 2 4 3 10
P3 2 3 4 2 8
P4 4 6 2 2 11
P5 10 2 3 2 7
P6 15 3 4 4 12
Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de
corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) Fin de E/S 2) Cola de largo plazo 3) fin
de quantum.
Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico
dispositivo de E/S (planificado por FIFO) se pide la traza de ejecucin de los procesos.
2. Suponga un planificador que utiliza dos colas con distintos algoritmos de planificacin: la primera,
Shortest Remaining Time (SRT), y la segunda, Round Robin (RR) con un quantum de 3. Sabiendo que
la primera cola tiene mayor prioridad y que existe un nico dispositivo de E/S, se pide realizar la traza
de ejecucin de los procesos con el siguiente esquema de estados:
Proceso Tiempo Llegada CPU I/O CPU
P1 0 6 2 2
P2 3 2 4 2
P3 5 4 3 3
P4 7 1 2 2
P5 7 4 1 1
Cola largo plazo Cola corto plazo
CPU
E / S
Cola E/S
Fin de quantum
3. Suponga un sistema que posee un procesador, el cual posee una planificacin SJ F (Shortest J ob
First), y dos dispositivos que planifican segn FIFO; uno es una impresora y otro un disco. Suponiendo
que al SO le lleva un ciclo de CPU realizar el cambio de proceso, se pide realizar la traza de los mismo
con los siguientes datos:
Proceso T. Llegada CPU E/S CPU E/S CPU
P1 0 5 Imp: 2 2 Disco: 5 3
P2 0 4 Disco: 3 3 Disco: 2 1
P3 3 2 Disco: 5 4 Imp: 7 2
P4 5 7 Imp: 1 1 Imp: 2 3
P5 9 1 Disco: 3 5 Imp: 1 2
4. Un sistema de multiprocesamiento posee dos CPU, la primera de ellas planifica segn un algoritmo
no apropiativo (Round Robin con quantum=3), mientras que la segunda CPU planifica segn un
algoritmo basado en prioridades preemtive; a menor nmero mayor prioridad. Adems se tienen dos
dispositivos de E/S que planifican FIFO, una impresora y un escner. Segn el siguiente esquema y los
datos de los procesos, se pide la traza de ejecucin:
Proceso T. llegada CPU E/S CPU
P1 Pri: 2 0 (CPU1) 10 Scanner: 5 4
P2 Pri: 3 0 (CPU2) 5 Imp: 1 3
P3 Pri: 5 1 (CPU2) 3 Scanner: 6 3
P4 Pri: 1 3 (CPU2) 1 Imp: 2 8
New Run End
Blocked
SRT
RR
New
CPU
1
CPU
2
Exit
RR q=3
Prioridades
Imp
Sca
5. Un sistema operativo planifica segn un algoritmo de RR=4. Adems se tiene un disco que encola
los pedidos segn un algoritmo FIFO. Se pide la traza de ejecucin de los procesos teniendo en cuenta
el siguiente cuadro:
(KLT =Hilo a nivel Kernel - ULT =Hilo a nivel Usuario)
Proceso Llegada CPU I/O CPU I/O CPU
KLT 3 3 5 2 1 P1
ULT
0
5 2 7
KLT 6 1 2 3 1 P2
KLT
2
5 4 1
ULT 2 2 5 P3
ULT
4
7 5 3 1 3
6. Suponga un sistema distribuido, en el que se cuenta con dos mquinas:
Mquina A Mquina B
Algoritmo SRT Algoritmo FCFS
Disco rgido 1.8 Gb Impresora lser Blanco y Negro
Solo se migran los procesos por falta de recursos, y eso consume un ciclo reloj. Dibuje la traza de
los procesos, teniendo en cuenta que ambas mquinas estn perfectamente sincronizadas.
Proceso Mquina Ciclo Inicio Recurso Ciclos duracin
CPU 3
Disco 1 P1 A 0
CPU 2
CPU 1
Disco 2 P2 B 0
CPU 4
CPU 1
Impresora 2 P3 A 1
CPU 1
CPU 2
Disco 2
Impresora 2
P4 A 2
CPU 3
CPU 1
DISCO 2
Impresora 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 CPU
A 0 1 2 1 2 1 4 2
B 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 ejecucin segn:
a. FIFO
b. RR (q=1)
c. SRT
d. Prioridades Apropiativo (A=3, B=2, C=D=1)
e. Prioridades NO-apropiativo (las mismas que para d.)
** Considerar que a menor nmero, mayor prioridad
8. Suponga un sistema con el siguiente diagrama, en el cual existen dos procesadores, cada uno de
los cuales tienes su propia cola de listos, la primera planifica segn el algoritmo no- apropiativo Round
Robin (q=3) y la segunda mediante un algoritmo apropiativo; el Shortest Process Next.
Adems existen 3 dispositivos de E/S: una impresora, un disco y un scanner; cada uno con su
propia cola planificando mediante FIFO.
Teniendo en que para ambos procesador se consume un ciclo de CPU cuando se debe realizar un
cambio de proceso; se pide realizar el diagrama de Gantt.
Proceso T. Llegada CPU E/S CPU E/S CPU
P1 0 (Proc: 1) 4 Imp: 3 3 Sca: 2 3
P2 0 (Proc: 2) 8 Sca: 1 6 Disco: 5 1
P3 1 (Proc: 1) 2 Sca: 2 1 Sca: 1 4
P4 2 (Proc: 1) 7 Disco: 3 2 Disco: 3 5
P5 3 (Proc: 2) 3 Disco: 5 5 Imp: 7 2
P6 5 (Proc: 2) 1 Imp: 2 4 Imp: 3 2
(En caso de superposicin de tiempos, dar prioridad a los procesos que vuelven de los
dispositivos)
9. Suponga un sistema operativo que realiza una planificacin no-apropiativa con un Round Robin cuyo
quantum es igual a 2 (q=2). Se tiene adems una impresora que ordena sus pedidos segn un algoritmo
FIFO. Sabiendo que se consume un ciclo de procesador cada vez que el sistema operativo debe
asignar un nuevo proceso al CPU, se pide la traza de los mismos.
CPU
1
CPU
2
Exit
RR q=3
SJF
Imp
Sca
Disk
Proceso Llegada CPU E/S CPU E/S CPU
ULT 1 6 2 5 2
ULT 1 2 3 - -
P1
KLT
0
3 2 1 - -
ULT 3 3 3 1 3 P2
ULT
5
2 1 4 - -
10. Se cuenta con dos maquinas que poseen la siguientes caractersticas:
Mquina A Mquina B
Planificacin SRT SPN
Recursos Disco rgido de 20 Gb Impresora
Scanner
Teniendo en cuenta que se consume 1 ciclo de CPU cada vez que se necesita migra un proceso
(solamente por falta de recursos), se pide la siguiente traza de procesos:
Proceso Mquina Ciclo Inicio Recurso Duracin
CPU 7
Disco 5
CPU 3
Scanner 4
P1 A 0
CPU 1
CPU 2
Disco 3 P2 B 1
CPU 5
CPU 3
Impresora 5 P3 A 2
CPU 2
CPU 3
Scanner 2
CPU 1
Impresora 3
P4 B 4
CPU 3
2. Semforos /
Algoritmo del Banquero /
Sincronizacin
1. Realizar la siguiente traza de ejecucin, sabiendo que los semforos estn inicializados de la siguiente
manera: A=B=1 y C=0. Determinar que procesos quedan bloqueados y en que semforos:
P1 P2 P3 P4
V(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 ejecucin y determinar que procesos finalizan y cuales no. En el caso
de aquellos que no finalicen, indicar en que semforos quedaron bloqueados. Los semforos estn
inicializados de la siguiente forma:
A=D=E=1
B=C=F=0
P1 P2 P3 P4 P5
P(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 ejecucin. Determinar los procesos que finalizan y los que no.
J =T=S=R=U=0
H=E=C=O=1
P1 P2 P3 P4 P5
Down(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)
Mx. Pedido de recursos Recursos Asignados
A B C D A B C D
P0 0 0 1 2 0 0 1 2
P1 2 7 5 0 2 0 0 0
P2 6 6 5 6 0 0 3 4
P3 4 3 5 6 2 3 5 4
P4 0 6 5 2 0 3 3 2
a) Es un estado seguro?
b) Suponga que P2 luego de terminar su ejecucin 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)
Mx. Pedido de recursos Recursos Asignados
R1 R2 R3 R4 R1 R2 R3 R4
P0 5 0 2 4 2 0 0 2
P1 2 3 5 0 1 3 5 0
P2 4 3 5 6 3 2 2 2
P3 0 8 0 3 0 0 0 2
P4 1 3 2 4 0 0 2 4
P5 4 5 5 7 2 1 3 0
P6 1 2 0 6 1 1 0 5
6. Un hotel est compuesto por la siguiente infraestructura: 5 habitaciones de suite (S), 30 habitaciones
matrimoniales con vista panormica (MVP), 50 habitaciones matrimoniales comunes (MC), 20 habitaciones
base doble con vista panormica (BDVP), 45 habitaciones base doble comunes (BDC) , y 20 habitaciones
base triple (BT).
La agencia de turismo A le confirma al administrador del hotel que a partir del domingo 13/7, todos los
domingos hasta el 3/8 se renovar un tour que requerir 10 MVP, 20 MC, 10 BDVP, 30 BDC. La segunda
agencia B le confirma un tour que arribar al hotel el martes 15/7, que se renovar por nica vez el 29/7 y
cuyos requerimientos son 3 S, 15 MVP, 20 MC, 10 BDVP, 10 BDC y 15 BT. Finalmente, la agencia C le
confirma un tour que se har todos los viernes a partir del 11/7 y que tendr una duracin de 4 das (hasta
el lunes inclusive) y cuyos requerimientos son: 2 S, 10 MVP y 8 BDVP.
El administrador le ha confirmado a las tres agencias su servicio. Quedar el hotel en una situacin segura
o insegura? Por qu?
7. Dados los siguiente procesos que se ejecutan concurrentemente, y que la funcin de incremento en C se
descompone de tres instrucciones mquina: 1) cargar el valor de la variable X en el acumulador; 2)
incrementar el acumulador; 3) almacenar el valor del acumulador en la posicin de memoria
correspondiente. Determinar si existe la posibilidad de que ninguno de los procesos imprima por pantalla, y
en caso de que lo hagan, determinar que imprimen cada uno. (Tener en cuenta que no hay errores en el
cdigo)
#define FALSE 0
#define TRUE 1
int interesado[2]={0,0};
int x=0;
PROGRAMA A PROGRAMA B
Main() {
Int i=0;
For(i=0;i<5;i++) {
interesado[0]=true;
While(interesado[1]==true);
++x;
If(i==4) printf(%d\n,x);
interesado[0]=false;
}
}
Main(){
Int j=0;
For(j=0;j<5;j++) {
interesado[1]=true;
While(interesado[0]==true);
++x;
If(j==4) printf(%d\n,x);
interesado[1]=false;
}
}
8. Suponga los siguientes 2 procesos que son ejecutados concurrentemente en un sistema operativo
preemptive y comparten los contadores generales de los semforos A y B y la variable CONT; inicializados
de la siguiente manera: A=B=1; CONT=0;
Responder:
Puede llegar a ocurrir deadlock? J ustificar la respuesta
Puede llegar a ocurrir starvation? J ustificar la respuesta
Considera que los procesos se encuentran correctamente sincronizados?
PROCESO 1 PROCESO 2
Repeat
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, se
pide saber si el algoritmo a continuacin desarrollado cumple con los requisitos para solucionar el problema
de la seccin crtica, y en caso de que no, indique como lo modificara.
Var indicador: array[0..1] of boolean; (inicializado en falso)
Var turno: 0..1;
El siguiente programa es para el proceso Pi (i=0 o i=1) y para el Pj (j=1 o j=0)
Repeat
indicador[i]:=verdadero;
while(indicador[j])
do if (turno=j) then begin
indicador[i]:=false
while turno=j do nothing;
indicador[i]:=verdadero;
end;
...
seccin crtica;
...
turno:=j;
indicador[i]:=falso;
...
seccin restante;
until falso;
10. Debido al gran trnsito que se produce sobre la avenida J uan B. J usto, debajo de la interseccin con la
General Paz cuando los autos intentan ingresar a capital o ingresar a provincia, el gobierno de la ciudad de
Bs. As. Ha decidido implementar un semforo en los dos extremos de la avenida (uno del lado de capital y
otro del lado de provincia) para que nicamente pasen los autos en un solo sentido. Cuando el semforo se
encuentra en verde en cualquiera de las dos entradas significa que los autos pueden circular; si se
encuentra en rojo, ninguno puede hacerlo.
Se realiz un estudio y se determin que solo pueden circular los autos en un solo sentido (es decir, o
pasan todos los de provincia para capital o pasan todos los de capital para provincia en un momento dado),
y adems que la capacidad mxima de autos que puede circular por la avenida J uan B. J usto por debajo de
la Gral. Paz es de 20 autos.
Viendo este problema, se pide que lo solucione implementando un pseudo-cdigo, utilizando semforos,
para prevenir accidentes y realizar una circulacin equitativa del trnsito.
Tenga en cuenta que deber realizar dos pseudo-cdigos, uno para los autos que provengan de capital y
otro para los de provincia, y que el semforo cambia de estado cada 1 minuto.
Para resolver este ejercicio considere nicamente las siguiente funciones: entrar_puente(),
cruzar_puente(), salir_puente().
3. Memoria Central /Memoria Virtual
1. Considere un sistema de intercambio (Swapping) en el que la memoria consta de los siguientes tamaos
de espacios en orden de memoria: 10k, 4k, 20k, 18k, 7k, 9k, 12k y 15k. Cual es el espacio que se elige si se
solicitan en forma sucesiva segmentos de:
a) 12k
b) 10k
c) 9k
con el mtodo first fit, best fit, worst fit y next fit.
2. Un bloque de 128 kb utiliza el algoritmo de asignacin de memoria BUDDY SYSTEM. Despus de un
tiempo, el bloque queda de la siguiente manera, donde los bloques de memoria identificados con X estn
asignados. Luego los bloques se liberan de la siguiente manera:
* Direccin: 64 k Tamao: 8 k
* Direccin: 0 k Tamao: 24 k
* Direccin 96 k Tamao: 16 k
MEM X X X X X X X X X X
DIR 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120
3. Supongamos un sistema que usa paginacin basado en 64 entradas en la tabla de pagina y 10 bits de
desplazamiento (Offset) como direccionamiento lgico. El programa genera la direccin 05DE (hexa). El
programa fue cargado en los siguientes Frame: page 0 =frame 5, page 1 =frame 6, y as sucesivamente.
Se pide:
a) Representar la direccin lgica.
b) Calcular la direccin fsica.
c) Indicar la longitud mxima del Programa.
4. Asumir que una tarea esta dividida en 4 segmentos de igual tamao. El sistema construye una tabla de
pginas con 8 entradas para cada segmento (paginacin con segmentacin). Cada pgina es de 2 kb
a) Tamao mximo de cada segmento
b) Espacio direccin lgico mximo
5. El proceso A tiene asignados 4 frames de memoria y comenz a ejecutar en t=0. En el momento t=10 los
frames se encuentran de la siguiente forma:
Si se utiliza LRU como poltica de reemplazo, y sabiendo que los pedidos restantes
se realizaron en el siguiente orden: 4-5-2-1-4-6-4-1-2.
Indicar la cantidad de Page Faults que ocurrieron, sealando los mismos al igual que
el 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 que
existen 3 frames asignados, los cuales ests actualmente vacos, determine los fallos de pginas que se
producen aplicando las siguientes polticas de reemplazo:
a) LRU
b) FIFO
c) Optimo
7. Considere el siguiente esquema de paginacin segmentacin:
Tabla de segmentos
Nmero de segmento Tabla de pginas
0 2
1 0
2 1
Tabla pgina 0 Tabla pgina 1 Tabal pgina 2
Pgina Frame Presente Pgina Frame Presente Pgina Frame Presente
0 10 S 0 1 N 0 33 S
1 17 N 1 22 N 1 43 S
2 89 S 2 73 S 2 54 N
3 90 S 3 74 S 3 6 S
4 29 S 4 85 S 4 6 N
5 47 N 5 29 S 5 7 S
6 55 S 6 63 S 6 21 S
7 32 S 7 93 S
8 39 S 8 85 S
9 9 S 9 15 S
10 27 S
11 34 S
Asumir tambin que el tamao de la pgina 1000 utilizando direcciones en base 10; as la primera pgina de
memoria cubre desde la direccin 0 (cero) hasta la direccin 999. El nmero mximo de entradas a tabla de
pginas es de 100 (0 a 99). Si la pgina es invlida (Presente =N), asuma que el fallo de pgina causa que
el Sistema Operativo cargue la pgina que caus el fallo en el nmero de marco de pgina dato. Por
ejemplo: un acceso a la pgina virtual 2 en la tabla causa un fallo de pgina donde el sistema carga la
pgina virtual 2 en el marco 54.
Se pide responder:
a) Cuntos dgitos enteros se necesitan para el nmero de segmento, nmero de pgina y offset?
b) A qu direccin fsica acceden las siguientes direcciones virtuales? (Asumir que los dgitos
faltantes son ceros a la izquierda).
21333
5345
1810627
Frame Ref en t
2 9
5 4
1 6
3 8
104806
200097
1501053
210270
8. Considere una mquina con direcciones de 16 bits, con 10 bits de offset y un proceso P1 cuyas
referencias a memoria son las siguientes (en decimal): 535 3451 7548 487 2087 147 9843 521
65537 8544 1024 65530
EL proceso P1 tiene asignado 3 frames de memoria (0,1,2) los cuales se encuentran inicialmente vacos. Si
se utiliza LRU con reemplazo local como poltica de eleccin de la vctima, se pide:
a) El estado de memoria en cada instante de tiempo indicando en cada uno de ellos, si fuese
necesario, los fallos de pgina correspondiente
b) La traduccin de las direcciones lgicas a fsicas de las referencias de P1
c) Enuncie si cambiara su respuesta en el caso de utilizar LRU con asignacin fija y alcance
global.
9. Una mquina tiene un espacio de direccionamiento de 32 bits y una pgina de 8K. La tabla de pginas
se encuentra completamente en registros asociativos, con una palabra de 32 bits por entrada. Cuando un
proceso comienza, la tabla se copia de memoria a los registros a razn de una palabra cada 100 nseg. Si
cada proceso ejecuta 100 mseg (incluyendo el tiempo de bsqueda en la tabla de pginas) Qu fraccin
de tiempo de CPU es destinado a buscar la tabla de pginas?
10. Un computador con un espacio de direccionamiento de 32 bits utiliza una tabla de pginas de 2
niveles. Las direcciones virtuales son divididas en un campo de ms alto nivel de 9 bits, un campo de
segundo nivel de 11 bits, y un desplazamiento. De qu longitud son las pginas y cuntas ay en el
espacio de direccionamiento virtual?
11. Considere un sistema de paginacin con la tabla de pginas almacenada en memoria.
a) Si una referencia a memoria lleva 1,2 useg. Cunto durar una referencia a memoria paginada?
b) Si aadimos 8 registros asociativos y el 75% de todas las referencias se
encuentran en ellos. Cul es el tiempo efectivo de referencia a memoria?
(Supongamos que encontrar una entrada en la tabla de pginas de los registros
asociativos si se encuentra all, lleva un tiempo nulo).
12. Un computador cuyos procesos tienen 1024 pginas en sus espacios de direcciones mantiene su tabla
de pginas en memoria. El overhead requerido para leer una palabra de la tabla es de 500 nseg. Para
reducir el overhead, el computador tiene una memoria asociativa que posee 32 registros, y pueden realizar
la lectura en 100 nseg. Cul ser el hit ratio (porcentaje de aciertos) necesario para reducir el overhead a
200 nseg.?
13. Una memoria tiene 48 bits de espacio de direccionamiento virtual y 32 bits de espacio de
direccionamiento fsico. Las pginas son de 8K. Cuntas entradas son necesarias para una tabla de
pginas convencional? Cuntas para una tabla de pginas invertida?
14. Consideremos la siguiente cadena de referencias de pgina :
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
Cuntos fallos de pgina se producirn con los algoritmos de reemplazo siguientes suponiendo 1, 2, 3, 4,
5, 6, 7 celdas (page frames)? Recuerde que todas las celdas estn inicialmente vacas, de modo que la
primera referencia a una pgina supondr un fallo cada una.
LRU
FIFO
OPTIMO
15. Considere un sistema de paginacin bajo demanda, con un tambor de paginacin que tiene un tiempo
medio de acceso y transferencia de 5 mseg. Las direcciones se traducen por medio de una tabla de
pginas en memoria principal, con un tiempo de acceso de 1 useg. por acceso a memoria. As, cada
referencia a memoria a travs de la tabla de pginas precisa dos accesos. Para mejorar ese tiempo, se ha
aadido una memoria asociativa que reduce el tiempo de acceso a un acceso a memoria, si la entrada en la
tabla de pginas se encuentra en la memoria asociativa. Suponiendo que el 80% de los accesos se
encuentran en la memoria asociativa y que para el resto, el 10% (o el 2% del total) generan fallos de pgina.
Cul es el tiempo efectivo de acceso a memoria?
Tambor: Disco de un solo cilindro
16.Supongamos que tenemos una memoria con paginacin bajo demanda. La tabla de pginas se
mantiene en registros asociativos. Servir un fallo de pgina lleva 8 mseg si es que hay disponible
una pgina vaca o la pgina reemplazada no ha sido modificada. El tiempo de acceso a memoria es
de 1 useg. Suponiendo que la pgina a reemplazar esta sucia (modificada) el 70% de las veces
Cul es la tasa de fallos de pgina mxima aceptable para un tiempo efectivo de acceso de no ms
de 2 useg?
17. Supongamos un sistema de paginacin con un tambor de paginacin de 4 millones de palabras y con
un tiempo de acceso y transferencia de 5 mseg y una memoria de ncleos paginada de 262.144 palabras,
con un tiempo de acceso de 2 useg. Si queremos que nuestro sistema de paginacin aparezca ante el
usuario como una memoria de 4 millones con un tiempo de acceso de 4 useg (en promedio). Qu
porcentaje de accesos tienen que realizarse sin incurrir en fallo de pgina?
4. Entrada Salida / I - nodos
1. Se dispone de un almacenamiento compuesto por un RAID nivel 1. Se tiene 3 paltos y ada uno de los
discos est compuesto por 300 cilindros, y cada uno de ellos tiene 10 sectores (sin interleave). La velocidad
de rotacin es de 6000 r.p.m y el cabezal tarda 1ms en pasar de una pista a la otra. Actualmente la cabeza
est ubicada en la direccin 1107 y se dirige a la 1108. En la cola estn los siguiente pedidos: 100, 1244,
15, 955.
Se pide el tiempo que se tarda en atender a todos los pedidos con el algoritmo:
- SSTF (Shortest seek time first)
- C-SCAN
2. Una mquina posee un disco rgido formado por cuatro cabezas numeradas del 0 a 3. Se tiene tambin
100 pistas numeradas del 0 al 99 y cada una de ellas tiene 10 sectores, numerados del 1 al 10 sin
interleave; cada sector tiene un tamao de 512 bytes. El disco gira a 50 r.p.s y tarda 5ms en pasar de una
pista a la otra.
En un momento, se quiere leer el archivo GUIATP.txt de 2kb, por lo que al driver le llegan los siguientes
pedidos en el orden cilindro-cabeza-sector: (15,3,10), (55,0,1), (50,1,8) y (75,0,2). Actualmente la cabeza
est en cilindro 20 en el comienzo del sector 1 y con direccin saliente. Si se utiliza el algoritmo C-LOOK,
calcular el tiempo que llevara cargarse en el buffer todo el archivo.
3. Se tiene un disco con las siguientes caractersticas: 3 platos, 100 sectores y total de 500 cilindros. Los
pedidos encolados son: 535 3451 7548 487 2087 3147 9843 3521 6841 8544 6024
987.
Se pide el tiempo promedio de atencin para cada uno de los siguiente algoritmos: FIFO SCAN LOOK
STSF. (El brazo est en la direccin 50 descendiendo)
4. Dado un servidor que posee cinco discos rgidos de 23 Gb cada uno, formando un RADI 5, en el que se
posee un filesystem basado en i-nodos (con dos punteros directos, uno indirecto y otro doble indirecto) es
que puede direccionar como mximo 10.000.000 bloques de 12 Kb cada uno.
- Cul es el tamao de una particin de filesystem?
- Cul es el tamao mximo de un archivo?
- Cul es el tamao mximo que contiene un directorio?
5. Dado un servidor de 6 discos rgidos de 40 Gb cada uno, formando un RAID 1, el cual posee un
filesystem basado en i-nodos (con tres punteros directos, uno de indireccin simple, uno doble y otro triple),
los cuales pueden direccionar como mximo 20.000.000 bloques de 24 Kb cada uno. Se pide:
- Tamao mximo de una particin de filesystem
- Tamao mximo de un archivo
6. Considerando la organizacin del sistema UNIX por i-nodos. Asumir que hay 12 punteros directos a
bloques, un puntero simple, uno doble y uno triple. Asumir tambin que el tamao de bloque es de 8 Kb. Si
se utiliza un puntero de 32 bits con 8 bits para identificar al disco. Se pide:
- El tamao mximo de un archivo soportado por el sistema
- Cuntos accesos se necesitan para localizar el byte en la posicin
13.423.956? Y el de la posicin 35.134.753.309?
7. Un servidor posee 3 discos rgidos de 60 Gb cada uno, los cuales conforman una organizacin RAID 4.
Sobre estos discos se monta un filesystem que trabaja con i-nodos, los cuales estn compuesto por 3
punteros directos, 2 punteros indirectos y un puntero doblemente indirecto. Si los bloques de datos son de 8
kb y se utilizan punteros de 32 bits:
- Cul es el tamao mximo de la particin del filesystem?
- Cul es el tamao mximo soportado por un archivo?
- Cuntos accesos se necesitan para acceder al byte 23.579?
5. PROTECCIN Y SEGURIDAD
1. Algunos sistemas reescriben las reas que fueron ocupadas por archivos ya borrados. Bajo qu esquema es esto
necesario?
2. Supongamos un sistema en el cual el derecho al uso de terminales est distribudo de la siguiente manera:
Alumnos 00:00 a 08:00 hs
Investigadores 07:00 a 24:00 hs
Admin. Sistema 00:00 a 24:00 hs
Construya la matriz de accesos e implemente la Tabla Global, las Listas de Accesos, las Listas de Capacidad y el Lock-
Key. Cul es la ms eficiente?.
3. Cul es la principal diferencia entre Lista de Acceso y Lista de Capacidad?
4. En un sistema de Administracin de Memoria Paginada por Demanda, cundo es necesario utilizar claves de
proteccin para las Pginas / Bloques?
5. Supongamos un sistema en el cual cada proceso tiene asociado un nmero n y cada objeto un nmero m. Si se
quiere que un proceso pueda acceder a un objeto slo si n >m, qu tipo de proteccin se debe implementar?
6. Supongamos un sistema en el cual la Capacidad de Acceso a un objeto le est permitida slo n veces. Qu
esquema de proteccin implementara?
7. Si todos los derechos de acceso a un objeto fueron eliminados, el objeto puede ser tambin eliminado. Qu
implementacin utilizara?
8. Las listas de Capacidad son generalmente guardadas dentro del espacio de direcciones del programa. Qu
implementacin utilizara?
9. Utilice alguna clave criptogrfica para el mtodo DES para cifrar la palabra SECRETO escrita en ASCII. Verifique
su descifrado.
10. Verifique para algn mensaje que el mtodo RSA funciona con
p=7, q=13, e=5, d=29.
11. Explique claramente quin posee la capacidad (dominio u objeto) en los casos:
- Lista de Accesos
- Lista de Capacidad
- Lock-Key
12. La lista de todas las passwords se mantiene dentro del sistema operativo. Luego, si un usuario administra en
forma de lectura tal lista el sistema de proteccin de passwords se torna muy dbil. Sugiera un esquema que impida
este problema (ayuda: utilice una representacin interna que difiera de la representacin externa).
13. Realizar el cifrado de la palabra ABEJ A por:
a. el mtodo de sustitucin con la palabra clave "SISTEMAS OPERATIVOS". Detalle los pasos que realiza.
b. el mtodo de cifrado por sustitucin para el n=4. Detalle los pasos realizados.
14. Asuma que las passwords se seleccionan a partir de combinaciones de 4 caracteres de un total de 26 caracteres
alfabticos. Imagine que un intruso puede ensayar distintas claves a una tasa de una por segundo. Responder:
a. Si el intruso no tiene retroalimentacin hasta que cada intento ha sido completado, cul es el
tiempo aproximado en que se descubrir la clave?
b. Si el intruso tiene retroalimentacin, es decir, se muestra un mensaje de error cada vez que se
ingresa un carcter incorrecto, cul es el tiempo en que se descubrir la clave?
15. Un generador de claves fonticas escoge dos segmentos al azar para cada clave (de seis letras cada una). La
forma de cada segmento es consonante-vocal-consonante. Se pide:
a) cul es la cantidad total de claves?
b) cul es la probabilidad de que un intruso adivine una clave correctamente?
16. Suponga que las passwords se limitan a los 95 caracteres imprimibles del cdigo ASCII y que todas las claves
tienen 10 caracteres de longitud. Suponga que un atacante que posee una tasa de encriptacin de 6.4 millones
6. Ejercicios Integrados
1. Sea un sistema operativo que utiliza un planificador con el algoritmo RR de q=4 y que dispone de las
funciones: leer, escribir y ejecutar, as como tambin las funciones atmicas: up y down. Conociendo que
las colas de los semforos y la nica cola de entrada/salida son independientes y como estn inicializados
los semforos, indique la traza de ejecucin y el orden de terminacin de los siguientes procesos:
Semforos Funciones
(valor inicial) CPU (al inicio) I/O (al final)
A=0 Up/Down 2 0
B=0 Leer/Escribir 1 3
C=1 Ejecutar 3 0
Proceso 1 Proceso 2 Proceso 3
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 semforos: A=C=0 y B=1. Cada proceso referencia a su propio espacio de
memoria. Cantidad 8 (0..7) con 3 frames asignados y un tamao de pgina de 512 bytes.
P1 (0 2 1 ) P2 ( 2 0 3)
0 0
1 2
2 3
y los procesos:
P1 P2
Read(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) Cuntos fallos de pgina se producen para cada proceso?
a. 1. LRU Asignacin fija , alcance global
a. 2. LRU Asignacin Fija, alcance local
b) Estn en deadlock?
c) Terminan de ejecutarse?
3. Un sistema en el cual se utiliza memoria virtual con particiones fijas para la organizacin de la memoria
fsica de: 10 Kb, 30 Kb, 42 Kb y 60 Kb, posee el siguiente juego de procesos:
Procesos P1 P2 P3 P4 P5 P6 P7
Down(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 4
Memoria 24 Kb 2 Kb 32 Kb 4 Kb 40 Kb 22 Kb 60 Kb
Teniendo en cuenta que:
Las operaciones atmicas consumen 1 ms.
La funcin Exe() representa una E/S de lectura o de escritura, y ambas consumen 5 ms.
El sistema operativo tiene un algoritmo de planificacin SPN (Shortest Process Next)
Cada vez que un proceso toma la memoria principal no la libera hasta que finalice o hasta
que se bloque por algn motivo.
El algoritmo de seleccin de la vctima es el BEST FIT.
Los semforos estn inicializados A=B=E=G=I=J =30 y C=F=H=25
Se pide realizar la traza de ejecucin de los procesos, indicando el orden de finalizacin y el instante en que
lo hacen. En caso que alguno no finalice, indicar el motivo.
4. Se tiene una mquina con direcciones de 16 bits, cuyo offset ocupa 10 bits. Un proceso realiza las
siguientes referencias a memoria (en decimal): 535 3451 7548 487 2087 3147 9843 3521
6841 8544 6024 987
El proceso tiene asignado 3 frames de memoria (0,1,2), los cuales se encuentran vacos. A su vez se posee
un disco rgido con las siguientes caractersticas: 3 platos, formando 6 cabezas, 100 sectores por pista, un
total de 500 cilindros y sectores de 512 bytes. Suponga que las direcciones lgicas de las referencias a
memoria son las mismas que las referencias a disco. Ej: la direccin lgica de memoria 100 se encuentra en
la direccin lgica 100 del disco.
Se utiliza LRU con reemplazo local como poltica de eleccin de la vctima y el LOOk como poltica de
planificacin de disco. Sabiendo que la cabeza se encuentra en la direccin lgica 50 descendiendo, se
pide:
a. El estado de memoria en cada instante de tiempo, indicando los fallos de pginas
si fuese necesario y las traducciones de las direcciones lgicas a fsicas.
b. EL tiempo promedio de atencin de los pedidos a disco y el orden en que fueron
atendidos, sabiendo que el tiempo entre cilindros es de 100 ms.
5. Considere una mquina con memoria paginada de 32 bits de direccionamiento, donde 24 bits son el
nmero de pgina y los 8 restantes son el desplazamiento. Se cuenta con 4 Mb de memoria RAM y un total
de 12 Mb de memoria virtual. En todo el sistema hay 4 procesos, en el que se tiene para cada uno de los
mismos 3 frames asignados, inicialmente vacos, uno de los cuales se utiliza para el cdigo y el heap. El
algoritmo de eleccin es el LRU con asignacin fija y alcance local, mientras que la planificacin de
procesos es SRT (Shortest Remaining Time); adems, los semforos se encuentra inicializados de la
siguiente manera: S=C=R=E=H=0 y T=J =U=O=1
Se sabe que cuando se quiere leer de disco, son 3 ciclos de E/S. Actualmente la cabeza del disco est
ubicada en el sector lgico 1110 y se dirige al sector 1111. Las operaciones atmicas insumen 2 ciclos de
CPU, mientras que los accesos a memoria insumen 3 ciclos.
P1 P2 P3 P4
Down(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:
a) Indicar los fallos de pgina que se producen en el sistema, y el estado final de la memoria.
b) Dibujar la traza de los procesos indicando, en el caso de que alguno no finalice, el motivo por
cual no lo realiza. Tenga en cuenta que existe un nico dispositivo de E/S y que acceder al
mismo consume en promedio 3 ciclos de E/S cuando se quiere leer y 4 cuando se quiere
escribir. Asumir que todos los procesos se encuentran en la cola de Ready.
c) Sabiendo que el dispositivo de almacenamiento estaba compuesto por un RAID 1, cada uno de
los discos posee 400 cilindros y sus pistas tiene 10 sectores y posee 3 platos formando 6
cabezas. La velocidad de rotacin es de 8000 rmp y el cabezal tarda 2ms en pasar de una pista
a la otra. Las cabezas leen del sector mas chico al mas grande y actualmente estn encolados
los siguientes pedidos: 87, 1254, 19, 940, 1447, 987, 231, 104.
Se requiere el tiempo total de atencin de los pedidos segn el algoritmo C-LOOK.
6. En una memoria se utiliza un algoritmo de reemplazo Next Fit. Sabiendo que actualmente en la memoria
hay tres bloques libres de: 10 Kb, 15 Kb y 9 Kb, y que los procesos se descargan de memoria solamente
cuando finalizan o quedan bloqueados, realizar la traza de procesos indicando que procesos finalizan y
cuales no, sabiendo que los semforos se encuentran inicializados: A=B=0 y C=D=1 y llevar a cabo alguna
de las funciones atmicas consume 2 ciclos de CPU.
P1 P2 P3 P4
P(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)
Tamao: 14 Kb Tamao: 9 Kb Tamao: 13 Kb Tamao: 8 Kb
SOLUCIONES
I . Planificacin
1. Finalizan en el siguiente orden: P2 (16), P3(18), P5(27), P1(28), P6(36), P4(42)
P6 Ll I/OI/OI/OI/O
P5 Ll I/OI/OI/O F
P4 Ll
P3 Ll I/OI/OI/OI/O F
P2 Ll I/OI/OI/OI/O F
P1 Ll I/OI/OI/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 F
P5
P4 I/OI/O F
P3
P2
P1
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 F
P4 Ll I/OI/O F
P3 Ll I/OI/OI/O F
P2 Ll I/OI/OI/OI/O F
P1 Ll I/OI/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 D
P4 Ll
P3 Ll D D D D D ImImImImImImIm F
P2 Ll D D D D D F
P1 Ll ImIm
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 F
P4 Im ImIm F
P3
P2
P1 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 ImIm F
P3 Ll S S S S S S F
P2 Ll Im F
P1 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/OI/O
P2k Ll I/OI/OI/O
P2k Ll I/O
P1u Ll I/OI/O
P1k Ll I/OI/OI/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/OI/OI/OI/OI/O I/O F
P3u F
P2k I/O F
P2k I/OI/OI/O F
P1u F
P1k I/OI/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 ImImIm B F
P4 Ll A A D D A ImIm B B B F
P3 Ll A A ImIm B F
P2 Ll B B D D A A A A F
P1 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/OI/OI/O F
C Ll I/O I/OI/OI/O F
B Ll I/O I/O F
A Ll I/OI/O I/OI/O I/OI/OI/OI/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/OI/OI/O F
C Ll I/O I/OI/OI/O F
B Ll I/O I/O F
A Ll I/OI/O I/O I/OI/OI/OI/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. SRT
D Ll I/OI/OI/O F
C Ll I/O I/OI/OI/O F
B Ll I/O I/O F
A Ll I/OI/O I/OI/O I/OI/OI/OI/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 Apropiativo
D Ll I/OI/OI/O F
C Ll I/O I/OI/OI/O F
B Ll I/O I/O F
A Ll I/OI/O I/OI/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
D
C
B
A I/OI/OI/OI/O F
31 32 33 34 35 36 37 38
e. Prioridades No-apropiativo
D Ll I/OI/OI/O F
C Ll I/O I/OI/OI/O F
B Ll I/O I/O F
A Ll I/OI/O I/OI/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
D
C
B
A I/OI/OI/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 ImIm
P5 Ll D D D D D
P4 Ll D D D
P3 Ll S S S F
P2 Ll S D
P1 Ll ImImIm 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 ImImIm F
P5 ImImImImImImIm F
P4 F
P3
P2 D D D D F
P1 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 Im
P2u Ll ImImIm Im
P1k Ll ImIm F
P1u Ll ImIm f
P1u Ll ImImImImImIm ImImImImIm
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
P2u f
P2u F
P1k
P1u
P1u 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 ImImIm b b b F
P3 Ll a a a a ImImImImIm b b F
P2 Ll b b b D D D a a a a a F
P1 Ll a a a a a a a D D D D D a a a a S S S S a F
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
I I . Semforos / Algoritmo del Banquero / Sincronizacin
1. P1 y P2 finalizan. {B}~P3 {C}~P4
2. P2 y P3 finalizan. {A}~P5~P4 {C}~P1
3. P5 finaliza. {C}~P3 {E}~P1 {H}~P4 {O}~P2
4.
a. Si, es un estado seguro. Finalizan P0, P3, P4, P1, P2
b. Queda en estado seguro. Hay recursos disponibles
5. Es un estado seguro. Finalizan P6, P1, P2, P3, P4, P5, P0
6. Queda en un estado inseguro ya que cuando el tour C quiere tomar el segundo viernes no hay
habitaciones disponibles.
7. Pueden quedar en deadlock si PROGRAMA A pone su bandera a true y luego lo hace PROGRAMA
B. En esa caso, ambos quedarn ciclando en el while. (Es similar a la 2da solucin de Deckker)
8.
Si, puede ocurrir deadlock. Puede quedar el proceso 1 bloqueado en B y el proceso 2 en A.
Puede ocurrir en el caso que el proceso 2 nunca pueda entrar a su ciclo.
No. (Proponga una solucin)
9. Si, cumple. Es muy similar al algoritmo de Peterson.
10. Suponga la siguiente solucin (no nica):
#define VERDE 1
#define ROJ O 0
int capacidad=20;
int semforo=1;
int main(void) {
parbegin(autos_capital,autos_prov);
}
repeat
while(semforo) {
wait(capacidad);
entrar_puente();
cruzar_puente();
salir_puente();
signal(capacidad);
}
until falso;
/* este es el mismo cdigo tanto para autos_capital como para autos_prov. Cuando semforo es rojo
para uno, es verde para el otro */
I I I . 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 K
B.F 10 K 9 K 12 K
W.F 12 K 10 K 9 K
N.F 12 K 10 K 9 K
2.
MEM X X X X
DIR 0 32 40 48 56 64 80 88 96
3.
b. #Pag / #Offset = 0000010111011110
c. #Frame / #Offset =0001010111011110
d. Tam. Pgina x cant. pginas =1024 bytes x 64 =64 K
4.
a. 2 K x 8 =16 K
b. #Seg. / #Pag. / #Offset =16 b its =2^16 =64 K
5.
Hay 4 Page Faults. El estado final de la memoria es:
2
4
6
1
6.
LRU FIFO OPTIMO
2 4 2
5 2 5
4 5 4
10 PF 9 PF 7 PF
7.
a. #Seg / #Pag / #Offset =1 dig. / 2 dig. / 3 dig. =6 dgitos
b.
Direccin virtual
Segmento Pgina Offset
Direccin fsica Validacin
0 21 333 - Pag. Invlida
0 5 345 7 345 Ok
18 10 627 - Seg. Invlido
1 4 806 29 806 Ok
2 0 097 1 97 Pag. Fault
15 1 053 - Seg. Invlido
2 10 270 27 270 Ok
8.
a. Hay 5 Page Faults
0
2
9
b. #Pag. / #Offset =6 bits / 10 bits
Dir 2^15 2^14 2^13 2^12 2^11 2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 Pag.
535 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0
3451 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 3
7548 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 7
487 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0
2087 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 2
147 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0
9843 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 9
521 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 ms de lo que se puede -
c. No cambia ya que es imposible implementar dicha tcnica. (Ver Conceptos Bsicos)
9. Soluci n
Espacio de direcciones 32 bits 2
32
=424.967.300
Pgina 8K 2
32
/ 8K =524.288 entradas
Si la tabla se carga a razn de una palabra cada 100 nseg, entonces la tabla completa se cargar en
524.288 x 100 nseg =52.428.800 nseg o sea 52,429 mseg aproximadamente. Sabiendo que cada
proceso ejecuta 100 mseg, se usa el 52,429% del tiempo a buscar en la tabla.
10. Soluci n
El esquema del espacio de direcciones es el siguiente:
9 bits de alto
nivel
11 bits de segundo
nivel
12 bits de
desplazamiento
Nmero de pginas: 2
20
=1.048.576
Tamao de pginas 2
12
=4096 =4K
11. Soluci n
a) Una referencia a memoria paginada tardar 2,4 useg (1,2 useg de referencia a la tabla +1,2 useg
de referencia a memoria)
b) Suponiendo un tiempo nulo de bsqueda en memoria asociativa, tenemos un tiempo de 1,2 useg
El tiempo efectivo ser:
75% x 1,2 useg +25% x 2,4 useg = 1,5 useg.
100
12. Soluci n
Acceso a la memoria asociativa 100 nseg
Acceso a memoria central 500 nseg
Overhead requerido 200 nseg
O sea
hr x 100 nseg +(100 % hr) x 500 nseg = 200 nseg
100 %
Despejando, tenemos que el hit ratio debe ser un 75%
13. Soluci n
Tamao de pgina: 8K =8 x 1024 =2
3
x 2
10
=2
13
Para el espacio de direccionamiento virtual (48 bits) el esquema es el siguiente:
35 bits para el nmero de
pgina
13 bits de desplazamiento
Para este esquema se necesitan 2
35
entradas (O sea 34.359.738.368 pginas).
Para la tabla en memoria convencional (32 bits) tenemos:
19 bits para el nmero de
pgina
13 bits de desplazamiento
Con una necesidad de 2
19
entradas (524.288 pginas).
14. Soluci n
LRU 1 PF
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
20 fallos
LRU 2 PF
1 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 6
18 fallos
LRU 3 PF
1 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 3
3 3 3 1 1 1 2 2 2 2 2 6 6 6 1 1 1 6
15 fallos
LRU 4 PF
1 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 2
3 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 1
10 fallos
LRU 5 PF
1 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 2
3 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 3
5 5 5 5 5 5 7 7 7 7 7 7 7 7
8 fallos
LRU 6 PF
1 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 2
3 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 7
5 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 6
7 fallos
LRU 7 PF
Habr 7 fallos ocasionados por la entrada de cada pgina de memoria a las 7
celdas.
FI FO 1 PF
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
20 fallos
FIFO 2 PF
1 2 3 4 2 1 5 6 2 1 1 3 7 6 3 2 1 1 3 6
1 2 3 4 2 1 5 6 2 2 1 3 7 6 3 2 2 1 3
18 fallos
FIFO 3 PF
1 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 3
1 2 2 3 4 1 5 6 6 2 1 3 3 7 9 9 2 1
16 fallos
FI FO 4 PF
1 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 3
1 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 1
11 fallos
FI FO 5 PF
1 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 7
1 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 2
1 2 2 3 4 5 6 1 1 1 1 1 1 1
11 fallos
FIFO 6 PF
1 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 2
1 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 7
1 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 5
10 fallos
FIFO 7 PF
Idem a LRU con 7 celdas.
OPTI MO 1 PF
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
20 fallos
OPTIMO 2 PF
1 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 6
15 fallos
OPTI MO 3 PF
1 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 2
3 4 4 4 5 6 6 6 6 6 6 6 6 6 1 1 1 6
11 fallos
OPTIMO 4 PF
1 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 2
3 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 6
8 fallos
OPTIMO 5 PF
1 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 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 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 7
7 fallos
OPTIMO 6 PF
1 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 2
3 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 7
5 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 6
7 fallos
OPTIMO 7 PF
Idem LRU para 7 celdas.
15. Solucin
Tiempo de acceso al tambor y transferencia desde el mismo: 5 mseg =5.000 useg
Tiempo de acceso a memoria principal: 1 useg
Tiempo de acceso a la tabla en memoria principal: 2 x 1 useg =2 useg
Tiempo de acceso a la tabla en memoria asociativa: 1 useg
El 80% de los accesos est en la tabla de memoria asociativa, del 20% restante, el 18% est en
memoria principal (2 accesos) y el 2% genera una falla de pgina (est en el tambor).
El tiempo medio de acceso ser:
Tma =80% x 1useg +18% x 2 useg +2% x 5.000 useg = 101,16 useg
100 %
16. Soluci n
Tiempo de acceso a memoria central: 1 useg
Tiempo para servir un fallo de pgina limpio: 8 mseg =8.000 useg
Tiempo para servir un fallo de pgina sucio: 8.000 useg x 2 (guardar la pgina modificada y traer
la nueva) =16.000 useg
El 70% de las pginas a reemplazar est sucio, y el 30% limpio
Se intenta calcular la tasa de fallos de pgina (hit ratio) mxima para un TMA de 2 useg.
hr x 1 useg +(100 hr) x 70% x 16.000 useg +(100 x hr) x 30% x 8.000 useg
TMA = 100% 100 =2 useg
100%
hr =99,992%, por lo que la tasa mxima de fallo de pgina resulta menor al 0,01%
17 Soluci n
Sin haber fallos de pgina, tenemos un tiempo de acceso de 2 useg
Con fallos de pgina, el mismo tiempo es de 5 mseg (5.000 useg).
Se desea un TMA de 4 useg, o sea:
TMA =hr x 2 useg +(100 hr) x 5.000 useg = 4 useg
100%
Resolviendo, tenemos un hit ratio de aproximadamente 99,96%
I V. Entrada-Salida / I-nodos
1.
SSTF: (Total =35 ms)
1107 ->1108 ->1244 ->955 ->100 ->15
C-SCAN: (Total =314 ms)
1107 ->1108 ->1244 ->Fin ->Inicio ->15 ->100 ->955
2.
Cil: 20 ->50 ->55 ->75 ->15
Sec: 1 -> 8 -> 1 -> 2 -> 10
El tiempo total es: 620 ms (No olvidar el tiempo de Transferencia)
3.
FIFO: (Total=73/12 =6.08 ms)
50->535->3451->7548->487->2087->3147->9843->3521->6841->8544->6024->987
SCAN: (Total =16/12 =1.3 ms)
50->487->535->987->2087->3147->3451->3521->6024->6841->7548->8544->9843
LOOK: (Total =16 / 12 =1.3 ms)
Igual que el Scan
STSF: (Total =16 / 12 =1.3 ms)
Igual que el Scan
4.
-92 Gb
-24 Kb +48 Mb +192 Gb =2062087864 bytes
-El mismo que el anterior. Un directorio tambin es un archivo. (Ver Conceptos Bsicos)
5.
-120 Gb
-72 Kb +144 Mb +864 Gb +5184 Tb =5567183732808 Kb
6.
-96Kb +16 Mb +32 Gb +64 Tb
-Para la posicin 13.423.956 se necesitan 2 accesos. Para la posicin 35.134.753.309 se necesitan
4.
7.
-120 Gb
-24Kb +32 Mb +32 Gb
-Se necesitan 1 acceso
V Proteccin y Seguridad
14.
a. 26^4 / 2 =228488 seg.
3600 seg. _________ 1 hora
228488 seg. _______ 63.5 horas
b) 13 x 4 =52 segundos (se promedian 13 intentos por cada posicin)
15.
a. T=(21x 5 x 21) ^2 =4862025 claves
b) 1/T =0.0000002
16.
6.4 x 10^6 claves ________________ 1 seg.
95 ^10 claves ________________ 9.81 x 10 ^12 seg. (312500 aos aprox.)
VI Ejercicios Integrados
1. Finalizan: P3(30), P1(44), P2(46)
P3 I/OI/OI/O I/OI/OI/O F
P2 I/OI/OI/O
P1 I/OI/OI/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
P3
P2 F
P1 F
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
2.
a. Los estados finales de la memoria son: P1=[5,1,2] y P2=[5,2,1]
a.1. No se puede aplicar dicha tcnica (Ver Conceptos Bsicos)
a.2. Para P1 se producen 2 Page Faults. Para P2 se producen 4.
b. No
c. P1 si. P2 es abortado por referenciar un frame inexistente.
3.
4.
5.
6.
FINAL de Sistemas Operativos y Computacin II (90 min.)
07/12/2002
Apellido y Nombre:.................................................................... Profesor:............................
A B
PARA CONTESTAR ESTE FINAL USE NICAMENTE ESTA HOJ A ESCRIBIENDO EN ESTA CARA Y
EN SU CONTRACARA.
A) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO su
respuesta en no ms de 3 lneas.
1. Una de las ventajas que presentan los sistemas basados en microncleos, con respecto a otras
arquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso de
mensajes.
2. Para permitir un mayor grado de multiprogramacin Es mejor optar por pginas de un tamao
pequeo.
3. La planificacin SSTF tiende a favorecer menos a los cilindros externos e internos que a los de la
zona intermedia.
4. La existencia de un planificador a corto plazo slo tiene sentido en los sistemas con
multiprogramacin.
5. El algoritmo de Peterson es una estrategia para la sincronizacin de procesos.
B) Resolver los siguientes ejercicios.
1. Sea el siguiente esquema de llegada de trabajos a ser procesados en un sistema
monoprocesador:
Proces
o
T
llegada
Tiempo de
CPU
Comienzo de
E/S
Duracin de
E/S
Prioridad
Base
Tamao
1 0 7 2 2 BAJ A 2000 k
2 1 9 3
7 8
4
3
MEDIA 1800 k
3 2 7 5
9 10
4
4
MEDIA 800 k
4 3 5 4 4 ALTA 1000 k
5 3 4 - - MEDIA 1700 k
Orden de prioridad: ALTA >MEDIA >BAJ A.
Tamao de la memoria disponible: 5.500 k.
Cantidad de instancias de E/S: 1.
Administracin de Memoria: particiones dinmicas, con realocacin cada vez que sea necesario
y algoritmo de asignacin de peor ajuste.
Administracin de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los
procesos aumentan a medida que pasa el tiempo. El mtodo de aumento de prioridad se realiza
cuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasa
a la prioridad siguiente (envejecimiento o ageing) y as sucesivamente hasta que tome la CPU,
luego de dejar la CPU vuelven a su prioridad base. Cuando un proceso cambia la prioridad por
envejecimiento, entra a la cola de listo ltimo de su nueva prioridad. En caso de simultaneidad
de eventos, tiene prioridad el proceso envejecido.
Notas: - Recuerde que para acceder a la cola de ready, un job debe estar en memoria real, o sea,
antes debe competir por el recurso memoria.
- Considere que cuando un job toma un segmento de memoria, no lo libera hasta su
finalizacin, cualquiera sea su prioridad.
Se pide que realice la traza de ejecucin completa de los procesos y el mapa de memoria en los
instantes correspondientes.
2. Dado el clsico problema de productores y consumidores, se plantea una solucin
utilizando semforos con el siguiente cdigo:
Typedef i nt semaf or o;
t ypedef char * msg;
i nt N=100; / *Longi t ud del buf f er */
semaf or o mut ex = 1; / *Da l a excl usi n mut ua */
semaf or o l l eno = 0; / *Cuent a l ugar es l l enos */
semaf or o vaci o = N; / *Cuent a l ugar es vac os */
Pr oduct or ( )
{
msg mensaj e;
whi l e( TRUE)
{
pr oduci r ( mensaj e) ;
down( &mut ex) ;
down( &vaci o) ;
ent r ar _msg( mensaj e) ;
up( &mut ex) ;
up( &l l eno) ;
}
}
Consumi dor ( )
{
msg mensaj e;
whi l e( TRUE)
{
down( &l l eno) ;
down( &mut ex) ;
r emover _msg( mensaj e) ;
up( &mut ex) ;
up( &vaci o) ;
consumi r _msg( mensaj e) ;
}
}
La solucin planteada es vlida?. En caso de que no lo sea, explique por qu.
3. Un sistema de archivos utiliza una poltica de asignacin de espacio indexada. En este sistema,
los bloques de datos de un archivo, se pueden ubicar de forma contigua? Es necesario que los
bloques estn ubicados de forma contigua? Da igual que lo estn? J ustifique con mucha claridad
su respuesta. Cambiara en algo su contestacin si la asignacin de espacio fuera enlazada?
Ejemplo de finales tomados:
07/12/2002
Enunciados:
B) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones JUSTIFICANDO su
respuesta en no ms de 3 lneas.
1. Una de las ventajas que presentan los sistemas basados en microncleos, con respecto a otras
arquitecturas tradicionales, es el mayor rendimiento al basarse su funcionamiento en el paso de
mensajes.
2. Para permitir un mayor grado de multiprogramacin Es mejor optar por pginas de un tamao
pequeo.
3. La planificacin SSTF tiende a favorecer menos a los cilindros externos e internos que a los de la
zona intermedia.
4. La existencia de un planificador a corto plazo slo tiene sentido en los sistemas con
multiprogramacin.
5. El algoritmo de Peterson es una estrategia para la sincronizacin de procesos.
B) Resolver los siguientes ejercicios.
1. Sea el siguiente esquema de llegada de trabajos a ser procesados en un sistema
monoprocesador:
Proces
o
T
llegada
Tiempo de
CPU
Comienzo de
E/S
Duracin de
E/S
Prioridad
Base
Tamao
1 0 7 2 2 BAJ A 2000 k
2 1 9 3
7 8
4
3
MEDIA 1800 k
3 2 7 5
9 10
4
4
MEDIA 800 k
4 3 5 4 4 ALTA 1000 k
5 3 4 - - MEDIA 1700 k
Orden de prioridad: ALTA >MEDIA >BAJ A.
Tamao de la memoria disponible: 5.500 k.
Cantidad de instancias de E/S: 1.
Administracin de Memoria: particiones dinmicas, con realocacin cada vez que sea necesario
y algoritmo de asignacin de peor ajuste.
Administracin de CPU: Round Robin (Slice=3), con prioridades. Las prioridades de los
procesos aumentan a medida que pasa el tiempo. El mtodo de aumento de prioridad se realiza
cuando un proceso permanece en la cola de listo sin ejecutarse, cada 4 unidades de tiempo pasa
a la prioridad siguiente (envejecimiento o ageing) y as sucesivamente hasta que tome la CPU,
luego de dejar la CPU vuelven a su prioridad base. Cuando un proceso cambia la prioridad por
envejecimiento, entra a la cola de listo ltimo de su nueva prioridad. En caso de simultaneidad
de eventos, tiene prioridad el proceso envejecido.
Notas: - Recuerde que para acceder a la cola de ready, un job debe estar en memoria real, o sea,
antes debe competir por el recurso memoria.
- Considere que cuando un job toma un segmento de memoria, no lo libera hasta su
finalizacin, cualquiera sea su prioridad.
Se pide que realice la traza de ejecucin completa de los procesos y el mapa de memoria en los
instantes correspondientes.
2. Dado el clsico problema de productores y consumidores, se plantea una solucin
utilizando semforos con el siguiente cdigo:
Typedef i nt semaf or o;
t ypedef char * msg;
i nt N=100; / *Longi t ud del buf f er */
semaf or o mut ex = 1; / *Da l a excl usi n mut ua */
semaf or o l l eno = 0; / *Cuent a l ugar es l l enos */
semaf or o vaci o = N; / *Cuent a l ugar es vac os */
Pr oduct or ( )
{
msg mensaj e;
whi l e( TRUE)
{
pr oduci r ( mensaj e) ;
down( &mut ex) ;
down( &vaci o) ;
ent r ar _msg( mensaj e) ;
up( &mut ex) ;
up( &l l eno) ;
}
}
Consumi dor ( )
{
msg mensaj e;
whi l e( TRUE)
{
down( &l l eno) ;
down( &mut ex) ;
r emover _msg( mensaj e) ;
up( &mut ex) ;
up( &vaci o) ;
consumi r _msg( mensaj e) ;
}
}
La solucin planteada es vlida?. En caso de que no lo sea, explique por qu.
3. Un sistema de archivos utiliza una poltica de asignacin de espacio indexada. En este sistema,
los bloques de datos de un archivo, se pueden ubicar de forma contigua? Es necesario que los
bloques estn ubicados de forma contigua? Da igual que lo estn? J ustifique con mucha claridad
su respuesta. Cambiara en algo su contestacin si la asignacin de espacio fuera enlazada?
Respuestas:
Parte A
1. F. Precisamente el basarse en el paso de mensajes constituye un problema para su rendimiento.
2. V. As caben ms pginas en memoria principal, lo que permitir tambin tener ms procesos
3. V. en los extremos, cilindros internos y externos, slo se tiene una posibilidad de movimiento, un
nico sentido, que les aleja de dichas zonas y adems, les conduce a las zonas intermedias.
4. V. Slo en este caso hay varios procesos en el sistema entre los que repartir la CPU
5. F. Es una solucin al problema de la exclusin mutua.
Parte B
1. Solucin a verificar:
a.
P5
P4 IOIOIOIO
P3 IOIOIOIO IOIOIOIO
P2 IOIOIOIO IOIOIO
P1 IOIO
0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233
P1 termina en 16
P4 termina en 28
P5 termina en 29
P2 termina en 31
P3 termina en 32
b. MEMORIA (el nmero en parntesis es el espacio libre)
0> P1 (3500)
1> P1, P2 (1700)
2> P1, P2, P3 (900)
16> P2, P3, P4, P5 (200)
28> P2, P3, P5 (1200)
19> P2, P3 (2900)
31> P3 (4700)
32> (5500)
2.
Se queda en deadlock.
si el productor da dos vueltas seguidas se bloquea en down(&vacio) despus de hacer el
down(&mutex) y el consumidor se bloquea en el down(&mutex) despus de hacer el
down(&lleno)... entonces productor est esperando el VACIO y consumidor est esperando el
MUTEX.
Para el ejemplo supongo que primero se inicia el productor y corre hasta bloquearse y despus se
inicia el consumidor.
Productor Consumidor Mutex Vacio Lleno
Se inicia el productor 1 1 0
down mutex 0 1 0
down vacio 0 0 0
up mutex 1 0 0
up lleno 1 0 1
down mutex 0 0 1
down vacio (se bloquea) 0 0 1
se inicia el consumidor 0 0 1
down lleno 0 0 0
down mutex (se bloquea) 0 0 0
LOS DOS ESTAN BLOQUEADOS LOS DOS ESTAN BLOQUEADOS
3. La asignacin indexada permite que los bloques de datos de un archivo se encuentren dispersos
por el disco, pero evidentemente no obliga a ello. As que los bloques de un archivo indexado
pueden estar contiguos.
Sin embargo, no es indiferente el que los bloques estn contiguos. Los accesos secuenciales al
archivo sern ms eficientes en ese caso, porque el desplazamiento de los cabezales del disco ser
menor, comparado con el recorrido que tendra que hacer el cabezal si los bloques estuvieran
desperdigados por la superficie del disco. La
contigidad ocasiona un menor tiempo de acceso. En el mejor caso, todos los bloques del archivo
estaran en un mismo cilindro y la cabeza lectora no tendra que hacer ningn movimiento para leer
el archivo completo.
Si la asignacin de espacio fuera enlazada, la respuesta sera similar. Incluso tendra ms impacto
en el rendimiento el hecho de que los bloques estn contiguos, ya que en la asignacin enlazada
cualquier acceso al archivo, ya sea secuencial o ya sea directo, exige recorrer los enlaces de los
bloques. Si los bloques estn contiguos, el cabezal del disco har un recorrido ms pequeo.
FINAL DEL 28/05/03
Parte Prctica
Ejercicio 1
Un sistema computacional de un solo procesador planifica el procesamiento de trabajos
segn el siguiente modelo:
La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos,
usando una poltica SJF (Shortest J ob First). En el corto plazo el procesador es asignado usando una
poltica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos:
Proceso Tiempo de
llegada
CPU E/S CPU Tiempo estimado de
proceso (SJF)
P
1
0 5 3 3 12
P
2
0 2 4 3 10
P
3
2 3 4 2 8
P
4
4 6 2 2 11
P
5
10 2 3 2 7
P
6
15 3 4 4 12
Cola de largo
plazo
Fin de Quantum
Cola de corto
plazo
Cola de E/S
E/S
CPU
Llegada Salida
Planificacin
Largo Plazo
Planificacin Corto Plazo
Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de
corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) fin de E/S, 2) Cola de Largo Plazo y 3) fin
de quantum.
Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo
de E/S (el cual planifica FIFO) se pide la traza de ejecucin de los procesos mediante un Diagrama de
Gantt.
Ejercicio 2
Se tiene un disco con la siguiente geometra: 3 platos, 100 sectores por pista, un total de
500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3
registros del archivo 1 y los primeros 4 registros del archivo 2.
Sean los archivos con sus respectivos sectores lgicos:
Archivo 1 (tiene registros de 1024 bytes): 1301 / 1902, 2503 / 3704, 599 / 600.
Archivo 2 (tiene registros de 512 bytes): 30023, 30024, 3800, 60102.
Si se sabe que el brazo del disco se encuentra en el cilindro 4, graficar el orden de ejecucin de los pedidos,
asumiendo que estn en la cola, para cada uno de los siguientes algoritmos:
a) SSTF.
b) F-SCAN El brazo est ascendiendo.
RDO:
Pto 1
CPU 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 finaliza
P1 0 26
P2 0 (encola primero por SJ F) 13
P3 2 17
P4 17 32
P5 13 25
P6 25 41
Pto 2
Direcciones Fsicas
(cilindro, cabeza, sector)
(2, 1, 2)
(3, 1, 3)
(4, 1, 4)
(6, 1, 5)
(0, 5, 100)
(1, 0, 1)
(50, 0, 24)
(50, 0, 25)
(6, 2, 1)
(100, 1, 3)
a) 4 3 2 1 0 6 (x2) 50 (x2) 100
SSTF
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8
C
i
l
i
n
d
r
o
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
C
i
l
i
n
d
r
o
s
Series1
RESOLUCIN
Parte Prctica
Ejercicio 1
Un sistema computacional de un solo procesador planifica el procesamiento de trabajos
segn el siguiente modelo:
La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos,
usando una poltica SJF (Shortest J ob First). En el corto plazo el procesador es asignado usando una
poltica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos:
Proceso Tiempo de
llegada
CPU E/S CPU Tiempo estimado de
proceso (SJF)
P
1
0 5 3 3 12
P
2
0 2 4 3 10
P
3
2 3 4 2 8
P
4
4 6 2 2 11
P
5
10 2 3 2 7
P
6
15 3 4 4 12
Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de
corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) fin de E/S, 2) Cola de Largo Plazo y 3) fin
de quantum.
Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo
de E/S (el cual planifica FIFO) se pide la traza de ejecucin de los procesos mediante un Diagrama de
Gantt.
Ejercicio 2
Se tiene un disco con la siguiente geometra: 3 platos, 100 sectores por pista, un total de
500 cilindros y sectores de 512 bytes. En un momento determinado se leen los primeros 3
registros del archivo 1 y los primeros 4 registros del archivo 2.
Sean los archivos con sus respectivos sectores lgicos:
Archivo 1 (tiene registros de 1024 bytes): 1301 / 1902, 2503 / 3704, 599 / 600.
Archivo 2 (tiene registros de 512 bytes): 30023, 30024, 3800, 60102.
Si se sabe que el brazo del disco se encuentra en el cilindro 4, graficar el orden de ejecucin de los pedidos,
asumiendo que estn en la cola, para cada uno de los siguientes algoritmos:
c) SSTF.
d) F-SCAN El brazo est ascendiendo.
RDO:
Pto 1
CPU P2 P2 P1 P1 P3 P3 P1 P1 P2 P2 P3 P1 P2 P5 P5 P3 P3 P4 P4 P1 P1 P4 P4 P5 P5

Cola de largo
plazo
Fin de Quantum
Cola de corto
plazo
Cola de E/S
E/S
CPU
Llegada Salida
Planificacin
Largo Plazo
Planificacin Corto Plazo
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 finaliza
P1 0 26
P2 0 (encola primero por SJ F) 13
P3 2 17
P4 17 32
P5 13 25
P6 25 41
Pto 2
Direcciones Fsicas
(cilindro, cabeza, sector)
(2, 1, 2)
(3, 1, 3)
(4, 1, 4)
(6, 1, 5)
(0, 5, 100)
(1, 0, 1)
(50, 0, 24)
(50, 0, 25)
(6, 2, 1)
(100, 1, 3)
c) 4 3 2 1 0 6 (x2) 50 (x2) 100
SSTF
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8
C
i
l
i
n
d
r
o
s
Series1
d) 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
C
i
l
i
n
d
r
o
s
Series1
FINAL DEL 21/12/2002
C) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO
su respuesta en no ms de 3 lneas.
1. Una de las estrategias para detectar el deadlock distribuido son los algoritmos centralizados. En
este tipo de algoritmos todos los procesos cooperan para detectar el deadlock. (ST 611)
2. No existe diferencia entre la operacin de espera de un semforo y de una variable de condicin
de un monitor.
3. En un sistema operativo que trabaja con memoria virtual, la transicin entre estados
RUNNING READY SUSPEND no es posible. (ST 115)
4. El microkernel puede reconocer las interrupciones, pero no las puede manejar. (ST 169)
5. La limitacin que trae el mtodo de clustering por servidores separables, es que usualmente
requiere discos espejados o alguna tecnologa de RAID para compensar los riesgos de falla de algn
disco. (ST 575)
B) Resolver PAP NOEL Y LOS RENOS.
Desde fines de noviembre, Pap Noel se encuentra planificando su itinerario de viaje. Existe un
pueblito en particular en el que no se decide como repartir los regalos. Se trata de Villa Circular, un
pueblo con 200 calles (numeradas de 0 a 199) las cuales se encuentran dispuestas de forma similar
que los cilindros de un disco. Los clculos de aterrizaje de su trineo le indican que deber empezar
su recorrido por la calle 100. Adems, Pap Noel tiene la lista de pedidos de los nios de acuerdo al
orden en que le fueron llegando las cartitas (para simplificar, ha anotado slo el nmero de calle):
81, 142, 86, 172, 89, 145, 97, 170 y 125. Dado que Pap Noel ha ledo el libro de Stallings, ha
decidido elegir la forma en que repartir los regalos de acuerdo a algunos de estos dos algoritmos de
planificacin de disco: el FCFS (First come-First Served) y el SSTF (Shortest Service Time First).
Pap Noel ley este libro hace bastante tiempo, y no recuerda con exactitud como trabaja cada
uno de los algoritmos de planificacin de disco, por lo que Ud. debe ayudarlo a encontrar el
algoritmo que le brinde la menor longitud media de bsqueda para satisfacer las entregas de
regalos (es necesario indicar la longitud de ambos algoritmos). Tambin debe refrescarle que
inconvenientes presentan estos dos algoritmos.
Una semana antes del 24 de diciembre, Pap Noel ya va pensando en como ubicar los regalitos de
los nios en su trineo. Para ello cuenta con un espacio total que equivale a 64 megabytes de una
memoria principal instalada en una maquina, que utiliza memoria segmentada, en la cual un
segmento equivale a un regalo, y cuyas direcciones lgicas (lista de ubicacin de los paquetes en el
trineo) tienen esta estructura: 10 bits para el campo del regalo y 22 bits para el tamao del regalo.
En un momento dado, el trineo est organizado de la siguiente forma: las maletas de Pap Noel, que
son inalterables, residen en los primeros 128 Kbytes del trineo. Hay un nico proceso P, que es el
encargado de llevar a cabo el proceso de reparto de los regalos a las casas, con cuatro regalitos
asignados por el momento: los regalos 0, 1 y 2 tienen longitudes respectivas 10 Kbytes, 25 Kbytes y
2 Kbytes y se hallan en las posiciones del trineo 300.000, 200.000 y 700.000, respectivamente. El
regalo 3 permite acceder a toda el rea de las maletas.
Es necesario que usted represente la tabla de regalos del proceso P, y que diga cul es la direccin
del trineo que se corresponde con la posicin en la lista de ubicaciones que tiene el regalo=2 y el
desplazamiento=1000. Indique adems, hasta cuantos paquetes podra llevar Pap Noel y el
tamao mximo de cada uno en un trineo sin limitaciones. Suponga que el sistema que utiliza Pap
Noel para alocar a los regalos es el best-fit. Indique qu zona del trineo le asignara si se solicita
un espacio para un regalo de 400 KB.
Despus de una larga recorrida por la Villa Circular los renos estn sedientos y necesitan tomar
agua para poder volver a sus establos, que se encuentran en el Polo Norte. Para ello el nico lugar
donde se les puede dar de tomar es en algn hpico, ya que poseen bebederos para caballos. Al
llegar los renos toman agua del primer bebedero que encuentran lleno y cuando comienza a beber,
Pap Noel, nota una situacin que siempre le result indiferente. Cuando el bebedero se vaca,
automticamente un sistema de llenado detecta que el mismo esta vaco y lo vuelve a llenar para
que los renos sigan tomando. Por el ruido del motor del sistema de llenado, los renos tienen miedo y
no toman mientras se llena. Este sistema esta activo las 24 hs. En ese instante llega un estudiante de
Ingeniera en Sistemas de la UTN y Pap Noel le comenta esta rutina y tambin le pregunta si se
podr hacer el pseudocdigo del reno y del sistema de llenado que estn sincronizados y libres de
deadlock y starvation.
Para ayudar a Pap Noel a llevar cabo su difcil rutina dispondr de 80 minutos. Tenga en cuenta
que si logra resolverlo, miles de nios estarn contentos por haber recibido sus regalos y tambin
porque se aseguran que volver el ao prximo debido a que usted seguramente no va a matar a los
renos de sed.
RESPUESTAS
Tericas.
1) (ST 611) Falsa. Si todos los procesos cooperan estamos hablando de algoritmos distribuidos, en
los algoritmos centralizados un nodo es responsable de detectar el deadlock. Los mensajes van a
parar a un nodo central.
2) Falsa. La diferencia que existe es que en el caso de la variable de condicin siempre se suspende
el proceso que la emite.
3) (ST 115) Falsa. Si es posible y se justifica dando una explicacin de porque se hace ese cambio
de estados.
4) (ST 169) Verdadera.
5) (ST 575) Falsa. Esa limitacin la presenta el mtodo servers connected to disks.
Prcti ca
Pap Noel ley este libro hace bastante tiempo, y no recuerda con exactitud como trabaja
cada uno de los algoritmos de planificacin de disco, por lo que Ud. debe ayudarlo a
encontrar el algoritmo que le brinde la menor longitud media de bsqueda para satisfacer las
entregas de regalos (es necesario indicar la longitud de ambos algoritmos). Tambin debe
refrescarle que inconvenientes presentan estos dos algoritmos.
Planificacin FCFS: En este algoritmo la primera peticin que llega es la primera que se sirve:
Pista a la que se Accede 81 142 86 172 89 145 97 170 125
N de pistas que se atraviesan 19 61 56 86 83 56 48 73 45
Rta: 58.5
Inconveniente: Los movimientos bruscos de vaivn a los que se ve sometida la cabeza de lectura /
escritura, pudiendo llegar a problemas fsicos del equipo.
Planificacin SSTF: Este algoritmo consiste en atender la peticin que requiere el menor
movimiento de la cabeza de lectura / escritura desde su posicin actual.
Pista a la que se accede 97 89 86 81 125 142 145 170 172
N de pistas que se atraviesan 3 8 3 5 44 17 3 25 2
Rta: 12.2
Inconveniente: Se puede presentar el bloqueo indefinido. Si las peticiones de pista que se suceden
estn ms prximas a la actual, aquellas que se pidieron con anterioridad pueden quedar
postergadas de manera indefinida.
Es necesario que usted represente la tabla de regalos del proceso P
Podra ser algo as:
segmento Longitud (bytes) Dir. base Dir. Fin
0 10.240 300.000 310.240
1 25.600 200.000 225.600
2 2.048 700.000 702.048
3 131.072 0 131.072
, y que diga cul es la direccin del trineo que se corresponde con la posicin en la lista de
ubicaciones que tiene el regalo=2 y el desplazamiento=1000.
Base[2]+desplazamiento =700000 +1000 =701000
Indique adems, hasta cuantos paquetes podra llevar Pap Noel y el tamao mximo de cada
uno en un trineo sin limitaciones.
Cant. Max de paquetes: 210 =1 K
Tamao mx. : 222 =4 M
Suponga que el sistema que utiliza Pap Noel para alocar a los regalos es el best-fit. Indique
qu zona del trineo le asignara si se solicita un espacio para un regalo de 400 KB.
Si observamos el reparto de la memoria fsica, vemos que slo hay un hueco que tiene ms de
400Kb, y es el espacio que queda a continuacin de la direccin fsica 702048. Por tanto, el hueco
ser concedido en esa direccin, o bien justo al final de la memoria fsica (que tambin dejara un
nico hueco compacto).
FINAL DEL 01/03/2003
D) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones FUNDAMENTANDO
su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5).
1. Cuando se va a leer un archivo que es accedido simultneamente por varios usuarios es conveniente usar el Mtodo de Fuerza Bruta
(Bruce-Force).
2. Cuando se produce un trap, el sistema operativo debe decidir si el error es o no fatal.
3. Dado un SO que controla dos filesystems diferentes, el espacio libre de los mismos es manejado de igual forma para ambos.
4. En la segmentacin simple, la memoria principal no est particionada
E) Conteste en no ms de 5 renglones:
Qu ventaja(s) hay en tomar tamaos diferentes de quantum en niveles diferentes de un sistema de encolamiento multinivel?
F) Resolver los siguientes ejercicios. (Condicin de aprobacin 1/2).
Nuestro Servidor es un AS/400 modelo 150, sub-modelo 2269, cuyo nmero de serie es 101492R. Es uno de los pequeos de IBM, su
Performance es de 27 (CPW), y el fitcher interactivo es de 13.8 CPW. El sistema Operativo es el OS400 V4R4M0 y el ltimo nivel de PTF
aplicada (Service Pack) es TL00350. Se dispone de 1 solo procesador con 64 MB de memoria RAM y el nivel de seguridad adoptado es
30 (Permisos a nivel usuario).
En la plataforma AS/400, la memoria fsica se divide en agrupaciones lgicas llamadas POOLes de memoria. Cada POOL tiene asociados
uno o ms subsistemas en el cual corren trabajos y tareas del sistema.
Algunos POOLes son especficos del sistema y otros son creados por los usuarios. Los POOLes del sistema son:
*MACHINE, donde corren las tareas.
*SPOOL, donde corren los trabajos de impresin.
*INTERACT, donde corren los trabajos interactivos (Los que provienen de una consola interactiva y/o emulacin 5250)
*BASE, donde corren los trabajos Batch y los que no tienen otro POOL especificado.
En el AS/400, los defaults son regidos por valores del sistema. El valor del sistema QPFRADJ permite especificar si el tamao de los
POOLes es esttico, Cada POOL queda con el tamao que el usuario indica y no se modifica, si es 0, o si el tamao del POOL va a ser
administrado dinmicamente por el Sistema Operativo si fuese 3.
La tarea que se nos encarga es analizar el rendimiento del AS/400. Lo que nos interesa optimizar es el tiempo de respuesta de los
usuarios, para lo cul nos enfocaremos en el subsistema *INTERACT.
Para dicha tarea hemos puesto el valor del sistema QPFRADJ en 0 , sin ajuste, y mediante la ejecucin de un trabajo interactivo
(QPADEV0005) que realiza un query en el archivo fsico SUELDOS, hemos logrado la siguiente instantnea de Performance, obtenida
con una herramienta de monitorizacin ON-Line:
Al cambiar el valor de QPFRADJ a 3, la nueva distribucin de los POOLes es:
Pool Tamao
*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 para
desplazamiento. La pila de llamadas del proceso interactivo (QPADEV0005) tiene las siguientes referencias a memoria: 1052 12864
5968 658 8954 147 (decimal)
Si la poltica de eleccin de la victima es LRU con asignacin fija y alcance local, se pregunta:
1) Se puede afirmar que es conveniente el ajuste automtico de memoria?. J ustifique claramente su respuesta.
En el AS/400, los procesos tienen un esquema de 100 posibles prioridades. Las tareas del sistema se ejecutan con prioridad 0, mientras
que los trabajos tienen prioridades entre 1 y 99 , el menor valor indica la mxima prioridad.
A su vez, cada trabajo dispone de un quantum de tiempo, llamado Timeslice. Dicho valor se mide en milisegundos y puede ser
cualquiera dentro del rango 1 y 9999999.
La prioridad de cada trabajo se define en un objeto del tipo *CLS, siendo para los procesos BATCH de 50 y los INTERACTIVOS de 20.
Los valores por omisin de Timeslice de cada trabajo dependen del subsistema en el cual fueron creados pero para simplificar las cosas
tomaremos que:
Trabajos BATCH : 5000
INTERACTIVOS: 2000
SYSTEM: 1000
Una vez que el trabajo obtiene la CPU para ser ejecutado, se mantiene hasta que necesite alguna operacin de Entrada/Salida, alcance
el total de su Timeslice, finalice su ejecucin, o sea desplazado por otro trabajo con prioridad superior.
2) Dada la siguiente tabla de procesos, suponiendo que cada ciclo de CPU utiliza su timeslice completo y que se cuenta con un nico
dispositivo de entrada / salida, determinar la traza de ejecucin y el orden de finalizacin, mediante un diagrama de Gantt, en forma
clara y detallada.
Instante de entrada (milisegundos) Nombre Trabajo (Tipo) CPU E/ S CPU E/ S CPU
0 STRBDMON (BATCH) xxx 3000 xxx 5000 xxx
2200 P_USRSPC (INTERACT) xxx 1000 xxx 1000 xxx
3500 DLTSPOOL (BATCH) xxx 2000 xxx 800 xxx
2600 WRKACTJ OB (SYSTEM) xxx 2800 xxx 4000 xxx
RESPUESTAS
A)
1. FALSO: El mtodo lo que hace es bloquear el archivo cuando se va a actualizar cuando hay
acceso paralelo, pero si lo nico que voy a hacer es leer un archivo no hace falta bloquearlo.
2. VERDADERO. Adems, si determina que el error es fatal, debe mover el proceso al estado
de exit y realizar un process switch.
3. a
4. VERDADERO. Es una de las caractersticas de la segmentacin simple (st 3-322)
B) Los procesos que necesitan servicios mas frecuentes, desde luego procesos interactivos tales
como editores, pueden estar en una cola con un pequeo quantum. Los procesos que no
necesitan pueden estar en una cola con un quantum ms grande, requiriendo menos context
switches para completar los procesos haciendo el uso ms eficiente de la computadora.
Pto b Pto a
Pedido Pgina Offset FrameDesplazamiento Direccin Fsica PFMapa de Memoria
1052 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)
Pedido Pgina Offset FrameDesplazamiento Direccin Fsica PFMapa de Memoria
1052 0 10000011100 0 10000011100 10000011100 (0, , )
12864 11 1001000000 1 1001000000 11001001000000 (0,3, )
5968 1 11101010000 10 11101010000 1011101010000 (0,3,1)
658 0 1010010010 0 1010010010 1010010010 (0,3,1)
8954 10 1011111010 1 1011111010 10001011111010 SI (0,2,1)
147 0 10010011 0 10010011 10010011 (0,2,1)
G) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones
FUNDAMENTANDO su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5)
FINAL DEL 02/10/2003
1. En un sistema de clave pblica-privada para autentificar el origen de los datos se hace pblica la clave de desencripcin del receptor.
2. Cuando un proceso que se encuentra dentro de un monitor realiza una operacin wait sobre una variable de condicin, el proceso
espera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condicin.
3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar en
sistemas con mltiples procesadores, lo que si pueden ser realizado por los semforos.
4. El algoritmo de planificacin SJ F (Shortest J ob First) se puede implementar para la cola de nuevos, pero no para la cola de listos.
5. Como en todo FileSystem basado en i-nodos, en ext2, el super block es nico y no se repite.
B) Resuelva los siguientes ejercicios. (condicin de aprobacin 1/2)
1. Dada la siguiente situacin se requiere administrar la proteccin para garantizar la poltica definida.
El dominio esta definido por el grupo de usuarios.
Las operaciones permitidas son Read, Write y eXecute.
Hay un administrador: Carlos.
Hay dos docentes de Sistemas Operativos: Graciela y Pepe.
Hay dos docentes de arquitectura: Maria y J ose.
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 Dueo Nombre Dueo Nombre Dueo
Horarios Carlos R-KUMANA-B Matias ARQ1 maria
TPSO1 Graciela R-KUMANA-C Matias ARQ2 J ose
TPSO2 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 implementacin por medio de ACL (Access Control List) y C-List (capability List) y bits de
proteccin tipo UNI X.
2. Un pequeo centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo cdigos de
los procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semforos, para que no produzca Deadlock, ni
Starvation.
RESPUESTAS:
H) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones
FUNDAMENTANDO su respuesta en no ms de 3 lneas. (Condicin de aprobacin: 3/5)
1. En un sistema de clave pblica-privada para autentificar el origen de los datos se hace pblica la clave de desencripcin del receptor.
Falso. Se hace pblica la clave de desencriptacin del emisor. Sabiendo sto slo podemos
desencriptar los mensajes que hayan sido encriptados con la clave privada de encriptacin del emisor, que
slo ste conoce, con lo que nos aseguramos que ha sido l.
2. Cuando un proceso que se encuentra dentro de un monitor realiza una operacin wait sobre una variable de condicin, el proceso
espera fuera del monitor en una cola de procesos bloqueados asociada a dicha variable de condicin.
Falso. El proceso espera dentro del monitor a que otro proceso haga un signal sobre la
misma variable de condicin.
3. La gran desventaja que tienen las instrucciones TSL (test and set logic) es que no pueden trabajar en sistemas con mltiples
procesadores, lo que si pueden ser realizado por los semforos.
Falsa: Si usan memoria compartida se pueden usar semforos tranquilamente y se pueden
utilizar TAS para multiprocesadores.
voi d pasaj er o( )
{
whi l e ( 1)
{
l l egar _a_l a aer osi l l a( )
subi r _a_a_aer osi l l a( )
baj ar _de_l a_aer osi l l a( )
baj ar _esqui ando( )
}
}
voi d aer osi l l a( )
{
whi l e( 1)
{
subi r _l a_mont aa( )
baj ar _l a_mont aa( )
}
}
4. El algoritmo de planificacin SJ F (Shortest J ob First) se puede implementar para la cola de nuevos, pero no para la cola de listos.
Verdadero: Ya que si estamos hablando de J obs es porque estan en la cola de nuevo,
sino estariamos hablando de SPN (sortest process first), se habla de procesos.
5. Como en todo FileSystem basado en i-nodos, en ext2, el super block es nico y no se repite.
B) Resuelva los siguientes ejercicios. (condicin de aprobacin 1/2)
1. Dada la siguiente situacin se requiere administrar la proteccin para garantizar la poltica definida.
El dominio esta definido por el grupo de usuarios.
Las operaciones permitidas son Read, Write y eXecute.
Hay un administrador: Carlos.
Hay dos docentes de Sistemas Operativos: Graciela y Pepe.
Hay dos docentes de arquitectura: Maria y J ose.
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 Dueo Nombre Dueo Nombre Dueo
Horarios Carlos R-KUMANA-B Matias ARQ1 maria
TPSO1 Graciela R-KUMANA-C Matias ARQ2 J ose
TPSO2 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 implementacin por medio de ACL (Access Control List) y C-List (capability List) y bits de
proteccin tipo UNI X.
2. Un pequeo centro de ski cuenta con 1 aerosilla marca Lazzeri con capacidad para 1 sola persona. Si se tiene los seudo cdigos de
los procesos aerosilla y esquiador, se pide que sincronice convenientemente usando semforos, para que no produzca Deadlock, ni
Starvation.
FINAL DEL 27/05/2004
voi d pasaj er o( )
{
whi l e ( 1)
{
l l egar _a_l a aer osi l l a( )
subi r _a_a_aer osi l l a( )
baj ar _de_l a_aer osi l l a( )
baj ar _esqui ando( )
}
} voi d aer osi l l a( )
{
whi l e( 1)
{
subi r _l a_mont aa( )
baj ar _l a_mont aa( )
}
}
I) Explcitamente defina como VERDADERA o FALSA cada una de las siguientes afirmaciones
FUNDAMENTANDO su respuesta en no ms de 3 lneas.
1. La organizacin del flujo de informacin entre la memoria principal y la secundaria en un ambiente multiprogramado, es uno
de los grandes inconvenientes a resolver por los programadores en tiempo de desarrollo.
FALSO: Es el sistema Operativo es el que se encarga de eso, ya que el programador no sabe en tiempo de
codificacin cuanto espacio tendr disponible o donde estar el dato en memoria.
2. esperando para ejecutar.
FALSO: Si la asignacin de los procesos es esttica, es decir que siempre se le asignan a los procesos los mismos
procesadores se puede dar ese caso.
3. En un esquema del tipo Digital Envelope se realiza una doble encripcin para incorporarle mayor seguridad al mensaje a
transmitir.
FALSO: Se realiza una doble encripcin para poder pasar la clase simtrica y despus los sucesivos mensajes se
encriptan con esa clave y de esta manera se reduce el tiempo de procesamiento de la encripcin.
B) Responda las siguientes preguntas en no ms de 5 lneas.
1. De su opinin acerca de la siguiente cuestin: "El Sistema Operativo es un proceso".
2. Explique por qu surge y mencione la (s) desventaja (s) del diagrama de 5 estados.
C) Resuel va los siguientes ejercicios.
1. Se tiene un Sistema el cual utiliza un Short Term Scheduler por prioridades puras. En un momento dado se va a ejecutar el
siguiente set de procesos:
Proceso Prioridad T. Llegada CPU I / O CPU I / O CPU
P1 40 0 2 IMP (4) 3 DISCO (4) 2
P2 30 0 3 PLOTTER (2) X
P3 20 1 5 PLOTTER (3) 6 DISCO (2) 2
P4 10 3 2 IMP (2) 1
Considerando que se tienen tres dispositivos de entrada / salida, los cuales planifican FIFO, que el tiempo que insume el
Sistema Operativo en realizar un process switch es de 1 ciclo de CPU y que a menor nmero mayor prioridad, se pide hallar el
valor de X y los tiempos de finalizacin de todos los procesos para el valor hallado, sabiendo que el Turnaround Time del
proceso 2 es menor que el Turnaround Time del proceso 3. Justifique su respuesta.
NOTA: Para la resolucin de este ejercicio tenga en cuenta que no se considera el inicio del mismo como un process switch y
que ante la simultaneidad de eventos deber elegir por FIFO al proceso a ejecutar.
2. Cuando la NASA inici el lanzamiento de astronautas, descubrieron rpidamente que los bolgrafos no funcionaran con
gravedad cero. Para combatir este problema, los cientficos de la NASA emplearon una dcada y 12.000 millones
de dlares desarrollando un bolgrafo que escribiese con gravedad cero, hacia arriba y hacia abajo, bajo el agua, en
prcticamente cualquier superficie incluido el cristal y en un rango de temperaturas desde bajo cero hasta ms de 300C.
Para poder realizar dicho experimento era necesaria una correcta sincronizacin en la mquina que generaba las pruebas.
Para ello se definieron los siguientes procesos que se ejecutan concurrentemente en dicha mquina, donde a continuacin se
detallan las operaciones faltantes por cada proceso a partir del instante Y del Sistema:
PROCESO A 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 semforos es: A =4, B =5, C =3, D =1, E =1, F =1 y G =4, y que en el mismo
instante Y la cantidad de instancias de cada recurso que tienen asignados los procesos se detalla en la siguiente tabla:
A B C D E F G
PA 2 1 0 0 0 0 0
PB 0 1 0 0 0 0 0
PC 1 0 0 0 0 0 0
PD 0 0 0 0 0 0 0
PE 0 0 1 0 0 0 0
PF 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 su
razonamiento.
Si hubiera formado parte del equipo Ruso, seguramente no hubiera gastado tanto tiempo en realizar estos anlisis ya que
utilizaron un lpiz. (Sin comentarios ...)
J) R
esp
ond
a las siguientes preguntas en no ms de 5 lneas.
1. Existen distintos puntos de vista ante esta cuestin, depende desde que punto de vista sea, se puede decir
que el SO es un proceso comn y corriente o es un proceso privilegiado , pero siempre se debera de
concluir que es un proceso, ya que por un lado es un programa en memoria que es ejecutado por el procesador,
definicin de proceso.
2. La idea es bsicamente que contesten que el diagrama de 5 estados surge porque en el diagrama de 2
estados haba solamente una nica cola de NOT RUNNING y se tenia que recorrer esa cola buscando los
procesos que estn listos para ejecutar, ya que en esa cola estaban todos mezclados, los listo y los
bloqueados, con lo cual se produca un overhead en realizar esa bsqueda. Es por eso que se la cola de NOT
URNG se di vidi en READY y BLOCKED.
La principal desventaja de ese diagrama es que no contempla el swapeo a memoria secundaria de los procesos.
K) Resuel va los siguientes ejercicios.
1.
SO X X X X X X X X
P4 X X I I X
P3 X X X X X P P P X X X X X X D
P2 X X X P P
P1
0 1 2 3 4 5 6 7 8 910111213141516171819202122232425
X = 1
Turnaround P3 =29 - 1 =28
Tiempos de
Finalizacin de los
procesos
Turnaround 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
2627282930313233343536373839404142434445
06/12/2003
L) Explcitamente defina como VERDADERA o FALSA cada una de estas afirmaciones
FUNDAMENTANDO su respuesta en no ms de 3 lneas (condicin de aprobacin 3/5).
1. Cuantos ms procesos hay activos en memoria, ms fallos de pgina (Page Fault) existen y mejor es el uso del
procesador ya que aumenta la multiprogramacin.
Para aprobar el examen deber tener correctas, como mnimo, 3 preguntas tericas y 1 ejercicio prctico.
2. Siempre es conveniente poseer un sistema de encripcin de passwords que sea reversible.
3. En la TLB es posible identificar a que proceso pertenece cada pgina.
4. En el algoritmo de planificacin de disco LOOK la cabeza de escritura / lectura empieza en un extremo del disco y se
mueve hacia el otro, sirviendo las solicitudes a medida que llega a cada pista, hasta que se encuentra en el otro extremo
del disco, momento en el cual se invierte la direccin del movimiento y contina el servicio hasta el otro extremo.
B) Responda la siguiente pregunta en no mas de 5 renglones.
Enumere y describa los distintos tipos de aplicaciones maliciosas que necesitan de un programa host o anfitrin para
existir.
C) Resolver los siguientes ejercicios (condicin de aprobacin 2/3).
FINAL DEL 06/12/03
1. La gestin de memoria de un sistema operativo debe permitir que sea posible ejecutar concurrentemente 3 procesos,
donde los tamaos en bytes de cada uno de los segmentos que forman parte de sus imgenes de memoria son los
siguientes:
PROCESO CODIGO DATOS PILA
A 16384 8700 8192
B 2048 1000 1024
C 4096 2272 2048
Adems, se sabe que se dispone de una memoria fsica de 16 Kbytes y que el espacio de direcciones del sistema es de
64 Kbytes.
Se pide:
1.1) Determinar si son viables tamaos de pgina de 1024 bytes y 512 bytes suponiendo que una pgina no puede
contener partes de dos segmentos diferentes (cdigo, datos o pila).
1.2) Suponiendo de que ambos tamaos de pgina sean posibles, justificar qu tamao debera utilizar el sistema de
paginacin si se tiene en cuenta la fragmentacin interna producida.
1.3) Si se desea que las entradas de la tabla de pginas dispongan de 3 bits para referenciar el Frame de cada pgina,
qu tamao de pgina debera utilizarse sin tener en cuenta la ejecucin de los procesos A, B y C?
2. Dado el estado de un sistema, mediante el siguiente grafo de asignacin de recursos:
Suponiendo que los procesos ya no piden ms recursos durante el resto de su ejecucin y no liberarn sus recursos
hasta su finalizacin, indique si puede llegar a existir Deadlock. En caso negativo, de una secuencia de finalizacin de los
procesos; caso contrario diga cules procesos se encuentran en interbloqueo y proponga una solucin.
P
1
P
3
P
4
P
2
R
1
R
2
R
3
3. Nuestro cliente nos ha contratado para que le recomendemos un sistema operativo para que pueda implementar los
quehaceres del hogar, ya que su objetivo es lograr automatizarlos, como por ejemplo que nuestra PC pueda controlar
el lavarropas o que nos pueda hacer el desayuno a la maana temprano con el solo hecho de programarla. Se sabe que
en este tipo de sistemas la velocidad de respuesta tiene que ser muy alta. Como futuros Ingenieros en Sistemas de
Informacin se nos pide que evaluemos el planificador que mejor se adapte a las necesidades del cliente. Para ellos
hemos tomado la siguiente muestra de los procesos que habitualmente vamos a correr y que se adaptan a la dinmica
del uso que se le va a dar a nuestra PC, en lo que respecta al procesamiento de los datos.
NOTA: Para la resolucin de este ejercicio deber evaluar como mnimo dos algoritmos de planificacin:
uno PREEMTIVE y uno NONPREEMTIVE. Tenga en cuenta que para que se considere valido el punto deber
de J USTIFICAR AMPLIAMENTE la decisin tomada.
Solucin:
Teora:
PARTE A:
1.VERDADERO. No siempre... por belady. Hay un limite.
2. FALSO
3. FALSO
4. FALSO
PARTE B:
1. Parsitos, los residentes en memoria, los residentes en el sector de booteo, polimrficos e invisibles.
En ingles: Parasitic, Memory-resident, Boot sector, stealth y Polymorphic.
Prctica:
1.1. Sabiendo que una pgina no puede contener partes de dos segmentos diferentes (cdigo, datos o pila), se obtienen los siguientes
valores:
PROCESO A N bytes
N pginas
1024 bytes
Fragmentacin
interna
N pginas
512 bytes
Fragmentacin
interna
CODIGO 16384
16 0
32 0
DATOS 8700
9 516
17 4
PILA 8192
8 0
16 0
PROCESO B N bytes
N pginas
1024 bytes
Fragmentacin
interna
N pginas
512 bytes
Fragmentacin
interna
CODIGO 2048
2 0
4 0
DATOS 1000
1 24
2 24
PILA 1024
1 0
2 0
PROCESO C N bytes
N pginas
1024 bytes
Fragmentacin
interna
N pginas
512 bytes
Fragmentacin
interna
CODIGO 4096
4 0
8 0
DATOS 2272
3 800
5 288
PILA 2048
2 0
4 0
- Con pginas de 1024 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria:
16+9+8+2+1+1+4+3+2 = 46 pginas
Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el nmero de pginas posibles sera:
65536 / 1024 = 2
16
/ 2
10
= 2
6
= 64 pginas.
Para poder ejecutar los procesos se necesitan 46 pginas al menos, y se dispone de 64 por lo que es posible utilizar pginas de 1024
bytes.
- Con pginas de 512 bytes se necesitan para poder ejecutar los 3 procesos cargar en memoria:
32+17+16+4+2+2+8+5+4 = 90 pginas
Puesto que el sistema tiene un espacio de direcciones de 64 Kbytes (65536 bytes), el nmero de pginas posibles sera:
65536 / 512 = 2
16
/ 2
9
= 2
7
= 128 pginas.
Para poder ejecutar los procesos se necesitan 90 pginas al menos, y se dispone de 128 por lo que es posible utilizar pginas de 512
bytes.
Por tanto, es viable utilizar cualquiera de los dos tamaos de pgina.
1.2. Teniendo en cuenta la fragmentacin interna producida se elegir aquel tamao de pgina en el que se desperdicie menos
memoria en las ltimas pginas:
Con 1024 bytes 516+24+800=1340 bytes desperdiciados
Con 512 bytes 4+24+288=316 bytes desperdiciados
Por tanto se elegirn pginas de 512 bytes.
1.3. El nmero de marcos de pgina posibles en el sistema en funcin del tamao de pgina es:
Pginas de 1024 bytes 16384 / 1024 = 2
14
/ 2
10
= 2
4
Se necesitan 4 bits para hacer referencia al marco de pgina.
Pginas de 512 bytes 16384 / 512 = 2
14
/ 2
9
= 2
5
Se necesitan 5 bits para hacer referencia al marco de pgina.
Por tanto, ninguno de los dos tamaos de pgina propuestos es adecuado para los 3 bits de referencia al marco de pgina. Lo ideal es
poder referenciar todos los marcos de pgina posibles en memoria fsica, por lo que se diseara un sistema con 2
3
= 8 marcos
16384 / 8 = 2048 Se deberan utilizar pginas de 2048 bytes.
2) No se produce Deadlock. Posibles Trazas de ejecucin: P4, P3, P1, P2 y P4, P3, P2, P1.
3) El algoritmo que hay que elegir en base a los que evalen es el que haga que los procesos finalicen mas rpido, debido al tiempo de
respuesta alto.