Programación Multiproceso

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

Download "Programación Multiproceso"

Transcripción

1 Proyecto Universidad-Secundaria Incorporación de contenidos de programación paralela en la rama de tecnologías informáticas Facultad Informática, Universidad de Murcia e Instituto de Enseñanza Secundaria Ingeniero Juan de la Cierva Programación Multiproceso

2 Posible utilización Módulo de Programación de servicios y procesos, segundo de Desarrollo de Aplicaciones Multiplataforma Parcialmente se podría usar en Tecnologías de la Información y de las Comunicaciones, primero de Bachillerato

3 Contenido Procesos 1 Procesos 2 3

4 Concepto de proceso Un proceso es una instancia de un programa que se ejecuta: Programa: Colección de instrucciones. Proceso: Ejecución de las instrucciones. se pueden ejecutar varias instancias (procesos) del mismo programa, varios procesos (del mismo o distinto programa) pueden colaborar en la resolución de un problema, compartiendo los recursos del sistema computacional, se necesitan mecanismos de comunicación y sincronización.

5 Recursos asociados a un proceso Cada proceso tiene asociados una serie de recursos del sistema: Una imagen del código máquina del programa Una parte de memoria, para almacenar el código, los datos del proceso, la pila de llamadas de sus rutinas... Descriptores de los recursos del sistema asociados al proceso (por ejemplo, descriptores de ficheros) El contexto del proceso: contenido de los registros, direcciones de memoria... El sistema operativo almacena la información de los procesos activos en bloques de control de procesos.

6 Estados de un proceso Inicialmente se crea el proceso: se carga de memoria secundaria a principal. Después pasa a estado de esperando, hasta que el scheduler del sistema lo asigna a un procesador. Pasa a estado de ejecutándose. Cuando necesita esperar a que un recurso esté disponible pasa a bloqueado, y cuando ya tiene el recurso pasa a esperando y de ahí a ejecutándose. Finalmente pasa a terminado.

7 Planificación de procesos El sistema operativo puede mantener varias instancias programas al mismo tiempo: puede haber programas de usuarios distintos, varias instancias del mismo programa... Un núcleo ejecuta sólo un proceso en un instante de tiempo. En sistemas con varios núcleos o procesadores se pueden asignar procesos distintos a núcleos distintos (ejecución concurrente). La asignación y desasignación de procesos a núcleos debe hacerla el sistema operativo de forma rápida. Los procesos pueden cambiar de estado por interrupciones software o hardware. Un cambio de contexto ocurre cuando un proceso en un núcleo para y se le asigna otro proceso.

8 Procesos versus hilos Un proceso puede tener subprocesos o hilos, que son secuencias independientes de ejecución dentro del código de un proceso. Los hilos son las secuencias más pequeñas de instrucciones que el sistema operativo puede manejar de forma independiente. Los hilos dentro de un proceso comparten más recursos que los procesos: la memoria, la última instrucción del código, valores de las variables... La gestión de hilos por el sistema operativo será más rápida que la de procesos.

9 Programación concurrente, paralela y distribuida Programación Concurrente Cuando varios elementos de proceso (hilos, procesos) trabajan de forma conjunta en la resolución de un problema. Puede ser en un único procesador o núcleo. Programación Paralela Es programación concurrente cuando se utiliza para acelerar la resolución de los problemas, normalmente usando varios procesadores o núcleos. Programación Distribuida Es programación paralela cuando los sistemas están distribuidos, por ejemplo una red de procesadores, con lo que hay que usar paso de mensajes.

10 Necesarios mecanismos de creación ejecución finalización comunicación sincronización de procesos.

11 Creación Procesos Se ordena al sistema poner en marcha procesos, y cada proceso tiene asociadas sus zonas de memoria: En C: Confork se crea un proceso hijo, que tiene una copia de las variables del proceso padre. En : Al lanzar la ejecución conmpicc -np X programa se ponen en marchax procesos que ejecutan el mismo códigoprograma y cada uno tiene en su memoria asociada copias distintas de las variables del programa. Los procesos pueden empezar a colaborar cuando se inicializa, con Init. En Java: Está la clase ProcessBuilder, y se inicializan con el método start. También se pueden poner en marcha desde otro proceso con Runtime.getRuntime().exec("programa"). Y se pueden usar RMI (Java Remote Method Invocation) para invocar métodos de forma remota, para aplicaciones cliente-servidor.

