Está en la página 1de 4

AMPLIACIÓN DE SISTEMAS OPERATIVOS (71023016) Enero 2021

Material permitido: Ninguno Aviso 1: Todas las respuestas deben estar debida-
mente razonadas.
Tiempo: 90 minutos Aviso 2: Escriba con buena letra y evite los tachones.
N1 Aviso 3: Solución del examen y fecha de revisión en
http://www.uned.es/71023016/

1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas:


I) (1 p) Windows mantiene una única tabla global de descriptores de objetos.
II) (1 p) La estructura en disco de un sistema de archivos EXT2 contiene varias copias
del superbloque.
III) (1 p) En los SOBUNIX, el sistema de archivos de procesos procfs mantiene sus
datos en la misma partición de disco donde se almacenan los archivos del núcleo.
IV) (1 p) Las tuberías son un mecanismo IPC muy eficiente que no presenta ningún
inconveniente.

2. (2 p) Explicar razonadamente qué es un archivo mapeado en memoria y cuáles son las


ventajas e inconvenientes que presenta su uso.

3. Explique razonadamente el significado de las siguientes órdenes de los SOBUNIX:

a) (0.5 p) echo 'VAR=$(wc -w data)'


b) (0.5 p) sort < f1 > f2
c) (0.5 p) X=$(date)
d) (0.5 p) source p4567
4. Explique razonadamente el significado de las siguientes llamadas al sistema de los
SOBUNIX:

a) (0.5 p) c=fork();
b) (0.5 p) signal(SIGUSR2,SIG_DFL);
c) (0.5 p) var=wait(&dat);
d) (0.5 p) r=shmat(a,b,c,d);
UNED - Ampliación de Sistemas Operativos (Cód. 71023016) Solución Examen Enero 2021

AMPLIACIÓN DE SISTEMAS OPERATIVOS (Cód. 71023016)


Solución Examen Enero 2021

Solución Ejercicio 1
a) Windows mantiene una tabla de descriptores de objetos (handle table) local a cada proceso. De esta
forma un mismo descriptor puede hacer referencia en dos procesos distintos a objetos distintos.
Por lo tanto, la afirmación es FALSA.

b) Puesto que la información contenida en el superbloque es crítica para el funcionamiento de un


sistema de archivos EXT2, el superbloque se duplica en cada grupo de bloques en previsión de
posibles errores o de la corrupción del sistema de archivos. Por lo tanto, la afirmación es VERDA-
DERA.

c) El sistema de archivos de procesos procfs es un pseudosistema de archivos existente en algunos


SOBUNIX que permite acceder a los usuarios a la información que mantiene el núcleo sobre los
procesos. Los pseudosistemas de archivos no se implementan en una partición de disco en memoria
secundaria, como los sistemas de archivos ordinarios, sino en el espacio de direcciones del núcleo
en memoria principal. Por lo tanto, la afirmación es FALSA.

d) Usadas como mecanismo IPC las tuberías resultan bastante eficientes aunque presentan los si-
guientes inconvenientes:

– No permiten el envío de información a varios receptores, ya que cuando se lee los datos de
la tubería estos son borrados de la misma.
– Un proceso que escribe en la tubería no puede especificar que receptor debe leer los datos.
– Si un proceso emisor transmite por la tubería varios mensajes de diferente longitud, como los
datos en la tubería son un flujo de bytes no estructurado, el proceso receptor no puede saber
donde termina un mensaje y donde empieza otro.

Por lo tanto, la afirmación es FALSA,

1
UNED - Ampliación de Sistemas Operativos (Cód. 71023016) Solución Examen Enero 2021

