Sistemas Paralelos y Distribuidos

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

Download "Sistemas Paralelos y Distribuidos"

Transcripción

1 Sistemas Paralelos y Distribuidos Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Distributed Computing

2 Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX 1 / 34

3 Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX 2 / 34

4 Introducción Como se recordará, el uso de memoria compartida es la base para distinguir un sistema paralelo de un sistema distribuido. Es decir, un sistema distribuidor se caracteriza por la ausencia de memoria compartida. Por lo tanto, en un sistema distribuido es imposible conocer el estado global del sistema (para cualquier procesador). En consecuencia es complicado observar cualquier propiedad global del sistema. 3 / 34

5 Acoplamiento I Tanto un sistema distribuido como un sistema paralelo pueden ser fuertemente acoplado o débilmente acoplado. Esto depende de la manera en que colaboran los múltiples procesadores. 4 / 34

6 Acoplamiento II Esto hace importante tener que hacer las siguientes consideraciones: La ausencia de un reloj compartido deriva en un sistema débilmente acoplado. Lógicamente para un sistema geográcamente distribuido es mucho más difícil, por no decir imposible, sincronizar los relojes de diferentes procesadores. 5 / 34

7 Acoplamiento III El retraso o delay de la comunicación entre procesadores es la razón principal de que sea imposible sincronizar los relojes de los procesadores que integran un sistema distribuido. En base a lo anterior, es comprensible que se tenga que prescindir del uso de relojes físicos para la sincronización de sistemas distribuidos. Pese a que en un sistema paralelo es posible simular un reloj compartido, rara vez es buena idea diseñar un sistema basado en una arquitectura fuertemente acoplada. 6 / 34

8 Acoplamiento IV Debido a la perdida de rendimiento durante la sincronización, elegir una arquitectura débilmente acoplada es una mejor opción. Por lo tanto, asumiremos que los sistemas con los que trataremos a partir de ahora son débilmente acoplados. 7 / 34

9 Sincronización Def. Sincronización (del griego (syn) -> unido y (chrónos) -> tiempo), describe el ajuste temporal de eventos. Se habla de sincronización cuando determinados fenómenos ocurran en un orden predenido o a la vez. 8 / 34

10 Clasicación Los sistemas distribuidos pueden ser clasicados como: Sistemas Síncronos Sistemas Asíncronos 9 / 34

11 Sistemas Asíncronos I Un sistema distribuido es asíncrono si no existe límite superior en el tiempo de comunicación de los mensajes. La asincronía conduce hacía las soluciones más generales para varios problemas. Sin embargo, las cosas se tornan difíciles en sistemas asíncronos cuando los procesadores o las conexiones fallan. 10 / 34

12 Sistemas Asíncronos II En un sistema distribuido asíncrono es imposible distinguir entre un procesador lento y uno que ha fallado. Esto conduce a complicaciones en el desarrollo de algoritmos para consenso, elección y otros problemas importantes del cómputo distribuido. 11 / 34

13 Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX 12 / 34

14 Conceptos Los resultados de muchos sistemas paralelos y distribuidos han demostrado que su diseño debe considerar principalmente cuatro propiedades: 1. Tolerancia a fallos 2. Transparencia 3. Flexibilidad 4. Escalabilidad 13 / 34

15 Tolerancia a fallos El software debe de enmascara uno o más componentes del sistema incluyendo: - procesadores - memoria - conexiones de red. Generalmente esto requiere redundancia, la cual puede ser costosa dependiendo del grado de tolerancia. Por lo tanto, se requiere de un análisis costo-benecio para determinar un nivel apropiado de tolerancia a fallos. 14 / 34

16 Transparencia I Para que un sistema sea tan amigable como sea posible, se requiere que el usuario no tenga que tratar con detalles innecesarios. Por ejemplo: en un sistema distribuido heterogéneo, la diferencia en la representación interna de los datos se oculta para el usuario, esto corresponde a transparencia de acceso. 15 / 34

17 Transparencia II Para que un usuario pueda utilizar un recurso: No se requiere que el usuario sepa donde está localizado -Transparencia de localización. No se requiere que el usuario sepa si está replicado -Transparencia de replicación. No se requiere que el usuario sepa si está compartido -Transparencia de concurrencia. No se requiere que el usuario sepa si está almacenado en memoria volátil o en disco duro -Transparencia de persistencia. 16 / 34

