SlideShare ist ein Scribd-Unternehmen logo
1 von 38
PROGRAMACION CONCURRENTE ,[object Object]
Multitarea, Multiprogramacion, multiprocesos ,[object Object],Multitareas Multiprogramacion Multiprocesos
Multitareas  ,[object Object],[object Object],[object Object],*  Multitarea Nula * Multitarea Cooperativa * Multitarea Preferente * Multitarea Real
Multitarea Nula ,[object Object]
Multitarea Cooperativa ,[object Object],[object Object]
Multitarea Preferente ,[object Object]
Multitarea Real ,[object Object]
Multitarea Real
Multiprogramacion ,[object Object],[object Object],[object Object]
Principios de Concurrencia ,[object Object]
Principios de Concurrencia ,[object Object],[object Object],[object Object],[object Object]
Varias aplicaciones: ,[object Object]
Aplicaciones estructuradas: ,[object Object],[object Object],[object Object]
Estructura del sistema operativo: ,[object Object]
LABORES DEL SISTEMA OPERATIVO   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Gracias
[object Object],[object Object],[object Object],Comunicación y Sincronización de Procesos
[object Object],[object Object],[object Object],[object Object]
Posibilidad de interaccion de procesos ,[object Object],[object Object],[object Object],[object Object]
Comunicación y sincronisacion de proceso ,[object Object],[object Object],[object Object]
Necesidad de sincronizacion de los procesos: region crıtica y exclusion mutua ,[object Object]
Gestion de procesos   ,[object Object]
La exclusión mutua la podríamos definir como una  operación de control que permite la coordinación de  procesos concurrentes (Comunicación requerida entre dos o mas procesos), y que tiene la capacidad de  prohibir a los demás procesos realizar una acción  cuando un proceso haya obtenido el permiso.   LA EXCLUSION MUTUA
SOLUCIONES SOFTWARE PARA LA EXCLUSION MUTUA Soluciones por Software. Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir la exclusión mutua sin ayuda alguna, aunque estas soluciones son propensas a errores y a una fuerte carga de proceso (Algunos ejemplos de estas son: Algoritmo de Dekker y Algoritmo de Peterson).
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Algoritmo de Dekker es un algoritmo de programación concurrente para exclusión mutua,  que permite a dos procesos o hilos de ejecusion compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por  Edsger Diikstra. Si ambos procesos intentan acceder a la sección crítica simultáneamente,  el algoritmo elige un proceso según una variable turno. Si el otro proceso  está ejecutando en su sección crítica, deberá esperar su finalización. Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una simplificación del  algoritmo de Dekker  para dos procesos. Posteriormente este algoritmo fue generalizado para que funcione para N procesos .En el algoritmo para N procesos las variables c[i] además de valer "verdadero" y "falso", pueden valer "en sección critica" y turno desde 1 hasta N. El procedimiento es una generalización de este .c[i], que es un array y turno, que solo puede valer 1o 2 . .Este algoritmo garantiza la exclusión mutua debido al uso de una variable compartida , turno, que se chequea cada vez. Algoritmo de Peterson
Inicialmente, c[0]=c[1]= falso, y el valor de turno no tiene relevancia (pero de be ser 0 o 1). Para entrar en la sección crítica, el proceso Pi primero asigna el valor verdadero a c[i] y luego afirma que es el turno del otro proceso para entrar si así lo desea (turno = j). Si ambos procesos tratan de entrar a la vez, se asignará turno como i y j aproximadamente al mismo tiempo. Sólo una de estas asignaciones durará; la otra ocurrirá, pero será reemplazada de inmediato. El valor eventual de turno decide a cuál de los dos procesos se le permitirá entrar primero en su sección crítica.
Los semáforos pueden contemplarse como variables que tienen un valor entero sobre las que se definen las tres operaciones siguientes: Un semáforo puede inicializarse con un valor no negativo. Un semáforo puede inicializarse con un valor no negativo. La operación WAIT decremento el valor del semáforo. Si el valor se hace negativo, el proceso que ejecuta WAIT queda bloqueado. La operación SIGNAL incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea a un proceso bloqueado previamente por una operación WAIT. Veamos cual serıa la implementación de un semáforo. Semáforos
Un monitor es, esencialmente, una colección de datos y de procedimientos para su manipulación junto con una secuencia de inicialización. Las variables de datos globales son generalmente privadas al monitor por lo que solo son accesibles a los procedimientos de este. Los procedimientos del monitor podrán ser públicos o privados. Un monitor puede considerarse como una estructura estática que se activa únicamente cuando alguno de sus procedimientos públicos es llamado por un proceso en ejecución y se dice, entonces, que el proceso en cuestión entra o tiene acceso al monitor. Solamente un proceso puede estar ejecutándose en el monitor en un instante determinado. Una estructura de datos compartida puede así protegerse situándola dentro de un monitor que ofrecerá un servicio de exclusión mutua para dicha estructura. Para que resulten útiles en el procesamiento concurrente, los monitores deben incluir alguna herramienta de sincronización de forma que se impida el acceso al monitor a un proceso cuando otro esta ejecutando dentro de el. Esta sincronización se consigue por medio MONITORES
PASO  DE  MENSAJES
Los mensajes constituyen relativamente sencillo y adecuado para la comunicación y para la sincronización entre procesos que trabajan en entornos
[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
SOLUCIONES HADWARE PARA LA EXCLUSION MUTUA ,[object Object],[object Object]
Habilitación / deshabilitacion de interrupciones instrucción comprobar y fijar (test and set)
instrucción comparar e intercambiar  (compare and swap) el problema de la cena de los filósofos

Weitere ähnliche Inhalte

Was ist angesagt?

Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)UAEMex
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Javier Alvarez
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicasdanielchecar
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de softwareGeorgy Jose Sanchez
 

