\begin{picture}
(210,50)
\put(0,0){\psfig {figure=ditu.ps,height=1.5cm}}
\put(...
...nicación \\
Departamento de Ingeniería de Sistemas Telemáticos}}
\end{picture}


EXAMEN FINAL ORDINARIO DE SISTEMAS OPERATIVOS
Convocatoria de Febrero. 9-2-99
PRIMERA PARTE (SIN LIBROS)

Puntuación y longitud máxima --puede de hecho ser más corta-- de la respuesta, en cada pregunta. Una página es una cara.
DURACIÓN: 1 hora

Pregunta 1

Explique brevemente qué es un multienvío atómico, diga por qué, para realizarlo, no basta confirmar la entrega a todos los destinatarios y esboce algún algoritmo correcto.

( 1/2 página; 1 punto)
Aquél en que la entrega se hace a todos los destinatarios que no fallan o a ninguno. No basta confirmar la entrega porque el que envía se puede caer a medias. Puede solucionarse haciendo que todos los que reciban un multienvío lo reenvien a su vez a todos. Menos costoso es vigilar al que envía, reenviando si se ve que se ha caído, para lo cual es necesario guardarse una historia de mensajes, que debería irse limpiando cuando se sepa que han sido recibidos por todos.

Pregunta 2

Cite tres ejemplos de servicios distribuidos que utilicen la jerarquización para mejorar la escalabibilidad.

( 1/3 página; 1 punto)
Son escalables el servicio de nombres DNS, repartiendo la autoridad de subdominios, el servicio de tiempos NTP, definiendo estratos y comunicando las máquinas con los estratos vecinos, y los servicios de ficheros distribuidos, como NFS, AFS, etc, al repartir directorios en diversas máquinas.

Pregunta 3

Explique qué es replicación optimista y cite algún sistema explicado en clase que la utilice.

( 1/3 página; 1 punto)
Replicación optimista es aquella que prefiere dar servicio antes de garantizar la coherencia, prometiéndonos detectar las incoherencias en cuanto sea posible. CODA es un ejemplo de replicación optimista.

Pregunta 4

Explique brevemente qué es la compartición falsa en sistema de memoria compartida distribuida y diga cómo un sistema con coherencia débil puede librarse del problema de la compartición falsa, mientras que uno con coherencia secuencial no puede.

( 1/2 página; 1 punto)
La compartición falsa tiene lugar en los sistemas de memoria compartida distribuida cuando dos procesos usan variables distintas en la misma página. Si ambos escriben mucho en sus respectivas variables, se produce trasiego excesivo. Esto no se puede evitar en sistemas de coherencia secuencial pura. Si se pueden anotar las variables como compartidas y distintas, el compilador puede asignarles páginas distintas, lo que normalmente no hacen los sistemas de coherencia secuencial puros. En sistemas con coherencia débil se puede permitir trabajar sobre copias distintas (modo de escritura compartida), salvaguardando las páginas originales y, en la operación de sincronización (por ejemplo, esperas en barrera), actualizar sólo las diferencias. Si al actualizar se detecta una intersección entre las variables modificadas, se produce un error.

Pregunta 5

En la técnica de memoria virtual basada en un paginador externo (final del capítulo 6 del libro), existe un servidor de páginas remoto --que realiza un trabajo similar al de un disco de red--, al que llegan peticiones de lectura o escritura de páginas desde el núcleo del sistema cliente. Y éste tiene convenientemente modificado su manejador de disco para redirigir las lecturas y escrituras de páginas que se le piden como resultado de fallos de páginas locales, no al controlador de un disco local, que es lo que se hace en sistemas centralizados, sino a ese servidor de páginas remoto, a través de la red.

Se pide explicar brevemente cómo el sistema anterior puede ver alterado mínimamente su software para implementar, sin ayuda de ningún hardware adicional, compartición controlada de ficheros --e incluso de memoria principal, pero de ésta no hablar-- entre procesos que se encuentran ejecutando en nodos diferentes. Mencionar el mayor problema que podría producirse con la alteración propuesta.

