SlideShare una empresa de Scribd logo
1 de 21
Sincronización entre Procesos
Sincronización entre Procesos
 Conjunto de Protocolos y mecanismos,
utilizados para preservar la integridad y
consistencia del sistema cuando varios
procesos concurrentes comparten recursos
que son reutilizables en serie
 La sincronización entre procesos puede definirse
como la necesidad que tienen algunos procesos de
bloquearse en determinadas circunstancias y ser
despertados cuando ocurren ciertos eventos.
 Un caso típico en el cual se requiere
sincronización ocurre cuando un proceso inicia
una lectura y va a utilizar en la siguiente
instrucción la información leida. En este caso se
debe esperar a que la operación de E/S termine
para poder continuar la ejecución.
Sincronización entre Procesos
Necesidades de Sincronización
entre Procesos
 El uso de variables compartidas es una
forma sencilla y habitual de comunicación
entre procesos cooperativos. Cuando un
conjunto de procesos tienen acceso a un
espacio común de direcciones, puede usar
variables compartidas para una serie de
cometidos.
Exclusión Mutua
 Método alternativo que proporciona la
metodología y las herramientas necesarias
para tratar con problemas de
sincronización entre procesos.La
actualización de una variable compartida
puede ser considerada como una sección
crítica.
Sección Crítica
 Es una secuencia de instrucciones con un
comienzo y un final claramente marcados,
que generalmente delimita la actualización
de una o más variables compartidas.Sólo el
proceso que ejecuta la sección crítica tiene
permitido el acceso a la variable
compartida; los restantes procesos deberían
tenerlo prohibido hasta la terminación de la
Sección Crítica.
El problema de la Sección
Crítica
 • n procesos compitiendo para utilizar algún
dato compartido.
 • Cada proceso tiene un segmento de
código, llamado sección crítica, en
 el que se accede al dato compartido.
 • Problema – asegurarse de que cuando un
proceso esta ejecutandose en
 su sección crítica, a ningún otro proceso se
le permite ejecutar la suya.
Exclusión Mútua
 Si un proceso P i esta ejecutandose en
su sección crítica,entonces ninguno de
los otros procesos puede estar en su
sección crítica.
Solución al Problema de
Exclusión Mutua
 Acceder al Recurso compartido Protegido.
 No hacer suposiciones con respecto a las
velocidades.
 Garantizar el aborto o terminación de cualquier
proceso fuera de su S.C. No afecte la capacidad
de los restantes
 Cuando más de un proceso desee entrar a la S.C.
Concederle la entrada a uno de ellos en tiempo
finito.
Progreso
 Si ningún proceso esta ejecutándose
en su sección crítica y existen
procesos que quieren entrar en su
sección crítica, entonces la selección
del próximo proceso que entrará a la
sección crítica no puede ser pospuesta
indefinidamente
Espera limitada.
 Debe existir un límite del número de veces
que se les permite a otros procesos entrar
en sus secciones críticas en el intervalo
entre que un proceso ha hecho un
requerimiento para entrar en su sección
crítica y que se le concede el permiso. Se
supone que cada proceso se ejecuta a
velocidad distinta de cero. Ninguna
suposición respecto a la velocidad relativa
de los n procesos.
Semáforos
 Mecanismo para exclusión mutua entre un
número arbitrario de procesos.Una vez iniciado
un proceso ninguno otro podra accesar hasta que
se complete la operación.
Wait(s): Decrementa el valor de su argumento
semáforo.
Signal(s): Incrementa el valor de su argumento
semáforo.
Semáforos
 • Herramienta de sincronización que
no requiere “espera activa” (del
 proceso).
 • Semáforo S – variable entera
 • Solo puede ser accedida vía dos
operaciones indivisibles (atómicas)
Semáforos
 • El aspecto crítico es que los
semáforos sean ejecutados
atómicamente
 (dos procesos no deben ejecutar signal
o wait sobre el mismo semáforo al
 mismo tiempo)
Semáforo
 • Dos soluciones:
 – Monoprocesador: inhibir las