Was ist angesagt? (20)

Rational rose
Rational roseRational rose
Rational rose
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
SERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVOSERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVO
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de software
 
Diagramas de Casos de Uso del Negocio y del Sistema
 Diagramas de Casos de Uso del Negocio y del Sistema Diagramas de Casos de Uso del Negocio y del Sistema
Diagramas de Casos de Uso del Negocio y del Sistema
 

Andere mochten auch

PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEgladysmamani
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentegamavi
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentegiovatovar
 
Programacion Concurrente
Programacion ConcurrenteProgramacion Concurrente
Programacion Concurrenteismaelrubino
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativoschrisjarole
 
Campo eléctrico
Campo eléctricoCampo eléctrico
Campo eléctricoricardo_55
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Mariagequito
 
Historia de la computacion denise pari.pdf
Historia de la computacion denise pari.pdfHistoria de la computacion denise pari.pdf
Historia de la computacion denise pari.pdfDenise Pari
 
Unidad 4 tópicos avanzados de programación
Unidad 4 tópicos avanzados de programación Unidad 4 tópicos avanzados de programación
Unidad 4 tópicos avanzados de programación Irving Che
 
Programacion Multihilo
Programacion MultihiloProgramacion Multihilo
Programacion MultihiloNICK
 
Curso de Sistemas Operativos - Unidad Procesos e Hilos
Curso de Sistemas Operativos - Unidad Procesos e HilosCurso de Sistemas Operativos - Unidad Procesos e Hilos
Curso de Sistemas Operativos - Unidad Procesos e HilosJuan Rafael Alvarez Correa
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Maîck Ddz
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 

Andere mochten auch (20)

PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Programacion Concurrente
Programacion ConcurrenteProgramacion Concurrente
Programacion Concurrente
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Campo eléctrico
Campo eléctricoCampo eléctrico
Campo eléctrico
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Maria
 
