HILOS (Threads) Implementación en Java

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

Download "HILOS (Threads) Implementación en Java"

Transcripción

1 HILOS (Threads) Implementación en Java

2 Multitarea Sería bueno si pudiéramos concentrar nuestra atención en realizar una sola acción a la vez, y realizarla bien, pero por lo general, eso es difícil. El cuerpo humano realiza una gran variedad de operaciones en paralelo, es decir, operaciones concurrentes. Por ejemplo, la respiración, la circulación de la sangre, la digestión, la acción de pensar y caminar pueden ocurrir de manera concurrente.

3 Las computadoras también pueden realizar operaciones concurrentes. Para las computadoras es tarea común compilar un programa, enviar un archivo a una impresora y recibir mensajes de correo electrónico a través de una red, de manera concurrente. Sólo las computadoras que tienen múltiples procesadores pueden realmente ejecutar varias instrucciones en forma concurrente. Los sistemas operativos en las computadoras con un solo procesador crean la ilusión de la ejecución concurrente, al alternar rápidamente entre una tarea y otra, pero en dichas computadoras sólo se puede ejecutar una instrucción a la vez.

4 La mayoría de los lenguajes de programación no permiten a los programadores especificar actividades concurrentes. Por lo general, los lenguajes proporcionan instrucciones de control secuenciales, las cuales permiten a los programadores especificar que sólo debe realizarse una acción a la vez, en donde la ejecución procede a la siguiente acción una vez que la anterior haya terminado.

5 Java pone las primitivas de concurrencia a disposición del programador de aplicaciones, a través del lenguaje y del API. El programador especifica que una aplicación contiene subprocesos de ejecución separados, en donde cada subproceso o tarea tiene su propia pila de llamadas a métodos y su propio contador, lo cual le permite ejecutarse concurrentemente con otras tareas, al mismo tiempo que comparte los recursos a nivel de aplicación (como la memoria) con estos otros subprocesos.

6 A diferencia de los lenguajes que no tienen capacidades integradas de multitarea (como C y C++) y que, por lo tanto, deben realizar llamadas no portables a las primitivas de multitarea del sistema operativo, Java incluye las primitivas de multitarea como parte del mismo lenguaje y como parte de sus bibliotecas. Esto facilita la manipulación de las tareas de una manera portable entre plataformas.

7 Aplicaciones Existen muchas aplicaciones de la programación concurrente, paralela o multitarea. Por ejemplo, cuando se descarga un archivo extenso (como una imagen, un clip de audio o video) a través de Internet, tal vez el usuario no quiera esperar hasta que se descargue todo un video completo para empezar a reproducirlo. Para resolver este problema podemos poner varios subprocesos a trabajar; uno para descargar el video y otro para reproducirlo. Estas actividades se llevan a cabo en paralelo. Para evitar que la reproducción del video tenga interrupciones, sincronizamos (coordinamos las acciones de) los subprocesos de manera que la tarea de reproducción no empiece sino hasta que haya una cantidad suficiente del video en memoria, como para mantener ocupado al subproceso de reproducción.

8 Multitarea en Java La Máquina Virtual de Java (JVM) utiliza subprocesos también. Además de crear tareas para ejecutar un programa, la JVM también puede crear subprocesos para llevar a cabo tareas de mantenimiento, como la recolección de basura. Escribir programas con subprocesamiento múltiple puede ser un proceso complicado. Aunque la mente humana puede realizar funciones de manera concurrente, a las personas se les dificulta saltar de un tren paralelo de pensamiento al otro.

9 Para ver por qué los programas con multitarea pueden ser difíciles de escribir y comprender, pensemos en el siguiente experimento: Abrir tres libros en la página 1 y tratar de leerlos concurrentemente. Leer unas cuantas palabras del primer libro; después unas cuantas del segundo y por último otras cuantas del tercero. Luego, regresar a leer las siguientes palabras del primer libro, etcétera. Después de este experimento se puede apreciar muchos de los retos que implica la multitarea: alternar entre los libros, leer brevemente, recordar en dónde se quedó en cada libro, acercar el libro que está leyendo para poder verlo, hacer a un lado los libros que no está leyendo y, entre todo este caos, tratar de comprender el contenido de cada uno!