18 Flexibilidad La Flexibilidad de un sistema radica en la facilidad para interactuar con otros servicios y sistemas. Para lograr una una buena interacción se requiere que el sistema adopte un conjunto jo de reglas, preferiblemente un estándar. Esto se puede facilitar a través de: 1. Una Lenguaje de Denición de Interfaz (IDL) que especica los servicios proporcionados por el sistema. 2. Separar la conguración (o política) del mecanismo. 17 / 34

19 IDL: Interface Description Language También llamado lenguaje de denición de interfaz es un lenguaje informático utilizado para describir la interfaz de componentes del software. Describe una interfaz en un lenguaje neutral, que permite la comunicación entre componentes de software desarrollados en diferentes lenguajes de programación y para diferentes plataformas, como por ejemplo entre componentes escritos en C++ y otros escritas en Java. Son utilizadas con frecuencia en software con llamadas a procedimientos remotos (RPC, Remote Procedure Call). IDL ofrece un puente entre dos sistemas diferentes. Algunos lenguajes de descripción o de denición de interfaz son: IDL specication language, el IDL original. Microsoft Interface Denition Language (MIDL). Open Service Interface Denitions. Platform-Independent Component Modeling Language. WSDL, lenguaje de descripción de servicios web. 18 / 34

20 Escalabilidad La Escalabilidad es una propiedad importante si se piensa en rendimiento del sistema cuando el número de usuarios o recursos se incremente. Por lo general, un sistema puede ser completamente descentralizado; usando algoritmos distribuidos, como parcialmente descentralizado; usando una jerarquía de servidores. 19 / 34

21 Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX 20 / 34

22 Origenes Se puede decir que los problemas de Concurrencia surgen incluso en computadoras con un sólo CPU, ya que el sistema puede estar organizado como una colección de procesos que cooperan entre sí. De hecho, los tópicos de Sincronización e Interbloqueo (deadlock) tienen sus raíces en el desarrollo de los primeros Sistemas Operativos. No obstante, antes de profundizar en la construcción de la programación concurrente es necesario comprender la diferencia entre programa y proceso. 21 / 34

23 Procesos I Programa de computadora.- Se trata de un conjunto de instrucciones escritas en un lenguaje de alto nivel o en lenguaje de máquina. Proceso.- Se obtiene al ejecutar un programa y es entonces que es posible obtener uno o más procesos. programa secuencial = un proceso programa concurrente = múltiples procesos 22 / 34

24 Procesos II Un proceso consiste de tres segmentos en memoria: 1. Código 2. Datos 3. Pila de ejecución. El CÓDIGO es la máquina de instrucciones. Los DATOS corresponden a la memoria ocupada por variables globales y memoria asignada en tiempo de ejecución (heap) usada por el programa. La PILA se compone de variables locales y registros de activación para las llamadas a función. 23 / 34

25 Procesos III Dado que cada proceso tiene su propia pila, cuando varios procesos comparten el espacio de direcciones (memoria), o sea código y datos, se conocen como procesos ligeros o hilos. 24 / 34

26 Procesos IV Cuando varios procesos tienen su propio código y sus propios datos se conocen como procesos pesados o simplemente procesos. En este caso, los procesos pesados pueden compartir datos a través de archivos o enviando mensajes explícitos a cada otro. Lenguaje Cualquier lenguaje de programación que soporte concurrencia debe tener una forma de especicar: La estructura de un proceso. La comunicación entre varios procesos. La sincronización de cada proceso. 25 / 34

27 Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX 26 / 34

28 Organización Durante el curso se estudiaran las formas más populares para que un programa especique la estructura de un proceso o la creación de nuevos procesos. Un caso fundamental es la creación de procesos en sistemas basados en UNIX. Los procesos son organizados en forma de un árbol de procesos donde cada proceso se identica con un Identicador de Proceso que es único (PID). UNIX proporciona llamadas a sistema de tipo: bifurcación (fork) para la creación de procesos ligeros. de espera (wait) para la sincronización de procesos ligeros. 27 / 34

