COMUNICACIÓN Y           SINCRONIZACIÓN           ENTRE PROCESOS                               LORENA RAMOSCarrera: Técnic...
Revisión de conceptos  previos
MultiprogramaciónGestión de varios procesos dentro de un        sistema monoprocesador.        MultiprocesamientoGestión d...
PROCESOS
ProcesosPrograma que esta en ejecución. Un programa vivo que tiene su  propio flujo de control, su  directorio de trabajo ...
concurrentes: Varios procesos ejecutándose al          mismo tiempo.El sistema operativo crea la ilusión  de que cada uno ...
LOS PROCESOS    CONCURRENTES PUEDEN SER:  Independientes:      No comparten datos con                 otros procesos.   Co...
Exclusión mutua:Exclusión mutua: los procesos reclaman control                 exclusivo de            los recursos que pi...
Sección crítica :Definición: región crítica es el trozo decódigo donde un proceso hace uso de un  recurso no compartible, ...
Relación entre   procesos
Competencia
Los procesos son independientes.No tienen conocimiento de los demás.Compiten por el acceso a los recursos.                ...
Cooperación por compartición
Los procesos comparten el acceso a algunos objetos, por ejemplo a un buffer de E/S.Tienen conocimiento indirecto de los ot...
Cooperación por comunicación
Los procesos pueden comunicarse con los                demas.Tienen conocimiento directo de los demás.                    ...
Condiciones deCompetencia (Race    Condition)
Las situaciones como las planteadas en que elresultado de la ejecución de dos o más procesos depende del orden de ejecució...
Sección Crítica.
Un proceso comienza a utilizar una variable  compartida antes que el otro termine de                                     u...
Condiciones para una solución al problema de la Sección Crítica
1 - Dos procesos no deben encontrarse, al mismo         tiempo, en su Sección Crítica.2 - No deben hacerse hipótesis sobre...
Solución
Dejar la responsabilidad a los procesos, que  deben coordinarse unos con otros para         cumplir la exclusión mutua.   ...
VARIABLECERRADURA
Si se desea que un proceso entre a su sección critica primero hace una prueba de la variable  de cerradura. Si su valor es...
ALTERNANCIA  ESTRICTA
Obliga a que cada proceso tenga un turno, hay un cambio de turno cada vez que un proceso  sale de la sección critica, si u...
SOLUCIÓN DE PETERSON
Consideremos el caso de que 2 procesos llaman   al procedimiento para entrar en su sección     critica de forma casi simul...
SOLUCIONES    POR HARDWARE
Ofrece solucionar el problema mediante   instrucciones especiales de máquina.Reducen la sobrecarga pero no son óptimas.   ...
INHABILITACIÓN      DEINTERRUPCIONES
La solución de I.I. evita que el proceso abandoneel CPU durante la S.C., logrando así la exclusión mutua. El gran inconven...
INSTRUCCIONES ESPECIALES DE   MÁQUINA
Test-And-Set: esta función verifica el estado de  una variable cerrojo devolviendo verdadero si el cerrojo estaba abierto ...
OTRASSOLUCIONES
Ofrece solucionar el problema a través del soporte del Sistema Operativo o de los        lenguajes de programaciónSemáforo...
SEMÁFOROS
int mutex=MAX_RECURSOS; void signal(int *_mutex) {       (_mutex*)++;      if((*mutex)<=0) // Desencolar un proceso       ...
Consta de dos instrucciones signal y wait, yuna variable mutex comun. Esta variable se      suele fijar al numero de recur...
MONITORES
Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a lade los semáforos , pero que s...
PASO DEMENSAJES
Paso de mensajes: este sistema de comunicación   tiene diversas implementaciones que solo serán mencionadas: directa e ind...
BIBLIOGRAFÍA
STALLINGS, William – Sistemas Operativos, segunda edición.  TANENBAUM, Andrew – Sistemas Operativos, Diseño e             ...
Próxima SlideShare
Cargando en…5
×

Comunicación y Sincronizacion de Procesos

6.214 visualizaciones

Publicado el

Breve descripción del la comunicación y sincronizacion de procesos de un Sistema Operativo.

Publicado en: Tecnología
1 comentario
7 recomendaciones
Estadísticas
Notas
Sin descargas
Visualizaciones
Visualizaciones totales
6.214
En SlideShare
0
De insertados
0
Número de insertados
8
Acciones
Compartido
0
Descargas
0
Comentarios
1
Recomendaciones
7
Insertados 0
No insertados

No hay notas en la diapositiva.

Comunicación y Sincronizacion de Procesos

  1. 1. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS LORENA RAMOSCarrera: Técnico Superior en Análisis de Sistemas 2° Año.Cátedra: Sistemas OperativosDocente: Cristian Gómez Año:2012
  2. 2. Revisión de conceptos previos
  3. 3. MultiprogramaciónGestión de varios procesos dentro de un sistema monoprocesador. MultiprocesamientoGestión de varios procesos dentro de un sistema multiprocesador. Procesamiento Distribuido Gestión de varios procesos ejecutándoseen sistemas de múltiples computadoras las cuales se encuentran distribuidas.
  4. 4. PROCESOS
  5. 5. ProcesosPrograma que esta en ejecución. Un programa vivo que tiene su propio flujo de control, su directorio de trabajo y es independiente de los otros procesos. . . .
  6. 6. concurrentes: Varios procesos ejecutándose al mismo tiempo.El sistema operativo crea la ilusión de que cada uno tiene su propia CPU. . . .
  7. 7. LOS PROCESOS CONCURRENTES PUEDEN SER: Independientes: No comparten datos con otros procesos. Cooperativos: Si pueden afectar o verse afectados por otros procesos. Las razones que permiten la cooperación entre procesos son:1.- Compartir información2.- Aceleración de cálculos (subtareas)3.- Modularidad dividir las funciones del sistema4.- Conveniencia .
  8. 8. Exclusión mutua:Exclusión mutua: los procesos reclaman control exclusivo de los recursos que piden. Interbloqueado:Un proceso esta interbloqueado si estáesperando por un evento determinado que nunca Inanición :va a ocurrir.Cuando un proceso espera por un evento que puedeocurrir pero no se sabe cuando.
  9. 9. Sección crítica :Definición: región crítica es el trozo decódigo donde un proceso hace uso de un recurso no compartible, por lo tanto debe ejecutarse en exclusión mutua. Las secciones críticas deben ser ejecutadas lo más rápido posible y además deben ser cuidadosamente codificadas.
  10. 10. Relación entre procesos
  11. 11. Competencia
  12. 12. Los procesos son independientes.No tienen conocimiento de los demás.Compiten por el acceso a los recursos. Problemas de control Exclusión Mutua. Interbloqueo Inanición
  13. 13. Cooperación por compartición
  14. 14. Los procesos comparten el acceso a algunos objetos, por ejemplo a un buffer de E/S.Tienen conocimiento indirecto de los otros. Cooperan para compartir el objeto común Problemas de control Exclusión Mutua. Interbloqueo Inanición
  15. 15. Cooperación por comunicación
  16. 16. Los procesos pueden comunicarse con los demas.Tienen conocimiento directo de los demás. Problemas de control Interbloqueo Inanición
  17. 17. Condiciones deCompetencia (Race Condition)
  18. 18. Las situaciones como las planteadas en que elresultado de la ejecución de dos o más procesos depende del orden de ejecución de los mismos reciben el nombre de CONDICIONES DE COMPETENCIA ¿Cómo se soluciona este problema? Mediante la EXCLUSIÓN MUTUAGarantizando que los procesos accedan en forma ordenada al recurso compartido
  19. 19. Sección Crítica.
  20. 20. Un proceso comienza a utilizar una variable compartida antes que el otro termine de usarla Esa parte del programa, en la cual se accede a la memoria compartida, se denomina SECCION CRITICASi se puede garantizar que 2 procesos no entrarán, al mismo tiempo, en su SECCIÓN CRITICA, podrán evitarse las Condiciones de Competencia
  21. 21. Condiciones para una solución al problema de la Sección Crítica
  22. 22. 1 - Dos procesos no deben encontrarse, al mismo tiempo, en su Sección Crítica.2 - No deben hacerse hipótesis sobre la velocidad o el número de CPU´s. 3 - Ninguno de los procesos que se están ejecutando fuera de su Sección Crítica puedebloquear a otros procesos que desean entrar a su SC. 4 - Ningún proceso debe esperar eternamente para entrar en su Sección Crítica.5 – Un proceso que se encuentra dentro de su SC debe abandonarla en un tiempo finito. 6 - Un Proceso no puede consumir tiempo de ejecución mientras espera por un recurso.7 - No debe haber ningún proceso privilegiado que monopolice la SC.
  23. 23. Solución
  24. 24. Dejar la responsabilidad a los procesos, que deben coordinarse unos con otros para cumplir la exclusión mutua. Sin ayuda por parte del lenguaje de programación o del sistema operativo.Estas soluciones son propensas a errores y a una fuerte carga de proceso.Variables de Cerradura – Alternancia estricta – Solución de Peterson
  25. 25. VARIABLECERRADURA
  26. 26. Si se desea que un proceso entre a su sección critica primero hace una prueba de la variable de cerradura. Si su valor es 0 el proceso lo cambia a 1 y entra a su sección critica. Si la variable vale uno, el proceso espera hasta quetome el valor 0 y esta ocurre cuando el proceso que entro a la sección critica sale de ella. Esta variable es compartida y tiene 2 valores: 0 y 1. El sistema operativo tiene acceso a esa variable y el único que puede cambiar el estado es el proceso actual.
  27. 27. ALTERNANCIA ESTRICTA
  28. 28. Obliga a que cada proceso tenga un turno, hay un cambio de turno cada vez que un proceso sale de la sección critica, si un proceso es lento atrasara a otros procesos que son rápidos. Características: Garantiza la exclusión mutua Su sincronización es forzada Acopla fuertemente a los procesos (procesos lentos atrasan a procesos rápidos) No garantiza la progresión, ya que si unproceso por alguna razón es bloqueado dentro o fuera de la sección puede bloquear a los otros
  29. 29. SOLUCIÓN DE PETERSON
  30. 30. Consideremos el caso de que 2 procesos llaman al procedimiento para entrar en su sección critica de forma casi simultanea, ambos procesos almacenaran su número de proceso en una variable x. Solo cuenta la última operación, la primera de ellas se pierde. Supongamos que el proceso 1 almacena sunumero en ultimo lugar, por lo que el valor de x será igual a 1. Cuando ambos procesos lleguen al enunciado while, la condición se cumpliráúnicamente para uno de los dos procesos, por lo que el otro proceso deberá esperar.
  31. 31. SOLUCIONES POR HARDWARE
  32. 32. Ofrece solucionar el problema mediante instrucciones especiales de máquina.Reducen la sobrecarga pero no son óptimas. Inhabilitación de interrupciones – Instrucciones especiales de máquina
  33. 33. INHABILITACIÓN DEINTERRUPCIONES
  34. 34. La solución de I.I. evita que el proceso abandoneel CPU durante la S.C., logrando así la exclusión mutua. El gran inconveniente que presenta esta opción es que desactivar y activar lasinterrupciones es muy costoso en lo que respecta a tiempo de ejecución, por lo que no es una buena opción para sistemas en tiempo real, por ejemplo { // Desactivar las interrupciones // S.C. // Activar las interrupciones nuevamente // S.n.C.
  35. 35. INSTRUCCIONES ESPECIALES DE MÁQUINA
  36. 36. Test-And-Set: esta función verifica el estado de una variable cerrojo devolviendo verdadero si el cerrojo estaba abierto (en 0), falso en otro caso.Además, al retornar, el cerrojo queda cerrado (biensea porque ya lo estaba o porque se cerro dentro de la función). Su uso es como se muestra a continuación: int cerrojo=0; void Proceso(int id) { while(test_and_set(cerrojo)); // S.C. cerrojo=0; // S.n.C.
  37. 37. OTRASSOLUCIONES
  38. 38. Ofrece solucionar el problema a través del soporte del Sistema Operativo o de los lenguajes de programaciónSemáforos – Monitores – Paso de mensajes
  39. 39. SEMÁFOROS
  40. 40. int mutex=MAX_RECURSOS; void signal(int *_mutex) { (_mutex*)++; if((*mutex)<=0) // Desencolar un proceso } void wait(int *_mutex) { (_mutex*)--; if((*mutex)<0) // Encolar un proceso }
  41. 41. Consta de dos instrucciones signal y wait, yuna variable mutex comun. Esta variable se suele fijar al numero de recursosdisponibles, la operación wait decrementa su valor y verifica si no es negativo (es decir, que al solicitarse habia alguno disponible); si no lo es, continua la ejecución, en caso contrario se puede utilizar espera activa o se puede bloquear el proceso e introducirlo en unacola para evitar el consumo de CPU. El signal simplemente libera un recurso y en caso de
  42. 42. MONITORES
  43. 43. Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a lade los semáforos , pero que son más fáciles decontrolar. Un monitor es un módulo de software que consta de uno o más procedimientos, una secuencia de inicio y unos datos locales. Suscaracterísticas fundamentales: Las variables de datos locales están solo accesibles para los procedimientos del monitor y no para los procedimientos externos. Un proceso entra en el monitor invocando a uno de sus procedimientos. Solo un proceso puede estar ejecutando en el monitor en un instantedado, cualquier otro proceso que haya invocado al monitor quedará suspendido mientras espera
  44. 44. PASO DEMENSAJES
  45. 45. Paso de mensajes: este sistema de comunicación tiene diversas implementaciones que solo serán mencionadas: directa e indirecta; sin buffer, con buffer, bien sea limitado o “ilimitado”; con y sinbloqueo. Se basa en un par de instrucciones send y receive, las cuales se encargan de enviar y leer, respectivamente, un determinado mensaje, ya seadirectamente a un proceso o bien sea a un buzón o buffer. Por ultimo, otro mecanismo de comunicación sumamente utilizado en Linux, es de las tuberías,que no son mas que flujos unidireccionales de datos implementados por el shell. Simplemente se toma la salida de un proceso y seusa como salida del siguiente. La implementación de esta técnica es sumamente sencilla: se crea un
  46. 46. BIBLIOGRAFÍA
  47. 47. STALLINGS, William – Sistemas Operativos, segunda edición. TANENBAUM, Andrew – Sistemas Operativos, Diseño e Implementación. INTERNET.

×