interrupciones...
 – Multiprocesador: el hardware lo suministra,
o alguna de las
 soluciones software. (observar que las
secciones críticas (donde se puede
 necesitar la espera activa) ahora es el
código de signal y wait).
Problemas con los
Semáforos
 Los semáforos son propensos a los errores
de programación:
 – La inversión del par P() y V() causará la
violación de la condición de
 exclusión mútua.
 – Y la omisión de una P() o de una V()
potencialmente causará deadlock
 • Estos problemas son difíciles de encontrar
y muchas veces difíciles de
 reproducir.
Comunicación entre
Procesos
 • Los procesos deben nombrase uno a otro explícitamente:
 – send (P, mensaje) – envia mensaje al proceso P
 – receive(Q, mensaje) – recibe un mensaje del proceso Q
 • Propiedades del enlace de comunicación
 – Los enlaces se establecen automáticamente (se conocen
uno a otro).
 – Un enlace esta asociado con exactamente un par de
procesos
 comunicádose.
 – Entre cada par existe exactamente un enlace.
 – El enlace puede ser unidireccional, pero normalmente es
bidireccional.
Memoria Compartida
 • La otra forma de comunicar procesos es
utilizando memoria compartida.
 • Sin embargo, el acceso concurrente a los
datos compartidos puede
 conducir a inconsistencia de datos.
 • Mantener la consistencia de los datos
requiere mecanismos
 (sincronización) para asegurar la ejecución
ordenada de los procesos
 cooperantes.
Problemas Clásicos de
Sincronización
 • Estos problemas se utilizan para
probar casi cualquier nuevo
 esquema de sincronización que sea
propuesto.
 • El problema de buffer limitado
 – se utiliza normalmente para ilustrar
la potencia de las primitivas
 de sincronización.
Problemas Clásicos de
Sincronización
 Problema de Lectores-Escritores
 • Si se permiten múltiples lectores, entonces hay
varios aspectos a tener
 en cuenta acerca de cuando un escritor puede
acceder al objeto.
 • Debemos esperar a que todos los lectores
completen su lectura antes
 de permitir que el escritor bloquee el objeto.
 – Podemos no dejar comenzar a nuevos lectores,
 – o hacer que el escritor espere hasta que no haya
lectores.
Problemas de Comunicación
entre procesos
 Productor-consumidor
 Lectores-Escritores
 Los Filósofos Pensadores.
 El Barbero Dormilón

Más contenido relacionado

La actualidad más candente

Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPUFernanda Soto
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriaALASBLANKS
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datosmyriam sarango
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webYaskelly Yedra
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoriaadolfoahumada94
 
Sistemas operativos threads
Sistemas operativos   threadsSistemas operativos   threads
Sistemas operativos threadsLiNo Candelario
 
Administracion de memoria (politicas de busqueda)
Administracion de memoria (politicas de busqueda)Administracion de memoria (politicas de busqueda)
Administracion de memoria (politicas de busqueda)pepelebu1313
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesosmastermind87
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesosjulio izaguirre
 

La actualidad más candente (20)

Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPU
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datos
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones web
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoria
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Sistemas operativos threads
Sistemas operativos   threadsSistemas operativos   threads
Sistemas operativos threads
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Administracion de memoria (politicas de busqueda)
Administracion de memoria (politicas de busqueda)Administracion de memoria (politicas de busqueda)
Administracion de memoria (politicas de busqueda)
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 

Similar a Sincronización entre procesos

2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosFranklin Parrales Bravo
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 
Sicronización entre procesos
Sicronización entre procesosSicronización entre procesos
Sicronización entre procesosglocom15
 
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
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSSelqit Mgw
 
Presentación rc 1
Presentación rc 1Presentación rc 1
Presentación rc 1Margoz87
 
PPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdfPPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdfAbigailMontero5
 
Administracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorAdministracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorVictor Zapata
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorMicael Feliz Arias
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Gabriel Loría Solís
 
