Nombre alumno: Ventajas: Inconvenientes:

Documentos relacionados
Nombre alumno: Ventajas: La ventaja es que desaparecería la fragmentación interna ya que podríamos ajustar los bloques al tamaño que necesitemos.

Segundo control de teoría Q1

Segundo control de teoría

Examen final de teoría QT

Segundo control de teoría

Examen final de teoría QT

Primer parcial de teoría 2013_2014_Q1

Examen final de teoría de SO-grado QP

Examen Final de Teoría. Grupo de teoría:

Segundo control de teoría

Examen final de teoría de SO-grado

Primer control de teoría

Segundo control de teoría

Primer control de teoría

Examen Final de SO Grau

Primer control de teoría

Biblioteca de sistema

Sistemas Operativos II Junio 2006 Nombre:

Nombre Apellidos. DNI Titulación Grupo.

Sistemas Operativos Grado Ingeniera Informática UDC. Enero 2016 Sólo puede usar lápiz, bolígrafo y calculadora. Tiempo máximo para todo el examen: 3h

Examen 2015/16-1. Asignatura Código Fecha Hora inicio Sistemas operativos /01/ :00

Apartado TGR Puntuación. No Presentado. EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 17/1/2013.

Apartado Puntuación. No Presentado

Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática (2009)

Algoritmo, Estructuras y Programación II Ing. Marglorie Colina

Ejercicios de GESTION DE MEMORIA

Segundo control de teoría

Sistemas Operativos sesión 12: tuberías

Introducción a Sistemas Operativos: Ficheros

FACULTAD DE INFORMATICA SISTEMAS OPERATIVOS 3º de Informática.

La secuencia de referencias a páginas para el proceso B es:

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Procesos Definición y Estados

Relación de problemas. Sistemas Operativos II

Memoria virtual Ejercicios resueltos

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Prácticas de Sistemas operativos

Redirecciones y Tuberías

Ejercicios Jerarquía de Memoria

Funciones POSIX (I): Introducción

Arquitectura de Computadores Problemas (hoja 4). Curso

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX

Apellidos: Nombre: DNI: Parte Sistema Ficheros (Se deben contestar correctamente todas las cuestiones de cada pregunta para puntuar la misma).

Tema 4: Gestión de Procesos

ARQUITECTURA DE SISTEMAS PARALELOS. 3º ITIS. PROBLEMA DE MEMORIA VIRTUAL.

Relación de problemas. Sistemas Operativos II

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Tema 5 (III) Jerarquía de Memoria

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Formatos para prácticas de laboratorio

Sistemas Operativos. Procesos

Usando el Sistema Operativo

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

SOLUCIONES A ALGUNOS DE LOS PROBLEMAS SOBRE SISTEMAS DE FICHEROS

Administración de Memoria

MC Hilda Castillo Zacatelco PROCESOS

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009

Prácticas de Sistemas operativos

Ejercicios del tema 5. Jerarquía de de Memoria

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Aquesta segona part de l examen consta de 2 fulls. Heu de contestar en la mateixa fulla on es troba la pregunta.

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

T5-multithreading. Indice

Apellidos: Nombre: DNI:

Tema 6: Memoria virtual. Óscar David Robles Sánchez Sofía Bayona Beriso David Miraut Andrés Luis Rincón Córcoles

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

Sistemas Operativos II Febrero 2008 Nombre:

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Taller de Sistemas Operativos. Procesos 2012

Administración de Memoria

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L.

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Apellidos: Nombre: Matrícula: UNIVERSIDAD POLITÉCNICA DE MADRID

Tema 13: Manejo de archivos en lenguaje C

Tema 3. Estructuras de control

Sistemas Operativos Primer Parcial Tema2

Procesos e hilos: el downloader

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Trabajo Práctico Número 6

Concurrencia Condiciones de Carrera. Guillermo Román Díez

necesitan 3 dígitos hexadecimales y otros 3 para el desplazamiento. Por tanto la una dirección física queda expresada según el siguiente formato:

SISTEMAS OPERATIVOS Arquitectura de computadores

PARTE II PROGRAMACION CON THREADS EN C

Matías Zabaljáuregui

2. Variables dinámicas

Sistemas Operativos. Tema 2

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware

SESIÓN DE EJERCICIOS E1

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

1 Primitivas básicas de OpenMP

Transcripción:

Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo 2. Explica qué ventajas e inconvenientes tendría tener un sistema de asignación en disco que definiera bloques de tamaño variable respecto al sistema de asignación que hemos explicado en clase en el cual los bloques de disco son del mismo tamaño. Ventajas: Inconvenientes: 3. Si tenemos una máquina con cuatro CPUs y queremos que en cada CPU se pueda ejecutar un thread de un proceso diferente, Es suficiente con tener una MMU o necesitamos una por CPU? 4. Si el fichero A tiene en su bloque de datos el siguiente contenido: /home/usr/pedro.txt Y sabemos que /home/usr/pedro.txt es un fichero de datos que existe en el sistema de ficheros. Suponed que estamos haciendo un open de A y el open ya ha leído su inodo. El comportamiento del open a partir de este punto depende del tipo de fichero de A. Indica qué dos comportamientos podría tener y con qué tipo de fichero se correspondería cada uno. 1

