SlideShare una empresa de Scribd logo
1 de 28
UNIVERSIDAD NACIONAL EXPERIMENTAL
    “FRANCISCO DE MIRANADA “
   ÁREA CIENCIA DE LA EDUCACIÓN
      PROGRAMA:EDUCACIÓN
     U.C: SISTEMAS OPERATIVOS




                             PROFESORA:
                             LICDA. GLORIA MELÉNDEZ

 SANTA ANA DE CORO, ABRIL DE 2011
La sincronización entre procesos concurrentes es esencial para preservar
las relaciones de precedencia y para evitar los problemas de temporización
relacionados con la concurrencia. Los procesos deben sincronizarse unos con otros
cuando van a utilizar recursos compartidos, tales como estructuras de datos comunes
o dispositivos físicos. Dado que el sistema operativo no conoce, ni necesita conocer, la
semántica de las actividades del proceso. Los propios procesos deben encargarse de
sincronizar adecuadamente sus operaciones.


           Ante todo un punto fundamental en las tecnologías de diseños de sistemas
operativos es la concurrencia. Cuando se ejecutan varios procesos concurrentemente,
en el caso real de un sistema multiprocesador aparecen cuestiones de resolución de
conflictos y de cooperación.


                                          Índice
Los procesos concurrentes pueden interactuar de varias formas:


 Los procesos que no tienen conocimientos unos de otros pueden competir por recursos
  tales como: el tiempo del procesador o de los dispositivos de E/S.


Los procesos pueden tener conocimiento indirecto de los otros, porque comparten el
acceso a unos objetos comunes, tales como: un bloque de memoria principal o un archivo.


Los procesos pueden tener conocimiento directo de los otros y cooperar mediante
  intercambio de información.


Los puntos clave son la exclusión mutua y el interbloqueo.



                                             Índice
La sincronización entre procesos viene dada por la necesidad de coordinar
procesos concurrentes (los cuales son procesos que se encuentran activos durante un
tiempo determinado), y así, optimar su presencia en los sistemas. Este tipo de
administración, de la acción de los procesos, en forma explícita del sistema operativo
infiere que este no necesitará conocer lo detalles de ciertas tareas que se correrán
dentro de ella y será responsabilidad de los programadores que los algoritmos de
sincronización se encuentren bien diseñados para que no tenga problemas y vayan a
causar un error en el sistema y se guinde.


          Las formas de interacción explícita entre procesos pueden realizarse en varias
formas dependiendo de las necesidades y el nivel de integración de las distintas tareas
para lograr el trabajo requerido.

                                             Índice
Son una serie de protocolos que garantizan la integridad y consistencia en el
uso de los recursos reutilizables en serie, por el uso de varios procesos concurrentes.
Estos recursos reutilizables en serie son aquellos que solo pueden ser utilizados por un
proceso a la vez y que el podría ver afectado su trabajo si dos o mas procesos
concurrentes tratan de utilizarlos.



            El ejemplo más claro es el de la impresora que sólo puede imprimir una
página a la vez y de acuerdo a nuestra forma de trabajo, una página deberá ser impresa
por una sola aplicación o proceso, por lo tanto si otro proceso requiere de su uso tendrá
que esperar hasta que se libere o se lo permita el otro proceso.


                                             Índice
Es la manera más sencilla de interacción entre procesos debido a su
simplicidad de implantación. Esto no permite enviar información, pero es útil en
caso de necesitar realizar tareas coordinadas sencillas.




          Este tipo de interacción entre procesos trata de proveer un medio más
completo para la transmisión de información entre procesos, la coordinación de
tareas que utilicen recursos de uso colectivo para garantizar que el trabajo de
uno no afecte la integridad del recurso. Por ejemplo, los "pipes" y la memoria
compartida.


                                        Índice
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 utilizar variables compartidas para una serie de cometidos,
por ejemplo, indicadores de señalización y para acumulación de resultados
colectivos.


          Sin embargo, la actualización sin restricciones de variables compartidas
puede conducir a inconsistencias. Tales errores suelen ser dependientes de la
temporización específica y del modo de entrelazarse las acciones de los procesos.
Como resultado, los errores inducidos por la concurrencia pueden ser
extremadamente difíciles de detectar, reproducir y depurar.



                                      Índice
El hecho de que un espacio de memoria pueda ser accedida por
varios procesos podría traer problemas dentro de los sistemas. Por ejemplo,
cuando tenemos un dato y un proceso, para modificarlo debe esperar cierta
condición y lo observa, por lo que procede a tomar la decisión de modificar ese
valor, si justo en ese momento ese proceso es suspendido (sin que haya
logrado modificar el valor), y se ejecuta otro que modifique el valor en
cuestión, cuando se vuelve a ejecutar el primer proceso y termina su
modificación ese acto se estará realizando bajo condiciones distintas a las que
lo motivaron a tomar la decisión y ese valor que había colocado el otro proceso
se pierde.




                                     Índice