12 Ejecución Procesos Una vez puestos en marcha, los procesos trabajan de forma independiente, ejecutando el mismo o distinto programa, y cada uno con los datos a él asociados. Si ejecutan el mismo programa, aunque las variables se llaman igual, cada proceso trabaja con una copia distinta de ellas, por lo que la misma variable tiene valores distintos en procesos distintos. Hay mecanismos para sincronizar los procesos. Cuando un proceso necesita datos de otro proceso el acceso a esos datos se realiza con comunicaciones.

13 Finalización Procesos La finalización de un proceso supone la liberación de los recursos que se le asociaron (memoria, variables, descriptores de fichero...). En C: Conwait el proceso padre espera a que finalice un proceso hijo. En : Los procesos que se lanzaron conmpicc -np X programa acaban cuando llegan al final del programa. Al ejecutar Finalize se liberan los recursos generados para gestionar procesos a través de, y los procesos dejan de poder colaborar. En Java: En la clase ProcessBuilder se pueden usar los métodos finalize, wait, notify y notifyall heredados de la clase Object.

14 Comunicación Procesos Los procesos acceden a datos asociados a otros procesos por medio de comunicaciones. En C: Los procesos padre e hijo emparentados al ejecutar fork pueden comunicarse a través de una tubería usando la función pipe. En : Hay comunicaciones punto a punto ( Send, Recv, y otras versiones) y comunicaciones colectivas ( Bcast, Gather...) En Java: Ofrece multitud de posibilidades: colas de mensajes, canales, RMI, sockets, redireccionamiento de flujos de entrada/salida.

15 Sincronización Procesos Los procesos se sincronizan al comunicarse, pero también al acabar la ejecución, por ejemplo si un proceso espera a otro en unwait. En las comunicaciones puede haber sincronización entre dos procesos (comunicaciones punto a punto, o tuberías asociadas a dos procesos) o entre varios procesos (comunicaciones colectivas). Puede ser necesaria sincronización sin comunicar datos, por ejemplo para esperar que todos los procesos lleguen a un punto de la ejecución para seguir trabajando juntos. Se utilizan barreras, en con la función Barrier.

16 Veremos ejemplos básicos de programación multiproceso: veremos programación por paso de mensajes en con versiones nuevas de los ejemplos vistos en la Introducción a la Programación Paralela, y se podrá trabajar con la pruebapp-fp2014 de la página del Concurso de Programación Paralela.

17 Se crea una tubería con una llamada a la funciónpipe(td), dondetd es un array de dos enteros. Se escribe en la tubería con write(td[1],dir,tam), con dir la dirección de comienzo de los datos, ytam la cantidad de memoria a mandar. Se recibe a través de la tubería con read(td[0],dir,tam). Compilar y ejecutar el programa pipe-basico.c, que suma 10 números utilizando dos procesos. A diferencia del ejemplo anterior de uso defork, donde los procesos se comunicaban a través de la memoria, en este ejemplo se comunican con la tubería, con una especie de paso de mensajes.

18 Ejemplo: ordenación con dos procesos mandando mensajes por tubería El programa en programas/c/pipe-ordenacion.cpp realiza una ordenación con dos procesos, a diferencia del ejemplofork.cpp en este caso no se comparte memoria, sino que se usa una tubería para comunicar datos entre los procesos. Las tuberías tienen un tamaño por defecto, por lo que a partir de un tamaño de envío el programa no funcionaría. Para evitar esto, se usa la funciónfcntl para cambiar el tamaño máximo de los mensajes por la tubería.

