Está en la página 1de 5

AMPLIACIN DE SISTEMAS OPERATIVOS (Cdigo: 71023016) Enero 2016

Material permitido: Solo calculadora no programable Aviso 1: Todas las respuestas deben estar debida-
mente razonadas.
Tiempo: 2 horas Aviso 2: Escriba con buena letra y evite los tachones.
N1 Aviso 3: Solucin del examen y fecha de revisin en
http://www.uned.es/71023016/

1. Conteste razonadamente a los siguientes apartados:


a) (1 p) Explicar la duracin de un cuanto en Windows.
b) (1 p) En los SOBUNIX: Cuntas tablas de descriptores de archivos existen en el
ncleo?

2. (2 p) Dibujar un diagrama, adecuadamente rotulado, de la escala de prioridades de


ejecucin considerada por el ncleo de Linux.

3. (2 p) Describir la gestin del rea de intercambio en los SOBUNIX.

4. Explique razonadamente la utilidad de las siguientes rdenes en un SOBUNIX:

a) (0.5 p) mount
b) (0.5 p) mkfs
c) (0.5 p) fsck
d) (0.5 p) df

5. (2 p) En la Figura 1 se muestra el cdigo C del programa e16. Supngase que al invocar


este programa desde la lnea de ordenes de un intrprete de comandos se crea un proceso
con PID=2100 y que la asignacin de los PIDs de los procesos hijos, si se llegaran a
crear, se realizara incrementando en una unidad el PID del proceso padre. Conteste
razonadamente a los siguientes apartados:

a) (1 p) Explique el significado de la llamada al


signal(SIGUSR1,SIG_DFL);
que aparece en el cdigo del programa e16.
b) (1 p) Explicar el funcionamiento de e16 si se escriben consecutivamente las si-
guientes tres rdenes en un interprete de comandos de un SOBUNIX:
1) e16 &
2) kill -SIGUSR2 2100
3) kill -SIGUSR1 2101
AMPLIACIN DE SISTEMAS OPERATIVOS (Cdigo: 71023016) Enero 2016
Material permitido: Solo calculadora no programable Aviso 1: Todas las respuestas deben estar debida-
mente razonadas.
Tiempo: 2 horas Aviso 2: Escriba con buena letra y evite los tachones.
N1 Aviso 3: Solucin del examen y fecha de revisin en
http://www.uned.es/71023016/

#include <signal.h>
void f1(int sig);
main()
{
int a,b;
signal(SIGUSR1,SIG_DFL);
if(fork()==0)
{
signal(SIGUSR1,SIG_IGN);
pause();
exit(3);
}
else
{
a=wait(&b);
printf("\n %d %d \n",a,b);
}
}

void f1(int sig)


{
printf("\nMensaje B\n");
}

Figura 1 Cdigo C del programa e16


UNED - Ampliacin de Sistemas Operativos (Cd. 71023016) Solucin Examen Enero 2016

AMPLIACIN DE SISTEMAS OPERATIVOS (Cd. 71023016)


Solucin Examen Enero 2016

Solucin Ejercicio 1
a) La duracin de un cuanto depende del tipo de versin de Windows: cliente o servidor. En el caso
de una versin cliente el cuanto asignado a un hilo tiene una duracin por defecto de 2 tics de reloj,
mientras que el caso de una versin servidor tiene una duracin de 12 tics de reloj. La duracin de
un tic de reloj depende de cada plataforma. En el caso de la arquitectura x86 un tic de reloj tiene una
duracin de 10 ms, luego la duracin de un cuanto es de 20 ms en el caso de las versiones cliente
de Windows y 120 ms en el caso de las versiones servidor. Estos valores pueden ser incrementados
por el administrador en un factor de 2, 4 o 6, si as lo desea.
Windows tambin aumenta el cuanto del hilo asociada a la ventana que se pone en primer plano en
el escritorio de acuerdo con una cantidad especificada en el registro de Windows. Con esta medida
se pretende mejorar la interactividad con el usuario.

b) Todos los descriptores de archivos asociados a un proceso se indexan en una tabla denominada
tabla de descriptores de archivos. Esta tabla es local a cada proceso, es decir, cada proceso tiene
su propia tabla de descriptores de archivos. En consecuencia, en el ncleo existirn tantas tablas
de descriptores de archivos como procesos existan.

Solucin Ejercicio 2

Prioridad ms alta 0

Tareas de tiempo real

99
100

Tareas convencionales

Prioridad ms baj a 139

1
UNED - Ampliacin de Sistemas Operativos (Cd. 71023016) Solucin Examen Enero 2016