10 Hilos o Threads Una aplicación multitarea es capaz de ejecutar más de un proceso simultáneamente. Un thread o hilo es un flujo secuencial simple (un fragmento de código coherente) dentro de un proceso. Un único proceso puede tener varios hilos ejecutándose. Los threads o hilos de ejecución permiten organizar los recursos de forma que pueda haber varios procesos actuando en paralelo. Idealmente, una vez que tiene una cierta cantidad mínima de información inicial, un thread puede ejecutarse de principio a fin sin ninguna información adicional del mundo exterior. Idealmente, threads diferentes son independientes.

11 Ejemplo: Si queremos ver un listado de 100 imágenes que se descargan desde Internet, como usuario Cuál de las dos opciones siguientes elegirías? A) Descargar las imágenes 100 imágenes, haciendo esperar al usuario con una pantalla de cargando hasta que se descargan todas. Luego podrá ver el listado con las imágenes. B) Que mientras se descargan las 100 imágenes, el usuario pueda ir viendo y usando las que ya se han descargado.

12 Ejemplo SIN multitarea Primero busca todos los paquetes de datos con las imágenes de una fábrica que se llama Internet. Lleva todos estos paquetes en camión y los descarga a una tienda llamada dispositivo del usuario.

13 Luego le toca colocar todo y cada uno de los paquetes que ha trasportado al escaparate de la tienda, que para aclarar también podemos llamar como pantalla del dispositivo. Todo esto se hace con la finalidad de que el cliente o usuario los consuma. Eso sí, solo en este momento se le permite al usuario poder consumirlos (ya que es el momento que tiene algo que consumir, antes no había nada) con lo que el resto del tiempo estuvo esperando.

14 Ejemplo CON multitarea Para empezar, el trabajador/hilo en segundo plano toma algún paquete de datos de la fábrica que llamamos Internet, lo lleva en camión y lo descarga en la tienda. Donde el trabajador/hilo principal está esperando a que le llegue algún paquete para poder realizar su labor. El trabajador/hilo principal ya tiene algo que hacer. Toma el paquete que le ha llegado y lo coloca en el escaparate de la tienda (que hemos llamado casualmente como pantalla del dispositivo ). Mientras tanto, el trabajador/hilo en segundo plano no ha terminado su trabajo, con lo que continúa llevando paquetes a la tienda desde la fábrica. Cabe notar, que ha sido dicho y hecho, el cliente/usuario ya tiene al menos un paquete que consumir en la tienda.

15 El proceso continúa. El trabajador/hilo en segundo plano lleva a la tienda los paquetes, para que el trabajador/hilo en primer plano los coloque en el escaparate. Por lo que, el cliente/usuario puede ir consumiendo cuanto desee de lo que exista ya en el escaparate. Esto durará hasta que se cumpla alguna condición de finalización o interrupción de algún trabajador/hilo, las cuales pueden ser muchas (por ejemplo: apagar el dispositivo, que se hayan acabado los paquetes que descargar, etc).

16 Para el primer ejemplo (SIN multitarea), en el que solo existe un hilo principal que lo hace todo tenemos que todo se hace en un tiempo X que se estima largo. Podemos representar por la siguiente barra de tiempo desde el principio de la ejecución del hilo hasta el fin. En comparación con el segundo ejemplo, en el que ya tenemos dos hilos, uno principal y otro secundario, que trabajan de manera simultánea. Es deducible que el tiempo que tarda en hacerse todo el proceso es bastante menor, ya que se sobrexponen los tiempos de ambos hilos. En la siguiente representación vemos como el hilo principal se ejecuta de manera paralela al hilo en segundo plano y que es menos a la anterior barra de tiempo.

17 Pero todos los hilos que pueden ejecutarse en paralelo se ejecutan todos a la vez? No siempre. Depende de un factor delimitador más a tener en cuenta, que aunque no lo controla el desarrollador de aplicaciones existe siempre: el procesador. Sabiendo que el procesador es el encargado de ejecutar los programas. Y que un procesador puede tener entre un núcleo y muchos. Sirviendo los núcleos para procesar de manera simultánea varios hilos. Esto es, cada núcleo ejecuta un hilo a la vez. Por lo que si tenemos un procesador con dos núcleos, podremos ejecutar dos hilos a la vez. Si tenemos uno de cuatro núcleos podrá ejecutar un máximo de cuatro hilos de manera simultánea. Y así con todos los núcleos de los que dispongamos.