19 En los programas maestro.java y esclavo.java tenemos un ejemplo básico de colaboración entre procesos, con comuniación a través de los flujos de I/O: El proceso que ejecuta el programa maestro pone en marcha la ejecución delesclavo con una llamada a Runtime.getRuntime().exec y declara un flujo de entrada para hacer lectura por buffer instream = new BufferedReader(new InputStreamReader(esclavo.getInputStream()) Compilar y ejecutar el programa: Compilar maestro.java y esclavo.java Ejecutar maestro N, que pone en marcha esclavo N (donde N será un número).

20 Ejemplo: ordenación con proceso maestro y esclavo Siguiendo el mismo esquema del ejemplo básico anterior, los programas maestroordenar.java y esclavo.ordenar.java realizan una ordenación de números enteros comunicándose con el flujo de entrada. El número de datos a ordenar se pasa como argumento al maestro. El esclavo es el que genera los datos, envía al maestro la primera mitad, ordena la segunda mitad y la pasa al maestro ordenada. El maestro ordena la primera mitad, recibe la segunda ordenada y mezcla las dos mitades. Los datos se pasan como cadenas de caracteres, por lo que se hace conversión de cadenas a enteros. Analizar la evolución de los tiempos de ejecución secuencial y paralelo aumentando el tamaño del problema. El alto coste de las comunicaciones hace que ahora sea necesario aumentar considerablemente el tamaño de problema para acercarnos a una aceleración de cuatro veces más rápida la versión paralela respecto a la secuencial.

21 (Message Passing Interface) es el estándar de facto actual para programación en sistemas de memoria distribuida. Es una especificación para paso de mensajes. La primera librería de paso de mensajes estándar y portable. Realizada por consenso ( Forum), con participación de unas 40 organizaciones. Acabado y publicado en mayo Actualizado en junio Hay varias versiones y variantes: 2, H, FT-... algunas de ellas libres: CH, LAM/, Open... Previamente PVM: Parallel Virtual Machine (aprox. 1993).

22 Características generales Recordamos los aspectos de vistos en el ejemplo codigo6-16.c: Se usa la libreríampi.h Es un programa C con llamadas a la librería. Las funciones empiezan con... Hay funciones de: inicialización ( Init) y finalización ( Finalize), para obtener el número de procesos (Commsize) y el identificador de proceso ( Comm rank), de sincronización ( Barrier), de envío (Send) y recepción (Recv) Se compila con mpicc -O3 codigo6-16.c Se ejecuta conmpirun -np X./a.out tam, dondexindica el número de procesos a usar, ytam el número de datos a ordenar.

23 Forma de las funciones Las funciones tienen la forma: error= nombre(parámetros) La de inicialización de es int Init ( int *argc, char ***argv ) y la de finalización int Finalize ( ) En algunas funciones aparece la constante COMM WORD. Varios procesos se agrupan en un comunicador, y COMM WORD identifica el comunicador formado por todos los procesos.

24 Funciones de identificación Procesos en el comunicador: Commsize ( Comm comm, int *size) devuelve en size el número de procesos en el comunicador comm. Si la llamamos con el comunicador COMM WORD devuelve el número de procesos puestos en marcha. Identificación de procesos: Commrank ( Comm comm, int *rank) devuelve en rank un identificador para cada proceso. Los procesos se numeran de 0 al número de procesos menos 1.

25 Mensajes Procesos En un mensaje se envía un cierto número de elementos de un tipo. Hay tipos básicos Tipo CHAR SHORT INT LONG UNSIGNED CHAR UNSIGNED SHOT UNSIGNED UNSIGNED LONG FLOAT DOUBLE LONG DOUBLE BYTE PACKED tipo C signed char signed short int signed int signed long int unsigned char unsigned short int unsigned int unsigned long int float double long double y derivados, que los construye el programador.

26 Mensajes punto a punto Interviene un proceso que envía y otro que recibe: Función de envío int Send ( void *buffer, int contador, Datatype tipo, int destino, int tag, Comm comunicador ) Función de recepción: int Recv ( void *buffer, int contador, Datatype tipo, int origen, int tag, Comm comunicador, Status *estado) Se envía el número de datos indicado porcontador, empezando en la zona de memoria señalada por el puntero buffer. Se indica el identificador de proceso que envía (origen) y que recibe (destino). Se puede indicar que se recibe de cualquiera poniendo como origen la constante ANY SOURCE. El parámetro tag sirve para diferenciar mensajes. Tiene que tener el mismo valor en el proceso que envía y en el que recibe. ConANYTAG se indica que se recibe un mensaje con cualquier valor en ese parámetro.

27 Comunicaciones síncronas Con las funciones de comunicación punto a punto anteriores las comunicaciones son síncronas: El proceso que envía sigue trabajando después de llamar a la función. El proceso que recibe lee el mensaje si ya ha sido enviado, pero si no queda a las espera de que se le envíe. La función de recepción es siempre Recv, pero hay varias funciones de envío según el grado de sincronización en el envío y dónde queden los datos una vez enviados: Send: el proceso que envía sigue cuando el buffer de salida está disponible para usarlo. Rsend: se ejecuta sólo si ya se ha realizado la llamada a recepción, si no da error. Ssend: el proceso que envía espera hasta que empieza la recepción. Bsend: cuando se sabe que hay espacio en el buffer de salida. Se puede reservar espacio con la función Buffer attach.

28 Comunicaciones asíncronas En las comunicaciones asíncronas no espera ninguno de los dos procesos. Las funciones son: int Isend ( void *buffer, int contador, Datatype tipo, int destino, int tag, Comm comunicador, Request *request ) int Irecv ( void *buffer, int contador, Datatype tipo, int origen, int tag, Comm comunicador, Request *request) Donde en request se guarda una etiqueta que identifica la operación. Se puede trabajar con ella: int Wait ( Request *request, Status *status ): espera hasta que está disponible la operación. int Test ( Request *request, int *flag, Status *status ): comprueba si está disponible.

29 Comunicaciones asíncronas - Ejemplo En el directorio programas//d-asincrono hay un ejemplo de uso de comunicaciones asíncronas. Se trata del ejemplo de multiplicación de matrices visto en la Introducción a la Programación Paralela y que corresponde al problema D de la pruebappfp1024 de la página del Concurso de Programación Paralela. Se puede analizar su funcionamiento y ejecutarlo en el concurso. Puede que se observe una ligera reducción en el tiempo de ejecución respecto a la versión síncrona, pero en cualquier caso la reducción no será importante debido a la clara estructura del programa. Se puede realizar una versión asíncrona del problema C, que corresponde a una ordenación, y probarla en el concurso.

30 Comunicaciones colectivas En ellas intervienen todos los procesos en el comunicador. En el ejemplo anterior hemos vistobcast, con la que se envían datos de un proceso (raíz) a todos los demás. Otras operaciones colectivas: Barrier: no comunica datos, pero bloquea los procesos hasta que la llaman todos. Gather: para recibir valores de todos los procesos. Scatter: para distribuir un buffer entre los procesos. Alltoall: para enviar datos de todos los procesos a todos. Reduce: combina valores de todos los procesos en un proceso. Reduce scatter: combina valores de todos los procesos y distribuye a todos. Las operaciones que se pueden hacer en las rutinas de reducción son: máximo ( MAX), mínimo (MIN), suma (SUM), producto (PROD), and lógico (LAND), and bit a bit (BAND), or lógico (LOR), or bit a bit (BOR), or exclusivo lógico (LXOR), or exclusivo bit a bit (BXOR), máximo y su posición (MAXLOC), mínimo y su posición ( MINLOC).

31 Comunicaciones colectivas - Ejemplo En el directorio programas//d-colectivas hay un ejemplo de uso de comunicaciones colectivas, donde se ve el funcionamiento de las funciones Scatter y Gather. Es el mismo ejemplo de multiplicación de matrices anterior. Se puede analizar su funcionamiento y ejecutarlo en el concurso. La principal ventaja de las comunicaciones colectivas es que facilitan la programación, y pueden acelerar la ejecución si se usa una implementación de que tenga optimizadas estas funciones para el sistema donde estamos trabajando. Se puede realizar una versión con comunicaciones colectivas del problema C y probarla en el concurso.

32 Empaquetamiento de datos Se pueden empaquetar datos para enviarlos juntos. Por cada dato a empaquetar se llama a: int Pack( void *datos, int contador, Datatype tipo, void *buffer, int tambuffer, int *posicion ptr, Comm comm) Se empaquetan enbuffercontador datos de tipotipo que se encuentran en datos. El tamaño del buffer (tambuffer) puede ser mayor al que se va a ocupar. posicionptr es de entrada-salida. A la entrada apunta a la posición del buffer donde se van a copiar los datos, y a la salida a la posición siguiente al último dato empaquetado. El proceso que recibe desempaqueta los datos en el mismo orden en que se empaquetaron, llamando por cada dato a la rutina int Unpack( void *buffer, int tambuffer, int *posicion ptr, void *datos, int contador, Datatype tipo, Comm comm)

33 Empaquetamiento de datos - Ejemplo En el directorio programas//d-empaquetar hay un ejemplo de uso de comunicación con empaquetamiento, donde se ve el funcionamiento de las funciones Pack y Unpack. Es el mismo ejemplo de multiplicación de matrices anterior. Se puede analizar su funcionamiento y ejecutarlo en el concurso. Empaquetar varios datos para transferirlos juntos permite reducir el número de comunicaciones, y puede producir una reducción del tiempo de ejecución, ya que las comunicaciones son muy costosas. Por otro lado, el empaquetamiento también tiene un coste de gestión de los datos, lo que produce una sobrecarga, y además mientras el proceso que envía está empaquetando el resto están a la espera. Por tanto no podemos asegurar que siempre sea mejor empaquetar varios datos para mandarlos juntos.

34 - Otras características Hemos visto las características principales de. Con las funciones estudiadas se puede realizar cualquier programa de paso de mensajes, pero ofrece muchas más funciones (más de 120). Otras posibilidades de : Tipos derivados: los crea el usuario en tiempo de ejecución. En el ejemplo anterior se podría crear un tipo formado por una porción de la matriz A y toda la matriz B, y a partir de ahí se podrían enviar elementos de ese tipo. Se pueden crear comunicadores con menos procesos de los que hay en marcha (menos que COMM WORLD) y hacer comunicaciones colectivas en ese comunicador, sin necesidad de que se participen el resto de procesos. Se pueden definir topologías, que son patrones de comunicación entre los procesos. Hay topologías más adecuadas que otras para distintos esquemas de programa y distintas conexiones de los procesadores, y una buena selección de la topología puede contribuir a reducir el tiempo de ejecución.

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) INTRODUCCIÓN MPI (Message Passing Interface) como es un interfaz estandarizada para la realización de aplicaciones paralelas basadas en pasaje de mensajes. El modelo de

