Examen final de teoría de SO-grado

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

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

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

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

Espacio de direcciones de un proceso

Sistemas Operativos. Curso 2016 Sistema de Archivos

Procesos e Hilos en C

; hcomment.rc aa.es ;

Funciones básicas del depurador

ATRIBUTOS DE LOS FICHEROS EN LINUX

Jerarquía de memoria - Motivación

Organización lógica Identificación de bloque

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

Prácticas de Sistemas Operativos

Apuntadores (Punteros)

Ejercicios de GESTION DE MEMORIA

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

Tema 2 Introducción a la Programación en C.

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Estructuras de Repetición (Hacer-Mientras)

Estructura de los dispositivos de E/S.

Fundamentos y Estructuras de Programación Profesor: Gerardo M. Sarria M.

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Gestión de procesos en UNIX

Introducción a los Sistemas Operativos

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

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

Herramientas Informáticas I Software: Sistemas Operativos

Sistema Operativo Linux

Crear y Abrir fichero de datos (se supone que no existe). Si existe no pasa nada. o Ej: escritura

CICLOS DEL PROCESADOR

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Definición Tareas del sistema operativo Concurrencia y paralelismo Estados de los procesos Propiedades de un proceso en Linux CONCEPTOS 1.

Matías Zabaljáuregui

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Memoria física vs. Memoria lógica

Clase adicional 2. Estructuras básicas de control. Temas

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

SISTEMAS OPERATIVOS Arquitectura de computadores

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Estatutos de Control C# Estatutos de Decisión (Selección)

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

testo Saveris Web Access Software Manual de instrucciones

BUAP FACULTAD DE CIENCIAS DE LA COMPUTACIÓN SISTEMAS OPERATIVOS 2 PRACTICA 2 JAIME MORALES FLORES

FUNDAMENTOS DE INFORMÁTICA

Elementos de un programa en C

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Estructura de Datos: Archivos

Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

Solución Examen Febrero 2006

Sistemas operativos. Tema 10: Sistemas de ficheros

Instituto Schneider Electric de Formación

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Funcionalidades Software Preventa Autoventa GotelGest.Net Funcionalidades disponibles en el Software de Preventa/Autoventa de GotelGest.

Arquitectura de Computadores. Apellidos, Nombre:

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007

5.3 CREAR FORMULARIOS

Ordenador local + Servidor Remoto

Fundamentos de Ordenadores. Depurar programas usando Nemiver

PROGRAMACION / Clave: 11214

Tema: Manejo del Puerto Serie con LabView

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Conceptos de Arquitectura de Computadoras Curso 2015

IES LUIS BUÑUEL Seminario PowerPoint P01 Primera presentación Óscar Blasco Laín 1

Manejo de Excepciones Para capturar y manejar las excepciones Java proporciona la sentencia try, catch y finalty. Entre un try y un catch se escribe

Funcionamiento de la computadora

Sistemas Operativos. Oscar Bedoya

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Estructuras en LabVIEW.

Contenido. Capítulo 1. Introducción a lenguaje C 1

Tema 2. El lenguaje JAVA

Trabajo Práctico Nº 3 Parte 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Información general sobre el uso de carritos de la compra con Ogone

MICROSOFT WORD AVANZADO. Nº Horas: 18. Objetivos:

Entrada/Salida. Contenidos: 1. Definición y objetivos 2. Estructura del susbsitema de entrada/salida. 3. Políticas de gestión de disco

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

HP - UX. Qué es HP UX?

Asignación de disco en UNIX

Tema 2: Programas y procesos

HACER COPIAS DE SEGURIDAD EN WINDOWS

PROGRAMACION ORIENTADA A OBJETOS EN C++

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Índice. ! Introducción. ! Modos de marcha. ! Seguridad. ! Diagramas Grafcet jerarquizados

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

TEMA 6. Implementación de UNIX. Contenido

Oracle Database: Programación con PL/SQL

Normalización de nombres de cubiertas. v2.0 (02/2008)

Creación y Modificación de Blog

Se ha desarrollado el siguiente programa principal. Se pide: arquitectura que permita una fácil extensión

El lenguaje C. 1. Identificadores, constantes y variables