Comunicación y sicronización entre procesos
Comunicación y sicronización entre procesosComunicación y sicronización entre procesos
Comunicación y sicronización entre procesosglocom15
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosLlabajo Baez
 

Similar a Sincronización entre procesos (20)

2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Sicronización entre procesos
Sicronización entre procesosSicronización entre procesos
Sicronización entre procesos
 
Unidad2
Unidad2Unidad2
Unidad2
 
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
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
Presentación rc 1
Presentación rc 1Presentación rc 1
Presentación rc 1
 
PPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdfPPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdf
 
Administracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorAdministracindeprocesosydelprocesador
Administracindeprocesosydelprocesador
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos
 
Exposicion semaforos
Exposicion semaforosExposicion semaforos
Exposicion semaforos
 
Comunicación y sicronización entre procesos
Comunicación y sicronización entre procesosComunicación y sicronización entre procesos
Comunicación y sicronización entre procesos
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 

Más de Ichinose 11

Mapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisMapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisIchinose 11
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Ichinose 11
 
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Ichinose 11
 
Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Ichinose 11
 
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Ichinose 11
 
Sistema compañeros
Sistema         compañerosSistema         compañeros
Sistema compañerosIchinose 11
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoriaIchinose 11
 

Más de Ichinose 11 (12)

Mapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisMapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solis
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
 
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
 
Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..
 
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
 
Ubuntu touch
Ubuntu  touchUbuntu  touch
Ubuntu touch
 
Sistema compañeros
Sistema         compañerosSistema         compañeros
Sistema compañeros
 
Archivos 2016
Archivos 2016Archivos 2016
Archivos 2016
 
Bloqueos _
Bloqueos _Bloqueos _
Bloqueos _
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoria
 
Memoria 3
Memoria 3Memoria 3
Memoria 3
 
02 hilos
02   hilos02   hilos
02 hilos
 

Último

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 

Último (6)

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 