Más detalles

Sistemas distribuidos Message Passing Interface

Sistemas distribuidos Message Passing Interface Sistemas Operativos, primer cuatrimestre de 2013 Sistemas distribuidos N procesos corriendo en M equipos físicamente separados. Se acabó la memoria compartida en el caso general. Podría haberla en ciertos

Más detalles

Modelo de paso de mensajes

Modelo de paso de mensajes Modelo de paso de mensajes Miguel Alfonso Castro García mcas@xanum.uam.mx Universidad Autónoma Metropolitana - Izt 17 de noviembre de 2016 Contenido 1 Comunicación punto a punto 2 3 Comunicación punto

Más detalles

Interfaz de Paso de Mensajes MPI. Christian Chinchilla Brizuela

Interfaz de Paso de Mensajes MPI. Christian Chinchilla Brizuela Interfaz de Paso de Mensajes MPI Christian Chinchilla Brizuela Agenda Definición Objetivo principal MPI Historia Ventajas Desventajas Estructura MPI Programa MPI Llamadas de MPI Funciones Principales MPI

Más detalles

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

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

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

Multiprocesamiento en lenguaje C Introducción a MPI

Multiprocesamiento en lenguaje C Introducción a MPI Multiprocesamiento en lenguaje C Introducción a MPI Message Passing Interface Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías MPI MPI es un estándar de programación

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