( 1/4 página; 1 punto)
Para compartir ficheros sin control no hace falta hacer nada nuevo, solo dejar que el servidor de páginas acepte peticiones simultáneas desde ma's de un proceso de la red, que estén en el mismo nodo o en nodos distintos, para (partes idénticas de) un mismo fichero. Ahora bien, el esquema de paginador externo permite un control muy flexible (a escala de página) de la compartición de ficheros. Es decir, que se pueden compartir unas páginas de un fichero para lectura, mientras que otras del mismo fichero se usan de forma exclusiva para escritura por alguno(s) de los procesos.

Y además, se puede hacer también que ese control de acceso sea dinámico, en el sentido de que, por ejemplo, si dos procesos comparten la misma página de un fichero, en un principio para lectura, cuando uno de ellos la escriba, el otro pueda ver los cambios producidos al mismo tiempo que el que escribe (como en la memoria compartida distribuida). Solo es necesario para ello que el que escribe lo haga en modo "write-through" hacia el servidor de páginas, y que éste se comporte como cliente de los demás núcleos informándoles del nuevo valor de la página o de que, simplemente, han de cambiar los bits de protección del marco correspondiente para impedir todo tipo de acceso hasta que se refresque.

Y es aquí, al comportarse el servidor como ``cliente de sus propios clientes", donde, si no se toman las medidas oportunas, existe un grave riesgo de interbloqueo debido a circularidad de peticiones cliente-servidor.


\begin{picture}
(210,50)
\put(0,0){\psfig {figure=ditu.ps,height=1.5cm}}
\put(...
...nicación \\
Departamento de Ingeniería de Sistemas Telemáticos}}
\end{picture}


EXAMEN FINAL ORDINARIO DE SISTEMAS OPERATIVOS
Convocatoria de Febrero. 9-2-99
SEGUNDA PARTE (CON LIBROS)

Puntuación y longitud máxima --puede de hecho ser más corta-- de la respuesta, en cada pregunta. Una página es una cara.
DURACIÓN: 1 hora y cuarto

Pregunta 1

El observador pasivo de una computación distribuida de dos procesos recibe notificaciones de sucesos con horas vectoriales:

(1,0) (3,2) (1,1) (2,0) (1,2) (4,4) (2,4) (2,3)

Se pide:

Pregunta 2

En cierto sistema Linux, el administrador hace la siguiente operación de montaje de sistema de ficheros remoto NFS:

mount ftp.etsit.upm.es:/home/ftp/debian /mnt

y luego ejecuta el siguiente programa en C:

 1   #define TAMANO  100          /* Define el tamaño de las operaciones
 2                                   elementales de entrada/salida en octetos */
 3   #include <unistd.h>          /* Definiciones del sistema */
 4   #include <fcntl.h>
 5     
 6   int main(void) {             /* Programa principal sin argumentos */
 7       int leidos, escritos;    /* Contadores enteros de octetos leídos y escritos */
 8       int origen, destino;     /* Descriptores de ficheros abiertos */
 9       char buf[TAMANO]         /* Zona de memoria de TAMANO octetos, para lecturas y escrituras */
10    
11       /* Abre fichero en modo lectura */
12       origen = open("/mnt/hamm/Contents-i386.gz", O_RDONLY); 
13    
14       /* Abre fichero local para esctitura */
15       destino = open("/tmp/cosa", O_CREAT | O_WRONLY | O_TRUNC, 0644);
16      
17       leidos = read(origen, buf, TAMANO);        /* Intenta leer hata TAMANO octetos de origen */
18       while (leidos >= 0) {                      /* Mientras lea más de 0 octetos */
19          escritos = write(destino, buf, leidos); /*   Escribe los octetos leidos en destino */
20          leidos = read(origen, buf, TAMANO);     /*   Intenta leer hata TAMANO octetos de origen */
21       }
22       close(origen);                             /* Cierra fichero origen */
23       close(destino);                            /* Cierra fichero destino */
24       exit(0);
25   }

Suponiendo que el montaje fuerce a que el intercambio de mensajes de NFS se haga en datagramas de 1100 caracteres de datos como máximo (sin contar cabeceras) y que el fichero que se abre en lectura existe y tiene 9000 caracteres. Diga:

Sobre este documento...

This document was generated using the LaTeX2HTML translator Version 98.2 beta8 (September 9th, 1998)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -no_navigation ordinario-febrero-99.tex

The translation was initiated by Joaquin Seoane on 1999-03-24


Joaquin Seoane
1999-03-24