29 Llamada a sistema fork Cuando un proceso realiza un llamado de tipo fork se crea un proceso hijo con una copia del espacio de direcciones del proceso padre. La única diferencia entre el proceso padre y el hijo es el valor de retorno que se obtiene a partir del código para el fork. El proceso padre obtiene el PID del proceso hijo así como el código de retorno, y el proceso hijo se identica con el valor 0 como se muestra en el siguiente código. 28 / 34

30 Llamadas a sistema fork ejemplo pid = fork(); if( pid == 0 ) { // child process cout child process; } else { // parent process cout parent process; } 29 / 34

31 Llamada a sistema wait La llamada a wait es usada por el proceso padre para esperar la nalización del proceso hijo. Un proceso termina cuando se ejecuta la última instrucción del código o cuando se hace una llamada explícita a la función exit perteneciente al sistema. Cuando un proceso hijo termina, el proceso padre despierta si estaba esperando, y el PID del proceso hijo es retornado por la llamada wait. De esta forma el proceso padre puede determinar cuál de sus hijos ha terminado. 30 / 34

32 Lanzamiento paralelo de procesos I Otro tipo de programación para lanzar tareas paralelas es posible a través de la sentencias cobegin-coend (también llamadas parbegin-parend). Su sintaxis es como sigue: cobegin S 1 S 2 coend Esta tipo de construcción signica que S 1 y S 2 deben ejecutarse en paralelo. Además si alguno de los procesos termina antes, este debe esperar a que termine el otro. 31 / 34

33 Lanzamiento paralelo de procesos II Combinando las sentencias cobegin-coend con la secuenciación u operador de series ';' es posible crear cualquier cantidad de tareas con estructura en serieparalela. S 0; cobegin S 1 S 2 coend; S 3 se comienza con un proceso que ejecuta S 0. Cuando S 0 termina se tienen dos procesos (o hilos) S 1 y S 2 que se ejecutan en paralelo. Cuando ambos procesos terminan, sólo resta ejecutar S / 34

34 ACTIVIDAD: Ejercicios 1. Dar las ventajas y desventajas de un modelo de programación paralela contra un modelo de sistema distribuido (basado en mensajes). 2. Codica una clase en Java que permita la búsqueda paralela en un arreglo de enteros. Se proporciona el siguiente método estático: public static int parallelsearch( int x, int A[], int numthreads ) {... } Éste método crea tantos hilos como especiqué el parámetro numthreads, divide el arreglo A entre el número de hilos, se le asigna una parte del arreglo a cada hilo para que busque x de forma secuencial. Si algún hilo encuentra x, entonces éste retorna un índice i tal que A[i] = x. En otro caso, el método retorna -1. * Presentar tarea escrita a mano en la libreta y en limpio. ** La comprobación del código en JAVA deberá presentarse en computadora. 33 / 34

35 El único lugar en el que Éxito viene antes que Trabajo es en el diccionario [Vidal Sassoon] Juan Carlos Conde Ramírez 34 / 34

Introducción al Computo Distribuido

Introducción al Computo Distribuido Introducción al Computo Distribuido Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Distributed Computing Contenido 1 Introducción 2 Importancia del Hardware 3 Importancia del Software 1 /

Más detalles

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos Tema 5: Sistemas Operativos Distribuidos 1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño 1 1. Introducción Sistema Informático Distribuido: Colección de S.I. autónomos

Más detalles

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos:

Más detalles

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores

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 Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a

Más detalles

Usando el Sistema Operativo

Usando el Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Sistemas Operativos. Procesos

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

Más detalles

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

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo) Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional () adicional () Preparado Preparado

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS PROCESOS DISTRIBUIDOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen El proceso cliente servidor es la clave para comprender el potencial de los sistemas de información y las redes

Más detalles

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada Bibliografía Sistemas Operativos Distribuidos Ing. Alfonso Guijarro Rodríguez alfonso_guijarro@yahoo.es Sistemas Operativos Distribuidos Andrew S. Tanenbaum. 1996, Prentice-Hall Capítulo 1 última edición

Más detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE SISTEMAS

Más detalles

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso 2016-2017 Presentación e introducción Félix García Carballeira Grupo de Aruitectura de Computadores felix.garcia@uc3m.es