Programación Paralela en MPI. Xavier Andrade V.

Programación Paralela en MPI. Xavier Andrade V. Programación Paralela en MPI Xavier Andrade V. Introducción A pesar del aumento exponencial de la capacidad de los procesadores, esta no es suficiente para el estudio de muchos sistemas. Es necesario entonces

Más detalles

Paradigma de paso de mensajes

Paradigma de paso de mensajes Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:

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

Datos Elementales y formato de un programa en Java

Datos Elementales y formato de un programa en Java Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:

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

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

6. Enumere tres ventajas de los ULT frente a los KLT.

6. Enumere tres ventajas de los ULT frente a los KLT. 1 Tarea 3 Hilos 1. Cuales bloques de control de proceso deberían pertenecer a un bloque de control de hilo y cuáles a un bloque de control de proceso en un sistema multihilo? Para modelos monohilo deben

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

TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (segunda parte)

TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (segunda parte) TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (segunda parte) SISTEMAS PARALELOS Y DISTRIBUIDOS www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla

Más detalles

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes. Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,

Más detalles

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes. Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,

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

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia

Más detalles

Capítulo 3. Introducción a la programación. Continuar

Capítulo 3. Introducción a la programación. Continuar Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI SISTEMAS PARALELOS Y DISTRIBUIDOS

