Examen SO 20/21-1 PDF

Title Examen SO 20/21-1
Course Sistemas operativos
Institution Universitat Oberta de Catalunya
Pages 12
File Size 296.9 KB
File Type PDF
Total Downloads 95
Total Views 127

Summary

Download Examen SO 20/21-1 PDF


Description

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Ficha técnica del examen 

Comprueba que el código y el nombre de la asignatura corresponden a la asignatura de la que te has matriculado.



Tiempo total: 2 horas

Valor de cada pregunta: Indicado en el enunciado



¿Puede consultarse algún material durante el examen? SÍ

¿Qué materiales están permitidos?

Materiales asignatura 

¿Puede utilizarse calculadora? SÍ

¿De qué tipo? PROGRAMABLE



Si hay preguntas tipo test, ¿descuentan las respuestas erróneas? NO



Indicaciones específicas para la realización de este examen: Leer la cabecera ubicada en el apartado "Enunciados"

Página 1 de 12

¿Cuánto?

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Enunciados CABECERA EXÁMENES: Enunciado: El enunciado del examen estará en formato PDF. En el ordenador desde donde haréis el examen es necesario tener instalado algún software para poder leer documentos en formato PDF. Por ejemplo, se puede utilizar el software gratuito Adobe Acrobat Reader DC, pero podéus utilizar cualquier otro. Identificación del estudiante: No es necesario identificarse, de esta forma se garantiza que el examen será tratado de forma anónima. Respuestas: Se deberá identificar cada respuesta dentro del examen. Es obligatorio indicar el número de pregunta y apartado, opcionalmente también se puede añadir todo o parte del enunciado si esto os ayuda en la resolución de la pregunta. Si no se identifica correctamente a qué pregunta se hace referencia la respuesta no se evaluará. En caso de ser necesario aplicar un procedimiento para resolver alguna pregunta, mostrad claramente y argumentad el procedimiento aplicado, no sólo el resultado. En caso de duda, si no se pueden resolver por los mecanismos establecidos o por falta de tiempo, haced los supuestos que consideréis oportunos y argumentadlos. Elaboración documento a entregar: Utilizar cualquier editor de texto para crear el documento con las respuestas, siempre que después os permita exportar el documento a formato PDF para realizar la entrega. Entrega: Es obligatorio entregar las respuestas del examen en un único documento en formato PDF. No se aceptarán otros formatos. Es responsabilidad del estudiante que la información que contenga el documento PDF que se estregue refleje correctamente las respuestas entregadas en el examen. Recomendamos que abráis el fichero PDF generado y reviséis atentamente las respuestas para evitar que se haya podido perder, cambiar o modificar alguna información al generar el documento en formato PDF. La entrega se puede realizar tantas veces como se quiera, se corregirá la última entrega que se realice dentro del horario especificado para realizar el examen. COMPROMISO DE AUTORESPONSABILIDAD: Este examen se debe de resolver de forma individual bajo vuestra responsabilidad y siguiendo las indicaciones de la ficha técnica. En caso de que no sea así, el examen se evaluará con un cero. Por otra parte, y siempre a criterio de los Estudios, el incumplimiento de este compromiso puede suponer la obertura de un expediente disciplinario con posibles sanciones.

Página 2 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Ejercicio 1 (2 puntos) count1.c es un programa con un único hilo de ejecución (thread) que ejecuta un bucle infinito donde cada iteración lo único que hace es incrementar en 1 una variable entera que ha sido inicializada a 0. Además, el programa finaliza a los 5 segundos de haber iniciado su ejecución e imprime el valor final que haya alcanzado la variable. Un programa como este fue analizado en la práctica1 de la asignatura como ejemplo de código de cálculo intensivo. Ejecutaremos múltiples instancias concurrentes de count1 sobre dos sistemas Linux que llamaremos A y B. Los procesadores de los sistemas son diferentes, pero sabemos que tienen varios núcleos (ahora bien, desconocemos la cantidad exacta en cada caso). Por simplicidad, puede asumir que los núcleos no tendrán hyperthreading, que el número de núcleos será par y que no hay otros procesos en los sistemas haciendo un uso significativo del procesador. Responder justificadamente las siguientes preguntas: a) Cuando ejecutamos 4 instancias de count1 concurrentemente sobre el sistema A, observamos que los contadores de las 4 instancias alcanzan un valor final aproximadamente igual a 10.000.000. ¿Cuál creéis que será el valor final que alcanzarán los contadores si ahora ejecutamos únicamente 2 instancias concurrentes de count1?

