Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia"

Transcripción

1 Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia Aplicación Múltiple Multiprogramación Aplicación Estructurada La aplicación puede ser un conjunto de procesos concurrentes Estructura del Sistema Operativo Al sistema operativo es un conjunto de procesos o threads (microkernel) Dificultades con la Concurrencia Compartir recursos globales Gestión de asignación de recursos Errores de programación difíciles de localizar

2 Un Ejemplo Simple void echo() { chin = getchar(); chout = chin; putchar(chout); Un Ejemplo Simple Proceso P1 Proceso P2.. chin = getchar();.. chin = getchar(); chout = chin; chout = chin; putchar(chout);.. putchar(chout);.. Ocupaciones del Sistema Operativo Seguir la pista a los procesos activos Asignar y liberar recursos Tiempo del procesador Memoria Ficheros Dispositivos de E/S Proteger datos y recursos El resultado de un proceso debe ser independiente de la velocidad de ejecución de cualquier otro proceso concurrente Interacción entre Procesos Los procesos se ignoran unos a otros Los procesos se dan cuenta indirectamente de los otros Los procesos son conscientes de los otros directamente

3 Competencia entre Procesos por los Recursos Exclusión Mutua Secciones críticas En cada momento sólo se permite a un programa estar en una sección crítica Por ejemplo, en un momento dado, sólo se permite a un proceso enviar comandos a la impresora Interbloqueo (deadlock) Inanición (starvation) Cooperación entre Procesos mediante la Compartición La escritura debe ser exclusiva (mutuamente) Las secciones críticas se usan para asegurar la integridad de los datos Cooperación entre Procesos mediante la Comunicación Los mensajes son permisos La exclusión mutua no es una necesidad de control Posible interbloqueo Cada proceso espera un mensaje del otro proceso Posible inanición Dos procesos envían mensajes uno al otro mientras un tercero espera un mensaje que no llega Requisitos para la Exclusión Mutua En cada momento sólo se la permite a un proceso estar en sección critica para un recurso pero no sólo esto!!!, sino además: Un proceso que termina en su sección nocrítica debe hacerlo sin interferir con otros procesos No interbloqueo o inanición

4 Requisitos para la Exclusión Mutua Un proceso no debe ser demorado en su acceso a la sección crítica cuando no hay otro proceso usándola No se debe asumir nada relativo a la velocidad de los procesos o el número de ellos Un proceso permanece en su sección crítica por un tiempo finito Exclusión Mutua: Software Alg. Dekker: Primera Tentativa Ocupado Esperando El proceso chequea continuamente si puede entrar en la sección crítica El proceso no puede hacer nada productivo hasta que obtiene permiso para entrar en su sección crítica Corutina Diseñada para ser capaz de transmitir el control de ejecución de acá para allá entre ellos Inadecuada para dar soporte al procesamiento concurrente Exclusión Mutua: Software Alg. Dekker: Segunda Tentativa Cada proceso puede examinar el estado de otro pero no puede alterarlo Cuando un proceso quiere entrar en la sección crítica primera comprueba el estado de los otros procesos Si ningún otro proceso esta en sección crítica, activa sus flag de estado para la sección crítica Este método no garantiza la exclusión mutua Cada proceso puede comprobar su flag y proceder a la entrada en la sección critica al mismo tiempo

5 Exclusión Mutua: Software Alg. Dekker: Tercera Tentativa Activar el flag para entrar en sección crítica antes de comprobar el resto de procesos Si algún proceso está en la sección crítica cuando el flag está activado, el proceso se bloquea hasta que el otro proceso sale de la sección crítica El interbloqueo es posible cuando dos procesos activan sus flags para entrar en sección crítica y luego deben esperar a que el otro salga de la sección crítica Exclusión Mutua: Software Alg. Dekker: Cuarta Tentativa Un proceso activa su flag para indicar su deseo de entrar en su sección crítica pero está preparado para desactivar el flag Se comprueban los otros procesos. Si alguno está en sección crítica, el flag se desactiva y más tarde se vuelve a activar para indicar su intención de entrar en región crítica. Esto se repite hasta que el proceso finalmente entra en su región crítica Exclusión Mutua: Software Alg. Dekker: Cuarta Tentativa Es posible que todos los procesos activen sus flags, comprueben los otros procesos y desactiven sus flags. Pero esto no dura mucho tiempo, por eso no se considera interbloqueo aunque este retraso es injustificable Exclusión Mutua: Software Alg. Dekker: Solución Correcta Cada proceso obtiene un turno para su sección crítica Si un proceso quiere entrar en su sección crítica, activa un flag y espera su turno

6 Exclusión Mutua: Soporte Hardware Inhibición de Interrupciones Un proceso se ejecuta hasta que invoca un servicio del sistema operativo o hasta que es interrumpido Inhibir las interrupciones garantiza la exclusión mutua Se limita la habilidad del procesador para entrelazar los programas Multiprocesadores inhibir las interrupciones en un procesador no garantiza la exclusión mutua Sólo un tipo de sección critica, no una para cada recurso Exclusión Mutua: Soporte Hardware Instrucciones máquina especiales Se realizan en un ciclo de reloj No está sujeta a interferencias de otras instrucciones Lectura y escritura Lectura y comprobación Exclusión Mutua: Soporte Hardware Instrucción Test and Set (comprueba y activa) boolean testset (int i) { if (i == 0) { i = 1; return true; else { return false; Exclusión Mutua: Soporte Hardware Instrucción de intercambio void exchange(int register, int memory) { int temp; temp = memory; memory = register; register = temp;

7 Instrucciones Máquina para la Exclusión Mutua Ventajas Aplicable a cualquier número de procesos sobre mono y multiprocesadores que comparten memoria principal Es simple y además fáciles de verificar Se pueden utilizar para dar soporte a múltiples secciones críticas Instrucciones Máquina para la Exclusión Mutua Inconvenientes La espera-activa consume tiempo del procesador Es posible la inanición si un proceso sale de la sección crítica y hay muchos esperando Interbloqueo Si un proceso de baja prioridad está en sección crítica y un proceso de mayor prioridad necesita entrar, el proceso de mayor prioridad obtendrá el procesador para esperar entrar en la sección crítica Semáforos El semáforo es un tipo de variable especial que se usa para la señalización Si un proceso está esperando una señal, se suspende hasta que se envía esa señal Las operaciones de espera y señalización no pueden ser interrumpidas Se usa una cola para que los procesos que esperen un semáforo Semáforos El semáforo es una variable que tiene un valor entero Debe inicializarse a un número no negativo Las operaciones de espera (wait) decrementan el valor del semáforo Las operaciones de señalización (signal) incrementan el semáforo.

8 El Problema del Productor/Consumidor Uno o más productores generan datos y los colocan en un buffer Un único consumidor extrae dichos datos del buffer uno a uno Sólo un productor o el consumidor puede acceder al buffer en cada instante Productor producer: while (true) { /* produce item v */ b[in] = v; in++; Consumidor consumer: while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */ Productor con Buffer Circular producer: while (true) { /* produce item v */ while ((in + 1) % n == out) /* do nothing */; b[in] = v; in = (in + 1) % n

9 Consumidor con Buffer Circular consumer: while (true) { while (in == out) /* do nothing */; w = b[out]; out = (out + 1) % n; /* consume item w */ Buffer infinito El Problema del Barbero

10 Monitores El Monitor es un módulo software Características principales Las variables locales son accedidas sólo por el monitor El proceso entra en el monitor invocando uno de sus procedimientos Sólo un proceso puede estar ejecutando el monitor en cada instante Pase de Mensajes Fuerza la exclusión mutua Intercambio de información send (destination, message) receive (source, message) Sincronización El emisor y el receptor puede o no bloquearse en espera Envío bloqueante, recepción bloqueante Ambos el emisor y el receptor se bloquean hasta que se entrega el mensaje Se le llama rendezvous (cita)

11 Sincronización Emisor no bloqueante, receptor bloqueante El emisor continua procesando tan rápido como el mensaje es enviado El receptor se bloquea hasta que llega el mensaje que solicitó Emisor y receptor no bloqueantes No se requiere que ninguna parte espere Direccionamiento Direccionamiento Directo la primitiva de envío incluye un identificador específico del proceso destinatario la primitiva de recepción puede saber con antelación de qué proceso espera el mensaje la primitiva de recepción puede usar el parámetro fuente para devolver un valor cuando la operación de recepción ha tenido lugar Direccionamiento Direccionamiento Indirecto los mensajes se envían a una estructura de datos compartida que consiste en colas estas colas se llaman mailboxes un proceso envía un mensaje al mailbox y el otro proceso recoge el mensaje del mailbox

12 Formato de Mensaje Problema del Lector/Escritor Un número indeterminado de lectores pueden leer un fichero simultáneamente Sólo un escritor puede escribir en el fichero cada vez Si un escritor está escribiendo en el fichero, ningún lector puede leerlo

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación

Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Sistemas Operativos Concurrencia y Sincronización de

Más detalles

Concurrencia entre Procesos.

Concurrencia entre Procesos. Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen

Más detalles

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller 2011 Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente,

Más detalles

El problema de los Filósofos

El problema de los Filósofos El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación 3.- Procesos Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor Sistema de Batch jobs Sistema

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

2 Control de procesos y sincronización

2 Control de procesos y sincronización 2 Control de procesos y sincronización En los sistemas multiprogramados se define el proceso como entidad representante de la ejecución de un programa en un determinado contexto. Aunque hoy en día se ha

Más detalles

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

Programación Concurrente y Paralela. P(S) ; sección crítica P(S);

Programación Concurrente y Paralela. P(S) ; sección crítica P(S); 2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas 8 Comunicación y sincronización basada en variables compartidas...2 8.1 Exclusión mutua y condición de sincronización....2 8.2

Más detalles

Tema 2. Procesos. 1. Concepto de proceso

Tema 2. Procesos. 1. Concepto de proceso Tema 2. Procesos 1. Concepto de proceso. 2. Principios de la Programación concurrente. 1. Concurrencia. Programación concurrente. 2. Áreas de comunicación entre procesos. 1. Exclusión mutua. 2. Sincronización.

Más detalles

15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores.

15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores. UNIDAD TEMÁTICA 5: MULTIPROCESADORES. 15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores. 15-1 TEMA 15: ARQUITECTURA DE LOS MULTIPROCESADORES.

Más detalles

CÓMO TRABAJA TU SISTEMA OPERATIVO?

CÓMO TRABAJA TU SISTEMA OPERATIVO? CÓMO TRABAJA TU SISTEMA OPERATIVO? AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA SISTEMAS OPERATIVOS ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen Los sistemas operativos nacen de la informática. Su función

Más detalles

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor.

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor. Paso de mensajes Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons

Más detalles

Sistemas Operativos II TEMA 1. Contenido

Sistemas Operativos II TEMA 1. Contenido TEMA 1 Contenido 1.1. Introducción 1.2. Requisitos Hardware 1.2.1. Mecanismo de Interrupciones 1.2.2. Protección de Memoria 1.2.3. Repertorio de Instrucciones Reservadas 1.2.4. Reloj de Tiempo Real 1.3.

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005 Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III

SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III Mas Publicaciones Sala de Prensa - Noticias Testimonios Página de Inicio 1 Karen Suzely Sandoval Diaz ID: UB6571SSE13056 INDICE No. Página INTRODUCCIÓN...

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

Tema 3: Concurrencia de procesos

Tema 3: Concurrencia de procesos Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

Convivencia. Gestión del Sistema de Entrada/Salida

Convivencia. Gestión del Sistema de Entrada/Salida Convivencia Gestión del Sistema de Entrada/Salida Dra. Carolina Carolina Mañoso Mañoso Dpto. Dpto. Imformática Informática y y Automática.UNED Introducción (1/2) El sistema de Entrada/Salida es la parte

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

INDICE. Prefacio Parte 1: sistemas operativos tradicionales INDICE Prefacio Parte 1: sistemas operativos tradicionales 1 1 Introducción 1.1 Qué es un sistema operativo? 1.1.1 El sistema operativo como una maquina extendida 3 1.1.2 El sistema operativo como controlador

Más detalles

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010 Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos

Más detalles

TEMA 6: GESTIÓN DE ENTRADA/SALIDA

TEMA 6: GESTIÓN DE ENTRADA/SALIDA 1. Introducción TEMA 6: GESTIÓN DE ENTRADA/SALIDA Función principal de un S.O.: controlar todos los dispositivos de E/S de la computadora. El Subsistema de E/S se encarga de Emitir órdenes a los dispositivos

Más detalles

I.3. Interacción entre Procesos Concurrentes.

I.3. Interacción entre Procesos Concurrentes. PROGRAMACION CONCURRENTE I.3. Interacción entre Procesos Concurrentes. J.M. Drake 1 Interacción entre Procesos Concurrentes Modelos de interacción entre procesos. Problemas de sincronización y exclusión

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Monitores. Implementación de un Buffer con monitores

Monitores. Implementación de un Buffer con monitores Monitores Los monitores corresponden a la segunda herramienta de sincronización que veremos en el curso. Se usan para garantizar la exclusión mutua en secciones críticas y para esperar la ocurrencia de

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

Más detalles

Señal de petición de Interrupción

Señal de petición de Interrupción Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del

Más detalles

RESPUESTAS A LAS CUESTIONES DE REPASO DEL FINAL DE CADA CAPITULO DEL LIBRO SISTEMAS OPERATIVOS DE STALLINGS (4 ED)

RESPUESTAS A LAS CUESTIONES DE REPASO DEL FINAL DE CADA CAPITULO DEL LIBRO SISTEMAS OPERATIVOS DE STALLINGS (4 ED) RESPUESTAS A LAS CUESTIONES DE REPASO DEL FINAL DE CADA CAPITULO DEL LIBRO SISTEMAS OPERATIVOS DE STALLINGS (4 ED) Nota: El capítulo 1 (Introducción a los sistemas informáticos) y el capítulo 2 (Introducción

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

Más detalles

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

TEMA 7. GESTIÓN DE PROCESOS

TEMA 7. GESTIÓN DE PROCESOS TEMA 7. GESTIÓN DE PROCESOS 1. EL BLOQUE DE CONTROL DE PROCESOS... 1 1.1.- CAMBIO DE CONTEXTO... 2 2. ESTADO DE LOS PROCESOS... 2 2.2.- TRANSICIONES DE ESTADO... 3 2.3.- OPERACIONES SOBRE PROCESOS... 4

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Secciones críticas y exclusión mutua

Secciones críticas y exclusión mutua Secciones críticas y exclusión mutua Lecturas: Andrews, secciones 3.1, 3.2, 3.3, 3.4 Ben-Ari, sección 2.2 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la

Más detalles

SISTEMAS INFORMÁTICOS DE TIEMPO REAL

SISTEMAS INFORMÁTICOS DE TIEMPO REAL SISTEMAS INFORMÁTICOS DE TIEMPO REAL Sistemas operativos de tiempo real Manuel Agustín Ortiz López Área de Arquitectura y Tecnología de Computadores Departamento de Arquitectura de Computadores, Electrónica

Más detalles

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación. EJERCICIOS DE PLANIFICACIÓN: 1) Un sistema informático posee los siguientes recursos: - una CPU - tres unidades de almacenamiento UAM1, UAM2 y UAM3. En nuestro sistema tenemos dos tipos de procesos: Tipo

Más detalles

Secretos de la Programación Concurrente

Secretos de la Programación Concurrente Secretos de la Programación Concurrente Stuart Perez, Luis Castro Autómatas y Compiladores, Escuela de Ciencias de la Computación e Informática, San Pedro de Montes de Oca, Costa Rica jstuartp@gmail.com

Más detalles

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index. Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.

Más detalles

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

2 Sea una unidad de disco duro de brazo móvil con las siguientes características: 1 Sea una unidad de disco duro de brazo móvil con las siguientes características: 18 superficies, 20.331 cilindros y 400 sectores por pista. Sectores de 1.024 bytes de información neta. Velocidad de rotación:

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Control y temporización Comunicación con la CPU Comunicación con el dispositivo externo Almacén temporal de datos Detección de errores

Control y temporización Comunicación con la CPU Comunicación con el dispositivo externo Almacén temporal de datos Detección de errores UNIDAD DE ENTRADA SALIDA Conceptos Unidad de entrada-salida (E/S): Elemento que proporciona un método de comunicación eficaz entre el sistema central y el periférico. Funciones Control y temporización

Más detalles

Sistemas Operativos. Eloy Anguiano Rey eloy.anguiano@uam.es. Rosa M. Carro rosa.carro@uam.es. Ana González ana.marcos@uam.es

Sistemas Operativos. Eloy Anguiano Rey eloy.anguiano@uam.es. Rosa M. Carro rosa.carro@uam.es. Ana González ana.marcos@uam.es Sistemas Operativos Monitores Mensajes Eloy Anguiano Rey eloy.anguiano@uam.es Rosa M. Carro rosa.carro@uam.es Ana González ana.marcos@uam.es Escuela Politécnica Superior Universidad Autónoma de Madrid

Más detalles

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa Memoria Virtual Capítulo 8 Hardware y Estructuras de Control Las referencias de memoria se traducen a direcciones físicas dinámicamente en tiempo de ejecución Un proceso puede ser intercambiado hacia dentro

Más detalles

Exclusión mutua. Gustavo Romero. 14 de febrero de 2014. Arquitectura y Tecnología de Computadores

Exclusión mutua. Gustavo Romero. 14 de febrero de 2014. Arquitectura y Tecnología de Computadores Exclusión mutua Gustavo Romero Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Gustavo Romero Exclusión mutua (1/109) Índice 1 Introducción 2 Usuario 3 Hardware Cerrojos Gestión de interrupciones

Más detalles

Mensajes. (versión preliminar)

Mensajes. (versión preliminar) Mensajes (versión preliminar) Ejemplo: productor/consumidor con buffer de tamaño 0 void produce(item *p_it); void consume(item *p_it); int nmain() { ntask cons= nemittask(consproc); ntask prod= nemittask(prodproc,

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS 1. Concepto de Sistema Operativo. Funciones Un sistema operativo (S.O.) es un programa o conjunto de programas de control que tiene por objeto facilitar

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Informática Industrial Presentación de la Asignatura. Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Informática Industrial Presentación de la Asignatura. Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Informática Industrial Presentación de la Asignatura Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Presentación de la Asignatura. Informática Industrial. Curso 2014/15

Más detalles

6. TARJETA TELEFÓNICA: MARCACIÓN, DETECCIÓN DE PASO A FALTA, TONOS, PULSOS, INTERRUPCIÓN

6. TARJETA TELEFÓNICA: MARCACIÓN, DETECCIÓN DE PASO A FALTA, TONOS, PULSOS, INTERRUPCIÓN 6. TARJETA TELEFÓNICA: MARCACIÓN, DETECCIÓN DE PASO A FALTA, TONOS, PULSOS, INTERRUPCIÓN 6.1 INTRODUCCIÓN En este capítulo se comentan las funciones relacionadas con la tarjeta interfaz de línea telefónica

Más detalles

Fundamentos básicos de los Sistemas Operativos

Fundamentos básicos de los Sistemas Operativos Fundamentos básicos de los Sistemas Operativos Índice de contenido Fundamentos básicos de los sistemas operativos Capítulo 1. Consideraciones generales de los sistemas operativos...7 Objetivos...7 Servicios

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Comunicación y Sincronización con Monitores Resumen del Tema

Comunicación y Sincronización con Monitores Resumen del Tema Notas de clase de Programación Concurrente Comunicación y Sincronización con Monitores Resumen del Tema Dpto de Lenguajes y Ciencias de la Computación Universidad de Málaga María del Mar Gallardo Melgarejo

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

SISTEMAS OPERATIVOS. 1Responda brevemente a estas preguntas: Convocatoria extraordinaria, 13 de septiembre de 2006

SISTEMAS OPERATIVOS. 1Responda brevemente a estas preguntas: Convocatoria extraordinaria, 13 de septiembre de 2006 Calificación SISTEMAS OPERATIVOS Convocatoria extraordinaria, 13 de septiembre de 2006 Nombre SOLUCIONES 1 4 2 5 3 6 Titulación Dispone de tres horas y media para realizar el examen 1Responda brevemente

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Concurrencia en.net David Jesús Horat Flotats

Concurrencia en.net David Jesús Horat Flotats Concurrencia en.net David Jesús Horat Flotats ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización

Más detalles

1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt).

1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt). 1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt). La respuesta a esta pregunta se encuentra en el texto base de la asignatura em las

Más detalles

Proyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Proyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Proyecto Septiembre A. Organización de la práctica 1) Para promediar con la parte teórica de la asignatura es necesario aprobar independientemente prácticas y teoría. 2) La práctica de Septiembre se debe

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Gestión de Entrada/Salida

Gestión de Entrada/Salida Gestión de Entrada/Salida Transparencias basadas en el libro de referencia: Sistemas operativos. Una visión aplicada. J. Carretero, F.García, P. de Miguel, F. Pérez. McGraw Hill 2001 Curso 2005-2006 Contenido

Más detalles

07 << Acceso en exclusiva al recurso compartido >>

07 << Acceso en exclusiva al recurso compartido >> Sistemas Operativos 4º Semestre. Grados II y MI Cuarto Parcial. Sistema de Ficheros. 2 de Junio de 2014. Dispone de 50 minutos. Publicación de notas el Jueves 5 de Junio 2014. Revisión el Viernes 6 de

Más detalles

Organización del libro 2 Orden de presentación de los temas 3 Recursos en Internet y en la Web 4

Organización del libro 2 Orden de presentación de los temas 3 Recursos en Internet y en la Web 4 Prólogo xvii Capítulo O 0.1 0.2 0.3 Guía del lector 1 Organización del libro 2 Orden de presentación de los temas 3 Recursos en Internet y en la Web 4 PRIMERA PARTE:ANTECECENTES 7 Capítulo 1 1.1 1.2 1.3

Más detalles

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. Con las tres llamadas create, suspend, y resume, la estructura del programa sería la siguiente: process recoger;

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

INDICE Prologo Capitulo 0. Guía del lector Primera parte: antecedentes Capitulo 1. Introducción a los computadores

INDICE Prologo Capitulo 0. Guía del lector Primera parte: antecedentes Capitulo 1. Introducción a los computadores INDICE Prologo XVII Capitulo 0. Guía del lector 1 0.1. organización del libro 2 0.2. orden de presentación de los temas 3 0.3. recursos en Internet y en la Web 4 Primera parte: antecedentes 7 Capitulo

Más detalles

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Sistemas Operativos Temas 4, 5 y 6 Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Índice Tema 4: Herramientas de Sincronización de Alto Nivel. Regiones Críticas. Monitores.

Más detalles

Conceptos Generales Tabla de Contenidos

Conceptos Generales Tabla de Contenidos Conceptos Generales Tabla de Contenidos 1. Conceptos Generales... 2 1.1 Introducción:... 2 1.2 Definición de un Sistema Operativo... 2 1.3 Estructura, elementos y funciones...5 1.3.1 Evolución de los sistemas

Más detalles

Módulo 2 Comunicación

Módulo 2 Comunicación Sistemas Distribuidos Módulo 2 Comunicación Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia San Juan Bosco Comunicación en Sistemas Distribuidos Modelos de Comunicaciones

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Tema 6. Sistemas de entrada/salida Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Concepto

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Práctica de programación concurrente 2013-2014 ETSI Informática, UNED David Fernández-Amorós programacion.concurrente@lsi.uned.es. 1.

Práctica de programación concurrente 2013-2014 ETSI Informática, UNED David Fernández-Amorós programacion.concurrente@lsi.uned.es. 1. 1. Enunciado En el bingo hay un presentador y varios jugadores. Antes de comenzar el juego, cada jugador se genera aleatoriamente una cantidad de cartones entre 1 y 10. Obviamente, todos los números de

Más detalles

Sistemas Operativos [Procesos]

Sistemas Operativos [Procesos] Sistemas Operativos [Procesos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Sistemas Operativos 1 / 62 Procesos Procesos I Un

Más detalles

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

Más detalles

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

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007 Planteamiento del examen de TEORIA: El examen constará de 5 preguntas/cuestiones que pueden ser libremente

Más detalles