INTRODUCCIÓN A LA PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI SISTEMAS PARALELOS Y DISTRIBUIDOS INTRODUCCIÓN A LA PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI 1 Y DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA INGENIERÍA DE COMPUTADORES ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA

Más detalles

Curso de Java Introducción a la Programación II

Curso de Java Introducción a la Programación II Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice

Más detalles

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

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas

Más detalles

Paralelismo Relajado Paralelismo Síncrono

Paralelismo Relajado Paralelismo Síncrono Metodología de la Programación Paralela Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelismo Relajado Paralelismo Síncrono Domingo Giménez (Universidad de Murcia) 1

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

Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas

Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas Paralelismo MPI Paso de mensajes Francisco García Sánchez Departamento de Informática y Sistemas Contenido Introducción 1) Uso de MPI 2) Multiplicación de matrices 3) Ordenación por mezcla 4) Programación

Más detalles

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

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

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Paralelización de problemas de recorrido de árboles Trabajadores replicados

Más detalles

Tema 7. Entrada / Salida

Tema 7. Entrada / Salida Tema 7 Entrada / Salida Problemática Entrada/Salida Elementos claves en un computador: Procesador, memoria y módulos de E/S Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

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

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas

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

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

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

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

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN INGENIERÍA DE SOFTWARE UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 8 Material visual: Diapositivas Unidad de competencia

Más detalles

Laboratorio I Java Threads (Silberschatz Galvin)

Laboratorio I Java Threads (Silberschatz Galvin) Laboratorio I Java Threads (Silberschatz Galvin) Un proceso es un programa ejecutandose dentro de su propio espacio de direcciones. Java es un sistema multiproceso, esto significa que soporta varios procesos

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

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

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una

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

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

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

Más detalles

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos

Más detalles

Biblioteca de sistema

Biblioteca de sistema * Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder

Más detalles

Programación en Entornos Paralelos: MPI

Programación en Entornos Paralelos: MPI 1-11 Marzo de 2017 FACET -UNT Programación en Entornos Paralelos: MPI Graciela Molina mgracielamolina@gmailcom TRADICIONALMENTE Procesamiento secuencial 2 TRADICIONALMENTE Procesamiento secuencial Si ya

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos

Más detalles

Tarea 2. Descripción y Control de Procesos

Tarea 2. Descripción y Control de Procesos 1 Tarea 2. 1. En qué consiste una traza de instrucciones? Consiste en listar las secuencias de instrucciones que ejecuta cada proceso. El procesador puede caracterizarse mostrando la forma en que intercalan

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

Ejercicios sobre tuberías

Ejercicios sobre tuberías Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son

Más detalles

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Justificación: Se pretende con éste contribuir a que el alumno se inicie y conozca el entorno del IDE en la creación de pequeños programas en java Objetivos:

Más detalles

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Lógica: Algoritmo: Archivo: Base de datos: Bit: Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: Gestión de Procesos 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