Procesos y ficheros (justifica todas las respuestas) (3 puntos) Queremos implementar un código que copie el contenido del fichero F1 en F2 en paralelo en una máquina que dispone de 4 CPUs. Para ello queremos repartir la copia entre 4 procesos distintos. Nos proponen el siguiente fragmento de código y se pide que contestes justificando tus respuestas a las siguientes preguntas. NOTA: F1 y F2 ya existen en el momento de ejecutar el código. El tamaño de F2 es el mismo que el de F1, pero su contenido es todo 0 s. Asume que ninguna llamada a sistema de este código devuelve error. 1. i=0;pid=0; 2. while((i<3) &&(pid==0)){ i++; pid=fork();} 3. fd_in=open( F1,O_RDONLY); 4. fd_out=open( F2,O_WRONLY); 5. while(read(fd_in,&c,sizeof(char)){ 6. write(fd_out,&c,sizeof(char)); 7. } 1. Analiza la jerarquía de procesos que genera este código para ver si realmente es la deseada. Queremos que la copia la realicen 4 procesos concurrentes. Dibuja la jerarquía e indica si cumple las especificaciones (en cuanto a procesos). Indica, además, quiénes son los que participan en la copia del fichero. 2

2. Dibuja el estado de las tablas de entrada/salida de todos los procesos asumiendo que los procesos que copian están al inicio del bucle (línea 5) (os damos el estado inicial del proceso inicial): T. canales T. Ficheros abiertos T. inodos 0 0 #refs Modo Punt l/e Ent T. inodos #refs inodo 1 0 0 3 rw -- 0 0 1 i-tty 2 0 3

3. Nos dicen que el fichero F1 tiene un tamaño de 10.000 bytes y sabemos que el tamaño del bloque de disco es de 512 bytes. Sabemos además que el sistema implementa la optimización de buffer cache compartida para inodos y bloques de datos (sabemos que la buffer cache es los suficientemente grande como para albergar todos los bloques de disco de este ejercicio). a. Podemos saber exactamente cuántos accesos a disco realizará este código, considerando todos los procesos, para leer el fichero F1? En caso afirmativo indica cuantos y en caso negativo justifícalo. b. Podemos saber exactamente cuántos bytes leerá cada proceso? c. Se cumplen las especificaciones de que el fichero F2 sea exactamente igual que F1? (analiza sólo este aspecto en esta pregunta) d. Finalmente, analiza si este código tiene algún fallo respecto a lo que queríamos conseguir y en ese caso explica brevemente qué modificaciones harías para arreglarlo. 4

Gestión de memoria (justifica todas las respuestas) (3 puntos) En un proceso con varios threads, uno de ellos ejecuta el código de la siguiente función (la línea 4 es el único malloc del código): 1. int *v; 2. void * func_thread(void *p) 3. { 4. v=(int *)malloc(10.000*sizeof(int)); 5. // Usamos v y otros calculos 6. } 1. Si observamos el ejecutable de este programa, En qué sección del ejecutable encontraremos la variable v? 2. En qué región de memoria del espacio lógico del proceso estará declarada la variable v? 3. En qué región de memoria podremos encontrar la memoria reservada por malloc? 4. Esa nueva zona de memoria, será accesible por otros threads? Podría formar parte de una región crítica? 5. Nos dan los siguientes datos sobre nuestro programa y sobre el sistema: El primer malloc siempre reserva un espacio 10 veces mayor que el espacio pedido La librería de C necesita 4096 bytes para sus datos de gestión. El vector v se accede desde otros threads (el programa tiene 10 threads) El espacio lógico del proceso es 3kb de código, 4Kb para cada pila, y sabemos que no hay más variables globales ni más mallocs Un PCB ocupa 4096 bytes para un proceso con un thread y un extra de 4096 bytes por thread adicional. 5

El sistema implementa la optimización de COW No se comparten páginas entre regiones. Calcula el espacio lógico que ocupará nuestro proceso y el espacio físico que necesitará reservar el kernel para su ejecución. (Indícalo por regiones y separado espacio de usuario y espacio de kernel) Usuario Espacio lógico: Espacio físico: Kernel Espacio lógico: Espacio físico: 6

Signals (justifica todas las respuestas) (2 puntos) Tenemos el siguiente código (se omite el tratamiento de errores para facilitar la legibilidad) en el que un proceso principal crea a un proceso hijo. 1. void trat_signal (int s) { 2. write(1, Fin Tiempo!\n, 12); 3. exit(1); 4. } 5. main (){ 6. int pid, status; 7. int fd_pipe[2]; 8. char c; 9. signal (SIGALRM, trat_signal); 10. pipe (fd_pipe); 11. pid = fork(); 12. if (pid >0) { 13. 14. write(fd_pipe[1], soy tu padre\n, 13); 15. waitpid(-1,null, 0); 16. 17. } else { 18. alarm(2); 19. while (read(fd_pipe[0], &c, sizeof(c)) > 0) 20. write(1, &c, sizeof(c)); 21. alarm(0); 22. } 23. write(1, Fin\n,4); 24. } Suponiendo que la comunicación del mensaje soy tu padre\n tarda 1 milisegundo (por tiempo de comunicación entendemos el tiempo necesario para que el receptor lea el mensaje y lo trate), contesta razonadamente a las siguientes preguntas: 1. Qué mensajes veremos en salida estándar? Indica qué proceso (el principal o el hijo) escribirá cada mensaje. 2. Suponiendo que modificamos este código y movemos la llamada a sistema alarm(2) de la línea 18 a la línea 13, y la llamada a sistema alarm(0) de la línea 21 a la 16, qué mensajes veremos en salida estándar? Indica qué proceso (el principal o el hijo) escribirá cada mensaje. 7

3. Suponiendo que sobre el código original, sin hacer ningún cambio, eliminamos ahora la llamada signal de la línea 9, qué mensajes veremos en salida estándar? Indica qué proceso (el principal o el hijo) escribirá cada mensaje. 4. Suponiendo que sobre el código original, sin hacer ningún cambio, movemos ahora la llamada signal de la línea 9 la línea 13, qué mensajes veremos en salida estándar? Indica qué proceso (el principal o el hijo) escribirá cada mensaje. 8