18 Siguiendo con el ejemplo, con los trabajadores que son hilos, el núcleo sería el cerebro de cada trabajador/hilo. Un trabajador/hilo siempre tendrá una misión que hacer determinada, pero sin un cerebro/núcleo no puede hacer nada. (Equiparamos al núcleo de un procesador con el cerebro). Así, en el primer ejemplo de la fábrica y la tienda con un solo trabajador/hilo, con un cerebro/núcleo le es más que suficiente para ejecutar todo de manera correcta. Le sobraría con un procesador con un núcleo, pues más núcleos no los aprovecharía. Por lo que un cerebro/núcleo procesará el trabajo tan rápido como pueda en el tiempo (Esta rapidez se mide con la velocidad de reloj de un núcleo de un procesador, es decir, los Hz.).

19 El segundo ejemplo es más complejo. Estamos suponiendo que tenemos dos núcleos. Si nos fijamos en los cerebros/núcleos, podemos llegar a la conclusión que existen dos núcleos, uno por cada hilo que se ejecuta. Así, con dos cerebros/núcleos se puede trabajar en paralelo.

20 Pero también se puede dar lo siguiente con el segundo ejemplo: Qué ocurriría si tenemos un procesador con un único núcleo? Qué hilo se ejecutaría? Uno primero y otro después? Dará error la aplicación? Qué hará?

21 Es evidente que no hay suficientes cerebros/núcleos para tantos trabajadores/hilos. En algún momento uno de ellos no tendrá cerebro/núcleo y se tendrá que quedar detenido completamente mientras el otro con cerebro/núcleo realiza sus labores. Lo razonable y justo es que compartan el cerebro/núcleo un rato cada uno para poder trabajar los dos. Y así es como se hace. El procesador se encarga de decidir cuánto tiempo va a usar cada hilo el único núcleo que existe. Dicho de otro modo, el procesador partirá los hilos en cachos muy pequeños y los juntará salteados en una línea de tiempo. Al procesarse los dos hilos de manera salteada, y gracias a la gran velocidad con la que procesan datos los procesadores, dará la sensación de paralelismo, pero no es paralelismo. No es paralelo pero sí es concurrente.

22 Estados de un hilo En cualquier momento dado, se dice que un hilo se encuentra en uno de varios estados.

23 Un nuevo hilo empieza su ciclo cuando hace la transición al estado nuevo; permanece en este estado hasta que el programa inicia el hilo, con lo cual se coloca en el estado ejecutable. Se considera que un hilo en el estado ejecutable está ejecutando su tarea. Algunas veces, un hilo ejecutable cambia al estado en espera mientras espera a que otro hilo realice una tarea. Un hilo en espera regresa al estado ejecutable sólo cuando otro hilo notifica al hilo esperando que puede continuar ejecutándose.

24 Un hilo ejecutable puede entrar al estado en espera sincronizado durante un intervalo específico de tiempo. Regresa al estado ejecutable cuando ese intervalo de tiempo expira, o cuando ocurre el evento que está esperando. Los hilo en espera sincronizado y en espera no pueden usar un procesador, aun cuando haya uno disponible.

25 Un hilo ejecutable puede cambiar al estado en espera sincronizado si proporciona un intervalo de espera opcional cuando está esperando a que otro hilo realice una tarea. Dicho hilo regresa al estado ejecutable cuando se lo notifica otro hilo, o cuando expira el intervalo de tiempo; lo que ocurra primero. Otra manera de colocar a un hilo en el estado en espera sincronizado es dejar inactivo un hilo ejecutable.

26 Un hilo inactivo permanece en el estado en espera sincronizado durante un periodo designado de tiempo (conocido como intervalo de inactividad), después del cual regresa al estado ejecutable. Los hilos están inactivos cuando, en cierto momento, no tienen una tarea que realizar. Un hilo ejecutable cambia al estado bloqueado cuando trata de realizar una tarea que no puede completarse inmediatamente, y debe esperar temporalmente hasta que se complete esa tarea. Por ejemplo, cuando un hilo emite una petición de entrada/salida, el sistema operativo bloquea el hilo para que no se ejecute sino hasta que se complete la petición de E/S; en ese punto, el hilo bloqueado cambia al estado ejecutable, para poder continuar su ejecución. Un hilo bloqueado no puede usar un procesador, aun si hay uno disponible.