Solucin Ejercicio 3
La implementacin de la tcnica de gestin de memoria mediante demanda de pgina requiere la exis-
tencia de un espacio de almacenamiento en memoria secundaria en el que copiar aquellas pginas de
procesos activos cargadas en la memoria principal que son seleccionadas para ser reemplazadas. En los
SOBUNIX el rea de intercambio est formada tpicamente por una o varias particiones de discos no
formateadas a alto nivel y a las que se accede mediante operaciones de E/S en bruto.
Las pginas pertenecientes a la mayora de las regiones del espacio de direcciones virtuales de un proceso
(datos no inicializados, montculo, pila, archivos mapeados en memoria con el indicador MAP_PRIVATE,
etc) son copiadas en el rea de intercambio si son seleccionadas para ser reemplazadas.
Las pginas de cdigo de los procesos o de las libreras compartidas no son copiadas en el rea de inter-
cambio. Estas pginas son generadas desde el archivo ejecutable correspondiente si es necesario cargarlas
de nuevo en la memoria principal debido a un fallo de pgina. Lo mismo ocurre con las pginas selec-
cionadas para ser reemplazadas pertenecientes a archivos mapeados con el indicador MAP_SHARED. En
este caso, adems, si las pginas han sido modificadas son salvadas en los bloques de disco del archivo.
Cuando se crea una regin del espacio de direcciones virtuales de un proceso que no sea de cdigo
se reserva el espacio suficiente en el rea de intercambio para poder almacenar todas sus pginas. Una
pgina i perteneciente a una determinada regin de un proceso activo X se copia en el rea de intercambio
la primera vez que sta es seleccionada por el escner de pginas para ser reemplazada. Si posteriormente
la ejecucin del proceso X produce un fallo de pgina asociado a la pgina i el ncleo comprueba si
existe una copia de la pgina en el rea de intercambio. En caso afirmativo la pgina es copiada en
memoria principal desde el rea de intercambio. Ms tarde si la pgina i vuelve a ser seleccionada
para ser reemplazada de la memoria principal solo se copiar de nuevo en el rea de intercambio si
su contenido ha sido modificado (el bit m de su entrada de la tabla de pginas est activo), es decir, si la
copia de la pgina i en memoria principal difiere de la copia de la pgina i en el rea de intercambio.
El ncleo mantiene una lista de espacio libre en el rea de intercambio que consulta cuando necesita
asignar espacio del rea de intercambio. Tambin mantiene alguna clase de mapa de intercambio para
poder localizar rpidamente las pginas almacenadas en el rea de intercambio. La implementacin y
mantenimiento de estas estructuras depende de cada SOBUNIX.

Solucin Ejercicio 4
a) mount. Monta un cierto sistema de archivos en un determinado punto de montaje.

b) mkfs. Crea un sistema de archivos de un tipo soportado por el SOBUNIX correspondiente en un


cierto dispositivo.

c) fsck. Comprueba y repara la existencia de inconsistencias en un determinado sistema de archivos.

d) df. Muestra datos sobre la distribucin de espacio libre y asignado de un determinado sistema de
archivos.

2
UNED - Ampliacin de Sistemas Operativos (Cd. 71023016) Solucin Examen Enero 2016

Solucin Ejercicio 5
a) Esta llamada al sistema especifica al ncleo la accin que debe realizar cuando el proceso que
invoca la llamada reciba una seal tipo SIGUSR1, en este caso se indica que la accin que debe
realizar el ncleo es la accin por defecto (SIG_DFL) asociada a dicha seal, que en el caso de la
seal SIGUSR1 es terminar el proceso.

b) Al escribir la orden e16 & se comienza a ejecutar el programa e16 en segundo plano. Supngase
que a la ejecucin de dicho programa se le asocia el proceso A, por el enunciado se sabe que su
PID es 2100.
Al ejecutar el proceso A en primer lugar se invoca a la llamada al sistema signal para especificar
que cuando el proceso reciba la seal SIGUSR1 la accin que debe realizar el ncleo es la accin
por defecto asociada a dicha seal, es decir, terminar el proceso. En segundo lugar se invoca a la
llamada al sistema fork para crear un proceso hijo B, cuyo PID sera 2101. Como fork devuelve
el PID del proceso hijo al padre, entonces no se cumple la condicin if y se invoca a la llamada
al sistema wait que suspende la ejecucin del proceso A hasta que finalice su proceso hijo B.
Asimismo cuando el proceso hijo B sea planificado invocar a la llamada al sistema signal para
especificar que cuando reciba una seal SIGUSR1 se debe ignorar. A continuacin invoca a la
llamada al sistema pause que hace que el proceso B quede a la espera de una seal que no ignore
o que no tenga bloqueada.
Al escribir la orden kill -SIGUSR2 2100 se enva una seal SIGUSR2 al proceso con PID
2100, es decir, al proceso A. Dicha seal produce la terminacin del proceso A.
Finalmente al escribir la orden kill -SIGUSR1 2101 se enva ahora una seal SIGUSR1 al
proceso 2101, es decir al proceso B, el cual ignora la seal y continua a la espera de una seal que
no ignore o que no tenga bloqueada.

También podría gustarte