Más detalles

Ingeniería en computación Tipos de sistemas operativos

Ingeniería en computación Tipos de sistemas operativos Ingeniería en computación Tipos de sistemas operativos Unidad de competencia III: Sistemas Operativos Distribuidos Ing. Diego Armando Ramírez Avelino 17/10/2017 1 Unidad de competencia I Objetivo Entender

Más detalles

PROCESAMIENTO DISTRIBUIDO

PROCESAMIENTO DISTRIBUIDO Pág. 1 INTRODUCCIÓN PROCESAMIENTO DISTRIBUIDO Arquitectura de comunicaciones: Software básico de una red de computadoras Brinda soporte para aplicaciones distribuidas Permite diferentes Sistemas Operativos

Más detalles

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Beneficios de la programación Especificación de ejecución Características de los sistemas s Verificación de programas s 2 Bibliografía Programción

Más detalles

Sistemas Distribuidos. Prog. Distribuida bajo Internet

Sistemas Distribuidos. Prog. Distribuida bajo Internet Sistemas Distribuidos Prog. Distribuida bajo Internet Definición Hay muchas definiciones Básicamente, varios computadores o nodos de computación en lazados mediante una red y que comparten datos, procesamiento,

Más detalles

PROCESOS E HILOS - Hilo

PROCESOS E HILOS - Hilo 1/6 PROCESOS E HILOS - Hilo! contexto de ejecución que se planifica de forma independiente pero que comparte un mismo espacio de direcciones con otros hilos - Proceso! conjunto de uno o más hilos y los

Más detalles

TEMA 1. Introducción a las arquitecturas distribuidas

TEMA 1. Introducción a las arquitecturas distribuidas TEMA 1. Introducción a las arquitecturas distribuidas Tema 1. ARQUITECTURAS DISTRIBUIDAS: CONCEPTOS BÁSICOS 1. Qué es un sistema distribuido? 2. Servicios 3. Arquitectura 4. Definición de AD 5. Modelos

Más detalles

SISTEMAS OPERATIVOS Manejo de procesos

SISTEMAS OPERATIVOS Manejo de procesos SISTEMAS OPERATIVOS Manejo de procesos Amilcar Meneses Viveros ameneses@computacion.cs.cinvestav.mx Universidad de Occidente Presentación Concepto de proceso Despacho de procesos Operaciones sobre procesos

Más detalles

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

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos Sistemas operativos: una visión aplicada Capítulo 5 Comunicación y sincronización de procesos Sistema multiprogramado con un una CPU Proceso A Proceso B Proceso C Tiempo Sistemas operativos: una visión

Más detalles

Guillermo Román Díez

Guillermo Román Díez Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia

Más detalles

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez Introducción a los sistemas distribuidos Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/28 Contenidos Definiciones

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Contenidos del Tema Gestión de procesos Modelos de sistema Asignación de procesadores Estrategias dinámicas Estrategias estáticas Ejecución remota de procesos Modelos de sistema Organización de los procesadores

Más detalles

6.1 Base De Datos Centralizada

6.1 Base De Datos Centralizada 6. Infraestructura El tipo de infraestructura o bien arquitectura, se debe de elegir pensando en el sistema a ejecutar, las necesidades que este tendrá, el tipo de usuario que lo utilizará, la seguridad

Más detalles

Tema 2. Administración de procesos

Tema 2. Administración de procesos Sistemas Operativos Tema 2. Administración de procesos Objetivo: El alumno identificará los tipos de procesos y sus estados. Describirá las diferentes técnicas de comunicación y sincronización de procesos

Más detalles

Tema 1: Introducción a los Sistemas Distribuidos. Sistemas Distribuidos Marcos López Sanz [Curso ]

Tema 1: Introducción a los Sistemas Distribuidos. Sistemas Distribuidos Marcos López Sanz [Curso ] Tema 1: Introducción a los Sistemas Distribuidos Sistemas Distribuidos Marcos López Sanz [Curso 2012-2013] Índice Definición Objetivos Propiedades y retos Ventajas y desventajas Tipos y ejemplos Ejercicios

Más detalles

Introduccion a Sistemas Operativos. Ej: Linux