27 Un hilo ejecutable entra al estado terminado (algunas veces conocido como el estado muerto) cuando completa exitosamente su tarea, o termina de alguna otra forma (tal vez debido a un error). A nivel del sistema operativo, el estado ejecutable de Java generalmente abarca dos estados separados.

28 El sistema operativo oculta estos estados de la Máquina Virtual de Java (JVM), la cual sólo ve el estado ejecutable. Cuando un hilo cambia por primera vez al estado ejecutable desde el estado nuevo, el hilo se encuentra en el estado listo. Un hilo listo entra al estado en ejecución (es decir, empieza su ejecución) cuando el sistema operativo lo asigna a un procesador; a esto también se le conoce como despachar el hilo. En la mayoría de los sistemas operativos, a cada hilo se le otorga una pequeña cantidad de tiempo del procesador (lo cual se conoce como quantum o intervalo de tiempo) en la que debe realizar su tarea.

29 Cuando expira su quantum, el hilo regresa al estado listo y el sistema operativo asigna otro hilo al procesador. Las transiciones entre los estados listo y en ejecución las maneja únicamente el sistema operativo. La JVM no ve las transiciones; simplemente ve el hilo como ejecutable y deja al sistema operativo la decisión de cambiar el hilo entre listo y ejecutable. El proceso que utiliza un sistema operativo para determinar qué hilo debe despachar se conoce como programación de hilos o subprocesos, y depende de las prioridades de los hilos.

30 Prioridades Todo hilo en Java tiene una prioridad, la cual ayuda al sistema operativo a determinar el orden en el que se programan los hilos. Las prioridades de Java varían entre MIN_PRIORITY (una constante de 1) y MAX_PRIORITY (una constante de 10). De manera predeterminada, cada hilo recibe la prioridad NORM_PRIORITY (una constante de 5). Cada nuevo subproceso hereda la prioridad del subproceso que lo creó.

31 De manera informal, los hilos de mayor prioridad son más importantes para un programa, y se les debe asignar tiempo del procesador antes que a los hilos de menor prioridad. Sin embargo, las prioridades de los hilos no garantizan el orden en el que se ejecutan los hilos. El programador de subprocesos de un sistema operativo determina cuál hilo se debe ejecutar a continuación. Una implementación simple del programador de subprocesos mantiene el hilo de mayor prioridad en ejecución en todo momento y, si hay más de un hilo de mayor prioridad, asegura que todos esos hilos se ejecuten durante un quantum cada uno, en forma cíclica (round-robin).

32 Java cuenta con herramientas de concurrencia de alto nivel para ocultar parte de esta complejidad, y hacer que los programas sean menos propensos a errores. Las prioridades de los hilos se utilizan en segundo plano para interactuar con el sistema operativo, pero la mayoría de los programadores que utilizan multi-hilos en Java no tienen que preocuparse por configurar y ajustar las prioridades de los hilos.

33 Creación de Hilos En Java hay dos formas de crear nuevos threads: La primera de ellas consiste en crear una nueva clase que herede de la clase java.lang.thread y sobrecargar el método run( ) de dicha clase. El segundo método consiste en declarar una clase que implemente la interface java.lang.runnable, la cual declarará el método run( ); posteriormente se crea un objeto de tipo Thread pasándole como argumento al constructor el objeto creado de la nueva clase (la que implementa la interface Runnable). Thread y Runnable pertenecen al package java.lang

34 Ejemplo usando Thread Hilos

35 Ejemplo usando Runnable

36 Ejemplo Hilos

37

38

39 Sincronización Cuando varios hilos comparten un objeto, y éste puede ser modificado por uno o más de los hilos, pueden ocurrir resultados indeterminados, a menos que el acceso al objeto compartido se administre de manera apropiada. Si un hilo se encuentra en el proceso de actualizar a un objeto compartido, y otro hilo trata de actualizarlo también, no queda claro cuál actualización del hilo se lleva a cabo. Cuando esto ocurre, el comportamiento del programa no puede determinarse; algunas veces el programa producirá los resultados correctos; sin embargo, en otras ocasiones producirá los resultados incorrectos. En cualquier caso, no habrá indicación de que el objeto compartido se manipuló en forma incorrecta.

40 El problema puede resolverse si se da a un hilo a la vez el acceso exclusivo al código que manipula al objeto compartido. Durante ese tiempo, otros hilos que deseen manipular el objeto deben mantenerse en espera. Cuando el hilo con acceso exclusivo al objeto termina de manipularlo, a uno de los hilos que estaba en espera se le debe permitir que continúe ejecutándose. Este proceso, conocido como sincronización, coordina el acceso a los datos compartidos por varios hilos concurrentes.

