Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos
|
|
- Álvaro Juan José Parra Castellanos
- hace 5 años
- Vistas:
Transcripción
1 Concurrencia Programación Concurrente Procesos Comunicación entre Procesos
2 Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada instante la CPU ejecuta un único programa. Existen programas con un único hilo de control. Los sistemas de tiempo real son inherentemente concurrentes. 2
3 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Java, Ada, Posix Secuenciales Concurrentes único hilo de control varios hilos de control 3
4 Concurrencia Son la notación y las técnicas de programación que expresan el paralelismo potencial. Un programa concurrente es un conjunto de procesos autónomos que se ejecutan en paralelo. 4
5 Procesos concurrentes El trabajar con procesos concurrentes añade complejidad a la tarea de programar. Cuáles son entonces los beneficios que aporta la programación concurrente? 5
6 Beneficios de la programación concurrente Mejor aprovechamiento de la CPU. Velocidad de ejecución. Solución de problemas de naturaleza concurrente: Sistemas de control Tecnologías web Aplicaciones basadas en interfaces de usuarios Simulación SGDB 6
7 Proceso Es una instancia de ejecución de un programa. Incluye un contador de programa, registros, variables, etc. Tiene un ciclo de vida, es decir pasa por distintos estados. 7
8 8 El modelo de los procesos secuenciales
9 El modelo de los procesos secuenciales La CPU conmuta de un proceso a otro. La velocidad a la cual un proceso realiza su cómputo no es uniforme y probablemente ni siquiera es reproducible. Los procesos no deben programarse bajo suposiciones preconcebidas sobre su velocidad de ejecución. Cuando un proceso tiene requerimientos de tiempo real críticos es necesario tomar medidas especiales para asegurar que efectivamente los sucesos ocurran dentro de ciertos límites de tiempo. 9
10 El modelo de los procesos secuenciales Un proceso tiene un programa, entrada, salida y un estado. Un único procesador puede compartirse entre varios procesos utilizando un algoritmo de planificación que determine cuándo hay que detener el trabajo sobre un proceso y pasar a atender a otro diferente. 10
11 Ciclo de vida de un proceso nacido No existente 11 listo 4 3 bloqueado 2 ejecución terminado 1 1. El proceso se bloquea esperando un dato 2. El planificador selecciona otro proceso 3. El planificador selecciona este proceso 4. El dato está disponible
12 Creación de un proceso 1. La inicialización del sistema 2. La ejecución por parte de un proceso (en ejecución) de una llamada al sistema de creación de un nuevo proceso. 3. La petición por parte del usuario de la creación de un nuevo proceso. 4. El inicio de un trabajo en batch. 12
13 Finalización de un proceso Finaliza la ejecución de su cuerpo. 2. Ejecución de alguna sentencia de auto finalización. 3. Condición de error sin tratar. 4. Aborto por medio de la intervención de otro proceso. 5. Nunca: procesos que se ejecutan en bloques que no terminan. 6. Cuando ya no son necesarios.
14 Programa concurrente Es un conjunto de procesos secuenciales autónomos que se ejecutan en paralelo 14
15 Implementación de un conjunto de procesos 1. Multiplexar sus ejecuciones en un único procesador (multiprogramación). 2. Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento). 3. Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuido). 15
16 Ejecución de un programa concurrente Los procesos deben ser creados, distribuidos en los procesadores y finalizados. Estas actividades la realiza el núcleo de ejecución conocido como Run Time System Support (RTSS). Se encarga de la creación, terminación y multiplexado de los procesos 16
17 Run Time System Support Estructura software programada como parte de la aplicación (Modula-2). Sistema software generado junto al código objeto del programa por el compilador (Ada y Java). Estructura hardware microcodificada en el procesador. Es más eficiente (Occam2). 17
18 Quién provee los mecanismos de concurrencia? Sistema operativo (SO de Tiempo real) Lenguaje (lenguaje que proporciona mecanismos para concurrencia) 18
19 Ejecución de los procesos Todos los SO tiene formas de crear procesos. Cada proceso se ejecuta en su propia máquina virtual. Los SO modernos permiten crear hilos (procesos ligeros) dentro de la misma máquina virtual. 19
20 Ventajas si el lenguaje proporciona los mecanismos de concurrencia Programas más legibles. Programas más portables. Si el sistema es embebido puede que no tenga un SO residente. 20
21 Ventajas si el SO proporciona la concurrencia El modelo de concurrencia es el mismo para todos los lenguajes. Puede no ser fácil implementar el modelo de concurrencia sobre algún modelo de SO. 21
22 Threads Hay situaciones en las que es deseable contar con múltiples hilos de control (threads) en el mismo espacio de direcciones ejecutándose quasi-paralelamente, como si fueran procesos separados (excepto que comparten el mismo espacio de direcciones). 22
23 Threads Tener múltiples threads ejecutándose en paralelo dentro de un proceso es análogo a tener múltiples procesos ejecutándose en paralelo dentro de un ordenador. Los threads comparten el espacio de direcciones (variables globales), archivos abiertos y otros recursos. Se los suele llamar procesos ligeros (lightweight process). También se utiliza el término de multihilo (multithreaded) para describir la situación en la cual se permite que haya múltiples threads en el mismo proceso. 23
24 24 Threads
25 Threads Un thread puede estar en cualquiera de los estados de un proceso tradicional: en ejecución, bloqueado, listo o terminado. Un thread en ejecución tiene actualmente la CPU y está activo. Un thread bloqueado está esperando a que algún suceso lo desbloquee. Un thread puede bloquearse esperando a que tenga lugar algún suceso externo o a que algún otro thread lo desbloquee. Un thread listo está planificado para ejecutarse y lo hace tan pronto como le llega su turno. 25 Las transiciones entre los estados de un thread son las mismas que las transiciones entre los estados de un proceso. código
26 Programación concurrente Los lenguajes concurrentes tiene elementos para: Crear procesos Sincronizar procesos Comunicar procesos 26
27 Comportamiento de procesos Independientes: no se sincronizan ni comunican (son muy raros). Cooperativos: se comunican y sincronizan sus actividades. Competitivos: compiten por recursos del sistema. 27
28 Sincronizar y Comunicar Sincronizar: Satisfacer las restricciones en el enlazado de las acciones de los distintos procesos. Comunicar: pasar información de un proceso a otro. 28
29 Modelo de concurrencia Estructura: nro de procesos fijo o variable. Nivel: paralelismo soportado. Granularidad: muchos o pocos procesos. Inicialización: paso de parámetros, o comunicación explícita después de su ejecución Finalización: término, error, aborto, nunca, suicidio, no son necesarios Representación: proceso responsable de la creación (padre/hijo) y proceso afectado por su finalización (guardián/dependiente). 29
30 Sincronizar y Comunicar Variables compartidas: objetos a los que puede acceder más de un proceso Paso de mensajes: intercambio explícito de datos entre dos procesos mediante el paso de un mensaje mediante alguna forma que brinda el SO o el propio lenguaje. 30
31 Comunicación entre procesos (IPC) Cómo un proceso puede pasarle información a otro. Cómo asegurar que dos o más procesos no se interfieran mientras realizan tareas críticas. Cómo secuenciar correctamente cuando existen dependencias. 31
32 Sincronización y comunicación basada en variables compartidas Son objetos a los que puede acceder más de un proceso. La comunicación se logra accediendo a dichas variables cuando sea necesario. 32 Trae problemas
33 Variables compartidas Considere dos procesos que actualizan una variable compartida, X, mediante la sentencia: X:= X+1 1. Carga el valor de X en algún registro. 2. Incrementa el valor en el registro en Almacena el valor del registro de nuevo en X. Como ninguna de las tres operaciones es indivisible, dos procesos que actualicen la variable simultáneamente generarían un entrelazamiento que podría producir un resultado incorrecto. 33
34 Variables compartidas Las situaciones donde los resultados dependen del orden en que se ejecutan los procesos se llaman Condiciones de Competencia. Las partes de un proceso que tienen acceso a las variables compartidas han de ejecutarse indivisiblemente unas respecto a las otras. Estas partes se denominan Secciones Críticas. La protección requerida se conoce como Exclusión Mutua. 34
35 Variables compartidas Sección crítica: secuencia de instrucciones que debe ejecutarse sin perder el control, y afecta variables compartidas. Si un proceso está ejecutando código de su sección crítica, ningún otro proceso puede estar ejecutando código de su sección crítica. 35
36 El problema de la sección crítica(sc) Intenta sistematizar el estudio de la sincronización. Sean n procesos que tienen datos compartidos. Cada proceso tiene un segmento de código llamado SC en el cual se accede a los datos compartidos. Se pretende que cuando un proceso está en su sección crítica, ningún otro esté en su SC. Sección de entrada Sección crítica Sección de salida Sección siguientes 36
37 Secciones o regiones críticas Para obtener una solución se deben cumplir: 1. Ningún par de procesos pueden estar simultáneamente dentro de sus regiones críticas. 2. No debe hacerse ninguna suposición sobre la velocidad o el número de CPUs. 3. Ningún proceso fuera de su región crítica puede bloquear a otros procesos. 4. Ningún proceso deberá tener que esperar infinitamente para entrar en su región crítica. 37
38 Sincronizaciones necesarias en la programación concurrente Exclusión mutua: es el mecanismo que asegura que sólo un proceso está haciendo algo en un instante determinado. Sincronización para proteger una sección crítica. Es necesario si dos procesos comparten variables. Sincronización condicionada: necesaria cuando un proceso necesita realizar alguna acción, sólo después que se haya cumplido una condición. 38
39 Exclusión Mutua con Espera Ocupada Posibles soluciones: Inhabilitación de interrupciones Variables de cerradura Alternancia estricta Solución de Peterson 39
40 Inhabilitación de Interrupciones Se inhabilitan las interrupciones antes de entrar a la sección crítica. Se rehabilitan al salir. La CPU no podrá interrumpir la ejecución por timeout. Ventaja: muy simple Desventajas: Los procesos de usuario no pueden deshabilitar las interrupciones 40 Si hay más de un procesador no funciona, pues la inhabilitación afecta a un solo CPU.
41 Variables de Cerradura Variable compartida inicialmente en 0. Antes de entrar a su sección crítica un proceso chequea la bandera: Si está 0, el proceso la setea en 1 y entra a su SC. Si está en 1, espera hasta que se ponga en 0. Desventajas: Espera ocupada. No funciona por condiciones de competencia. 41
42 Alternancia Estricta 42 Desventajas: Ineficiente si un proceso es más lento que el otro. Viola la condición 3. Espera ocupada.
43 43 Solucion de Peterson
44 Primitivas de IPC con bloqueo Son primitivas que bloquean al proceso que las invoca. Permite a la CPU continuar sin desperdiciar tiempo como en la espera ocupada. Sleep es una llamada al sistema que provoca que el proceso que la invoca se bloquee, esto es, se suspenda hasta que otro proceso lo despierte. Wakeup tiene un parámetro, que es el proceso a ser despertado. 44
45 El problema del Productor-Consumidor 45 Son aquellos problemas en los que existe un conjunto de procesos que producen información que otros procesos consumen, siendo diferentes las velocidades de producción y consumo de la información. Este desajuste en las velocidades, hace necesario que se establezca una sincronización entre los procesos de manera que la información no se pierda ni se duplique, consumiéndose en el orden en que es producida.
46 El problema del Productor-Consumidor código 46
47 Variables compartidas Semáforos. Monitores tipos protegidos. Métodos sincronizados. 47
48 Semáforos Los introdujo Dikstra en Permiten resolver la mayoría de los problemas de sincronización entre procesos y forman parte del diseño de muchos sistemas operativos y de lenguajes de programación concurrentes. 48
49 Semáforos Es una estructura de datos: con una variable tipo entera. una cola de procesos en espera. typedef semaforo { int contador; cola: lista de procesos; } 49
50 Semáforos 50 down(s) sleep(s) wait(s) Espera(S) Mientras S sea cero suspende el proceso y lo ingresa a la cola asociada. Decrementa el contador. up(s) wakeup(s) notify() Signal(S) Incrementa el contador. Si el resultado es positivo despierta a un proceso que se encuentra en la cola (y le permite completar su down).
51 Semáforos public final class Semaforo { String nombre; int s; // constructor public synchronized void down() { while (s == 0) { try { wait(); } catch (InterruptedException e) {} } s--; } 51 } public synchronized void up() { s++; notify(); }
52 Sincronización de condición con semáforos var S : semaforo (inicialmente en 0) 52 process p1... wait(s); //espera hasta que S=1... end p1; process p2... signal(s);... end p2; El uso de wait y signal se da en dos procesos por separado. En uno se ejecuta wait y en el otro signal.
53 Solución al problema del Productor- Consumidor con semáforos tuberia.full.down(); tuberia.mutex.down(); c = tuberia.consumir(); tuberia.mutex.up(); tuberia.empty.up(); tuberia.empty.down(); tuberia.mutex.down(); tuberia.producir(c); tuberia.mutex.up(); tuberia.full.up(); código 53
54 Características de los semáforos Los semáforos tienen algunas características que pueden generar incovenientes: las variables compartidas son globales a todos los procesos. las acciones que acceden y modifican dichas variables están diseminadas por los procesos. para poder decir algo del estado de las variables compartidas, es necesario mirar todo el código. la adición de un nuevo proceso puede requerir verificar que el uso de las variables compartidas es el adecuado. 54 Programas poco escalables
55 Críticas a los semaforos Si el semáforo se ubicó en un lugar erróneo falla No se garantiza la exclusión mutua Posible solución : monitores 55
56 Monitores Es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos (datos o dispositivos) compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. 56
57 Características de un monitor Es un TAD: uso independiente de la implementación. el usuario no conoce la implementación. nada se sabe del orden en que se van a invocar acciones del monitor. por lo que necesita una correcta especificación. 57
58 Funcionamiento de un monitor Respecto a la sincronización: la exclusión mutua se asegura por definición: por lo tanto, sólo un proceso puede estar ejecutando acciones de un monitor en un momento dado. aunque varios procesos pueden en ese momento ejecutar acciones que nada tengan que ver con el monitor. 58
59 Funcionamiento de un monitor la sincronización condicionada: cada proceso puede requerir una sincronización distinta, por lo que hay que programar cada caso. para ello, se usarán las variables condición : se usan para hacer esperar a un proceso hasta que determinada condición sobre el estado del monitor se anuncie también para despertar a un proceso que estaba esperando por su causa 59
60 Monitores Existe necesidad de sincronización de condición. Se maneja con dos operadores que se llaman wait y signal. 60
61 Monitores Un wait siempre bloquea y se ubica en una cola asociada a esa variable de condición. Cuando un proceso bloqueado libera su bloqueo permitirá ingresar a otro proceso. Cuando un proceso ejecuta una operación signal, liberará un proceso bloqueado. Productor-Consumidor con monitores código 61
62 Críticas a monitores Solución elegante a problemas de exclusión mutua. No soluciona bien las sincronizaciones de variables de condición. Sólo lo implementan muy pocos lenguajes (Mesa, Pascal Concurrente y Modula-1) 62
63 Métodos sincronizados Es el concepto de monitor implementado en el paradigma de Orientación a Objetos Se utilizan en lenguajes como Java, que tiene la concurrencia totalmente integrada. 63
64 Métodos sincronizados Los métodos se califican con el modificador synchronized. Puede existir también synchronized a nivel de bloque. 64
65 Sincronizacion y comunicación basada en mensajes El envío de mensajes se usa tanto para sincronizar como para comunicar. Se necesita un proceso emisor y uno receptor. Información para intercambiar. Operaciones básicas son: Enviar (mensaje) (, dest) Recibir (mensaje) (, fuente) 65
66 Paso de mensajes Se debe establecer un enlace entre receptor y emisor: Modelo de sincronización. Cómo nombrar los procesos. Estructura del mensaje. Confiabilidad 66
67 Modelo de sincronización Sincronización implícita: un proceso no puede recibir un mensaje antes que el emisor lo haya emitido. El receptor puede leer una variable que no haya sido escrita por el emisor. Un proceso que ejecuta una recepción de mensaje incondicional cuando no existe ningún mensaje, permanecerá suspendido hasta que llegue el mensaje. 67
68 Modelo de sincronización de procesos Operación envía (send): Asíncrona: el emisor continua trabajando sin saber si el mensaje llegó o no (o se envió completamente o no). Síncrona: el emisor continua trabajando sólo cuando se recibió el mensaje (o cuando se envió completamente). Invocación remota: el emisor continúa sólo cuando se recibió una respuesta desde el receptor. 68
69 Primitivas con o sin bloqueo send síncrono o con bloqueo: mientras se envía el mensaje, el proceso emisor se bloquea (la instrucción siguiente se ejecuta una vez que el mensaje se haya enviado en su totalidad). send asíncrono o sin bloqueo: Cuándo vuelve a estar disponible el búffer? 69
70 Primitivas con o sin bloqueo send con bloqueo (CPU inactivo durante la transmisión de los mensajes). send sin bloqueo, con copia (se desperdicia el tiempo del CPU para la copia adicional). send sin bloqueo, con interrupción (dificulta la programación). 70
71 Nombrado de procesos Dirección: nombrado directo: envía <msj> <proceso> nombrado indirecto: envía <msj> <buzón> Simetría: simétrico: si el emisor y el receptor se nombran entre sí envía <msj> <proceso> espera <msj> <proceso> 71 asimétrico: acepta mensajes de cualquier proceso espera <msj>
72 Nombrado de procesos Una dirección se refiere a un proceso específico (primitiva sin almacenamiento en buffers). Una dirección se refiere a un buzón - mailbox - (primitiva con almacenamiento en buffers) Una llamada a receive elimina un mensaje del buzón o se bloquea. 72
73 Estructura del mensaje Idealmente: cualquier objeto. Cada lenguaje ha impuesto sus restricciones. 73
74 Primitivas confiables vs. no confiables Los mensajes se pueden perder. Si send es no confiable el sistema no garantiza la entrega (se deja en manos de los usuarios). Se puede exigir al sistema del receptor enviar un acuse de recibo (acknowledgement). Se puede utilizar la respuesta del servidor como acuse de recibo. 74
75 75 Primitivas confiables vs. no confiables
76 Acciones atómicas Hasta aquí la comunicación entre dos procesos se expresó como una comunicación simple. No siempre ocurre así: Ej: extracción por cajero automático Necesito que todos vean un estado consistente del sistema. Estado: valores de las variables en un momento dado de tiempo. 76
77 Acciones Atómicas Traspaso de fondos de una cuenta bancaria a otra: Proceso de pedido de transferencia Proceso de autenticación de cliente Proceso de autenticación de cuenta a la que se transfiere Proceso de debito Proceso de Acreditación 77 Acción atómica
78 Acciones Atómicas 78 Una acción es atómica si los procesos que la realizan no saben de la existencia de ningún otro proceso activo, y ningún otro proceso activo tiene constancia de las actividades de los procesos durante el tiempo en el que están realizando la acción. Una acción es atómica si los procesos que la realizan no se comunican con otros procesos mientras se está realizando la acción.
79 Acciones atómicas Una acción es atómica si los procesos que la realizan no pueden detectar ningún cambio de estado salvo aquellos realizados por ellos mismos, y si no revelan sus cambios de estado hasta que la acción se haya completado. Las acciones son atómicas si, en lo que respecta a otros procesos, pueden ser consideradas indivisibles e instantáneas, de forma que los efectos sobre el sistema sean como si estuvieran entrelazadas y no en concurrencia. 79
80 Acciones atómicas de dos fases Primer fase Petición de recursos Segunda fase Liberación de recursos Si se liberan recursos antes que la acción atómica finalice puede existir problemas con la recuperación de un fallo. 80
81 Control de recursos Tienen injerencia los procesos competitivos. Aunque no se comuniquen entre ellos, pueden comunicarse para coordinar el acceso a recursos. Muy pocos recursos admiten el acceso concurrente de procesos. 81
82 Control de recursos Cuando varios procesos que compiten necesiten recursos el modo de operación es el siguiente: Petición del recurso Utilización Liberación 82
83 Petición de recursos Un recurso se puede solicitar con: Acceso compartido: se puede utilizar concurrentemente por más de un proceso. Acceso exclusivo: acceso en cada instante a un único proceso. Algunos se pueden utilizar en cualquier modo 83
84 Petición de recursos Si un proceso pide acceso compartido mientras otro lo está usando en forma exclusiva, entonces debe esperar. Si se estaba usando en forma compartida puede seguir. 84
85 Petición de recursos Como los procesos pueden bloquearse al solicitar recursos, no deben pedirlos hasta que lo necesiten. Una vez asignados deben liberarse tan pronto como sea posible, una vez que la acción que se quería realizar con el recurso haya finalizado 85
86 Interbloqueo ( deadlock, abrazo mortal) Dos procesos forman un interbloqueo cuando cada uno mantiene un recurso mientras que espera el recurso mantenido por el otro. Interbloqueo activo Dos procesos forman un interbloqueo activo si cada uno se ejecuta, pero ninguno es capaz de avanzar. 86
87 Interbloqueo Condiciones necesarias Exclusión mutua. Espera circular. No desalojo. Mantenimiento y espera. 87
88 Inanición Varios procesos están intentando continuamente conseguir acceso exclusivo al mismo recurso. Si la política con que se asignan no es justa, puede que un proceso no acceda nunca al recurso. Vivacidad (liveness): Si se supone que algo puede ocurrir, en algún momento ocurrirá. 88
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 detallesConcurrencia. 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 detallesConcurrencia. Programación Concurrente Procesos Comunicación entre Procesos
Concurrencia Programación Concurrente Procesos Comunicación entre Procesos Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada instante la CPU ejecuta
Más detallesConcurrencia. 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 detallesProgramació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 detallesConcurrencia. Paso de Mensajes Control de Recursos Deadlock
Concurrencia Paso de Mensajes Control de Recursos Deadlock Sincronizacion y comunicación basada en mensajes El envío de mensajes se usa tanto para sincronizar como para comunicar. Se necesita un proceso
Más detallesConcurrencia 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 detallesISO 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 detallesSistemas 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 detallesProgramació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 detallesSistemas multiprogramados
dit UPM Sistemas multiprogramados Juan Antonio de la Puente DIT/UPM Objetivos Veremos cómo realizar sistemas de tiempo real con arquitectura asíncrona tareas como hebras de sistema operativo no todas las
Más detallesConcurrencia. 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 detallesSISTEMAS 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 detallesAcceso 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 detallesSISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Procesos concurrentes y problemas en la comunicación y la sincronización
SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Procesos concurrentes y problemas en la comunicación y la sincronización Contenido 2 Concurrencia. Condiciones de carrera. Exclusión mutua
Más detallesComunicación y sincronización
Comunicación y sincronización Son conceptos relacionados con la interacción entre los procesos La comunicación se refiere al paso de información de un proceso a otro La sincronización corresponde al cumplimiento
Más detallesHilos 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 detallesGuillermo 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 detallesLenguajes 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 detallesSincronizació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 detalles1. 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 detallesUnidad 1: Gestión de Procesos
Unidad 1: Gestión de Procesos Tema 1, Concurrencia: Exclusión mutua y sincronización. 1.1 Problema de la sección crítica, alternativas al uso de semáforos: - Regiones críticas, Monitores, Variables de
Más detallesSistemas Operativos (Parte 2)
Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: elinos@ci.ulsa.mx web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización
Más detallesConcurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi
Concurrencia, exclusión mutua y sincronización Capítulo 5 HungriaBerbesi 1 Concurrencia Múltiples aplicaciones Aplicaciones estructuradas Estructura del sistema operativo 2 Concurrencia 3 Sección Crítica:
Más detallesSistemas 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 detallesTema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.
Tema 3. Paso de mensajes Bibliografía Programación Concurrente J. Palma, C. Garrido, F. Sánchez, A. Quesada, 2003 Capítulo 7 Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall,
Más detallesSistemas 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 detallesPROCESAMIENTO 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 detallesConcurrencia Condiciones de Carrera. Guillermo Román Díez
Concurrencia Condiciones de Carrera Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición
Más detallesSISTEMAS OPERATIVOS:
SISTEMAS OPERATIVOS: Lección 6: Procesos concurrentes y problemas en la comunicación y la sincronización Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García
Más detallesMECANISMOS PARA SINCRONIZACIÓN. Semáforos
MECANISMOS PARA SINCRONIZACIÓN Semáforos Mecanismos para sincronización Una vez discutidos los principales problemas a enfrentar para coordinar procesos/hilos que comparten espacio de direccionamiento,
Más detallesPROCESOS 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 detallesProcesos. 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 detalles1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre
Más detallesSistemas Operativos Tema 6. Concurrencia
Contenidos Sistemas Operativos Tema 6. Concurrencia Sistemas concurrentes El problema de la sección crítica Semáforos Monitores 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 2 Bibliografía
Más detallesUso 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 detallesTEMA 1. FUNDAMENTOS DE LA CONCURRENCIA
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Beneficios de la programación Especificación de ejecución Características de los sistemas s Verificación de programas s 2 Bibliografía Programción
Más detallesSobre la programación concurrente
Sobre la programación concurrente Lecturas recomendadas: G. Andrews, introducción parte 1 Ben-Ari, secciones 2.1 y 2.3 A. Burns, A. Wellings, capítulo 2 (hasta 2.4) Andrews & Schneider, todo el artículo
Más detallesdit Programación concurrente Sincronización condicional UPM
20151028 dit UPM Programación concurrente Sincronización condicional Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons
Más detalles7. Programación Concurrente
7. Programación Concurrente 1. Qué es la programación concurrente? Se conoce por programación concurrente a la rama de la informática que trata de las técnicas de programación que se usan para expresar
Más detallesConcurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
Más detallesde 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 detallesPROGRAMACIÓ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 detallesSimultaneidad + Sincronización
Sobre la programación concurrente Lecturas recomendadas: G. Andrews, introducción parte 1 Ben-Ari, secciones 2.1 y 2.3 A. Burns, A. Wellings, capítulo 2 (hasta 2.4) Andrews & Schneider, todo el artículo
Más detallesENTRADA-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 detallesProcesos 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 detallesConcurrencia. 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 detallesTema 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 detallesCena 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 detallesPor ejemplo, el siguiente error conduce inmediatamente a un deadlock:
Monitores Los semáforos, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles a errores. Su utilización exige disciplina.
Más detallesSistemas Operativos. Concurrencia. Concurrencia de procesos. Concurrencia de procesos. Ejecución simultánea de procesos.
Sistemas Operativos Concurrencia Mario Medina (mariomedina@udec.cl) Everybody understands what concurrency means? Two lies at once. Todos entienden qué significa concurrencia? Dos mentiras a la vez. Luis
Más detallesSistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana
Sistemas Operativos Tema 2: Estructura del computador 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Estructura de la E/S Sistema de Interrupciones DMA Jerarquía de memorias
Más detallesTema 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 detallesUnidad 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 detallesSistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores
Sistemas Operativos MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores Sistema Operativo Un S.O. explota los recursos hardware de uno o mas procesadores para proporcionar un conjunto de servicios
Más detallesCAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
Más detallesUnidad 1: Gestión de Procesos
Unidad 1: Gestión de Procesos Tema 2, Concurrencia: Interbloqueo e inanición. 2.1 Caracterización del interbloqueo y grafo de asignación de recursos. 2.2 Estrategias de tratamiento del interbloqueo: -
Más detallesTema 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 detallesArquitecturas 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 detalles1- UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES. Tecnicatura Universitaria en Programación de Sistemas
1- UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES Carrera: Tecnicatura Universitaria en Programación de Sistemas Materia: Curso: 1 año Curso lectivo: 2018 Carga horaria
Más detallesAviso 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 detallesEl kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante.
El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante. Cuando arrancas un ordenador con cualquier sistema operativo, el Kernel se carga en memoria y permanece
Más detallesTema 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 detallesUnidad 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 detalles6. 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 detallesParticipantes: 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 detallesSistemas Operativos- Evolución Histórica
Esquema Primeros Computadores Accesos por operador Secuencia automática de trabajos Mejora del rendimiento Multiprogramación Proceso distribuído Multiproceso Primeros Computadores Lenguaje Máquina Monoprogramación
Más detallesFUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018
FUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018 Nota: Las erratas que comienzan con la viñeta+son erratas que han sido añadidas o modificadas con respecto
Más detallesIntroduccion a Sistemas Operativos. Ej: Linux
Universidad Nacional de Ingeniería Facultad de Ciencias Física Computacional CC063 Introduccion a Sistemas Operativos. Ej: Linux Prof: J. Solano 2012-I Resumen Qué hacen los sistemas operativos? Organización
Más detallesUnidad 2: Gestión de Procesos
Unidad 2: Gestión de Procesos Tema 6, Concurrencia: Exclusión mutua y sincronización. 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones
Más detallesManipulació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 detallesTema 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 detallesTEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño
TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos:
Más detallesNecesidad de Protección
Necesidad de Protección Por qué necesitamos protección? Para mejorar la utilización del sistema, el Sistema de Operación empezó a compartir recursos del sistema entre varios programas de manera simultánea.
Más detallesTEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS
TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores
Más detallesUPM Concurrencia en Java
UPM Concurrencia en Java Juan Antonio de la Puente DIT/UPM Hebras (threads) Una hebra es un objeto de una subclase de java.lang.thread o una implementación de la interfaz Runnable El código que ejecuta
Más detallesTeoría de Sistemas Operativos Sincronización Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica º Semestre, 00 Gabriel Astudillo Muñoz http://www.elo.utfsm.cl/~elo1 Dos o más procesos leen o escriben ciertas zonas compartidas
Más detallesMaterial Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización. Slides de Samuel Oporto Díaz
Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización Slides de Samuel Oporto Díaz CONCURRENCIA 2 Concurrencia La concurrencia es la simultaneidad de hechos. Un programa concurrente
Más detallesProgramació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 detallesConcurrencia 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 detallesLaboratorio 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 detallesBENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS
Más detallesTema 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 detallesDE SISTEMAS CONCURRENTES
REDES DE PETRI: MODELADO DE SISTEMAS CONCURRENTES PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 2012/13 1 MODELADO DE SISTEMAS
Más detallesINDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos
INDICE Prólogo XV 1. Introducción 1 1.1. Evolución de los sistemas operativos 2 Procesamiento en serie 3 Procesamiento por lotes 4 Multiprogramación 7 1.2. Tipos de Sistemas Operativos 9 Sistemas operativos
Más detallesESCUELA DE INGENIERIA Informática Y Sistemas
ESCUELA DE INGENIERIA Informática Y Sistemas ASIGNATURA SISTEMAS OPERATIVOS CODIGO ST0257 SEMESTRE 2013-2 INTENSIDAD HORARIA 64 horas semestral CARACTERÍSTICAS Suficientable CRÉDITOS 4 1. JUSTIFICACIÓN
Más detallesTEMA 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 detallesFundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana
Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos
Más detallesIntroducció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 detallesTEMA 1. FUNDAMENTOS DE LA CONCURRENCIA. Ingeniería en Informática Curso
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 Contenidos Concurrencia y paralelismo Sistema concurrente Programación concurrente Lenguaje concurrente Arquitectura paralela
Más detallesContenidos. Contenidos. Bibliografía. Paralelismo vs concurrencia. Qué es la concurrencia? Ingeniería en Informática Curso
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 2 Bibliografía Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall, 1990 Capítulo 1 y 2 Concurrent
Más detallesGuí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 detallesIngeniería en Computación
Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas
Más detallesProcesos 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 detallesInterbloqueo. Concurrencia: Interbloqueo e Inanición
Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución
Más detallesParalelismo _Arquitectura de Computadoras IS603
Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,
Más detallesFacultad 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 detallesTransacciones 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