Introduccion a Sistemas Operativos. Ej: Linux Universidad Nacional de Ingeniería Facultad de Ciencias Física Computacional CC063 Introduccion a Sistemas Operativos. Ej: Linux Prof: J. Solano 2012-I Resumen Qué hacen los sistemas operativos? Organización

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Referencias Básicas Presentación Distributed Systems: Concepts and Design G. Coulouris, J. Dollimore, T. Kindberg; Addison-Wesley, 2001 Distributed Systems: Principles and Paradigms A. S. Tanenbaum, M.

Más detalles

Sistemas Distribuidos Introducción. Rodrigo Santamaría

Sistemas Distribuidos Introducción. Rodrigo Santamaría Sistemas Distribuidos Introducción Rodrigo Santamaría Qué es un sistema distribuido? Es un sistema en el que los componentes hardware o software: Se encuentran en computadores unidos mediante una red Se

Más detalles

Sistemas Distribuidos.

Sistemas Distribuidos. Escuela Militar de Ingeniería Ingeniería de Sistemas SISTEMAS OPERATIVOS Laboratorio Nombre: Código: Sistemas Distribuidos. 1. Conceptos fundamentales. Definición de un sistema de cómputo distribuido.

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?

Más detalles

Lenguajes de Programación

Lenguajes de Programación Lenguajes de Programación Concurrencia Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2018 Prof. Ma. Laura Cobo Página 1 Motivación Un programa se dice concurrente si puede tener

Más detalles

Ingeniería en Computación

Ingeniería en Computación Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas

Más detalles

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

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos

Más detalles

Programación de Multitareas utilizando Hilos

Programación de Multitareas utilizando Hilos Programación de Multitareas utilizando Hilos Enero/2012 Programación de Multitareas utilizando Hilos Origen de los hilos como elementos necesarios en la programación de multitareas Multihilos en un solo

Más detalles

MULTIPROCESADORES TIPOS DE PARALELISMO

MULTIPROCESADORES TIPOS DE PARALELISMO Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Taller de Programación Paralela

Taller de Programación Paralela Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 17, 2008 Motivación Programar aplicaciones paralelas no es una tarea trivial. Paralelismo

Más detalles

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Tipos de Diseño. Ing. Elizabeth Guerrero V. Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador

Más detalles

Introducción a los Servicios Web

Introducción a los Servicios Web Octubre 2006 Contenidos Introducción Estándares SOAP WSDL UDDI Arquitecturas Retos Servicios Web Aplicaciones auto-contenidas, auto-descritas que pueden ser publicadas, localizadas e invocadas a través

Más detalles

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Introducción. Tema 6 Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los

Más detalles

Sistemas Informáticos Industriales

Sistemas Informáticos Industriales Escuela Técnica Superior de Ingeniería y Diseño Industrial Universidad Politécnica de Madrid Llamadas a Procedimientos Remotos (RPC) Sistemas Informáticos Industriales 2017/2018 Raquel CEDAZO LEÓN

Más detalles

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR PROGRAMA SINTÉTICO

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR PROGRAMA SINTÉTICO CARRERA: Ingeniería en Computación PROGRAMA SINTÉTICO ASIGNATURA Sistemas Distribuidos SEMESTRE: Octavo OBJETIVO GENERAL: El alumno diseñará mediante software un sistema informático que incorpore las funciones

Más detalles

Conceptos generales de sistemas distribuidos

Conceptos generales de sistemas distribuidos Departament d Arquitectura de Computadors Conceptos generales de sistemas distribuidos Sistema distribuido Un sistema en el que los componentes hardware y/o software ubicados en computadores en red, se

Más detalles

Tema III. Multihilo. Desarrollo de Aplicaciones para Internet Curso 12 13

Tema III. Multihilo. Desarrollo de Aplicaciones para Internet Curso 12 13 Tema III. Multihilo Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.Tipos de Concurrencia 3.Hilos en Java 4.Implementación de un SNB i. Sin Hilos ii. Con Hilos iii.con Pool

Más detalles

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011

Cilk. Un entorno de programación paralela. Tomás Muñoz Rodríguez < > 17 de noviembre de 2011 Un entorno de programación paralela Tomás Muñoz Rodríguez < tomas.munoz@um.es > 17 de noviembre de 2011 Profesor: Domingo Jiménez Cánovas Asignatura: Metodología de la Programación Paralela Facultad de