41 Al sincronizar los hilos de esta forma, podemos asegurar que cada hilo que accede a un objeto compartido excluye a los demás hilos de hacerlo en forma simultánea; a esto se le conoce como exclusión mutua. Una manera de realizar la sincronización es mediante los monitores integrados en Java. Cada objeto tiene un monitor y un bloqueo de monitor (o bloqueo intrínseco). El monitor asegura que el bloqueo de monitor de su objeto se mantenga por un máximo de sólo un hilo a la vez.

42 Así, los monitores y los bloqueos de monitor se pueden utilizar para imponer la exclusión mutua. Si una operación requiere que el hilo en ejecución mantenga un bloqueo mientras se realiza la operación, un hilo debe adquirir el bloqueo para poder continuar con la operación. Otros hilos que traten de realizar una operación que requiera el mismo bloqueo permanecerán bloqueados hasta que el primer hilo libere el bloqueo, punto en el cual los hilos bloqueados pueden tratar de adquirir el bloqueo y continuar con la operación.

43 Para especificar que un hilo debe mantener un bloqueo de monitor para ejecutar un bloque de código, el código debe colocarse en una instrucción synchronized. Se dice que dicho código está protegido por el bloqueo de monitor; un hilo debe adquirir el bloqueo para ejecutar las instrucciones synchronized. El monitor sólo permite que un hilo a la vez ejecute instrucciones dentro de bloques synchronized que se bloqueen en el mismo objeto, ya que sólo un hilo a la vez puede mantener el bloqueo de monitor.

44 Cuando una instrucción synchronized termina de ejecutarse, el bloqueo de monitor del objeto se libera y el sistema operativo puede permitir que uno de los hilos bloqueados, que intentan entrar a una instrucción synchronized, adquieran el bloqueo para continuar. Java permite los métodos synchronized. Dicho método es equivalente una instrucción synchronized que encierra el cuerpo completo de un método, y que utiliza a this como el objeto cuyo bloqueo de monitor se va a adquirir. Para especificar un método como synchronized se coloca la palabra reservada synchronized antes del tipo de valor de retorno del método en su declaración.

45

46

47

48 LABORATORIO

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

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

Tema 6. Threads: programas multitarea

Tema 6. Threads: programas multitarea Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos

Más detalles

Guía práctica de estudio 12: Hilos

Guía práctica de estudio 12: Hilos : Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 12: Objetivo: Implementar el concepto de multitarea utilizando

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

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

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

Cena de filosofos y sincronizacion java

Cena de filosofos y sincronizacion java Programación concurrente y Distribuída Curso 2011-12 Miguel Telleria, Laura Barros, J.M. Drake telleriam AT unican.es Computadores y Tiempo Real http://www.ctr.unican.es Objetivos Presentaros la aplicación

Más detalles

Informática Electrónica Concurrencia

Informática Electrónica Concurrencia Informática Electrónica Concurrencia DSI- EIE FCEIA 2015 Que es concurrencia? Ejecución simultánea de dos o mas aplicaciones en una única plataforma de cómputo DSI EIE - FCEIA Informática Electrónica 2

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

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

Uso de recursos compartidos

Uso de recursos compartidos Uso de recursos compartidos Cada proceso o hebra se ejecuta de forma independiente. Sin embargo, cuando varias hebras (o procesos) han de acceder a un mismo recurso, se ha de coordinar el acceso a ese

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

1. Fundamentos. Existen dos tipos distintos de multitarea: BASADA EN PROCESOS

1. Fundamentos. Existen dos tipos distintos de multitarea: BASADA EN PROCESOS Hilos 1. Fundamentos. Los procesadores y los Sistemas Operativos modernos permiten la multitarea, es decir, la realización simultánea de dos o más actividades. En la realidad, un ordenador con una sola

Más detalles

Concurrencia. Primitivas IPC con bloqueo

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

Más detalles

Manipulación de procesos

Manipulación de procesos Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama

Más detalles

cilred.com GESTIÓN DE TRANSACCIONES

cilred.com GESTIÓN DE TRANSACCIONES cilred.com GESTIÓN DE TRANSACCIONES ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.com GESTIÓN DE TRANSACCIONES En las base de datos existen una serie de operaciones fundamentales tales como la

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

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Introducción y Conceptos Básicos Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

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