Sí se presenta un problema de inconsistencia de datos en el área de las
variables compartidas, se debe garantizar que cuando un proceso necesite
modificar un dato de la sección crítica los demás procesos no lo hagan, para eso se
restringe el uso a los demás procesos y para hacer modificaciones a las variables
compartidas cuando otro lo está realizando, a esto se le llama exclusión mutua.


          Por otra parte, cuando un proceso requiere evitar que los demás
procesos no utilicen las variables compartidas procede a notificárselo al sistema
desde un principio hasta un fin explícitamente descrito, a éste segmento del
proceso se le llama sección crítica. Por lo tanto, un sólo proceso puede estar en su
sección crítica a la vez y el sistema operativo debe garantizarlo.


                                          Índice
En cierto sentido, la actualización de una variable compartida puede ser
considerada como una sección critica.
          La sección critica 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. Cuando un proceso entra a una sección crítica,
debe completar todas las instrucciones incluidas en ella, antes de que se pueda
permitir a cualquier otro proceso entrar a la misma sección critica. Sólo el
proceso que ejecuta la sección critica tiene permitido el acceso a la variable
compartida; los restantes procesos deberían tenerlo prohibido hasta la
terminación. A esto se le suele llamar exclusión mutua, en la cual un solo proceso
excluye temporalmente a todos los demás de utilizar un recurso compartido con
el fin de asegurar la integridad del sistema

                                     Índice
Cabe destacar, que si el recurso compartido es una variable, la exclusión
mutua asegura como máximo un proceso cada vez tenga acceso a ella durante las
actualizaciones críticas que conducen a valores temporalmente inconsistentes.
Consiguientemente, los restantes procesos sólo ven valores consistentes de las
variables compartidas. En el caso de compartir dispositivos, la necesidad de exclusión
mutua es incluso más obvia cuando se considera los problemas que puede provocar
su uso incontrolado: la salida impresa procedente de varios programas puede
aparecer irrecuperablemente entremezclada sobre un único formulario, o la válvula
de un conducto puede ser obligada a estar a la vez abierta y cerrada por dos procesos
concurrentes pero sin sincronización. Cuando estas operaciones se realizan en modo
mutuamente exclusivo. Solo un programa en cada punto tiene permitido el control
de un dispositivo reutilizable en serie.


                                           Índice
Para definir la sección crítica y eliminar los problemas de la exclusión mutua se
 deberá tomar en cuenta lo siguiente:

Asegurar exclusión mutua entre los procesos al acceder al recurso compartido
 protegido.

No hacer suposiciones con respecto a las velocidades y prioridades relativas de
 los procesos en conflicto.

Garantizar que el aborto o terminación de cualquier proceso fuera de su
 sección crítica no afecte a la capacidad de los restantes procesos contendientes
 para acceder al recurso compartido.

 Cuando más de un proceso desee entrar a la sección crítica, conceder la
 entrada a solo uno de ellos en tiempo finito.




                                       Índice
El modo más simple de asegurar la exclusión mutua es descartar la
concurrencia. Este método es demasiado drástico, ya que también anula todas
las mejoras del rendimiento, que posibilita la ejecución concurrente de
programas. Lo que realmente se busca es conceder temporalmente a un
proceso que necesita completar una sección crítica el acceso exclusivo a un
recurso compartido.




                                    Índice
En muchas estrategias de exclusión mutua, cada proceso observa el
siguiente protocolo básico.

              ...negociación del protocolo;// El ganador continua
                           sección crítica;// Uso exclusivo del recurso
                  protocolo de liberación;// liberación el recurso...

         Un proceso que desea entrar a una sección critica negocia primero con
todos los restantes interesados para asegurarse que no haya ninguna otra actividad
conflictiva en progreso, y que todos los procesos relacionados estén al tanto de la
temporal e inminente no disponibilidad del recurso. Una vez alcanzando el
consenso, el proceso ganador comienza a ejecutar su sección critica de código. Al
terminar, el proceso informa al resto de los contendientes que el recurso esta
disponible y puede iniciarse otra ronda de negociaciones.


                                      Índice
Son una herramienta fácil de implementar y asegura la exclusión mutua
en los sistemas multiprocesos. Consiste en una variable que almacena un número
entero que será utilizado para indicar si hay alguien en una sección crítica o no.
Para el control de esto hay dos funciones que permiten lograr el acceso a la sección
crítica por parte de los procesos, esto implica que ellos deben estar muy bien
demarcados en cuanto a sus secciones críticas.


         El problema es claro, cuando se decide que hay que entrar a la sección