Más detalles

Clases 02 & 03: Revisión de conceptos

Clases 02 & 03: Revisión de conceptos Clases 02 & 03: Revisión de conceptos Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido

Más detalles

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo...

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo... 1 Prólogo... xv 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS... 1 1.1. Conceptos generales sobre sistemas operativos... 2 1.1.1. Funciones del sistema operativo... 2 1.1.2. Componentes del sistema operativo...

Más detalles

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos SISTEMAS OPERATIVOS: PROCESOS Planificación de procesos ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo de este material no garantiza

Más detalles

Hilos Secciones Stallings:

Hilos Secciones Stallings: Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los

Más detalles

SISTEMAS OPERATIVOS Introducción. Amilcar Meneses Viveros

SISTEMAS OPERATIVOS Introducción. Amilcar Meneses Viveros SISTEMAS OPERATIVOS Introducción Amilcar Meneses Viveros ameneses@computacion.cs.cinvestav.mx Presentación Objetivos Definición de sistema operativo Evolución de los sistemas operativos Objetivos Definición

Más detalles

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

de Gran Canaria Centro de Tecnología Médica  Programación Concurrente Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales

Más detalles

Concurrencia de Procesos

Concurrencia de Procesos Concurrencia de Procesos Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo)

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo de 2006 Índice Concepto

Más detalles

Sistemas Distribuidos. Soporte de Sistemas Operativos

Sistemas Distribuidos. Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los

Más detalles

Programación Concurrente

Programación Concurrente Programación Concurrente Joaquín EZPELETA Dept. de Informática e Ingeniería de Sistemas Universidad de Zaragoza J. Ezpeleta 1 Programas concurrentes Un programa concurrente se compone de procesos y objetos

Más detalles

Sistemas Distribuidos: Migración de Procesos

Sistemas Distribuidos: Migración de Procesos Sistemas Distribuidos: Migración de Procesos Yudith Cardinale Universidad Central de Venezuela Facultad de Ciencias Postgrado en Computación Octubre 2013 Febrero 2014 Objetivos Entender la importancia

Más detalles

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Nombre del trabajo: Investigación sobre los Sistemas Operativos distribuidos Fecha de entrega: Miércoles 4 de Septiembre Campus: Villahermosa Carrera

Más detalles

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías: Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la

Más detalles

Modelos de Sistemas Distribuidos

Modelos de Sistemas Distribuidos Modelos de Sistemas Distribuidos Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Distributed Computing Contenido 1 Introducción 2 Arquitecturas de Software 3 Modelos 4 Arquitectura de Sistemas

Más detalles

Taxonomía de las arquitecturas

Taxonomía de las arquitecturas Taxonomía de las arquitecturas 1 INTRODUCCIÓN 2 2 CLASIFICACIÓN DE FLYNN 3 2.1 SISD (SINGLE INSTRUCTION STREAM, SINGLE DATA STREAM) 3 2.2 SIMD (SINGLE INSTRUCTION STREAM, MULTIPLE DATA STREAM) 4 2.2.1

Más detalles

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA. Ingeniería en Informática Curso

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA. Ingeniería en Informática Curso TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 Contenidos Concurrencia y paralelismo Sistema concurrente Programación concurrente Lenguaje concurrente Arquitectura paralela

Más detalles

Contenidos. Contenidos. Bibliografía. Paralelismo vs concurrencia. Qué es la concurrencia? Ingeniería en Informática Curso

Contenidos. Contenidos. Bibliografía. Paralelismo vs concurrencia. Qué es la concurrencia? Ingeniería en Informática Curso TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 2 Bibliografía Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall, 1990 Capítulo 1 y 2 Concurrent

Más detalles

Sistemas Operativos Practica 1: procesos y concurrencia.

Sistemas Operativos Practica 1: procesos y concurrencia. Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo

Más detalles

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;

Más detalles

PROGRAMACIÓN DISTRIBUIDA