Prof. Dr. Paul Bustamante

Aspectos Básicos de Networking

Análisis y Diseño de Sistemas

Transcripción:

Preguntas cortas (2 puntos. Tiempo estimado 30 min.) Indica si son ciertas o no las siguientes afirmaciones y justifica brevemente las respuestas. Una pregunta no justificada se considerará incorrecta. 1. La librería de sistema se ejecuta en modo usuario 2. Dos procesos emparentados (padre-hijo), comparten toda la memoria física que tienen asignada durante toda su ejecución, independientemente de lo que haga su código. 3. Un proceso no puede mutar más de una vez su espacio de direcciones 4. En una política de planificación a corto plazo tipo FCFS, los procesos abandonan la CPU sólo cuando terminan o cuando se bloquean 5. El espacio de direcciones lógico de un proceso es el conjunto de marcos de páginas físicas asignadas al proceso 6. Dos procesos no pueden tener el mismo espacio lógico 7. Los canales de un proceso, durante la vida del proceso, pueden estar vinculados a dispositivos lógicos distintos 1

8. Los canales 0,1 y 2 no se pueden cerrar 9. En un sistema operativo no podemos usar más de un tipo de sistema de ficheros 10. La gestión de los bloques de datos asignados que se utiliza en los i-nodos es un sistema indexado multinivel. (En caso de ser correcto indica brevemente como es.) Ejecución concurrente (1 5 puntos. Tiempo estimado 30 min.) Dada el siguiente conjunto de procesos, y sus respectivas ráfagas de CPU y de E/S. 1. Dibuja el diagrama de Gantt correspondiente en el caso de tener una política tipo RoundRobin con Quantum = 5 ms. utilizando la tabla adjunta. Asume que el tiempo de llegada es el mismo para todos los procesos y el orden inicial es P1, P2, P3. Indica en la tabla el estado de cada proceso en cada ciclo. Ru=running, R=ready, B=Bloqued (sólamente hasta el ciclo 29) Ráfaga CPU Ráfaga E/S Ráfaga CPU P1 7 3 3 P2 5 6 1 P3 15 5 10 P1 P2 P3 Cicl 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 o 2. Calcula el tiempo medio de espera de los procesos Tiempo espera P1= Tiempo espera P2= Tiempo espera P3= Tiempo medio espera= 2