crítica se debe ejecutar una modificación de este semáforo para indicarlo, pero
dentro de un comando del microprocesador indivisible. Este es, para que no haya
la posibilidad de suspensión del proceso justo en ese momento (que es la
posibilidad problema).

                                       Índice
Para ellos se plantean dos funciones básicas y sencillas de utilizar:


 Wait (semáforo): que se encarga de activar el semáforo para evitar que otro
proceso entre en la sección crítica. Internamente cuenta con la premisa de que
una vez tomada la decisión de activar el semáforo se ejecutará dicha activación
en un comando indivisible para el microprocesador.


 Signal (semáforo): que se encarga de liberar el semáforo para que otro
pueda acceder a él.




                                       Índice
Como es de esperarse pueden existir varias secciones criticas dentro de los
procesos que no necesariamente tengan que acceder a la misma información por
lo tanto no se debería considerar una exclusión mutua en esos casos.


     Por ejemplo, si una tarea va a acceder a una variable A y otra a una variable
B, no habría ningún problema en que ambos accedieran a los datos al mismo
instante (aparente). Es por eso que las funciones Wait y Signal poseen un
parámetro (semáforo) de tal forma que se puedan definir tantos semáforos como
variables o grupos de variables compartibles hayan dentro de un sistema.




                                     Índice
La implementación de estas funciones queda así:

Wait(s):      while (!(s>0)) {};
             s - -;
Signal(s):     s++;

Por lo tanto, si un proceso quiere hacer uso de un semáforo para implementar
una
 sección crítica será:
{       ...
         Wait (variable_semáforo_1);
         Sección Crítica;
         Signal (variable_semáforo_1);
         ...
}




                                   Índice
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
sólo son accesibles a los procedimientos de éste. 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.




                                     Índice
Una característica básica de los monitores es proporcionar control sobre
las operaciones realizadas y sobre los elementos compartidos con el fin de prevenir
actuaciones dañinas o sin significado. De esta forma, se limitan los tipos de
actuaciones proporcionando un conjunto de procedimientos de manipulación
fiables y bien probados. Éstos avanzan un paso en este sentido haciendo los datos
críticos accesibles indirecta y exclusivamente mediante un conjunto de
procedimientos públicos disponibles.


         Los monitores encapsulan los datos utilizados por los procesos
concurrentes y permiten su manipulación sólo por medio de operaciones
adecuadas y sincronizadas. Nunca existirá peligro de actualización inconsistente
por entrelazamiento de llamadas concurrentes ya que los procesos del monitor
siempre se ejecutarán en exclusión mutua.
                                        Índice
Un    mensaje es una colección de información que puede ser

intercambiada entre un proceso emisor y un proceso receptor.


          Un mensaje puede contener datos, órdenes de ejecución e, incluso,
código a transmitir entre dos o más procesos. Aunque, en general, el contenido
de un mensaje quedaría dividido en dos campos bien separados; Por un lado, la
cabecera que habitualmente tiene un formato fijo para cada sistema operativo-y,
por otro lado, el cuerpo del mensaje que contiene el mensaje en sí y cuya
longitud puede variar incluso dentro de un mismo SO. Las operaciones de
mensaje típicas proporcionadas por el SO son: enviar (send) y recibir (receive).




                                      Índice
Las implementaciones del envío y recepción de mensajes pueden diferir
en una serie de detalles pero todas ellas mantienen la importancia de un
conjunto de cuestiones que son:


1) Denominación o direccionamiento
2) Copia
3) Intercambio síncrono vs intercambio asíncrono.
4) Longitud




                                     Índice
Existe una forma de implementar la exclusión mutua utilizando
directamente las funciones de hardware. Se trata de habilitar y deshabilitar las
interrupciones de hardware, vía que es utilizada para el control de la
conmutación entre procesos. Claro, su efectividad es debida a que cuando se
deshabilita las interrupciones nadie más podrá utilizar los recursos del sistema
hasta que se vuelvan a habilitar las interrupciones. Ya los semáforos
desaparecen pero todos los recursos son considerados como un "todo" donde
mientras uno lo usa los demás quedan excluidos de tal posibilidad, aunque las
variables implicadas sean distintas.




                                       Índice
Así existen las funciones de Hardware:

DI: para deshabilitar las interrupciones.
EI: para habilitar las interrupciones.
De esta forma el proceso queda:
...
DI
Sección Crítica;
EI
...
Aunque ciertos procesadores cuentan con otros funciones diseñadas con el
fin de satisfacer las necesidades de la exclusión mutua esta es la forma que
está presente en casi todos los microprocesadores y microcontroladores
existentes en el mercado.




                                      Índice