Más detalles

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

PARADIGMA y LENGUAJES DE PROGRAMACIÓN CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el

Más detalles

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell.   Blog: Tema II Descripción y control de procesos UNED Manuel Fernández Barcell http://www.mfbarcell.es Blog: http://prof.mfbarcell.es 2.2.1 CONCEPTO DE PROCESO Un programa es un archivo ejecutable que está en

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial V1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C V1.1 Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales

Más detalles

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

Laboratorio de Arquitectura de Redes. Datos en lenguaje C Laboratorio de Arquitectura de Redes Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales Tamaño y rango de los datos

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

Para C un chero no es más que una porción de almacenamiento

Para C un chero no es más que una porción de almacenamiento Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese

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

Procesos. Procesos. Sistemas Operativos Procesos KMC 2017

Procesos. Procesos. Sistemas Operativos Procesos KMC 2017 Procesos Procesos Concepto de Proceso Planificación de Proceso Operaciones sobre Procesos Comunicaciones Interprocesos (IPC) Ejemplos de Sistemas de IPC Comunicación en un Sistema Cliente-Servidor 1 Concepto

Más detalles

Tema 6: Clases. Índice

Tema 6: Clases. Índice Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado

Más detalles

Tema 2.- Objetos y mensajes

Tema 2.- Objetos y mensajes Tema 2.- Objetos y mensajes 1. Objetos y mensajes: mecanismo de envío de mensajes...2 2. SMALLTALK: EXPRESIONES...3 2.1. LITERALES: designan objetos constantes...3 2.2. NOMBRES DE VARIABLES: identifican

Más detalles

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++ Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades

Más detalles

Programación Gráfica de Altas Prestaciones

Programación Gráfica de Altas Prestaciones rogramación Gráfica de Altas restaciones lataformas de altas prestaciones para Infomática Gráfica. Máster de Desarrollo de Software Depto. de Lenguajes y Sistemas Informáticos lsi.ugr.es/~jmantas/ga 1.

Más detalles

Facultad de Informática Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Guión de los laboratorios de E/S 1

Facultad de Informática Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Guión de los laboratorios de E/S 1 Arquitectura de Computadores I Guión de los laboratorios de E/S 1 Con el objetivo de afianzar los conceptos sobre entrada/salida estudiados en este tema, se proponen una serie de prácticas de laboratorio

Más detalles

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida. Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida. Objetivos de la práctica: - Mostrar la sintaxis de los diferentes tipos de datos presentes en C/C++.

Más detalles

Estructura Windows NT

Estructura Windows NT Introducción - Uno de los objetivos principales del diseño de Windows NT fue tener un núcleo tan pequeño como fuera posible. - En este núcleo estarían integrados módulos que dieran respuesta a aquellas

Más detalles

Concurrencia y paralelismo

Concurrencia y paralelismo Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.

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

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

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

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast SISTEMAS OPERATIVOS INTRODUCCIÓN Pedro de Miguel Anasagast INTRODUCCIÓN AL SISTEMA OPERATIVO MÁQUINA DESNUDA Máquina desnuda: Término que se aplica a un computador carente de sistema operativo. El término

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

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

RMI. Aplicaciones Distribuidas

RMI. Aplicaciones Distribuidas RMI Aplicaciones Distribuidas Contenido Objetos Distribuidos y RMI. Interface Remota. Clase Implementación. Referencias Remotas. Registro RMI. Paso de parámetros. Descarga dinámica de código. Desarrollo

Más detalles

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI. PREPARACIÓN

Más detalles

PUNTEROS (Apuntadores)

PUNTEROS (Apuntadores) PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos

Más detalles

Esquemas de comunicación

Esquemas de comunicación Esquemas de comunicación tipos de comunicación Maestro-esclavo o comunicación global Esquema SPMD o comunicación local Maestro-esclavo o comunicación global Consiste en la implementación de un componente

Más detalles

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. 1.6. EXPRESIONES CONCEPTO: Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. Los operandos pueden ser constantes, variables, otras expresiones e incluso funciones.

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

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

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +. APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje

Más detalles