b) Ejecutamos 8 instancias de count1 concurrentemente sobre el sistema B. Observamos que

el valor final de la variable en todos los casos es aproximadamente igual a 6.000.000 y que el porcentaje de ocupación de la CPU de cada proceso count1 ha sido aproximadamente igual al 75 %. Indicar cuántos cores tiene el procesador B y estimar cuál será el valor final del contador si ejecutamos únicamente una instancia de count1.

Página 3 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 4 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Ejercicio 2 (3 puntos) Sea un sistema de memoria basado en paginación bajo demanda donde el tamaño de página es de 64KB y el tamaño máximo del espacio lógico es de 16MB. Sobre este sistema, queremos iniciar la ejecución de un archivo ejecutable que inicialmente ocupa 3 páginas de código, 4 páginas de datos inicializadas, 3 páginas de datos no inicializadas y 2 páginas de pila. Al cargarlo en memoria, el SO determina que, inicialmente, únicamente 5 de sus páginas estén presentes en memoria física. Responda justificadamente las siguientes preguntas. Respuestas sin justificar serán consideradas erróneas. a. ¿Cuál será el tamaño aproximado del archivo ejecutable?

b. Una vez cargado en memoria y en las condiciones descritas, indicar cuál es el número de entradas de la tabla de páginas que deberían estar marcadas como válidas. ¿Y cómo inválidas? ¿Y cómo no presentes? c. Suponiendo que la página lógica 0x2 está mapeada a la página física 0x5, indicar una dirección lógica que pertenezca a la página lógica 0x2 y cuál será su traducción a dirección física. d. ¿Cuáles deben ser los valores de los bits de control de una entrada de la tabla de páginas para que las traducciones que utilicen esta entrada generen una excepción por dirección inválida? e. Queremos que la dirección lógica 0x13002 sea traducida a la dirección física 0x34F04. ¿Qué posición de la tabla de páginas habría que actualizar? ¿Qué contenido debería tener?

Página 5 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 6 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Ejercicio 3 (3 puntos) Indicar justificadamente cuál será el resultado de ejecutar los siguientes programas (número de procesos creados, parentesco entre ellos, información mostrada por la salida estándar, bloqueos, ...). Podéis asumir que las llamadas al sistema nunca volverán error.

main () { int n = getpid() ; char s[80] ; fork() ; /∗ 1 ∗/ if (getpid() == n) fork() ; /∗ 2 ∗/ fork(); /* 3 */ if (getppid() != n) fork() ; /∗ 4 ∗/ if (getppid() == n) { sprintf( s , "%d\n" , getpid() ) ; write( 1 , s , strlen(s) ) ; } } main () { int fd[2]; char c; fork(); pipe(fd); read(fd[0], &c, 1); wait(NULL); }

Página 7 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 8 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Ejercicio 4 (2 puntos) En una fábrica se construyen los productos Q y R a partir de los componentes A, B y C. Para controlar las existencias de cada uno de los componentes A, B y C, se utilizan tres semáforos de recursos (semA, semB y semC respectivamente). Si nos fijamos en el componente A, semA estará inicializado al número de componentes A disponibles inicialmente; cada vez que alguien necesite un componente A deberá ejecutar sem_wait (semA); cada vez que un nuevo componente A esté disponible habrá que ejecutar sem_signal (semA). Los componentes B y C serán gestionados de forma análoga. Suponer que el producto Q necesita un componente B y un componente A, y que el producto R necesita un componente A y un componente C. Además, hay que garantizar que después de producir un producto Q se produzca un producto R, y después de producir un producto R se produzca un producto Q, y así indefinidamente. El primer producto a Producir será de tipo Q. Consecuentemente, no se pueden producir simultáneamente un producto Q y un producto R. En el siguiente diagrama, agregar el código necesario de produce_Q () y produce_R () e indicar las variables globales (y su inicialización) para obtener el comportamiento especificado. /* Global variables and initialization */

void produce_Q ( ) { /∗ Wait for conditions and components . Update global state.∗/

void produce_R ( ) { /∗ Wait for conditions and components . Update global state.∗/

/∗ produce Q ∗/ . . .

/∗ produce R ∗/ . . .

/∗ Exiting produce_Q( ). Update global state. ∗/

/∗ Exiting produce_R( ). Update global state. ∗/

} } Página 9 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 10 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 11 de 12

Examen 2020/21-1 Asignatura

Código

Fecha

Hora inicio

Sistemas operativos

75.566

10/1/2021

15:30

Página 12 de 12...


Similar Free PDFs