Una   situación de interbloqueo tiene lugar cuando ninguno de los

procesos que compiten por los recursos del sistema o interactúan entre sí puede
avanzar por carecer de algún recurso o esperar a que se produzca algún tipo de
evento.
          Deben darse tres condiciones para que se produzca interbloqueo


1. Que exista acceso a algún recurso en exclusión mutua.
2. Que un proceso pueda retener los recursos que le han sido asignados mientras
espera que se le asignen los que necesitan.
3. Que ningún proceso pueda ser obligado a abandonar los recursos que retenga.


Estas tres condiciones de interbloqueo son condiciones necesarias pero no
suficientes, es decir, pueden producirse tales situaciones y que el sistema no
evolucione a un interbloqueo.

                                       Índice
LA RED, D (2001). Sistema Operativos. Universidad Nacional del Noroeste ,
      Argentina

RUIZ, P (2004). Sistema Operativos. California, USA: Commons.
Sicronización entre procesos

Más contenido relacionado

La actualidad más candente

Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.oriosofelia
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoriaadolfoahumada94
 
Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos unrated999
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesosjulio izaguirre
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativoEmily_Fdez
 
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...lupita zume
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discosJazmín Limón
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidosVictor Milano
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentesurumisama
 
Procesos Interrupciones y Nucleo
 Procesos Interrupciones y Nucleo Procesos Interrupciones y Nucleo
Procesos Interrupciones y NucleoG Hoyos A
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Diagrama de-estado-de-procesos
Diagrama de-estado-de-procesosDiagrama de-estado-de-procesos
Diagrama de-estado-de-procesosGiant_serch
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 

La actualidad más candente (20)

Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.o
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoria
 
Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
3. Análisis de Requerimientos
3. Análisis de Requerimientos3. Análisis de Requerimientos
3. Análisis de Requerimientos
 
Interbloqueo
InterbloqueoInterbloqueo
Interbloqueo
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
 
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...2.5 planificación del procesador, niveles objetivos y criterios de planificac...
2.5 planificación del procesador, niveles objetivos y criterios de planificac...
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentes
 
Procesos Interrupciones y Nucleo
 Procesos Interrupciones y Nucleo Procesos Interrupciones y Nucleo
Procesos Interrupciones y Nucleo
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Diagrama de-estado-de-procesos
Diagrama de-estado-de-procesosDiagrama de-estado-de-procesos
Diagrama de-estado-de-procesos
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 

Destacado

Comunicación entre Procesos - IPC
Comunicación entre Procesos - IPCComunicación entre Procesos - IPC
Comunicación entre Procesos - IPCmartadans
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSlorenapardo
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesosmastermind87
 
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
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
7dies 191 revista
7dies 191 revista7dies 191 revista
7dies 191 revistasecusan
 
Documento sobre contaminacion del agua
Documento sobre contaminacion del aguaDocumento sobre contaminacion del agua
Documento sobre contaminacion del aguaTatiana Paola Ortega
 
Protecciones en vivienda
Protecciones en viviendaProtecciones en vivienda
Protecciones en viviendacristilucia
 
Tics en Educacion, herramientas,didactica y curriculo
Tics en Educacion, herramientas,didactica y curriculoTics en Educacion, herramientas,didactica y curriculo
Tics en Educacion, herramientas,didactica y curriculosonyacanon
 
Seminario de grado I y II
Seminario de grado I y IISeminario de grado I y II
Seminario de grado I y IIMarie Gonzalez
 
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓN
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓNCÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓN
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓNcarballeira123
 
Emprendimien to empresas escojida
Emprendimien to empresas escojidaEmprendimien to empresas escojida
Emprendimien to empresas escojidaNellyfachelly
 
Frequently Asked Questions About Your Child's Summer Day Camp Experience
Frequently Asked Questions About Your Child's Summer Day Camp ExperienceFrequently Asked Questions About Your Child's Summer Day Camp Experience
Frequently Asked Questions About Your Child's Summer Day Camp ExperienceBuzz Marketing Pros
 

Destacado (20)

Comunicación entre Procesos - IPC
Comunicación entre Procesos - IPCComunicación entre Procesos - IPC
Comunicación entre Procesos - IPC
 
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOSSICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de 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
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
7dies 191 revista
7dies 191 revista7dies 191 revista
7dies 191 revista
 
Trabajo de n 20
Trabajo de n 20Trabajo de n 20
Trabajo de n 20
 
Documento sobre contaminacion del agua
Documento sobre contaminacion del aguaDocumento sobre contaminacion del agua
Documento sobre contaminacion del agua
 