Concurrencia. Concurrencia

Concurrencia. Concurrencia Concurrencia Procesos y hebras Concurrencia Programación concurrente Por qué usar hebras y procesos? Ejecución de procesos Ejecución de hebras Hebras vs. Procesos Creación y ejecución de hebras La prioridad

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

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

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

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

Unidad 3 Sistemas con memoria común

Unidad 3 Sistemas con memoria común Unidad 3 Sistemas con memoria común Definiciones Por concurrencia se entiende la existencia de varias actividades simultáneas o paralelas. La concurrencia de procesos puede verse como la ejecución simultánea

Más detalles

Tema 12: El sistema operativo y los procesos

Tema 12: El sistema operativo y los procesos Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx

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

Preguntas de autoevaluación tema 3

Preguntas de autoevaluación tema 3 2.20. Describir las principales configuraciones en función del número y tipo de hilos soportados por un sistema operativo. Múltiples hilos de usuario sin soporte de hilos del núcleo. Un hilo del núcleo

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

Threads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución.

Threads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución. Threads o Hilos Los hilos son otra forma de crear la posibilidad de concurrencia de actividades; sin embargo, la gran diferencia es que los hilos comparten el código y el acceso a los datos. En cierta

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

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

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

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

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

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

Programación concurrente

Programación concurrente 23 de Marzo de 2017 Condiciones generales Docente: Hernán Melgrati (hmelgra@...) Horario: Teóricas: Jueves de 14 a 17 Prácticas: Martes de 14 a 17 Evaluaciones: Un parcial (mediados de mayo) Un trabajo

Más detalles

Acceso coordinado a recursos compartidos

Acceso coordinado a recursos compartidos Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos

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

STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C)

STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C) APRENDERAPROGRAMAR.COM STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

Programación concurrente

Programación concurrente Programación concurrente Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Programación concurrente

Más detalles

PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTOS ALMACENADOS Modelado de Base de Datos PROCEDIMIENTOS ALMACENADOS Universidad Politecnica de los Llanos Procedimiento Almacenado Un Procedimiento almacenado es un Objeto de Base de Datos que puede encapsular logica

Más detalles

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un

Más detalles

T E M A 7. Interrupciones

T E M A 7. Interrupciones T E M A 7 Interrupciones 7-1 Interrupciones INDICE 7.- Introducción al Tema 7-2 7.1 Interrupciones 7-2 7.1.1 Tipos de Interrupciones 7-2 a).- Interrupciones de Programa 7-2 b).- Interrupciones de Llamada

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Sistemas Operativos - Manejador de procesos - Fundamentos

Sistemas Operativos - Manejador de procesos - Fundamentos Sistemas Operativos - Manejador de procesos - Fundamentos Esta es una serie de artículos introductorios acerca de lo que es el manejador de procesos de un sistema operativo, la idea es tener un concepto

Más detalles

Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo

Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo Concurrencia Programación Concurrente Espera ocupada. Primitivas IPC con bloqueo Programación concurrente Los lenguajes concurrentes tienen elementos para: Crear procesos Sincronizar procesos Comunicar

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

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

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

Transacciones y Control de concurrencia

Transacciones y Control de concurrencia Transacciones y Control de concurrencia Se llama transacción a una colección de operaciones que forman una única unidad lógica de trabajo. Un sistema de base de datos debe asegurar que la ejecución de

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Parte II AGOSTO 2011 1 Qué es un Sistema Operativo? Un Sistema Operativo es un programa que actúa de intermediario entre el usuario y el hardware del computador.

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

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO CONCEPTOS INICIALES CASOS DE USO Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Se presenta el analisis funcional basico del sistema operativo desarrollado en RationalRose. I. PAQUETES

Más detalles

Introducción a los Sistemas Operativos S.O.

Introducción a los Sistemas Operativos S.O. Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es

Más detalles

Cambio de hebra. Gustavo Romero. 13 de febrero de Arquitectura y Tecnología de Computadores. Voluntario Involuntario

Cambio de hebra. Gustavo Romero. 13 de febrero de Arquitectura y Tecnología de Computadores. Voluntario Involuntario c Cambio de hebra Gustavo Romero Arquitectura y Tecnología de Computadores 13 de febrero de 2009 Gustavo Romero Cambio de hebra (1/67) Índice 1 Voluntario Versión simplificada Gestión de la pila Estudio

