Examen Febrero 2016

Anuncio
AMPLIACIÓN DE SISTEMAS OPERATIVOS (Código: 71023016)
Material permitido: Solo calculadora no programable
Tiempo: 2 horas
N2
Febrero 2016
Aviso 1: Todas las respuestas deben estar debidamente razonadas.
Aviso 2: Escriba con buena letra y evite los tachones.
Aviso 3: Solución del examen y fecha de revisión en
http://www.uned.es/71023016/
ESTE EXAMEN CONSTA DE 5 PREGUNTAS
Preguntas 1 a 4
1. Conteste razonadamente a las siguientes preguntas:
a) (1 p) ¿Qué son los objetos del núcleo de Windows? ¿Cómo se implementan? ¿Quién
se encarga de gestionarlos?
b) (1 p) Explicar cómo se localizan los clusters de datos de un archivo en un sistema
FAT.
2. Definir y comentar las características de los siguientes elementos asociados a la implementación de procesos multihilos en SOBUNIX:
a) (0.6 p) Hilos del núcleo.
b) (0.6 p) Hilos de usuario.
c) (0.8 p) Procesos ligeros.
3. (2 p) ¿Qué estructuras mantiene el núcleo de un SOBUNIX para soportar los mecanismos IPC del System V? ¿Qué información contiene dichas estructuras por cada recurso
IPC?
4. Explique razonadamente el significado de las siguientes órdenes en un SOBUNIX:
a) (1 p) kill -SIGUSR2 1256
b) (1 p) ps -Al
AMPLIACIÓN DE SISTEMAS OPERATIVOS (Código: 71023016)
Material permitido: Solo calculadora no programable
Tiempo: 2 horas
N2
Febrero 2016
Aviso 1: Todas las respuestas deben estar debidamente razonadas.
Aviso 2: Escriba con buena letra y evite los tachones.
Aviso 3: Solución del examen y fecha de revisión en
http://www.uned.es/71023016/
ESTE EXAMEN CONSTA DE 5 PREGUNTAS
Pregunta 5
5. (2 p) La máscara de modo simbólica del archivo ejecutable f16 que resulta de compilar
el programa que se muestra en la Figura 1 es -rwxrw-rwx y dicho archivo pertenece a
Ana (UID=600, GID=705). Explique razonadamente el funcionamiento del programa
en los siguientes casos:
a) (1 p) El programa lo ejecuta Ana.
b) (1 p) El programa lo ejecuta Maria (UID=620, GID=715).
Nota importante: Al explicar el funcionamiento del programa no olvide escribir también el resultado que presenta en pantalla la ejecución de la instrucción printf.
main()
{
int x[3];
x[0]=getuid();
x[1]=geteuid();
x[2]=setuid(x[1]);
printf("\n[ %d, %d, %d]\n",x[0],x[1],x[2]);
}
Figura 1 – Código C del programa f16
UNED - Ampliación de Sistemas Operativos (Cód. 71023016)
Solución Examen Febrero 2016
AMPLIACIÓN DE SISTEMAS OPERATIVOS (Cód. 71023016)
Solución Examen Febrero 2016
Solución Ejercicio 1
a) Un objeto del núcleo es una estructura de datos mantenida en el espacio de direcciones del núcleo
de Windows NT asociada a una determinada abstracción y gestionada por el administrador de
objetos del ejecutivo. La abstracción a la que está asociado un objeto define el tipo del objeto. Por
ejemplo, el núcleo asocia a un archivo abierto un objeto archivo, a un proceso un objeto proceso, a
un hilo un objeto hilo, a un semáforo un objeto semáforo, a una clave del registro un objeto clave,
a un driver instalado un objeto driver, etc.
Cada objeto tiene asignado un nombre codificado en Unicode, el ejecutivo mantiene un espacio
de nombres en memoria con una organización similar a una estructura de directorios de gráfica
acíclica. Windows utiliza el nombre de un objeto para localizar el objeto.
Un objeto implementado en Windows consta de dos partes: la cabecera y los datos específicos del
objeto. La cabecera contiene la información necesaria para gestionar el objeto, como por ejemplo:
su nombre y directorio en el espacio de nombres, su descriptor de seguridad y un puntero a la
estructura que implementa el tipo de objeto. Esta información es común a todos los objetos e
independiente de su tipo.
Cada tipo de objeto definido se implementa mediante una estructura que contiene información
dependiente del tipo de objeto, como por ejemplo: derechos de acceso, recursos de memoria que
puede consumir y punteros a las funciones que se pueden invocar para operar (abrir, cerrar, borrar,
etc) sobre este tipo de objeto.
El administrador de objetos es el componente del ejecutivo encargado de gestionar (crear, configurar, borrar, etc) todos los objetos del núcleo. Además proporciona una interfaz a los restantes
componentes del ejecutivo para crear y operar con los objetos.
b) En un sistema FAT la entrada asociada a un archivo en un directorio contiene, entre otros datos,
la dirección del primer cluster de datos del archivo. Para obtener la dirección del segundo cluster
de datos del archivo hay que acceder a la entrada de la tabla de asignación de archivos asociada al
primer cluster, la cual contiene la dirección del segundo cluster. Los restantes clusters del archivo
se localizan de forma semejante ya que la entrada de la tabla de asignación de archivos asociada a
un determinado cluster i de datos de un archivo contiene la dirección de siguiente cluster i + 1. En
el caso de que el cluster i sea el último del archivo entonces su entrada de la tabla de asignación
de archivos contiene el valor -1 (FFF en hexadecimal).
1
UNED - Ampliación de Sistemas Operativos (Cód. 71023016)
Solución Examen Febrero 2016
Solución Ejercicio 2
• Hilos del núcleo (kernel threads). Son hilos asociados al código del núcleo del sistema operativo
que son creados y gestionados por el propio núcleo para la realización de funciones especificas,
como por ejemplo: dar soporte a procesos, atender operaciones de E/S, tratamiento de interrupciones, etc. Los hilos del núcleo no necesitan estar asociados a ningún proceso.
• Hilos de usuario (user threads). Son parte del código de un determinado proceso de usuario. El
programador al diseñar un programa es el encargado de establecer el número de hilos de usuario
en que se va descomponer el código del programa. Si el código de un programa consta de un único
hilo de usuario entonces al proceso asociado se le denomina proceso monohilo. Mientras que si
se descompone en varios hilos de usuario se denomina proceso multihilo. Para la gestión de los
hilos de usuario el programador utiliza una librería de hilos, como por ejemplo la librería Pthreads
de POSIX. Una librería de hilos contiene funciones para la creación, destrucción, planificación y
sincronización de los hilos de usuario, entre otras operaciones.
• Procesos ligeros (lightweight processes). También denominados procesadores virtuales. Son hilos
de usuario cuya gestión es realizada por el núcleo del sistema operativo. Un proceso ligero puede
estar asociado a uno o varios hilos de usuario. Es la librería de hilos la que se encarga de multiplexar
los hilos de usuario de un determinado proceso en un número menor o igual de procesos ligeros.
Los procesos ligeros solo se pueden utilizar en aquellos sistemas operativos cuyo núcleo soporte
hilos del núcleo, ya que cada proceso ligero tiene que tener asociado un hilo del núcleo para poder
ser planificado y ejecutado.
2
UNED - Ampliación de Sistemas Operativos (Cód. 71023016)
Solución Examen Febrero 2016
Solución Ejercicio 3
Los tres mecanismos IPC del System V: semáforos, colas de mensajes y memoria compartida, aunque
son mecanismos distintos son soportados por el núcleo de forma muy similar. El núcleo mantiene una
tabla por cada tipo de mecanismo IPC. Una entrada en una de estas tablas se implementa mediante una
estructura de datos que contiene información de administración y control sobre un determinado recurso
IPC, es decir, sobre una instancia de un determinado mecanismo IPC. Entre la información contenida en
una entrada se encuentra la siguiente:
• Creador del recurso IPC. El UID y el GID del proceso que solicita la creación el recurso.
• Propietario del recurso IPC. El UID y el GID del proceso que actualmente es el propietario del
recurso. Inicialmente, el creador es el propietario del recurso, aunque el mismo o el superusuario
pueden transferir la propiedad del recurso a otro proceso.
• Permisos del recurso IPC. Mascara de bits, similar a la máscara de modo de un archivo, que permite
establecer los permisos de acceso (lectura y/o escritura) al recurso para el propietario del recurso,
el grupo propietario y el resto de usuarios.
• Llave o clave del recurso IPC. Número entero facilitado al núcleo por el proceso que solicita la
creación o el acceso al recurso IPC. Solo los procesos que conozcan dicha llave podrán acceder
al recurso. Luego se puede considerar como una especie de contraseña de acceso. La llamada al
sistema ftok permite crear una llave de acceso.
• Información propia de cada tipo de recurso IPC. Como por ejemplo punteros que permiten localizar a los diferentes componentes de un determinado recurso IPC.
El número máximo de entradas que puede tener la tabla asociada a un determinado tipo de mecanismo
IPC, o lo que es lo mismo el número de recursos IPC de un determinado tipo, es un parámetro que puede
ser configurado por el superusuario.
Por otra parte, el núcleo asigna a cada recurso IPC creado un determinado identificador numérico entero
que lo identifica de manera unívoca. El núcleo usa este identificador para localizar la entrada asociada
al recurso en la tabla correspondiente. La asignación del identificador se realiza en el momento de la
creación o asignación del recurso. El núcleo devuelve este identificador al proceso para que lo utilice
como argumento de entrada en las posteriores llamadas al sistema que vaya a realizar para operar sobre
el recurso, y así agilizar su localización.
Solución Ejercicio 4
a) Este comando envía la señal SIGUSR2 al proceso con PID=1256.
b) Este comando muestra un listado con información sobre los procesos existentes en el sistema, la
opción -A hace que se muestren todos los procesos existentes en el sistema, mientras que la opción
-l hace que se muestre un listado con más información, es decir, un mayor número de columnas.
3
UNED - Ampliación de Sistemas Operativos (Cód. 71023016)
Solución Examen Febrero 2016
Solución Ejercicio 5
El enunciado del problema afirma que f16 pertenece a la usuaria Ana (UID=600, GID=705). Asimismo
su máscara de modo simbólica es -rwxrw-rwx, cuyo significado es el siguiente:
• El propietario del archivo (Ana) puede leer, escribir y ejecutar el archivo. Además este archivo
tiene su bit S_ISUID desactivado.
• Los usuarios del grupo propietario del archivo, por defecto GID=705, pueden leer y escribir el
archivo, pero no pueden ejecutarlo. Además este archivo tiene su bit S_ISGID desactivado.
• El resto de usuarios pueden leer, escribir o ejecutar el archivo. Además este archivo tiene su bit
S_ISVTX desactivado.
Una vez explicado el significado de la máscara de modo simbólica es posible contestar a lo que pide en
el enunciado:
a) De acuerdo con la máscara de modo simbólica la propietaria del archivo (Ana) tiene permiso de
ejecución sobre su archivo f16. Al proceso A que se crea en el sistema asociado a la ejecución
de f16 se le asigna UID=600 y EUID=600. Al ejecutar el proceso A en primer lugar se invoca a
la llamada al sistema getuid para asignar el valor del UID del proceso a la variable x[0], en
este caso x[0]=600. Luego se invoca a la llamada al sistema geteuid para asignar el valor del
EUID del proceso a la variable x[1], en este caso x[1]=600.
A continuación se invoca a la llamada al sistema setuid para asignar al UID y al EUID del
proceso el valor de x[1]. Como el EUID del proceso A no es el del superusuario y el valor de
x[1] coincide con el valor del UID del proceso A entonces solamente el EUID del proceso A se
configura con el valor de x[1]. En resumen el resultado de esta llamada al sistema es configurar
el EUID del proceso A al valor EUID=600, valor que por otra parte ya tenía sin necesidad de haber
ejecutado esta llamada al sistema. Cómo setuid se ha ejecutado con éxito entonces se asigna el
valor 0 a la variable x[2].
Por último se imprime en pantalla el mensaje
[600, 600, 0]
y el proceso A finaliza su ejecución.
b) La usuaria María no pertenece al grupo de Ana ya que sus GID son distintos. De acuerdo con la
máscara de modo simbólica tiene permiso de ejecución sobre f16. Al proceso A que se crea en
el sistema asociado a la ejecución de f16 se le asigna UID=620 y EUID=620. El funcionamiento
del proceso A es similar al descrito en el caso anterior, con la diferencia de que en este caso el
mensaje que aparece en pantalla es
[620, 620, 0]
4
Descargar