Protecciones en vivienda
Protecciones en viviendaProtecciones en vivienda
Protecciones en vivienda
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Tics en Educacion, herramientas,didactica y curriculo
Tics en Educacion, herramientas,didactica y curriculoTics en Educacion, herramientas,didactica y curriculo
Tics en Educacion, herramientas,didactica y curriculo
 
Seminario de grado I y II
Seminario de grado I y IISeminario de grado I y II
Seminario de grado I y II
 
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓN
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓNCÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓN
CÓDIGO DEONTOLÓGICO DE LOS PROFESIONALES DE LA EDUCACIÓN
 
La universidad en el peru
La  universidad en el peruLa  universidad en el peru
La universidad en el peru
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Emprendimien to empresas escojida
Emprendimien to empresas escojidaEmprendimien to empresas escojida
Emprendimien to empresas escojida
 
Hardware.
Hardware. Hardware.
Hardware.
 
Frequently Asked Questions About Your Child's Summer Day Camp Experience
Frequently Asked Questions About Your Child's Summer Day Camp ExperienceFrequently Asked Questions About Your Child's Summer Day Camp Experience
Frequently Asked Questions About Your Child's Summer Day Camp Experience
 
Presentación1
Presentación1Presentación1
Presentación1
 

Similar a Sicronización entre procesos

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
 
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
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentegiovatovar
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEgladysmamani
 
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIAS
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIASUNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIAS
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIASLisleiden Luzardo
 
Sistemas operativos diapositiva
Sistemas operativos diapositivaSistemas operativos diapositiva
Sistemas operativos diapositivaAndrea
 
Trabajo de sistemas operativos
Trabajo de sistemas operativosTrabajo de sistemas operativos
Trabajo de sistemas operativosWpdw Rko
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosLlabajo Baez
 

Similar a Sicronización entre procesos (20)

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
 
Diapositivas capitulo 4
Diapositivas capitulo 4Diapositivas capitulo 4
Diapositivas capitulo 4
 
Diapositivas capitulo 4
Diapositivas capitulo 4Diapositivas capitulo 4
Diapositivas capitulo 4
 
Diapositivas capitulo 4
Diapositivas capitulo 4Diapositivas capitulo 4
Diapositivas capitulo 4
 
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
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIAS
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIASUNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIAS
UNIDAD II PARTE 2 ADMINISTRACIÓN DE MEMORIAS
 
Sistemas operativos diapositiva
Sistemas operativos diapositivaSistemas operativos diapositiva
Sistemas operativos diapositiva
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Trabajo de sistemas operativos
Trabajo de sistemas operativosTrabajo de sistemas operativos
Trabajo de sistemas operativos
 
Planificacion de procesos
Planificacion de procesosPlanificacion de procesos
Planificacion de procesos
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
:)Resumen
:)Resumen:)Resumen
:)Resumen
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 

Más de glocom15

Arquitectura del computador
Arquitectura del computadorArquitectura del computador
Arquitectura del computadorglocom15
 
Plataformas virtuales
Plataformas virtualesPlataformas virtuales
Plataformas virtualesglocom15
 
Bloque 0. gloria melendez
Bloque 0. gloria melendezBloque 0. gloria melendez
Bloque 0. gloria melendezglocom15
 
Tipos de s.o
Tipos de s.oTipos de s.o
Tipos de s.oglocom15
 
Clase nº2 tipos de s.o
Clase nº2  tipos de s.oClase nº2  tipos de s.o
Clase nº2 tipos de s.oglocom15
 
Evolución de los so
Evolución de los soEvolución de los so
Evolución de los soglocom15
 

Más de glocom15 (7)

Arquitectura del computador
Arquitectura del computadorArquitectura del computador
Arquitectura del computador
 
Plataformas virtuales
Plataformas virtualesPlataformas virtuales
Plataformas virtuales
 
Bloque 0. gloria melendez
Bloque 0. gloria melendezBloque 0. gloria melendez
Bloque 0. gloria melendez
 
Tipos de s.o
Tipos de s.oTipos de s.o
Tipos de s.o
 
Clase nº2 tipos de s.o
Clase nº2  tipos de s.oClase nº2  tipos de s.o
Clase nº2 tipos de s.o
 
Evolución de los so
Evolución de los soEvolución de los so
Evolución de los so
 
Hardware
HardwareHardware
Hardware
 