PROGRAMACIÓN DISTRIBUIDA PLAN DE ESTUDIOS 2008 LICENCIADO EN INFORMÁTICA FACULTAD DE CONTADURÍA, ADMINISTRACIÓN E INFORMÁTICA ASIGNATURA: PROGRAMACIÓN DISTRIBUIDA ÁREA DEL CONOCIMIENTO: PROGRAMACIÓN E INGENIERÍA DE SOFTWARE CLAVE:

Más detalles

Diseño de Sistemas Operativos. Capítulo 10 Introducción a los Sistemas Operativos Distribuidos

Diseño de Sistemas Operativos. Capítulo 10 Introducción a los Sistemas Operativos Distribuidos Diseño de Sistemas Operativos Capítulo 10 Introducción a los Sistemas Operativos Distribuidos Extraído de J. Carretero, F. García, P. de Miguel, F. Pérez Introducción a los Sistemas Operativos Distribuidos

Más detalles

Procesos Definición y Estados

Procesos Definición y Estados Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).

Más detalles

Programación Concurrente y distribuida

Programación Concurrente y distribuida Working Hypothesis Programación Concurrente y distribuida Camilo Rueda 1 1 Universidad Javeriana-Cali 1 de febrero de 2010 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería

Más detalles

CAPITULO 12: SISTEMAS DE FICHEROS DISTRIBUIDOS Un sistema bien diseñado permite el acceso a un servidor de ficheros (remoto) con eficiencia y

CAPITULO 12: SISTEMAS DE FICHEROS DISTRIBUIDOS Un sistema bien diseñado permite el acceso a un servidor de ficheros (remoto) con eficiencia y CAPITULO 12: SISTEMAS DE FICHEROS DISTRIBUIDOS Un sistema bien diseñado permite el acceso a un servidor de ficheros (remoto) con eficiencia y fiabilidad comparables a las del acceso a los ficheros locales

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Sistemas Operativos Distribuidos Dr. Víctor J. Sosa S. vjsosa@cinvestav.mx Referencias Básicas Distributed Systems: Concepts and Design G. Coulouris, J. Dollimore y T. Kindberg; Addison-Wesley Distributed

Más detalles

Evolución del software y su situación actual

Evolución del software y su situación actual Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su

Más detalles

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela

Más detalles

Necesidad de Protección

Necesidad de Protección Necesidad de Protección Por qué necesitamos protección? Para mejorar la utilización del sistema, el Sistema de Operación empezó a compartir recursos del sistema entre varios programas de manera simultánea.

Más detalles

Instrumentación n / Ing. Quirino Jimenez D.

Instrumentación n / Ing. Quirino Jimenez D. Introducción n a los sistemas distribuidos Hoy en día d a los sistemas de computo están n organizados por varios ordenadores conectados en red, esto es un sistema distribuido. El problema que se plantea

Más detalles

Arquitecturas: Clusters. Edgar Valderrama Lucio Mederos

Arquitecturas: Clusters. Edgar Valderrama Lucio Mederos Arquitecturas: Clusters Edgar Valderrama Lucio Mederos Qué es un cluster? Es un sistema compuesto por varias computadoras (nodos) unidas por una red que se comporta como una única entidad. De un cluster

Más detalles

Asignaturas antecedentes y subsecuentes

Asignaturas antecedentes y subsecuentes PROGRAMA DE ESTUDIOS Programación Concurrente Área a la que pertenece: Área de Formación Integral Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0177 Asignaturas antecedentes y subsecuentes

Más detalles

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro Es una instancia de un programa en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto

Más detalles

Universidad de Cantabria

Universidad de Cantabria Bases de Datos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos básicos y terminología de las bases de

Más detalles

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

La secuencia de referencias a páginas para el proceso B es: SISTEMAS OPERATIVOS (Código: 71902048) Enero 2017 Material permitido: Solo calculadora no programable Tiempo: 2 horas N1 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba

Más detalles

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

Sistemas Operativos. Dr. Luis Gerardo de la Fraga.    Departamento de Computación Cinvestav Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,

Más detalles

Aplicaciones Concurrentes

Aplicaciones Concurrentes PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes

Más detalles

Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.

Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores. Página 1 de 8 Introducción a BSP La motivación para el modelo de computación paralela BSP (The Bulk-Synchronous Parallel Model) surge de una comparación con lo que se observa en el mundo de la computación

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