Historia de la computacion denise pari.pdf
Historia de la computacion denise pari.pdfHistoria de la computacion denise pari.pdf
Historia de la computacion denise pari.pdf
 
Conceptos Fundamentales de Programación
Conceptos Fundamentales de ProgramaciónConceptos Fundamentales de Programación
Conceptos Fundamentales de Programación
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Unidad 4 tópicos avanzados de programación
Unidad 4 tópicos avanzados de programación Unidad 4 tópicos avanzados de programación
Unidad 4 tópicos avanzados de programación
 
Programacion Multihilo
Programacion MultihiloProgramacion Multihilo
Programacion Multihilo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
PROCESOS
PROCESOSPROCESOS
PROCESOS
 
Curso de Sistemas Operativos - Unidad Procesos e Hilos
Curso de Sistemas Operativos - Unidad Procesos e HilosCurso de Sistemas Operativos - Unidad Procesos e Hilos
Curso de Sistemas Operativos - Unidad Procesos e Hilos
 
Procesos de manufactura
Procesos de manufacturaProcesos de manufactura
Procesos de manufactura
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo)
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Windows
WindowsWindows
Windows
 

Ähnlich wie Programación concurrente: multitarea, multiprocesamiento y comunicación entre procesos

Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosKim Sorel Rush
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesadorMiguel Joshua Godinez Barbosa
 
Trabajo de sistemas operativos
Trabajo de sistemas operativosTrabajo de sistemas operativos
Trabajo de sistemas operativosWpdw Rko
 
Tiposde Sistema Operativos
Tiposde Sistema OperativosTiposde Sistema Operativos
Tiposde Sistema OperativosMarvin Hernandez
 
Clasificacion de sistemas operativos
Clasificacion de sistemas operativosClasificacion de sistemas operativos
Clasificacion de sistemas operativosVictor Cartagena
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosCESAR
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosGUADALUPE
 
Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.Mario Alberto Antonio Lopez
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativocamilobar2
 
Que son los sistemas operativos
Que son los sistemas operativosQue son los sistemas operativos
Que son los sistemas operativoschicaruda
 
Multiprogramacion
MultiprogramacionMultiprogramacion
MultiprogramacionIrisMTF16
 
Multiprogramacion
MultiprogramacionMultiprogramacion
Multiprogramacionv3r02011
 

Ähnlich wie Programación concurrente: multitarea, multiprocesamiento y comunicación entre procesos (20)

:)Resumen
:)Resumen:)Resumen
:)Resumen
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 
Trabajo de sistemas operativos
Trabajo de sistemas operativosTrabajo de sistemas operativos
Trabajo de sistemas operativos
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Tiposde Sistema
Tiposde SistemaTiposde Sistema
Tiposde Sistema
 
Tiposde Sistema Operativos
Tiposde Sistema OperativosTiposde Sistema Operativos
Tiposde Sistema Operativos
 
Tiposde Sistema
Tiposde SistemaTiposde Sistema
Tiposde Sistema
 
Clasificacion de sistemas operativos
Clasificacion de sistemas operativosClasificacion de sistemas operativos
Clasificacion de sistemas operativos
 
Proceso
ProcesoProceso
Proceso
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.Funciones y clasificacion de los sistemas operativos.
Funciones y clasificacion de los sistemas operativos.
 
Clasificacion de los s.o
Clasificacion de los s.oClasificacion de los s.o
Clasificacion de los s.o
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Que son los sistemas operativos
Que son los sistemas operativosQue son los sistemas operativos
Que son los sistemas operativos
 
Multiprogramacion
MultiprogramacionMultiprogramacion
Multiprogramacion
 
Multiprogramacion
MultiprogramacionMultiprogramacion
Multiprogramacion
 
Unidad2
Unidad2Unidad2
Unidad2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 