Sincronización entre procesos

  • 2. Sincronización entre Procesos  Conjunto de Protocolos y mecanismos, utilizados para preservar la integridad y consistencia del sistema cuando varios procesos concurrentes comparten recursos que son reutilizables en serie
  • 3.  La sincronización entre procesos puede definirse como la necesidad que tienen algunos procesos de bloquearse en determinadas circunstancias y ser despertados cuando ocurren ciertos eventos.  Un caso típico en el cual se requiere sincronización ocurre cuando un proceso inicia una lectura y va a utilizar en la siguiente instrucción la información leida. En este caso se debe esperar a que la operación de E/S termine para poder continuar la ejecución. Sincronización entre Procesos
  • 4. Necesidades de Sincronización entre Procesos  El uso de variables compartidas es una forma sencilla y habitual de comunicación entre procesos cooperativos. Cuando un conjunto de procesos tienen acceso a un espacio común de direcciones, puede usar variables compartidas para una serie de cometidos.
  • 5. Exclusión Mutua  Método alternativo que proporciona la metodología y las herramientas necesarias para tratar con problemas de sincronización entre procesos.La actualización de una variable compartida puede ser considerada como una sección crítica.
  • 6. Sección Crítica  Es una secuencia de instrucciones con un comienzo y un final claramente marcados, que generalmente delimita la actualización de una o más variables compartidas.Sólo el proceso que ejecuta la sección crítica tiene permitido el acceso a la variable compartida; los restantes procesos deberían tenerlo prohibido hasta la terminación de la Sección Crítica.
  • 7. El problema de la Sección Crítica  • n procesos compitiendo para utilizar algún dato compartido.  • Cada proceso tiene un segmento de código, llamado sección crítica, en  el que se accede al dato compartido.  • Problema – asegurarse de que cuando un proceso esta ejecutandose en  su sección crítica, a ningún otro proceso se le permite ejecutar la suya.
  • 8. Exclusión Mútua  Si un proceso P i esta ejecutandose en su sección crítica,entonces ninguno de los otros procesos puede estar en su sección crítica.
  • 9. Solución al Problema de Exclusión Mutua  Acceder al Recurso compartido Protegido.  No hacer suposiciones con respecto a las velocidades.  Garantizar el aborto o terminación de cualquier proceso fuera de su S.C. No afecte la capacidad de los restantes  Cuando más de un proceso desee entrar a la S.C. Concederle la entrada a uno de ellos en tiempo finito.
  • 10. Progreso  Si ningún proceso esta ejecutándose en su sección crítica y existen procesos que quieren entrar en su sección crítica, entonces la selección del próximo proceso que entrará a la sección crítica no puede ser pospuesta indefinidamente
  • 11. Espera limitada.  Debe existir un límite del número de veces que se les permite a otros procesos entrar en sus secciones críticas en el intervalo entre que un proceso ha hecho un requerimiento para entrar en su sección crítica y que se le concede el permiso. Se supone que cada proceso se ejecuta a velocidad distinta de cero. Ninguna suposición respecto a la velocidad relativa de los n procesos.
  • 12. Semáforos  Mecanismo para exclusión mutua entre un número arbitrario de procesos.Una vez iniciado un proceso ninguno otro podra accesar hasta que se complete la operación. Wait(s): Decrementa el valor de su argumento semáforo. Signal(s): Incrementa el valor de su argumento semáforo.
  • 13. Semáforos  • Herramienta de sincronización que no requiere “espera activa” (del  proceso).  • Semáforo S – variable entera  • Solo puede ser accedida vía dos operaciones indivisibles (atómicas)
  • 14. Semáforos  • El aspecto crítico es que los semáforos sean ejecutados atómicamente  (dos procesos no deben ejecutar signal o wait sobre el mismo semáforo al  mismo tiempo)
  • 15. Semáforo  • Dos soluciones:  – Monoprocesador: inhibir las interrupciones...  – Multiprocesador: el hardware lo suministra, o alguna de las  soluciones software. (observar que las secciones críticas (donde se puede  necesitar la espera activa) ahora es el código de signal y wait).
  • 16. Problemas con los Semáforos  Los semáforos son propensos a los errores de programación:  – La inversión del par P() y V() causará la violación de la condición de  exclusión mútua.  – Y la omisión de una P() o de una V() potencialmente causará deadlock  • Estos problemas son difíciles de encontrar y muchas veces difíciles de  reproducir.
  • 17. Comunicación entre Procesos  • Los procesos deben nombrase uno a otro explícitamente:  – send (P, mensaje) – envia mensaje al proceso P  – receive(Q, mensaje) – recibe un mensaje del proceso Q  • Propiedades del enlace de comunicación  – Los enlaces se establecen automáticamente (se conocen uno a otro).  – Un enlace esta asociado con exactamente un par de procesos  comunicádose.  – Entre cada par existe exactamente un enlace.  – El enlace puede ser unidireccional, pero normalmente es bidireccional.
  • 18. Memoria Compartida  • La otra forma de comunicar procesos es utilizando memoria compartida.  • Sin embargo, el acceso concurrente a los datos compartidos puede  conducir a inconsistencia de datos.  • Mantener la consistencia de los datos requiere mecanismos  (sincronización) para asegurar la ejecución ordenada de los procesos  cooperantes.
  • 19. Problemas Clásicos de Sincronización  • Estos problemas se utilizan para probar casi cualquier nuevo  esquema de sincronización que sea propuesto.  • El problema de buffer limitado  – se utiliza normalmente para ilustrar la potencia de las primitivas  de sincronización.
  • 20. Problemas Clásicos de Sincronización  Problema de Lectores-Escritores  • Si se permiten múltiples lectores, entonces hay varios aspectos a tener  en cuenta acerca de cuando un escritor puede acceder al objeto.  • Debemos esperar a que todos los lectores completen su lectura antes  de permitir que el escritor bloquee el objeto.  – Podemos no dejar comenzar a nuevos lectores,  – o hacer que el escritor espere hasta que no haya lectores.
  • 21. Problemas de Comunicación entre procesos  Productor-consumidor  Lectores-Escritores  Los Filósofos Pensadores.  El Barbero Dormilón