Computación 1. Roles en la interconexión

Computación 1. Roles en la interconexión Computación 1 Roles en la interconexión Contenido Roles en la Interconexión Host y Terminales Servidores y Clientes Arquitectura Cliente-Servidor Servidor y Cliente son programas Protocolo de Servicio

Más detalles

Esta asignatura apoyará al alumno en la consecución de las siguientes competencias:

Esta asignatura apoyará al alumno en la consecución de las siguientes competencias: Nombre de la asignatura: Sistemas Operativos II Créditos: 3-2-5 Aportación al perfil Esta asignatura apoyará al alumno en la consecución de las siguientes competencias: Aplicar conocimientos científicos

Más detalles

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional (PCB) adicional (PCB) Preparado Preparado

Más detalles

Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada.

Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada. Concurrencia Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada. Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada

Más detalles

Redes de Altas Prestaciones

Redes de Altas Prestaciones Redes de Altas Prestaciones Tema 1: Introducción Características de los sistemas distribuidos Necesidad de las arquitecturas de red de altas prestaciones Organización de la asignatura Características de

Más detalles

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali SISTEMAS OPERATIVOS I Clave: 4595 HC: 3 HL: 2 HT: HPC: HCL: HE: CR: 8 Etapa de formación a la que pertenece: Básica Carácter de la Asignatura: Obligatoria PROPÓSITO GENERAL DEL CURSO Proporcionar al estudiante

Más detalles

TEMA 2: PROGRAMACIÓN PARALELA (I)

TEMA 2: PROGRAMACIÓN PARALELA (I) Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua

Más detalles

Sistemas Operativos. Estructura de los sistemas operativos

Sistemas Operativos. Estructura de los sistemas operativos Sistemas Operativos Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura del

Más detalles

Problemas que resuelve un S.O. (2)

Problemas que resuelve un S.O. (2) Sistemas Operativos y Distribuidos D.C.I.C. U.N.S. http://cs.uns.edu.ar/~jechaiz je@cs.uns.edu.ar Los Sistemas Operativos son programas para la administración eficiente de los recursos de la computadora.

Más detalles

RECURSOS COMPARTIDOS ENTRE DIFERENTES SISTEMAS OPERATIVOS. Activar y desactivar Uso compartido simple de archivos

RECURSOS COMPARTIDOS ENTRE DIFERENTES SISTEMAS OPERATIVOS. Activar y desactivar Uso compartido simple de archivos RECURSOS COMPARTIDOS ENTRE DIFERENTES SISTEMAS OPERATIVOS Con Windows XP, puede compartir archivos y documentos con otros usuarios en su equipo y con otros usuarios de la red. Hay una nueva interfaz de

Más detalles

BASE DE DATOS DISTRIBUIDOS

BASE DE DATOS DISTRIBUIDOS 1 BASE DE DATOS DISTRIBUIDOS Contenido: Base de Datos Distribuidos 1.1. Introducción 1.1.1 Almacenamiento Distribuido 1.2. Sistemas de gestión de bases de datos distribuidos 1.2.1 Funciones y Arquitectura

Más detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS SISTEMAS OPERATIVOS

Más detalles

Otro componente fundamental del ordenador es su memoria principal

Otro componente fundamental del ordenador es su memoria principal Otro componente fundamental del ordenador es su memoria principal La memoria principal del ordenador se llama memoria acceso aleatorio o RAM. De acuerdo a la arquitectura Von Neumann, la RAM aloja temporalmente

Más detalles

FUNDAMENTOS DE SISTEMAS OPERATIVOS

FUNDAMENTOS DE SISTEMAS OPERATIVOS FUNDAMENTOS DE SISTEMAS OPERATIVOS Alejandro González Herrera Tecnólogo en Informática M/Análisis y Desarrollo de Sistemas Historia 1º generación (1945-1955) En los 40's, se introducen los programas bit

Más detalles

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera BROKER Publicador Suscriptor Jonnathan Corredor Lorena Arrieta Alejandro Mosquera Contenido 1. Descripción General 2. Guía de Implementación 3. Patrones Relacionados 4. Usos Conocidos 5. Variaciones 6.

Más detalles