Más detalles

SISTEMAS OPERATIVOS Capítulo 2 Concepto. Funciones.

SISTEMAS OPERATIVOS Capítulo 2 Concepto. Funciones. Contenido 1. Introducción y Funciones Generales. 2. Funciones específicas del Sistema Operativo. 3. Kernel e Interface de usuario. 4. Interrupciones. 1. Introducción y funciones generales. SISTEMAS OPERATIVOS

Más detalles

Puebla, Pue a 4 de Junio del Programación Concurrente y Paralela

Puebla, Pue a 4 de Junio del Programación Concurrente y Paralela Puebla, Pue a 4 de Junio del 2015 Programación Concurrente y Paralela Algoritmo de Dekker y Peterson Problemas: 1.- Esquimales 2.- Identificar procesos. ALUMNOS: OSCAR EDUARDO GONZÁLEZ RAMOS MICHAEL CASTAÑEDA

Más detalles

ISO Tema 8,

ISO Tema 8, ISO Tema 8, 2017-2018 Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos 13 de abril de 2018 Modificado el 27 de abril de 2018 de la presentación 1 2 3 4 5 6 7 2 / 32 1 2 3 4 5 6 7 3 / 32

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

Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en

Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en SISTEMAS OPERATIVOS (Código: 71902048) Enero 2012 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. Daniel Rúa Madrid

Sistemas Operativos. Daniel Rúa Madrid Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre

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

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

7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román -

7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román - Algoritmos RESOLVIENDO PROBLEMAS Libro en línea Cuál es el objetivo del libro? rmroman@itesm.mx 1 Tareas que hace la computadora Las tareas que pueden hacer las computadoras son: a) Leer/escribir datos

Más detalles

José Luis López Delgado* Gestión comercial con Velneo V7.1. Capitulo I. Instalación de las aplicaciones El entorno de trabajo

José Luis López Delgado* Gestión comercial con Velneo V7.1. Capitulo I. Instalación de las aplicaciones El entorno de trabajo Capitulo I Instalación de las aplicaciones El entorno de trabajo 1.1. Instalación de las aplicaciones Si estas leyendo este libro, vamos a dar por sentados varios razonamientos: Te estas iniciando en el

Más detalles

Convivencia Gestión de Procesos

Convivencia Gestión de Procesos Convivencia Gestión de Procesos Dra. Carolina Mañoso Dpto. Informática y Automática.UNED Índice: Procesos Introducción a los procesos Estados de los procesos Listas de procesos El planificador de procesos

Más detalles

Servicios del Sistema Operativo (SO)

Servicios del Sistema Operativo (SO) Servicios del Sistema Operativo (SO) Un SO brinda un entorno para ejecutar programas. Este, ofrece servicios a los programas y a los usuarios de dichos programas. Por supuesto, los servicios específicos

Más detalles

Planificación de Monoprocesadores.

Planificación de Monoprocesadores. Planificación de Monoprocesadores.. escriba brevemente los tres tipos de planificación de procesador. Planificación a Largo Plazo. La planificación a largo plazo determina cuáles son los programas admitidos

Más detalles

Ejercicios de Hilos. Índice

Ejercicios de Hilos. Índice Índice 1 Creación de hilos (0.5 puntos)...2 2 Prioridades (0.5 puntos)... 2 3 Productor/Consumidor (1 punto)...2 4 Pool de hilos (1 punto)... 3 1. Creación de hilos (0.5 puntos) En la clase Ej1 se crean

Más detalles

Sincronización de procesos

Sincronización de procesos Sincronización de procesos Contenido Procesos concurrentes. El problema de la seccion critica Problemas clásicos de comunicación y sincronización. Mecanismos de comunicación y sincronización. DSO 2014

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

Programación Orientada a Objetos en C++

Programación Orientada a Objetos en C++ Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase

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

Porque desarrolló el concepto de lista de tareas (pool de Job) que podía ser gestionada de acuerdo a políticas distintas a la FIFO.

Porque desarrolló el concepto de lista de tareas (pool de Job) que podía ser gestionada de acuerdo a políticas distintas a la FIFO. Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen Parcial, 3 de mayo de 2003 SOLUCIONES Calificación 1 2 3 4 5 Nombre Titulación

Más detalles