Sicronización entre procesos

  • 1. UNIVERSIDAD NACIONAL EXPERIMENTAL “FRANCISCO DE MIRANADA “ ÁREA CIENCIA DE LA EDUCACIÓN PROGRAMA:EDUCACIÓN U.C: SISTEMAS OPERATIVOS PROFESORA: LICDA. GLORIA MELÉNDEZ SANTA ANA DE CORO, ABRIL DE 2011
  • 2.
  • 3. La sincronización entre procesos concurrentes es esencial para preservar las relaciones de precedencia y para evitar los problemas de temporización relacionados con la concurrencia. Los procesos deben sincronizarse unos con otros cuando van a utilizar recursos compartidos, tales como estructuras de datos comunes o dispositivos físicos. Dado que el sistema operativo no conoce, ni necesita conocer, la semántica de las actividades del proceso. Los propios procesos deben encargarse de sincronizar adecuadamente sus operaciones. Ante todo un punto fundamental en las tecnologías de diseños de sistemas operativos es la concurrencia. Cuando se ejecutan varios procesos concurrentemente, en el caso real de un sistema multiprocesador aparecen cuestiones de resolución de conflictos y de cooperación. Índice
  • 4. Los procesos concurrentes pueden interactuar de varias formas:  Los procesos que no tienen conocimientos unos de otros pueden competir por recursos tales como: el tiempo del procesador o de los dispositivos de E/S. Los procesos pueden tener conocimiento indirecto de los otros, porque comparten el acceso a unos objetos comunes, tales como: un bloque de memoria principal o un archivo. Los procesos pueden tener conocimiento directo de los otros y cooperar mediante intercambio de información. Los puntos clave son la exclusión mutua y el interbloqueo. Índice
  • 5. La sincronización entre procesos viene dada por la necesidad de coordinar procesos concurrentes (los cuales son procesos que se encuentran activos durante un tiempo determinado), y así, optimar su presencia en los sistemas. Este tipo de administración, de la acción de los procesos, en forma explícita del sistema operativo infiere que este no necesitará conocer lo detalles de ciertas tareas que se correrán dentro de ella y será responsabilidad de los programadores que los algoritmos de sincronización se encuentren bien diseñados para que no tenga problemas y vayan a causar un error en el sistema y se guinde. Las formas de interacción explícita entre procesos pueden realizarse en varias formas dependiendo de las necesidades y el nivel de integración de las distintas tareas para lograr el trabajo requerido. Índice
  • 6. Son una serie de protocolos que garantizan la integridad y consistencia en el uso de los recursos reutilizables en serie, por el uso de varios procesos concurrentes. Estos recursos reutilizables en serie son aquellos que solo pueden ser utilizados por un proceso a la vez y que el podría ver afectado su trabajo si dos o mas procesos concurrentes tratan de utilizarlos. El ejemplo más claro es el de la impresora que sólo puede imprimir una página a la vez y de acuerdo a nuestra forma de trabajo, una página deberá ser impresa por una sola aplicación o proceso, por lo tanto si otro proceso requiere de su uso tendrá que esperar hasta que se libere o se lo permita el otro proceso. Índice
  • 7. Es la manera más sencilla de interacción entre procesos debido a su simplicidad de implantación. Esto no permite enviar información, pero es útil en caso de necesitar realizar tareas coordinadas sencillas. Este tipo de interacción entre procesos trata de proveer un medio más completo para la transmisión de información entre procesos, la coordinación de tareas que utilicen recursos de uso colectivo para garantizar que el trabajo de uno no afecte la integridad del recurso. Por ejemplo, los "pipes" y la memoria compartida. Índice
  • 8. 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 utilizar variables compartidas para una serie de cometidos, por ejemplo, indicadores de señalización y para acumulación de resultados colectivos. Sin embargo, la actualización sin restricciones de variables compartidas puede conducir a inconsistencias. Tales errores suelen ser dependientes de la temporización específica y del modo de entrelazarse las acciones de los procesos. Como resultado, los errores inducidos por la concurrencia pueden ser extremadamente difíciles de detectar, reproducir y depurar. Índice
  • 9. El hecho de que un espacio de memoria pueda ser accedida por varios procesos podría traer problemas dentro de los sistemas. Por ejemplo, cuando tenemos un dato y un proceso, para modificarlo debe esperar cierta condición y lo observa, por lo que procede a tomar la decisión de modificar ese valor, si justo en ese momento ese proceso es suspendido (sin que haya logrado modificar el valor), y se ejecuta otro que modifique el valor en cuestión, cuando se vuelve a ejecutar el primer proceso y termina su modificación ese acto se estará realizando bajo condiciones distintas a las que lo motivaron a tomar la decisión y ese valor que había colocado el otro proceso se pierde. Índice
  • 10. Sí se presenta un problema de inconsistencia de datos en el área de las variables compartidas, se debe garantizar que cuando un proceso necesite modificar un dato de la sección crítica los demás procesos no lo hagan, para eso se restringe el uso a los demás procesos y para hacer modificaciones a las variables compartidas cuando otro lo está realizando, a esto se le llama exclusión mutua. Por otra parte, cuando un proceso requiere evitar que los demás procesos no utilicen las variables compartidas procede a notificárselo al sistema desde un principio hasta un fin explícitamente descrito, a éste segmento del proceso se le llama sección crítica. Por lo tanto, un sólo proceso puede estar en su sección crítica a la vez y el sistema operativo debe garantizarlo. Índice
  • 11. En cierto sentido, la actualización de una variable compartida puede ser considerada como una sección critica. La sección critica 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. Cuando un proceso entra a una sección crítica, debe completar todas las instrucciones incluidas en ella, antes de que se pueda permitir a cualquier otro proceso entrar a la misma sección critica. Sólo el proceso que ejecuta la sección critica tiene permitido el acceso a la variable compartida; los restantes procesos deberían tenerlo prohibido hasta la terminación. A esto se le suele llamar exclusión mutua, en la cual un solo proceso excluye temporalmente a todos los demás de utilizar un recurso compartido con el fin de asegurar la integridad del sistema Índice
  • 12. Cabe destacar, que si el recurso compartido es una variable, la exclusión mutua asegura como máximo un proceso cada vez tenga acceso a ella durante las actualizaciones críticas que conducen a valores temporalmente inconsistentes. Consiguientemente, los restantes procesos sólo ven valores consistentes de las variables compartidas. En el caso de compartir dispositivos, la necesidad de exclusión mutua es incluso más obvia cuando se considera los problemas que puede provocar su uso incontrolado: la salida impresa procedente de varios programas puede aparecer irrecuperablemente entremezclada sobre un único formulario, o la válvula de un conducto puede ser obligada a estar a la vez abierta y cerrada por dos procesos concurrentes pero sin sincronización. Cuando estas operaciones se realizan en modo mutuamente exclusivo. Solo un programa en cada punto tiene permitido el control de un dispositivo reutilizable en serie. Índice
  • 13. Para definir la sección crítica y eliminar los problemas de la exclusión mutua se deberá tomar en cuenta lo siguiente: Asegurar exclusión mutua entre los procesos al acceder al recurso compartido protegido. No hacer suposiciones con respecto a las velocidades y prioridades relativas de los procesos en conflicto. Garantizar que el aborto o terminación de cualquier proceso fuera de su sección crítica no afecte a la capacidad de los restantes procesos contendientes para acceder al recurso compartido.  Cuando más de un proceso desee entrar a la sección crítica, conceder la entrada a solo uno de ellos en tiempo finito. Índice
  • 14. El modo más simple de asegurar la exclusión mutua es descartar la concurrencia. Este método es demasiado drástico, ya que también anula todas las mejoras del rendimiento, que posibilita la ejecución concurrente de programas. Lo que realmente se busca es conceder temporalmente a un proceso que necesita completar una sección crítica el acceso exclusivo a un recurso compartido. Índice
  • 15. En muchas estrategias de exclusión mutua, cada proceso observa el siguiente protocolo básico. ...negociación del protocolo;// El ganador continua sección crítica;// Uso exclusivo del recurso protocolo de liberación;// liberación el recurso... Un proceso que desea entrar a una sección critica negocia primero con todos los restantes interesados para asegurarse que no haya ninguna otra actividad conflictiva en progreso, y que todos los procesos relacionados estén al tanto de la temporal e inminente no disponibilidad del recurso. Una vez alcanzando el consenso, el proceso ganador comienza a ejecutar su sección critica de código. Al terminar, el proceso informa al resto de los contendientes que el recurso esta disponible y puede iniciarse otra ronda de negociaciones. Índice
  • 16. Son una herramienta fácil de implementar y asegura la exclusión mutua en los sistemas multiprocesos. Consiste en una variable que almacena un número entero que será utilizado para indicar si hay alguien en una sección crítica o no. Para el control de esto hay dos funciones que permiten lograr el acceso a la sección crítica por parte de los procesos, esto implica que ellos deben estar muy bien demarcados en cuanto a sus secciones críticas. El problema es claro, cuando se decide que hay que entrar a la sección crítica se debe ejecutar una modificación de este semáforo para indicarlo, pero dentro de un comando del microprocesador indivisible. Este es, para que no haya la posibilidad de suspensión del proceso justo en ese momento (que es la posibilidad problema). Índice
  • 17. Para ellos se plantean dos funciones básicas y sencillas de utilizar:  Wait (semáforo): que se encarga de activar el semáforo para evitar que otro proceso entre en la sección crítica. Internamente cuenta con la premisa de que una vez tomada la decisión de activar el semáforo se ejecutará dicha activación en un comando indivisible para el microprocesador.  Signal (semáforo): que se encarga de liberar el semáforo para que otro pueda acceder a él. Índice
  • 18. Como es de esperarse pueden existir varias secciones criticas dentro de los procesos que no necesariamente tengan que acceder a la misma información por lo tanto no se debería considerar una exclusión mutua en esos casos. Por ejemplo, si una tarea va a acceder a una variable A y otra a una variable B, no habría ningún problema en que ambos accedieran a los datos al mismo instante (aparente). Es por eso que las funciones Wait y Signal poseen un parámetro (semáforo) de tal forma que se puedan definir tantos semáforos como variables o grupos de variables compartibles hayan dentro de un sistema. Índice
  • 19. La implementación de estas funciones queda así: Wait(s): while (!(s>0)) {}; s - -; Signal(s): s++; Por lo tanto, si un proceso quiere hacer uso de un semáforo para implementar una sección crítica será: { ... Wait (variable_semáforo_1); Sección Crítica; Signal (variable_semáforo_1); ... } Índice
  • 20. 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 sólo son accesibles a los procedimientos de éste. 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. Índice
  • 21. Una característica básica de los monitores es proporcionar control sobre las operaciones realizadas y sobre los elementos compartidos con el fin de prevenir actuaciones dañinas o sin significado. De esta forma, se limitan los tipos de actuaciones proporcionando un conjunto de procedimientos de manipulación fiables y bien probados. Éstos avanzan un paso en este sentido haciendo los datos críticos accesibles indirecta y exclusivamente mediante un conjunto de procedimientos públicos disponibles. Los monitores encapsulan los datos utilizados por los procesos concurrentes y permiten su manipulación sólo por medio de operaciones adecuadas y sincronizadas. Nunca existirá peligro de actualización inconsistente por entrelazamiento de llamadas concurrentes ya que los procesos del monitor siempre se ejecutarán en exclusión mutua. Índice
  • 22. Un mensaje es una colección de información que puede ser intercambiada entre un proceso emisor y un proceso receptor. Un mensaje puede contener datos, órdenes de ejecución e, incluso, código a transmitir entre dos o más procesos. Aunque, en general, el contenido de un mensaje quedaría dividido en dos campos bien separados; Por un lado, la cabecera que habitualmente tiene un formato fijo para cada sistema operativo-y, por otro lado, el cuerpo del mensaje que contiene el mensaje en sí y cuya longitud puede variar incluso dentro de un mismo SO. Las operaciones de mensaje típicas proporcionadas por el SO son: enviar (send) y recibir (receive). Índice
  • 23. Las implementaciones del envío y recepción de mensajes pueden diferir en una serie de detalles pero todas ellas mantienen la importancia de un conjunto de cuestiones que son: 1) Denominación o direccionamiento 2) Copia 3) Intercambio síncrono vs intercambio asíncrono. 4) Longitud Índice
  • 24. Existe una forma de implementar la exclusión mutua utilizando directamente las funciones de hardware. Se trata de habilitar y deshabilitar las interrupciones de hardware, vía que es utilizada para el control de la conmutación entre procesos. Claro, su efectividad es debida a que cuando se deshabilita las interrupciones nadie más podrá utilizar los recursos del sistema hasta que se vuelvan a habilitar las interrupciones. Ya los semáforos desaparecen pero todos los recursos son considerados como un "todo" donde mientras uno lo usa los demás quedan excluidos de tal posibilidad, aunque las variables implicadas sean distintas. Índice
  • 25. Así existen las funciones de Hardware: DI: para deshabilitar las interrupciones. EI: para habilitar las interrupciones. De esta forma el proceso queda: ... DI Sección Crítica; EI ... Aunque ciertos procesadores cuentan con otros funciones diseñadas con el fin de satisfacer las necesidades de la exclusión mutua esta es la forma que está presente en casi todos los microprocesadores y microcontroladores existentes en el mercado. Índice
  • 26. Una situación de interbloqueo tiene lugar cuando ninguno de los procesos que compiten por los recursos del sistema o interactúan entre sí puede avanzar por carecer de algún recurso o esperar a que se produzca algún tipo de evento. Deben darse tres condiciones para que se produzca interbloqueo 1. Que exista acceso a algún recurso en exclusión mutua. 2. Que un proceso pueda retener los recursos que le han sido asignados mientras espera que se le asignen los que necesitan. 3. Que ningún proceso pueda ser obligado a abandonar los recursos que retenga. Estas tres condiciones de interbloqueo son condiciones necesarias pero no suficientes, es decir, pueden producirse tales situaciones y que el sistema no evolucione a un interbloqueo. Índice
  • 27. LA RED, D (2001). Sistema Operativos. Universidad Nacional del Noroeste , Argentina RUIZ, P (2004). Sistema Operativos. California, USA: Commons.