Procesos (4 puntos. Tiempo estimado 1 hora) Dado el siguiente código (Omitimos el tratamiento de errores para facilitar su legibilidad): 3

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: int toca_escribir = 0; void escribir_resultado(int signum){ toca_escribir = 1; int calculo (int id){ /*Función que hace un cálculo que depende del valor de id */ main(){ int i; inf fd; int pids[3]; char buffer[80]; fd = open( resultados,o_creat O_TRUNC O_WRONLY,0600); signal(sigusr1, escribir_resultado); i=0; pids[i] = 1; while((i<3)&&(pids[i]>0)){ pids[i]=fork(); if (pids[i] > 0) i++; If (pids[i] > 0){ kill (pids[i-1],sigusr1); res = calculo (i); while (waitpid(-1,null,0) > 0) ; sprintf(buffer, Resultado de %d: %d\n,getpid(), res); write(fd,buffer,strlen(buffer)); close(fd); exit(0); res = calculo (i); while(!toca_escribir); sprintf(buffer, Resultado de %d: %d\n,getpid(), res); write(fd,buffer,strlen(buffer)); close(fd); if (i>0){ kill(pids[i-1],sigusr1); exit(0); 4

Contestad a las siguientes preguntas: 1. Representad la jerarquía de procesos que se crea con este programa (asignad a cada proceso de la jerarquía un identificador). Qué procesos ejecutarán las líneas de código entre la 28 y la 34? Y entre la 37 y la 41? Y la línea 43? 2. Describid qué hace este programa 3. Suponed que la región de código del espacio lógico de un proceso ejecutando este programa ocupa 1KB y que lo ejecutamos en una máquina que tiene sistema de gestión de memoria basado en paginación, en el que el tamaño de página es 4KB, y en el que no se implementa ninguna optimización. En esta máquina tenemos suficiente memoria libre para cargar simultáneamente todos los procesos de la jerarquía que crea este código. (i) Cuánta memoria será necesaria para las regiones de código de todos estos procesos si están cargados en memoria al mismo tiempo? (ii) Suponed que a este sistema de gestión de memoria se le añade ahora la optimización de copy-on-write, cuánto ocuparían ahora en memoria sus regiones de código? 5

4. Queremos modificar este código substituyendo las líneas de la 37 a la 45 por una llamada a sistema execlp, que provoque la mutación al espacio lógico de un nuevo programa. Queremos que el programa modificado conserve su funcionalidad y que este nuevo programa (programacalculo) tenga la misma funcionalidad que las líneas substituidas. (i) Escribid el código del nuevo programa. Este código debe incluir las sentencias substituidas (de la 37 a la 45), pero adaptándolas con los cambios necesarios para que conserven su funcionalidad a pesar de formar parte de otro ejecutable. Añadid además a este programa todo el código que necesitéis para conservar esta funcionalidad, pero valoraremos que el número de cambios sea el menor posible. Podéis omitir el tratamiento de errores. (ii) Reescribid el código original para que esta modificación sea posible. Podéis omitir el tratamiento de errores. 6

Examen final de teoría de SO-grado /Salida (2,5 puntos. Tiempo estimado 30 min) 1. Escribe un programa en C que cree la siguiente secuencia de modificaciones en la tabla de canales y/o en la tabla de ficheros abiertos. Los campos en cada tabla son los siguientes: Tabla de canales: número de canal (canal) y entrada en la tabla de ficheros abiertos (entrada TFA). Tabla de ficheros abiertos: número de entrada (), número de referencias a la entrada (#refs) y modo de apertura (Modo). Los valores que puede tener el campo Modo son: R solo de lectura, W solo de escritura y RW de lectura y escritura. El resto de campos que no se muestran se suponen que existen. No hace falta que incluyas el código de comprobación de errores. En cada línea de código indica a qué paso de las modificaciones de las estructuras de datos corresponde. Inicio: T. es T. Ficheros Abiertos TFA #refs Modo 0 0 0 1 R 1 1 1 2 w 2 1 2 0 3 3 0 4 4 0 Paso 1: T. es T. Ficheros Abiertos TFA #refs Modo 0 0 0 1 R 1 1 1 2 W 2 1 2 1 R 3 2 3 1 W 4 3 4 0 Paso 2: 7

T. es T. Ficheros Abiertos T. es TFA #refs Modo 0 0 0 2 R 0 0 1 1 1 4 W 1 1 2 1 2 2 R 2 1 3 2 3 2 W 3 2 4 3 4 0 4 3 Paso 3: T. es T. Ficheros Abiertos T. es TFA TFA #refs Modo TFA 0 0 0 2 R 0 0 1 1 1 4 W 1 1 2 1 2 2 R 2 1 3 2 3 1 W 3 2 4 3 4 0 4 Paso 4: T. es T. Ficheros Abiertos T. es TFA #links Modo TFA 0 0 0 2 R 0 0 1 3 1 3 W 1 1 2 1 2 2 R 2 1 3 2 3 2 W 3 2 4 3 4 0 4 Paso 5: T. es T. Ficheros Abiertos T. es TFA #refs Modo TFA 0 0 0 2 R 0 0 1 3 1 3 W 1 1 2 1 2 1 R 2 1 3 3 2 W 3 2 4 3 4 0 4 Paso 6: T. es T. Ficheros Abiertos T. es TFA #refs Modo TFA 0 0 0 1 R 0 2 1 3 1 3 W 1 1 2 1 2 2 R 2 1 3 3 2 W 3 2 4 3 4 0 0 4 Paso 7: T. es T. Ficheros Abiertos TFA #refs Modo 0 0 0 1 R 1 3 1 1 W 2 1 2 0 3 3 2 W 4 3 4 0 8

2. Ahora queremos que las modificaciones se realicen siempre en el orden indicado en el enunciado. (i) (ii) Indica entre qué pasos se tiene que forzar una sincronización entre los procesos. Indica, para cada una de estas sincronizaciones, que mecanismos de los descritos en clase utilizarías y cómo los implementarías. 9

10