Solución Ejercicio 2
Un archivo mapeado en memoria es una región del espacio de direcciones virtuales de un proceso en
la que se establece una correspondencia byte a byte con parte o con la totalidad de un archivo. Para
establecer esta correspondencia el núcleo debe configurar las estructuras de datos que mantiene para
gestionar el espacio de direcciones de memoria virtual de un proceso. Una vez mapeado en memoria
el acceso a un determinado byte del archivo puede ser realizado como a cualquier otro contenido del
espacio de direcciones virtuales, es decir, indicando la dirección virtual oportuna. Se evita así tener que
realizar llamadas al sistema.
Aparte del ahorro de memoria principal y de la rapidez de los accesos, otra de las ventajas de lo archivos
mapeados en memoria es que se pueden usar como mecanismo IPC ya que los cambios que realice un
proceso en el archivo mapeado son visibles por todos los procesos que mapeen dicho archivo en sus
espacios de direcciones.
El uso de archivos mapeados también presenta algunos inconvenientes. En primer lugar el tamaño de
los archivos que se pueden mapear por completo queda limitado por el tamaño del espacio de direccio-
nes virtuales del proceso, el cual suele menor de 4 GiB en arquitecturas de 32 bits. Para archivos que
superan dicho tamaño, el archivo debe ser dividido en trozos cuyo mapeado debe irse alternando en me-
moria principal. También el tamaño del espacio de direcciones virtuales limita el número de archivos que
pueden estar mapeados total o parcialmente simultáneamente en memoria.
Otro inconveniente está relacionado al uso del mapeo de archivos como mecanismos IPC ya que al igual
que sucedía con las regiones de memoria compartida es necesario utilizar algún mecanismo IPC adicional
(semáforos o cola de mensajes) para sincronizar el acceso de los diferentes procesos al archivo mapeado.

Solución Ejercicio 3
a) Esta orden muestra en la pantalla el mensaje VAR=$(wc -w data), es decir, el argumento del
comando echo. Esto es así porque dicho argumento está entrecomillado con comillas simples lo
que indica al intérprete que no debe analizarlo.

b) Esta orden ordena por orden alfabético las líneas del archivo f1 y escribe el resultado en el archivo
f2.

c) Esta orden almacena en la variable X la salida del comando date el cual muestra la fecha y la
hora.

d) Esta orden carga el shell script p4567 en el espacio de direcciones del intérprete de comandos
y lo ejecuta. Nótese que en este caso la ejecución del shell script es similar a la de un comando
interno, por lo que no hay que crear un nuevo proceso.

2
UNED - Ampliación de Sistemas Operativos (Cód. 71023016) Solución Examen Enero 2021

Solución Ejercicio 4
a) Esta llamada al sistema crea un nuevo proceso. Al proceso que invoca a fork se le denomina
proceso padre y al nuevo proceso que se crea se le denomina proceso hijo. Si se ejecuta con éxito
esta llamada al sistema devuelve en c el PID del proceso hijo para el proceso padre y 0 para el
proceso hijo. En caso de error devuelve -1.

b) Esta llamada al sistema especifica al núcleo la acción que debe realizar cuando el proceso que
invoca la llamada reciba una señal tipo SIGUSR2, en este caso se indica que la acción que debe
realizar es ejecutar la acción establecida por defecto (SIG_DFL), que en el caso de este señal es
finalizar al proceso.

c) Esta llamada al sistema suspende la ejecución del proceso A que la invoca hasta que alguno de
sus procesos hijos entre en estado zombi. Esta llamada si se ejecuta con éxito devuelve en dat el
PID del primer hijo de A en estado zombi que encuentra. Además almacena los ocho bits menos
significativos del estatus de salida en la dirección asociada a la variable var. Si el proceso A no
tiene procesos hijos o si wait es interrumpida por una señal, entonces se considera que se ha
producido un error en la ejecución y la llamada devuelve en c el valor -1.

d) NOTA: En el enunciado hay una errata, ya que esta llamada al sistema solo puede tener tres
argumentos de entrada, donde pone r=shmat(a,b,c,d) debe poner r=shmat(a,b,c).
Esta llamada al sistema permite adjuntar una región de memoria compartida en el espacio de
direcciones virtuales del proceso invocante. Requiere como argumentos de entrada: el identificador
a de la región de memoria compartida, la dirección virtual del espacio del proceso b a partir de la
cual se desearía que la región de memoria compartida fuese adjuntada, y una serie de indicadores
c que permiten establecer el modo de acceso del proceso a la región de memoria. Si la llamada se
ejecuta con éxito devuelve en r un puntero a la dirección virtual de inicio de la región de memoria
compartida. En caso de error devuelve en r el valor -1.

También podría gustarte