TEMARIO DEL CELADOR SERVASA SANIDAD DE LA COMUNIDAD VALENCIANA INFORMÁTICA HERRAMIENTAS DE ESTUDIO PARA CELADORES.

TEMARIO DEL CELADOR SERVASA SANIDAD DE LA COMUNIDAD VALENCIANA INFORMÁTICA HERRAMIENTAS DE ESTUDIO PARA CELADORES. www.todoslostestdelcelador.com info@todoslostestdelcelador.com @todoslostestdelcelador (Facebook) @testcelador (Twitter) HERRAMIENTAS DE ESTUDIO PARA CELADORES RIOS, TEST Y ESQUEMAS TODO EN PDF RIO DEL

Más detalles

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en

Más detalles

SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria

SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria Calificación 1 2 3 SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria Nombre Titulación Dispone de dos horas para realizar el examen 1 (6 puntos) Test. En cada uno de los

Más detalles

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas

Más detalles

MULTIPROGRAMACIÓN. Introducción a al Multitarea

MULTIPROGRAMACIÓN. Introducción a al Multitarea MULTIPROGRAMACIÓN Introducción a al Multitarea Introducción a la Multitarea Conceptos básicos Se refiere a la capacidad de un sistema operativo de ejecutar múltiples procesos, también llamados tareas,

Más detalles

No obstante, incluso en los sistemas monolíticos es posible tener al menos un poco de estructura. Los servicios (llamadas al sistema) proporcionados

No obstante, incluso en los sistemas monolíticos es posible tener al menos un poco de estructura. Los servicios (llamadas al sistema) proporcionados Sistemas operativos Es un software de sistemas, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando se enciende

Más detalles

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables

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

Práctica 4 Concurrencia en Java

Práctica 4 Concurrencia en Java Práctica 4 Concurrencia en Java Escuela de Ingeniería y Arquitectura Depto. de Informática e Ingeniería de Sistemas 1. Objetivos 1. Crear y manipular hilos de ejecución en Java 2. Utilizar monitores en

Más detalles

Tema 1: Programación Multiproceso. Curso

Tema 1: Programación Multiproceso. Curso Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de

Más detalles

Sincronización de Threads

Sincronización de Threads Sincronización de Threads Herramientas y Lenguajes de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática Dpto.

Más detalles

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software

Más detalles

Tema 12: Programación multihilo

Tema 12: Programación multihilo Tema 12: Programación multihilo Antonio J. Sierra Índice 1. Modelo de hilo en Java. 2. El hilo principal. 3. Creación de un hilo. 4. Creación de múltiples hilos. Prioridades. 5. Comunicación entre hilos.

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

Master en Java Certificación para Programadores

Master en Java Certificación para Programadores Javmasdeb Master en Java Certificación para Programadores Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java Formación: Master Horas: 112 Introducción Java es un lenguaje de programación con el que

Más detalles

Esp. Alexis Olvany Torres ch. Datos de salida. Datos de salida. Datos de salida

Esp. Alexis Olvany Torres ch. Datos de salida. Datos de salida. Datos de salida Tiempo de Ejecución fuente Descripción abstracta del comportamiento de un programa Máquina abstracta objeto Descripción del comportamiento de un programa independiente de máquina pero fácil de implementar

Más detalles

Sistemas Operativos. Sistemas Operativos II ITS EMT CETP 2014 Prof. L. Carámbula

Sistemas Operativos. Sistemas Operativos II ITS EMT CETP 2014 Prof. L. Carámbula Sistemas Operativos Sistemas Operativos Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. Su propósito es: proporcionar un entorno en el cual el usuario pueda

Más detalles

Ing. Félix Piozzi Sistemas Operativos UTN FRC

Ing. Félix Piozzi Sistemas Operativos UTN FRC Sistemas Operativos II Procesos: Es básicamente un programa en ejecución. Cada proceso tiene asociado un espacio de direcciones, una lista de posiciones de memoria desde algún mínimo hasta algún máximo,

Más detalles

*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010

*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 Calificación SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 1 2 3 4 Nombre *** SOLUCIONES *** Titulación Dispone de tres horas para realizar el examen 1 (5 puntos) Test. En cada uno de los siguientes

Más detalles

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción

Más detalles

Sistemas Complejos en Máquinas Paralelas

Sistemas Complejos en Máquinas Paralelas Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric

Más detalles