Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
¿En qué generación de ordenadores apareció la multiprogramación? ¿A qué problema dio solución?
Apareció en la tercera generación, pues se dio por primera vez la circunstancia de que
la velocidad de los procesadores superaba en varios órdenes de magnitud a los tiempos
de repuesta de los dispositivos. Esto tenía como consecuencia que el procesador
quedaba ocioso durante las operaciones bloqueantes, y esto no era admisible.
Mediante la multiprogramación, se consigue aprovechar los tiempos de bloqueo de los
procesos para ejecutar código de otros procesos, consiguiendo así un mayor
aprovechamiento del procesador.
En un congreso de fabricantes de hardware, aventuran que para mediados de este siglo aparecerá la
sexta generación de ordenadores, en la que tanto los dispositivos como los procesadores se construirán
exclusivamente mediante tecnología óptica, y los dispositivos de entrada/salida serán tan rápidos como
los procesadores. Ante esta afirmación, un diseñador de sistemas operativos presente en la reunión,
vaticina que entonces en esta generación los sistemas no interactivos volverán a ser monoprogramados.
¿Tiene sentido esta afirmación? ¿Por qué?
Una llamada al sistema es una petición que hace un proceso al sistema operativo
para recibir algún servicio.
Hay dos razones por la que el diseño debe ser forzosamente monolítico:
Un procesador marca ACME distingue los modos de ejecución supervisor y usuario. Cuando en modo
usuario se intenta ejecutar una instrucción privilegiada, esta instrucción simplemente se ignora. ¿Se
podría construir un hipervisor tipo 1 para este procesador? ¿Por qué?
No, sobre este procesador no se puede implementar un hipservisor tipo 1, ya que estos
hipervisores simulan la ejecución de las instrucciones privilegiadas en las máquinas
virtuales capturando la excepción que se produce al intentar ejecutarlas. Si esta
excepción no se produce, no es posible su simulación (se dice por tanto que el
procesador ACME no es virtualizable).
Microsoft intentó defender inicialmente que Windows NT, 2000 y posteriores son sistemas basados en
organización micronúcleo. No obstante, ¿qué característica de este sistema operativo es propia de los
sistemas monolíticos? (3 puntos)
¿Es posible que un error en el gestor (driver) de un dispositivo no crítico, como puede ser por ejemplo
una impresora o una tarjeta de sonido, pueda hacer fallar al sistema operativo Windows? ¿Por qué?
Sí, lo es. En Windows, los gestores de dispositivos se integran junto con el Executive y el
Kernel en el núcleo del sistema. Esto significa que un error de programación en un
gestor de dispositivo (driver) puede afectar al Executive o al Kernel, provocando el
fallo del sistema operativo.
Temas 4 y 5
Dibuje el diagrama de estados mínimo de los procesos que debe considerar cualquier planificador no
apropiativo. ¿Qué diferencia habría con el de un planificador apropiativo?
activación
preparado activo
Fin bloqueo
bloqueo
bloqueado
La diferencia con un apropiativo sería que aparecería una transición desde el estado
activo a el estado preparado, llamada “apropiación”.
En un sistema multiprogramado, se lanzan en paralelo dos procesos que durante el 50% de su tiempo
realizan operaciones de cálculo, y durante el 50% restante del tiempo realizan operaciones
bloqueantes. Siendo t la duración de ambos procesos, ¿cuánto tiempo podrían tardar en terminar
ambos la ejecución, en el mejor de los casos? ¿Y en el peor de los casos? Justifique brevemente la
respuesta.
En el mejor de los casos, si los tiempos de cálculo de un proceso pudiesen coincidir con
los tiempos de bloqueo del otro proceso, ambos podrían terminar en t unidades de
tiempo. En el peor caso, si los tiempos de cálculo de ambos procesos coincidiesen y a su
vez, las operaciones bloqueantes no se pudieran realizar en paralelo, sería necesario
2t para ejecutar ambos procesos.
¿Qué ventajas tiene el uso de hilos frente al uso de procesos en la construcción de aplicaciones que
constan de diversas actividades que colaboran entre sí?
Si dos actividades colaboran entre si es muy probable que necesiten compartir datos o
cualquier otro tipo de recurso. Solucionar un problema de este tipo mediante hilos en
lugar de mediante procesos separados tiene como ventaja que los hilos de un mismo
proceso comparten espacio de memoria (el del proceso que lo contienen) con lo que no
necesitan hacer uso de mecanismos de comunicación ni de compartición de datos
entre procesos, resultando así más eficiente la implementación.
Además de ello, los tiempos necesarios para crear y destruir hilos son menores que los
necesarios para crear y destruir procesos.
En un sistema se en el que la planificación se realiza mediante turnos rotatorios, se compensa a los
procesos que se bloquean antes de consumir la mitad de su cuanto de tiempo insertándolos en la
primera posición de la lista de procesos preparados una vez terminada la operación bloqueante.
¿Podría este método dar lugar a monopolización del procesador por parte de procesos que pasan por
fases de frecuentes bloqueos?
En un sistema la planificación se realiza mediante turno rotatorio con un cuanto de tiempo de 1ms.
¿Cuántos procesos pueden estar en ejecución simultáneamente como máximo para poder garantizar
que el tiempo de respuesta sea menor que 0,05 segundos?
Dado que el tiempo de respuesta en un sistema planificado por turnos rotatoris es:
TR <= q*(n-1), dado que q=1x10-3 y deseamos que TR<=0,05, hemos de despejar n de la
inecuación
Por tanto, en el momento que n sea mayor que 51, ya no se podrá garantizar que el
tiempo de respuesta sea menor 0,05 segundos.
Si el proceso se ha planificado la mayor parte del tiempo en la cola que usa el cuanto
de tiempo de mayor duración, es porque normalmente el tiempo entre bloqueos ha sido
superior a dicho cuanto. Esto hace suponer que se trate de un proceso que ha realizado
mayoritariamente operaciones de cálculo.
En un sistema en tiempo real se producen una serie de eventos en los instantes He que se muestran a
continuación. Cada evento, debe ser atendido por una actividad con un tiempo de ejecución t, la cual
debe estar terminada P unidades de tiempo después de la ocurrencia del evento (P= plazo). Realice el
cronograma de activación aplicando planificación por plazos.
He t P
A1 0 9 20
A2 3 5 12
A3 5 1 2
A4 7 3 5
A5 9 2 2
Dado que nos indican que la actividad debe estar terminada antes de terminar el
plazo, hemos de usar por tanto planificación por plazos finales. Por tanto, en cada
momento tendrá mayor prioridad la actividad más próxima a terminar su plazo, y se
deberá usar apropiación. El cronograma queda:
A5
A4
A3
A2
A1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
En un sistema en tiempo real en el que la planificación se realiza por plazos, se producen los eventos
que han de ser atendidos por las actividades cuyos tiempos de ejecución y plazos se especifican, siendo
He= instante en que se produce el evento, t= tiempo de ejecución de la actividad (proceso) que lo
atiende, y P=instante de tiempo en que debe haber comenzado dicho proceso (plazo). Realice el
cronograma de activación
He t P P5
P1 0 4 14 P4
P2 1 3 16 P3
P3 3 3 12 P2
P4 6 3 9 P1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
P5 12 4 17
Nótese que dado que se nos indica que P es el instante de tiempo en que debe haber
comenzado cada actividad, utilizamos planificación por plazos iniciales, por lo que
no utilizamos apropiación.
En un sistema multiprocesador, un diseñador del sistema operativo propone que para mantener
equilibrada la carga de trabajo entre los procesadores, se realice asignación estática de procesos a
procesadores, y que tras el arranque, el núcleo asigne el primer proceso al procesador 0, el siguiente
proceso al procesador 1, el siguiente al 2, y así sucesivamente hasta llegar al procesador N, volviendo
entonces a asignar el siguiente proceso al procesador 0. Los procesadores están multiprogramados y
los procesos alternan periodos de bloqueo con periodos de cálculo. ¿Se consigue con este método
impedir que un procesador pueda estar ocioso, mientras que otro procesador tenga procesos esperando
en su lista de procesos preparados?
En un sistema Windows, se ejecuta una aplicación implementada mediante dos hilos a los que
llamaremos A y B. El hilo Se sabe que uno de ellos sólo efectúa operaciones de cálculo, mientras que
el otro, dado que atiende la interfaz de usuario, se bloquea muy frecuentemente y sólo realiza
ocasionalmente operaciones de cálculo. Mediante una herramienta de monitorización del sistema,
comprobamos que durante la ejecución de la aplicación, el hilo A permanece casi todo el tiempo en
una misma prioridad, mientras que el hilo B cambia frecuentemente de prioridad, variando entre su
prioridad inicial – 2 como mínimo y la prioridad 15 como máximo. ¿Cuál hilo es el que se bloquea con
frecuencia y cuál es el que sólo hace cálculo? Justifique brevemente su respuesta.
En las versiones de escritorio de Windows (Home, Professional) la duración del cuanto de tiempo es
hasta 6 veces menor que en las versiones orientadas a servidores (Server, Advanced Server).
¿Encuentra alguna justificación para ello?
El último supercomputador de Cray, el CRAY XE6, es capaz de escalar hasta más de un millón de
núcleos (procesadores). Para un sistema de este tipo, ¿qué relación entre procesadores consideraría
más adecuada, la relación amo/esclavo o multiprocesamiento simétrico?
Es la corrupción del estado de un recurso, debido a su uso concurrente por parte de dos
o más procesos.
En una estación de seguimiento de sondas espaciales se pretende desarrollar los procesos por los que
se controlan los sistemas de navegación de las sondas. Estos procesos comparten un dispositivo (la
emisora de radio) mediante el cual se envían los comandos a las sondas en el espacio. Dado que la
transmisión de un comando tiene una duración muy corta y ocurre con poca frecuencia, es poco
probable que se produzcan condiciones de carrera sobre la emisora al enviarlos. Ahora bien, debido al
tiempo de propagación de las ondas de radio en el espacio, en caso de ocurrir una condición de carrera
puede tardar varios minutos en detectarse, periodo durante el cual la sonda puede haber quedado sin
control y perderse en el espacio. Con estos datos, ¿Emplearía un método optimista o un método
pesimista para el control de la concurrencia en el uso de la emisora?
Un programador de una aplicación a bajo nivel decide utilizar un cerrojo para garantizar la exclusión
mutua entre varios procesos que comparten un dispositivo. Como recuerda que los cerrojos no
garantizan la exclusión mutua a menos que se asegure la atomicidad entre la comprobación del cerrojo
y su cierre, utiliza el siguiente protocolo de entrada a la sección crítica:
Productor: Consumidor:
while(true) while(true)
{ {
msg= producir_elemento(); receive(datos, &msg);
send (datos, msg); consumir_elemento(msg);
} }
Un programador quiere garantizar la exclusión mutua entre varios procesos que comparten un
dispositivo, utiliza una variable compartida ocupado que vale true cuando el recurso está ocupado
y false en caso contrario, y un semáforo exmut cuyo valor inicial es 0. Dicho programador escribe
los siguientes protocolos de entrada y salida:
Código correcto:
/* protocolo de entrada */
down(exmut)
/* Sección crítica */
inicilizar_dispositivo();
usar_dispositivo();
liberar_dispositivo();
/* Protocolo de salida */
up(excmut);
Cuando en un método de un monitor un proceso reanuda a otro proceso detenido en un wait sobre una
variable de condición, haciendo uso de la primitiva signal sobre dicha variable, una de las políticas
para evitar que al reanudarse el proceso se viole la exclusión mutua en el uso del monitor consiste en
mantener temporalmente bloqueado al proceso reanudado hasta que el proceso que hace signal salga
del monitor (Lampson y Redell). ¿Qué ventaja tiene esta política sobre la contraria, consistente en
bloquear al proceso que hace signal hasta que el proceso reanudado salga del monitor (Hoare)?
P3 R3 P6
P1 R1 P2 R2 P4
P5 R4 R5 R6 R7
El operador decide resolver la situación abortando el proceso P2. ¿Resolverá con esto el interbloqueo?
¿por qué?
No. Puesto que, aunque P2 está también “colgado” pues espera a un proceso que forma
parte del ciclo, él no participa en el mismo.
¿Se podría haber llegado a esta situación si todos los procesos que requieren dos o más recursos los
hubiesen solicitado siguiendo un orden determinado, por ejemplo, el de los subíndices del nombre de
recurso?
En el ordenador central de una entidad bancaria se lanza por parte de cada sucursal un proceso que
realiza las transferencias programadas entre cuentas bancarias. Cada cuenta tiene una fila en una tabla
de una base de datos, y el procedimiento para realizar la transferencia es:
Si el proceso de una sucursal intenta bloquear una cuenta que ya está bloqueada, se hará esperar al
proceso hasta que la cuenta se desbloquee. ¿Pueden darse interbloqueos en este sistema? ¿Por qué?
No, no se pueden dar interbloqueos en el sistema, pues todos los procesos bloquean las
cuentas siempre siguiendo un orden preestablecido y común para todos los procesos. Se
demuestra que el bloqueo en orden de los recursos impide la formación de ciclos de
espera (tercera estrategia de Havender), con lo que no se pueden formar interbloqueos.
En un sistema se ejecutan cuatro procesos que comparten cuatro tipos de recursos. En un momento
dado, el estado de asignación de recursos a procesos es el que viene dado por la matriz A (recursos
asignados) y el vector D (recursos disponibles) que se muestran a continuación, estando pendientes de
satisfacer las peticiones que se muestran en la matriz S. En esta situación el proceso P1 solicita una
instancia del recurso R2. ¿Provoca esta petición un interbloqueo?
R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4
D=
P1 0 1 0 0 P1 0 0 0 0 2 0 0 0
A= P2 2 2 0 0 S= P2 0 0 1 0
P3 0 0 2 0 P3 0 0 0 1
P4 0 0 0 2 P4 0 0 0 0
Al no haber instancias disponibles del recurso 2, esta queda pendiente, con lo que
actualizamos la matriz S:
R1 R2 R3 R4
P1 0 1 0 0
S= P2 0 0 1 0
P3 0 0 0 1
P4 0 0 0 0
Con esto el proceso P3 ya puede satisfacer sus peticiones pendientes en S con los recursos
disponibles, liberando los recursos asignados en A, que se suman al vector D,
obteniendo
Con esto el proceso P2 ya puede satisfacer sus peticiones pendientes en S con los recursos
disponibles, liberando los recursos asignados en A, que se suman al vector D,
obteniendo
Con lo que ya el proceso P1 también puede satisfacer sus peticiones pendientes, con lo
que NO hay interbloqueo.
En un sistema, el estado de asignación de recursos viene dado por las siguientes matrices A, D y S,
donde A es la matriz de recursos asignados a procesos, la matriz D es el vector de recursos disponibles
y S es la matriz de peticiones pendientes de satisfacer. En esta situación, el proceso P1 solicita una
instancia del recurso R1. Determine aplicando el método de detección matricial si esta petición
provoca un interbloqueo.
R1 R2 R3 R4 R1 R2 R3 R4
P1 0 1 0 0 P1 1 1 1 2
R1 R2 R3 R4
A= P2 0 0 0 2 S= P2 1 2 0 0 D=
2 0 0 0
P3 0 3 0 0 P3 0 0 2 0
P4 0 0 2 0 P4 2 0 0 0
En realidad, esta pregunta tiene “truco”, y se responde mucho más rápido de lo que a
simple vista puede parecer. Nótese que se está solicitando una instancia de un recurso
disponible. Por tanto, la petición no da lugar a espera. Si la petición no da lugar a
espera, es imposible que se produzca un interbloqueo, por lo que no hace falta aplicar
algoritmo alguno de detección para responder que no puede haber interbloqueo.
3. En un sistema se ejecutan cuatro procesos que comparten cuatro tipos de recursos. En un instante
dado, la matriz A representa los recursos de cada tipo asignados a cada proceso, el vector D representa
los recursos de cada tipo disponibles y la matriz M representa las necesidades máximas de recursos por
parte de cada proceso. En esta situación, el proceso P1 solicita dos instancias del recurso R1.
Aplicando el algoritmo del banquero, ¿se debería satisfacer dicha petición?
R1 R2 R3 R4 R1 R2 R3 R4
P1 0 1 0 0 P1 3 1 0 0
A= R1 R2 R3 R4
P2 0 0 1 0 M= P2 0 2 2 1 D=
2 2 3 3
P3 0 0 0 1 P3 0 2 1 2
P4 2 1 0 0 P4 3 1 0 1
En esta situación, podemos comprobar que por ejemplo, el proceso P2 puede llegar a
conseguir su máximo de recursos pendientes, liberando los recursos que tiene
asignados en A obteniéndose el siguiente vector de disponibles:
D' 0 2 3 3 0 0 1 0 0 2 4 3
Con esto, podría también satisfacerse las necesidades futuras máximas de P3,
obteniéndose
Ahora bien, una vez llegados a este punto, vemos que ni P1 y ni P4 pueden llegar a
obtener sus recursos máximos pendientes. Por tanto, el estado al que se ha llegado no
es seguro, por lo que la petición no se debería satisfacer.
En un sistema se en el que se ejecutan 9 procesos se usan matrices binarias de relación para detectar
interbloqueos. En un momento dado, se calcula el cierre transitivo de la matriz T= WxA obteniendo
como resultado la siguiente matriz:
P1 P2 P3 P4 P5 P6 P7 P8 P9
P1 1 1 0 0 0 0 0 0 0
P2 1 1 0 0 0 0 0 0 0
P3 1 1 0 0 0 0 0 0 0
n
i 1
(WxA) i = P4
P5
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
P6 0 0 0 0 1 0 0 0 0
P7 0 0 0 0 1 1 0 0 0
P8 0 0 0 0 1 1 1 0 0
P9 0 0 0 0 0 0 0 0 0
Cada proceso sólo puede esperar directamente a un único recurso. Exprese mediante grafos de
relación proceso/recurso las posibles relaciones de espera entre los procesos del sistema. Represente
los recursos sin nombre.
P1 P2 P8 P7 P6
P4
P3
P5
Tema 8
¿En qué consiste el criterio de asignación de memoria asignación por peor ajuste? ¿Qué objetivo
pretende conseguir? ¿Qué inconveniente tiene frente a la asignación por mejor ajuste?
El criterio consiste en ante una petición asignar el mayor bloque de memoria libre.
Por ejemplo, si solo hay dos bloques de memoria, uno grande y uno pequeño, y se dan
dos peticiones, de forma que una sólo se pueda atender con el bloque grande completo,
si se atiende primero la petición por el bloque pequeño la petición para el bloque
grande se queda sin poderse atender
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1…
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100 110 120 130 140 150 160 170 180 190 1A0 1B0 1C0 1D0 1E0 1F0 200 210 220 230 240 250 260 270 ...
111 …
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100 110 120 130 140 150 160 170 180 190 1A0 1B0 1C0 1D0 1E0 1F0 200 210 220 230 240 250 260 270 ...
En un sistema la memoria se gestiona mediante una lista de control. Considere los nodos de la lista que se
muestran a continuación, sabiendo que los nodos que siguen representan bloques ocupados. Por simplicidad, la
memoria se asigna en ticks de 16 bytes, por lo que el tamaño de cada bloque está expresado en ticks de dicho
tamaño. En este sistema, un proceso solicita 50 bytes de memoria. ¿Qué dirección se asignaría por el criterio de
mejor ajuste? A continuación, el proceso que tiene asignado el bloque de memoria de la dirección 50H lo
libera. Dibuje cómo quedaría la lista tras ambas operaciones. (3 puntos).
NOTA: Por simplicidad, las direcciones están en hexadecimal, ya que 16D=10H, 32D=20H, 48D=30H,
etcétera…
Estado: ocup. Estado: ocup. Estado: libre Estado: ocup. Estado: libre Estado: ocup.
Tamaño: 5 Tamaño: 2 Tamaño: 8 Tamaño: 4 Tamaño: 5 Tamaño: 3
Dirección: 0H Dirección:50H Dirección: 70H Dirección: F0H Dirección: 130H Dirección: 180H
Estado: libre
Tamaño: 3
Dirección: 1B0H
Si se solicitan 50 bytes, hay que obtener 50/16=3,x ticks que se redondean al alza a 4
ticks. Por el método del mejor ajuste, dicho mejor ajuste se da con el bloque de 5 ticks
de la dirección 130H, que es la dirección que se asigna. Respecto a la liberación del
bloque en la dirección 50H, dado que dicho bloque tiene otro bloque libre a
continuación, debe efectuarse la fusión de ambos bloques. Por tanto, la lista queda:
Estado: ocup. Estado: libre. Estado: ocup Estado: ocup. Estado: libre Estado: ocup.
Tamaño: 5 Tamaño: 10 Tamaño: 4 Tamaño: 4 Tamaño: 1 Tamaño: 3
Dirección: 0H Dirección:50H Dirección: F0H Dirección: 130H Dirección: 170H Dirección: 180H
Estado: libre
Tamaño: 3
Dirección: 1B0H
Un sistema admite la inserción de memoria “en caliente”, es decir, permite añadir memoria principal
durante el funcionamiento del mismo, sin necesidad de apagarlo o de ni tan siquiera reiniciarlo. La
memoria añadida es utilizable desde el momento en que se inserta. El sistema operativo es informado
por el hardware de la inserción de la memoria mediante una interrupción, pudiendo determinar
mediante la lectura de unos registros la dirección y el tamaño del bloque añadido. En dicho sistema,
¿cómo realizaría la gestión de la memoria? ¿Mediante mapas de bits o mediante listas de control?
Justifique brevemente su respuesta.
Sería mucho más eficiente usar listas de control, ya que para añadir el nuevo bloque
libre de memoria bastaría con crear un nuevo nodo con la dirección de comienzo y
tamaño del bloque libre informada por el hardware, e insertarlo en la posición
correspondiente de la lista de control. El uso de mapas de bits sería más complejo
puesto que habría que aumentar el tamaño del mapa e insertar el nuevo trozo de
mapa en la posición correspondiente, seguramente desplazando la porción de mapa
que hubiese detrás.
Durante el desarrollo de un sistema basado en un procesador que soporta paginación, el diseñador del
hardware consulta al diseñador del sistema operativo si sería conveniente dotar al hardware de un
controlador de DMA con capacidad de copia de memoria a memoria para acelerar la compactación de
memoria por hardware, y solucionar así la fragmentación del espacio libre de memoria. ¿Qué le
respondería, como diseñador del sistema operativo?
Supongamos un sistema con memoria paginada en el que las direcciones de memoria son de 16 bits,
siendo los 4 bits de mayor peso el número lógico de página (NLP). La traducción a la dirección física
se hace mediante una tabla de páginas en la unidad de gestión de memoria. En dicha tabla se tiene para
cada página, además del número de marco, un bit P que indica si la página está presente (P=1) o
ausente (P=0). Cuando la página está ausente, el número de marco no tiene sentido. Si se intenta
acceder a una página ausente, se produce un fallo de página.
A la vista de la tabla de página, ¿qué direcciones físicas producirían las siguientes direcciones lógicas?
Indique cuáles producirían fallo de página. Por simplicidad, todas las direcciones están en
hexadecimal.
a) 0000 → 7000
b) 6FFF → Fallo de página
c) 3A10 → Fallo de página
d) 47F1 → 07F1
Sea un microprocesador que soporta segmentación y que en cada entrada de la tabla de descriptores de
segmentos dispone de tres bits, RWX, que cuando son 1 significan, en el caso del bit R que el
segmento puede ser leído, en el del bit W que el segmento puede ser modificado, y en el del bit X que
el segmento contiene código que se puede ejecutar. La unidad de gestión de memoria controla por
supuesto que todos los accesos sean válidos, produciendo la excepción correspondiente en caso
contrario.
Dada las posiciones de la tabla de descriptores de segmento que se adjuntan, ¿a qué direcciones físicas
accederían las siguientes instrucciones? Si alguna de ellas produce excepción, indique la causa. Por
simplicidad, las direcciones están expresadas en base decimal
En un sistema operativo que se ejecuta sobre un sistema que hace uso de segmentación se implementa
la llamada al sistema fork(), que crea un proceso hijo cuyo espacio de memoria es copia de su
creador. ¿Cómo implementaría esta llamada para evitar que en el momento de su ejecución haya que
copiar todos los segmentos del proceso padre al proceso hijo?
Se podría hacer uso de la técnica de copia en caso de escritura de cada uno de los
segmentos. Todos los segmentos del padre se establecerían como de sólo lectura, y los
segmentos del hijo, copiarían la base y desplazamiento de todos los segmentos del
padre, estando marcados también como de sólo lectura. Cuando uno de los procesos
intentase modificar uno de sus segmentos, se detectaría el intento de escritura en un
segmento de solo lectura, y entonces se realizaría la copia efectiva del segmento,
reestableciéndose en ambos segmentos el permiso de escritura, una vez realizada la
copia.
Tema 9
Un proceso que durante su ejecución realiza en total A accesos a memoria, hace referencia a P páginas
distintas. Si se ejecuta con M marcos de memoria, ¿cuántos fallos de página provocará como mínimo?
¿Y como máximo?
Como mínimo, provocará tantos fallos como páginas distintas referencia, es decir, P.
En el peor de los casos, podría llegar a producir un fallo de página por acceso, es decir,
A.
MIN
Nº de marcos
Nº de marcos
NOTA: Otra forma de plantearlo es que este sería también el resultado obtenido si no se
cumpliese el principio de localidad. Dado que empíricamente se sabe que dicho
principio se cumple, significa que el criterio de sustitución no lo tiene en cuenta. Es por
consiguiente un mal criterio de sustitución.
En un sistema de memoria virtual en el que se usa LRU como criterio de sustitución, un proceso
realiza la siguiente cadena de referencias:
0,1,2,3,4,5,6,7,8,5,6,7,1,2,3,4,5,9,8,7,6,10,11,12,13,14,5,4,3,2,1,9,7,6,5,4,3,2,12,13,0,1,2,1,2,3,4,2,3,5
¿Qué páginas estarían cargadas en memoria al final del proceso, si se ejecutase con 7 marcos?
Dado que el algoritmo LRU sustituye siempre la página que lleva más tiempo sin
usarse, matiene siempre en memoria las que hace menos tiempo que se han usado. Por
tanto, al final de la cadena, estarían cargadas en memoria las páginas
5,3,2,4,1,0,13.
En un sistema multiprogramado con memoria virtual, ¿qué ventaja tiene que el criterio de sustitución
se efectúe de forma local frente a efectuarlo de forma global? ¿Y qué inconveniente?
Ventaja: El criterio de sustitución trabaja sólo sobre las páginas del proceso, lo cual es
más eficiente que elegir la página víctima de entre todas las páginas del sistema
(trabaja sobre un conjunto menor).
Durante su ejecución un proceso hace referencia a 3800 páginas distintas. La ejecución del proceso
consta de cinco fases de ejecución, habiendo 2300, 1200, 50, 900 y 850 páginas en el conjunto de
trabajo de cada fase. Si el criterio de sustitución se aplica de forma local, ¿cuántos marcos se deberían
asignar al proceso como mínimo en el momento de su creación, para garantizar que no producirá
hiperpaginación?
Habría que asignar marcos suficientes para contener el mayor de sus conjuntos de
trabajo. Es decir, 2300 marcos.
En un sistema con memoria virtual se utiliza sustitución por envejecimiento como criterio de
sustitución de páginas, asociando a cada página una variable de 16 bits y actualizando dichas variables
cada 2 milisegundos. Si la variable asociada a una página vale 0 en un momento dado, ¿quiere esto
decir que dicha página no se ha utilizado? En caso contrario, indíquese cuánto tiempo hace como
mínimo que no se accedió por última vez a dicha página.
Si la página está cargada en memoria, es porque se ha usado. Ahora bien, si su
variable asociada vale 0, es porque ha sido desplazada al menos 16 veces. Dado que se
desplaza cada 2 milisegundos, significa que hace al menos 32 milisegundos que no se
usa.
En un sistema con memoria virtual en el que se utiliza el algoritmo LRU (página usada menos
recientemente) como criterio de sustitución, se ejecuta un proceso que ejecuta la siguiente cadena de
referencias: 0,1,2,1,3,2,1,4,5,1,2,4,0,5,6. ¿Cuántos fallos de página se producirían si el proceso se
ejecuta con 5 marcos? Indique cuáles de ellos se deben al arranque en frío. Indique cada vez que
efectúe una sustitución qué página sustituye a qué página.
0 1 2 1 3 2 1 4 5 1 2 4 0 5 6
0 1 2 1 3 2 1 4 5 1 2 4 0 5 6
0 1 2 1 3 2 1 4 5 1 2 4 0 5
0 0 2 1 3 2 1 4 5 1 2 4 0
0 0 0 3 2 2 4 5 1 2 4
0 3 3 3 3 5 1 2
Notas:
- xRy = Página x Sustituye a página y
- A.F.= Arranque en Frío
En un supuesto sistema con memoria virtual en el que se utilizase el criterio LRU (página accedida menos
recientemente) para la sustitución de páginas, se ejecuta un proceso que efectúa la siguiente cadena de
referencias: 1,2,1,3,4,5,1,4,5,6,1,5,6,5,2. Realice la traza del algoritmo si se ejecutase esta cadena de referencias
con cuatro marcos, indicando para cada acceso si produce o no fallo de página, y en caso de producirlo, indique
si el fallo se debe al arranque en frío o en caso contrario qué página sustituye cual.
1 2 1 3 4 5 1 4 5 6 1 5 6 5 2
1 2 1 3 4 5 1 4 5 6 1 5 6 5 2
1 2 1 3 4 5 1 4 5 6 1 5 6 5
2 1 3 4 5 1 4 5 6 1 1 6
2 1 3 3 3 1 4 4 4 4 1
AF AF AF AF 5R2 6R3 2R4
Enuncie la propiedad de pila que pueden cumplir los criterios de sustitución. ¿Qué interés tiene poder
demostrar que un criterio de sustitución verifique esta propiedad?
El interés que tiene esta propiedad es que se demuestra que los algoritmos que la
verifican no pueden producir la anomalía de Belady.
Tema 10
Un reproductor multimedia tiene como interfaz de usuario el receptor de infrarrojos del mando a
distancia. Este es un dispositivo que al recibir un comando del mando, pone a 1 un bit de su registro de
estado, para permitir su gestión por sondeo, y puede también ser configurado para además de ello,
producir una interrupción. Una vez que el bit de estado se pone a 1, el código del comando recibido se
puede leer de un registro de datos. ¿Cómo debería gestionar este dispositivo el sistema operativo del
reproductor? ¿Por sondeo o por interrupción? ¿Por qué? (2 puntos).
Para DISP2: Para este dispositivo se puede garantizar que el tiempo de respuesta
será menor que 2T, pues, tras quedar preparado para recibir servicio, en el peor
de los casos tendría que esperar a que DISP3 terminase de ser atendido, y que
posteriormente DISP1 fuese también atendido.
Sería preferible el modelo ST380021A, que si bien tiene un menor tiempo medio de
búsqueda, tiene una mayor velocidad de rotación. El tiempo de búsqueda no va a
tener un impacto relevante con la aplicación que se le va a dar al disco, dado que al
transferir mayoritariamente sectores contiguos, el tiempo de búsqueda va a ser o bien
cero, o el tiempo de salto entre pistas consecutivas cuando se termine de procesar un
todos los sectores de un cilindro. Sin embargo, la velocidad de rotación sí que tiene un
impacto sobre el tiempo de transferencia, que será el que determinará la tasa de
transferencia de datos en la aplicación multimedia.
Se desea construir un sistema orientado a su uso como servidor de bases de datos. El uso que se hace
de los discos en este tipo de sistema se caracteriza porque se realiza gran cantidad de accesos directos a
posiciones aleatorias del disco, transfiriéndose en cada acceso unos pocos sectores, frecuentemente, un
solo sector. Para este sistema, podemos elegir entre dos modelos de disco de igual capacidad y similar
precio cuyas características se muestran en la siguiente tabla. ¿Cuál de los discos sería el más
adecuado para nuestro sistema? ¿Por qué?
En un momento dado, un gestor de disco tiene pendiente la siguiente lista de accesos a cilindros: 17,
24, 20, 32, 12, 37, 8, 30. Suponiendo que las cabezas lectoras se encuentran actualmente sobre el
cilindro 22, indique en qué orden se atenderán estas peticiones si las cabezas se planifican por SSTF,
SCAN, SCAN circular (C-SCAN), o N-SCAN con N=4. Considere como preferente el sentido
ascendente.
1º 2º 3º 4º 5º 6º 7º 8º
SSTF 24 20 17 12 8 30 32 37
SCAN 24 30 32 37 20 17 12 8
C-SCAN 24 30 32 37 8 12 17 20
4-SCAN 24 32 20 17 30 37 12 8
En un sistema en el que la mayor parte del procesamiento que se realiza implica el recorrido secuencial
de archivos que ocupan mayoritariamente bloques de disco físicamente contiguos, se comprueba que
desde que se termina de transferir un sector hasta que se recibe la petición para el siguiente transcurre
por término medio unos 0,15ms, con una varianza muy reducida. Sabiendo que el disco gira a 12.000
rpm y que tiene 50 sectores por pista, ¿cuántos sectores intercalaría para optimizar el rendimiento del
disco?
Si el disco gira a 12.000 rpm , el tiempo que tarda en realizar una única revolución es
60/12.000= 5x10-3s. Como el disco tiene 50 sectores, el tiempo que tarda en pasar un
sector por debajo de las cabezas lectoras es 5x10 -3/50= 0,1ms. Como entre petición y
petición suelen transcurrir unos 0,15ms, es necesario por tanto intercalar dos sectores
para que en caso de recibir peticiones de transferencias de sectores consecutivos no
haya que esperar una rotación completa.
Un reproductor multimedia usa un disco magnético con organización de pistas ZBR para la grabación
y reproducción de video. El administrador de archivos de su sistema operativo, para optimizar la tasa
de transferencia, intenta siempre que puede asignar bloques consecutivos a los archivos de video y
además de ello, a ser posible, asigna preferentemente los bloques de los cilindros más externos, pues al
ser el disco ZBR, se transfieren más rápido. En la nueva versión del reproductor el disco magnético se
sustituye por un SSD. Si no tenemos la garantía de que la unidad SSD lleve a cabo Wear Leveling de
ningún tipo, ¿Recomendaría hacer algún cambio a la administración de archivos?
En un sistema, a fin de mejorar las prestaciones del acceso a disco, se sustituye el disco magnético por
una unidad SSD. El administrador de archivos de dicho sistema, cuando ha de asignar un nuevo bloque
a un archivo, asigna siempre que puede bloques que se usaron previamente en archivos que ya se han
borrado. ¿Le parece esta política de asignación adecuada para su uso con una unidad SSD? ¿Por qué?
No, porque a menos que la unidad implemente Wear Leveling, este método tendería a reutilizar
una y otra vez los mismos bloques de la unidad. Las celdas flash sobre as que se almacenan los
bloques de una unidad SSD soportan un número limitado de borrados, con lo que tenderá a
alcanzar dicho número máximo de borrados de los primeros bloques que se asignen en la
unidad, dejando sin utilizar los demás. Es preferible un criterio de asignación que tienda a
usar por igual todos los bloques de la unidad.
Y ya puestos… ¿se le ocurre algún criterio de asignación más adecuado que el anterior, para su uso
con discos magnéticos? ¿Cuál?
En un disco magnético siempre que se pueda se debería asignar a un archivo el siguiente bloque
físicamente adyacente al último bloque asignado.
Porque la cámara del ratón detectaría siempre la misma imagen: el propio reflejo del
ratón. Por tanto, al calcular la diferencia entre dos imágenes consecutivas, el vector
de desplazamiento resulta ser siempre cero.
Un fabricante de hardware de bajo coste diseña un teclado extremadamente simple que por cada
pulsación del usuario envía el código de la tecla a través de una interfaz USB. ¿Serviría este teclado
para usarlo con un PC con Windows, por ejemplo?
Un fabricante de hardware de bajo coste diseña un ratón extremadamente simple que además de
informar del movimiento del ratón, informa de las pulsaciones de cada tecla enviado a través de la
interfaz USB tras cada pulsación un único dato, consistente en el código de la tecla que se ha pulsado.
¿Serviría este ratón para usarlo con un PC con Windows?
No, no serviría, puesto que para su uso con Windows (y cualquier otra interfaz
gráfica de usuario) es necesario conocer el estado de los botones del ratón, por
ejemplo, para poder arrastrar y soltar iconos (es necesario conocer que el
botón izquierdo permanece pulsado mientras se mueve el ratón).
Tema 12
En un sistema de archivos de tipo UNIX, el tamaño del bloque es de 4K y se utilizan 32 bits para
representar los números de bloque. En dicho sistema, ¿cuántos bloques habría que transferir en el peor
de los casos para realizar un acceso directo a la posición 8192000 de un archivo? Suponga que el
nodo-i ya ha sido transferido
En un sistema de archivos FAT, se tienen las entradas de directorio que se muestra en la tabla de la
izquierda (por simplicidad, sólo se muestra el nombre de archivo y el número del primer bloque).
Teniendo en cuenta el fragmento de la FAT que se muestra a continuación, indique qué incoherencias
encuentra en el sistema de archivos. Escriba en la tabla de la derecha qué correcciones haría en la FAT
para resolver dichas incoherencias.
0 - -
Archivo Nº Primer bloque 1 - -
F1 2 2 3 3
F2 6 3 4 4
F3 12 4 5 EOF
F4 16 5 BAD BAD
6 7 7
Incoherencias detectadas: 7 8 8
8 9 9
1. El archivo F1 tiene asignado un 9 FREE EOF
bloque defectuoso. 10 FREE FREE
NOTA: no es una buena solución 11 FREE FREE
sustituir la marca BAD de dicho 12 13 13
bloque por EOF, dado que existe la 13 14 14
posibilidad de que dicho bloque 14 15 15
realmente sea no usable. Dicha EOF
15 EOF
solución sólo es admisible si
16 13 EOF
previamente se comprueba que el
… … …
bloque es utilizable y está
erróneamente marcado como BAD.
La mejor solución es marcar el
bloque 4 como EOF
3. En un sistema de archivos FAT existen tres archivos compuestos por los bloques que se muestran en
la tabla de la izquierda. Sabiendo que los bloques 5 y 6 tienen sectores defectuosos y que los bloques
que no están ni en uso ni defectuosos se supone que están libres, rellene la FAT que aparece a la
derecha. (3 puntos)
0 -
Archivo Bloques 1 -
f1.txt 2
2 EOF
prueba.dat 3,7,8,12
prueba.exe 9,10, 11,13,15,16 3 7
4 FREE
Nota: las entradas 0 y 1 5 BAD
están reservadas. 6 BAD
7 8
8 12
9 10
10 11
11 13
12 EOF
13 15
14 FREE
15 16
16 EOF
… …
En la reserva de disco, ¿qué ventaja tiene la reserva de escritura diferida (también llamada reserva de
lectura y escritura) sobre la reserva de escritura directa (también llamada reserva de lectura)? ¿Y qué
inconveniente(s)?
En un sistema de archivos el espacio de disco se asigna a los archivos de forma contigua, siendo el
tamaño del bloque de disco de 4K. En dicho sistema de archivos, existe un archivo de 20Mb cuyo
primer bloque asignado es el 2000. ¿Qué bloque de disco habría que transferir para acceder de manera
directa a la posición 4096000 del archivo?
Dado que la asignación de espacio es contigua, el bloque físico con el que corresponde
este bloque lógico es 2000 + 1000 = 3000. Por tanto, habría que transferir el bloque
número 3000 del disco.
En un sistema de archivos FAT, se dispone de la siguiente información en un directorio y en la FAT. Sabiendo
que el bloque de disco es de 1K, ¿qué bloque se debería transferir si un proceso solicitase la lectura del byte en
la posición 5200 del archivo datos.dat?
A la vista del siguiente fragmento de la matriz de control de acceso, ¿puede en este sistema un proceso de
usuario…
F1 F2 F3 F4 D1 D2 D3 D4
Leer
D1 Escribir Entrar
Escribir
D2 Leer Escribir Entrar
D3 Leer Escribir Entrar
Leer Leer
D4 Escribir Leer
Escribir Escribir
Exprese la información relativa a la protección de acceso los archivos del anterior ejercicio mediante una lista
de control de acceso
Un empleado de una empresa descarga un conocido compresor gratuito de una web. Al instalar dicho
programa, el ejecutable contenía código malintencionado que se ejecutó previa a la ejecución del
compresor y que modificó el sector de arranque de su máquina, insertado código que la siguiente vez
que arrancó su máquina, se cargó bajo el sistema operativo, de forma que a partir de ese momento, el
archivo ejecutable de toda aplicación que se ejecutaba resultaba modificado insertando una copia del
código que traía el compresor. De esta forma, este código malintencionado terminó propagándose a las
demás máquinas de la empresa. Finalmente, dicho código terminó inutilizando los discos de la
empresa. El responsable de informática de la empresa, acusó al empleado de que por su culpa habían
sido víctimas del ataque de un troyano. ¿Está de acuerdo con ello?
Un usuario de informática doméstica se conecta a una web que le han recomendado, de la que descarga una
aplicación para crear enlaces de descarga Premium y poder descargar sus películas a toda velocidad. La
aplicación, una vez instalada, no cumple con las expectativas… pero sin que el usuario lo sepa, le ha instalado
un servidor en su máquina mediante la cual el desarrollador de dicho servidor consigue acceso total a su
máquina, robándole su certificado digital, algunas fotografías personales e instalándole una aplicación que usa
su máquina para el envío masivo de correo basura. El usuario percibe que su máquina funciona de forma
extraña, por lo que solicita colaboración de un amigo experto, que le indica que su máquina ha sido infectada
por un virus. ¿Está de acuerdo en dicha afirmación?