Programación concurrente: multitarea, multiprocesamiento y comunicación entre procesos

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos concurrentes (Comunicación requerida entre dos o mas procesos), y que tiene la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso. LA EXCLUSION MUTUA
  • 24. SOLUCIONES SOFTWARE PARA LA EXCLUSION MUTUA Soluciones por Software. Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir la exclusión mutua sin ayuda alguna, aunque estas soluciones son propensas a errores y a una fuerte carga de proceso (Algunos ejemplos de estas son: Algoritmo de Dekker y Algoritmo de Peterson).
  • 25.
  • 26. Algoritmo de Dekker es un algoritmo de programación concurrente para exclusión mutua, que permite a dos procesos o hilos de ejecusion compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por Edsger Diikstra. Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo elige un proceso según una variable turno. Si el otro proceso está ejecutando en su sección crítica, deberá esperar su finalización. Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4.
  • 27.
  • 28. Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una simplificación del algoritmo de Dekker para dos procesos. Posteriormente este algoritmo fue generalizado para que funcione para N procesos .En el algoritmo para N procesos las variables c[i] además de valer "verdadero" y "falso", pueden valer "en sección critica" y turno desde 1 hasta N. El procedimiento es una generalización de este .c[i], que es un array y turno, que solo puede valer 1o 2 . .Este algoritmo garantiza la exclusión mutua debido al uso de una variable compartida , turno, que se chequea cada vez. Algoritmo de Peterson
  • 29. Inicialmente, c[0]=c[1]= falso, y el valor de turno no tiene relevancia (pero de be ser 0 o 1). Para entrar en la sección crítica, el proceso Pi primero asigna el valor verdadero a c[i] y luego afirma que es el turno del otro proceso para entrar si así lo desea (turno = j). Si ambos procesos tratan de entrar a la vez, se asignará turno como i y j aproximadamente al mismo tiempo. Sólo una de estas asignaciones durará; la otra ocurrirá, pero será reemplazada de inmediato. El valor eventual de turno decide a cuál de los dos procesos se le permitirá entrar primero en su sección crítica.
  • 30. Los semáforos pueden contemplarse como variables que tienen un valor entero sobre las que se definen las tres operaciones siguientes: Un semáforo puede inicializarse con un valor no negativo. Un semáforo puede inicializarse con un valor no negativo. La operación WAIT decremento el valor del semáforo. Si el valor se hace negativo, el proceso que ejecuta WAIT queda bloqueado. La operación SIGNAL incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea a un proceso bloqueado previamente por una operación WAIT. Veamos cual serıa la implementación de un semáforo. Semáforos
  • 31. Un monitor es, esencialmente, una colección de datos y de procedimientos para su manipulación junto con una secuencia de inicialización. Las variables de datos globales son generalmente privadas al monitor por lo que solo son accesibles a los procedimientos de este. Los procedimientos del monitor podrán ser públicos o privados. Un monitor puede considerarse como una estructura estática que se activa únicamente cuando alguno de sus procedimientos públicos es llamado por un proceso en ejecución y se dice, entonces, que el proceso en cuestión entra o tiene acceso al monitor. Solamente un proceso puede estar ejecutándose en el monitor en un instante determinado. Una estructura de datos compartida puede así protegerse situándola dentro de un monitor que ofrecerá un servicio de exclusión mutua para dicha estructura. Para que resulten útiles en el procesamiento concurrente, los monitores deben incluir alguna herramienta de sincronización de forma que se impida el acceso al monitor a un proceso cuando otro esta ejecutando dentro de el. Esta sincronización se consigue por medio MONITORES
  • 32. PASO DE MENSAJES
  • 33. Los mensajes constituyen relativamente sencillo y adecuado para la comunicación y para la sincronización entre procesos que trabajan en entornos
  • 34.
  • 35.
  • 36.
  • 37. Habilitación / deshabilitacion de interrupciones instrucción comprobar y fijar (test and set)
  • 38. instrucción comparar e intercambiar (compare and swap) el problema de la cena de los filósofos