SlideShare ist ein Scribd-Unternehmen logo
1 von 20
SISTEMAS INFORMATICOS Y COMPUTACION SISTEMAS OPERATIVOS SINCRONIZACION DE PROCESOS Integrantes: Andrea Mendoza Anita Salinas
Objetivos * Presentar el problema de las secciones criticas, cuyas soluciones pueden utilizarse para asegurar la coherencia de los datos compartidos * Presentar soluciones tanto software como hardware para el problema de las secciones criticas.  * Presentar el concepto de transacción atónica y describir los mecanismos para garantizar la atomicidad
Sincronización de Procesos Un proceso cooperativo  es aquel que puede afectar o verse afectado por otros procesos que estén ejecutándose en el sistema.  Estos pueden compartir directamente un espacio de direcciones lógico (código o datos)  o compartir los datos solo a través de archivos o mensajes.
Fundamentos Supongamos que deseamos modificar el algoritmo para remediar una deficiencia.  Nuestra solución permite que haya como máximo BUFFER_SIZE -1 elementos al buffer al mismo tiempo. La posibilidad es  añadir una variable entera counterinicializada con el valor de cero. Código para el proceso productor: While  (true){ 	/* Produce un elemento en nextProduced */ while (counter == BUFFER_SIZE); /*No hace nada*/ 		buffer [in] = nextProduced; in= (in +1) % BUFFER_SIZE; counter ++; 	}
Código para el proceso consumidor: While  (true){ while (counter == 0); 	 /*No hace nada*/ nextConsumed= buffer [out]; out= (out +1) % BUFFER_SIZE; counter --;	 	} La ejecución concurrente de “counter++ y “counter--” es equivalente a una ejecucion secuencial donde las instrucciones de menor nivel se intercalan en un cierto orden arbitrario  (pero el orden dentro de cada nivel se conserva)
Problema de la selección critica Consideremos un sistema que consta de n procesos. Cada proceso tiene un segmento de código llamado sección critica, en el que el proceso puede modificar variables comunes, actualizar una tabla, escribir un archivo, etc. Dos procesos no pueden ejecutar su sección critica a la vez. Cualquier solución al problema de la sección critica deberá satisfacer los tres requisitos: ,[object Object]
Progreso
Espera limitada.,[object Object]
¿Por qué es preferible un kernel apropiativo a uno no apropiativo? Un kernel apropiativo es mas adecuado para la programación en tiempo real ya que permite a un proceso en tiempo real desalojar a un proceso que este ejecutando actualmente en el kernel
Solución de Peterson Proporciona una buena descripción algorítmica de la resolución del problema de la sección critica e ilustra algunas de las complejidades asociadas al diseño del software que satisfaga los requisitos de exclusión mutua progreso y tiempo de espera limitado. La solución de Peterson restringe a dos procesos que van alternando la ejecución de sus secciones criticas y de sus secciones restantes.
La variable turn indica que proceso va a entrar en su sección critica. La matriz flag se usa para indicar si un proceso esta preparado para entrar en su sección critica.  Propiedades: ,[object Object]
El requisito del progreso se  satisface
El requisito de espera limitada se cumple.,[object Object]
Ejemplo: En un entorno de un solo procesador pudiésemos impedir interrupciones, modificando una variable compartida asegurando así la secuencia actual de  instrucciones por orden y sin desalojo, este es el método que emplean los Kernels no apropiados. A diferencia de un entorno multiprocesador, si desactivamos las interrupciones consumimos mucho tiempo debido al paso de mensajes a todos los procesadores, retardando la entrada a la sección crítica y la eficiencia del sistema.
Por lo que los sistemas modernos proporcionan instrucciones especiales que permiten consultar y modificar el contenido de dos palabras atómicamente, como unidad de trabajo interrumpible. Tal es el caso de Exclusión Mutua con Test-and-Set 		  Datos compartidos: booleanlock = false; 			do{ while(TestAndSetLock (&lock)) 			;  /*No hace nada*/ 				//sección critica lock= False; 				 //sección restante 			}while (TRUE);
Hardware de Sincronización Atómicamente intercambia (swap) dos variables. 		void Swap(boolean &a, boolean &b) { booleantemp = a; 				a = b; 				b = temp; 		}
Exclusión Mutua con Intercambio (Swap) Datos compartidos (inicializados a false): booleanlock; booleanwaiting[n]; 	  Proceso Pi do { key = true; while (key == true) Swap(lock,key); //seccion critica lock = false; //sección restante }
Semáforos Herramienta de sincronización que no requiere de espera Semáforo S – variable entera Puede solo se puede acceder mediante dos operaciones indivisibles(atómicas) 		operaciones: wait (S): // P: proberen = probar whileS<= 0; 			//no-op 			S--; signal (S): // V:verhogen = incrementar 			S++;
Utilización Existen diferencias entre los semáforos  contadores y los semáforos binarios que trabajan con (0,1) también conocidos como cerrojos mutexya que proporcionan exclusión mutua Datos compartidos: semaphoremutex; //inicialmente mutex = 1 	Proceso Pi: do { waiting(mutex); //seccion critica signal(mutex); //sección restante } while (TRUE);
Implementación Es necesario dedinir un semáforo como un registro typedefstruct { intvalue; structprocess *list; } semaphore; Suponiendo que hayan dos operaciones simples: block: suspende el proceso que lo invoco. wakeup(P) : reanuda la ejecución de un proceso P bloqueado

Weitere ähnliche Inhalte

Was ist angesagt?

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutuatatyseli
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosAbimael hernandez
 
Algoritmos de Dekker
Algoritmos de DekkerAlgoritmos de Dekker
Algoritmos de Dekkermastermind87
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Uriel Martinez Cervantes
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 
Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.A6M0
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekkerJuanFrank13
 
Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De DekkerLuz_star
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1honeyjimenez
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSSelqit Mgw
 
Exclusion mutua y sincronizacion
Exclusion mutua y sincronizacionExclusion mutua y sincronizacion
Exclusion mutua y sincronizacionltgrajales
 

Was ist angesagt? (20)

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Procesos de los Sistemas Operativos
Procesos de los Sistemas OperativosProcesos de los Sistemas Operativos
Procesos de los Sistemas Operativos
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
Algoritmos de Dekker
Algoritmos de DekkerAlgoritmos de Dekker
Algoritmos de Dekker
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekker
 
Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De Dekker
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Presentación1
Presentación1Presentación1
Presentación1
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
Exclusion mutua y sincronizacion
Exclusion mutua y sincronizacionExclusion mutua y sincronizacion
Exclusion mutua y sincronizacion
 
Concepto de proceso
Concepto de procesoConcepto de proceso
Concepto de proceso
 

Andere mochten auch

Andere mochten auch (7)

Presentacion sistemas operativos
Presentacion sistemas operativosPresentacion sistemas operativos
Presentacion sistemas operativos
 
Procesos
ProcesosProcesos
Procesos
 
Comunicación entre Procesos - IPC
Comunicación entre Procesos - IPCComunicación entre Procesos - IPC
Comunicación entre Procesos - IPC
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Bloqueos Mortales
Bloqueos MortalesBloqueos Mortales
Bloqueos Mortales
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Semaforos
SemaforosSemaforos
Semaforos
 

Ähnlich wie SO Sincronización Procesos Secciones Críticas Semáforos

Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 
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 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosGUADALUPE
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosCESAR
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoJHOVANI189612GAZGA
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacintoAreli996
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
ARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdfARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdfMariuxiBayas3
 

Ähnlich wie SO Sincronización Procesos Secciones Críticas Semáforos (20)

Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
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 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
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforo
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
ARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdfARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdf
 
sistemas distribuidos 4
sistemas distribuidos 4sistemas distribuidos 4
sistemas distribuidos 4
 

SO Sincronización Procesos Secciones Críticas Semáforos

  • 1. SISTEMAS INFORMATICOS Y COMPUTACION SISTEMAS OPERATIVOS SINCRONIZACION DE PROCESOS Integrantes: Andrea Mendoza Anita Salinas
  • 2. Objetivos * Presentar el problema de las secciones criticas, cuyas soluciones pueden utilizarse para asegurar la coherencia de los datos compartidos * Presentar soluciones tanto software como hardware para el problema de las secciones criticas. * Presentar el concepto de transacción atónica y describir los mecanismos para garantizar la atomicidad
  • 3. Sincronización de Procesos Un proceso cooperativo es aquel que puede afectar o verse afectado por otros procesos que estén ejecutándose en el sistema. Estos pueden compartir directamente un espacio de direcciones lógico (código o datos) o compartir los datos solo a través de archivos o mensajes.
  • 4. Fundamentos Supongamos que deseamos modificar el algoritmo para remediar una deficiencia. Nuestra solución permite que haya como máximo BUFFER_SIZE -1 elementos al buffer al mismo tiempo. La posibilidad es añadir una variable entera counterinicializada con el valor de cero. Código para el proceso productor: While (true){ /* Produce un elemento en nextProduced */ while (counter == BUFFER_SIZE); /*No hace nada*/ buffer [in] = nextProduced; in= (in +1) % BUFFER_SIZE; counter ++; }
  • 5. Código para el proceso consumidor: While (true){ while (counter == 0); /*No hace nada*/ nextConsumed= buffer [out]; out= (out +1) % BUFFER_SIZE; counter --; } La ejecución concurrente de “counter++ y “counter--” es equivalente a una ejecucion secuencial donde las instrucciones de menor nivel se intercalan en un cierto orden arbitrario (pero el orden dentro de cada nivel se conserva)
  • 6.
  • 8.
  • 9. ¿Por qué es preferible un kernel apropiativo a uno no apropiativo? Un kernel apropiativo es mas adecuado para la programación en tiempo real ya que permite a un proceso en tiempo real desalojar a un proceso que este ejecutando actualmente en el kernel
  • 10. Solución de Peterson Proporciona una buena descripción algorítmica de la resolución del problema de la sección critica e ilustra algunas de las complejidades asociadas al diseño del software que satisfaga los requisitos de exclusión mutua progreso y tiempo de espera limitado. La solución de Peterson restringe a dos procesos que van alternando la ejecución de sus secciones criticas y de sus secciones restantes.
  • 11.
  • 12. El requisito del progreso se satisface
  • 13.
  • 14. Ejemplo: En un entorno de un solo procesador pudiésemos impedir interrupciones, modificando una variable compartida asegurando así la secuencia actual de instrucciones por orden y sin desalojo, este es el método que emplean los Kernels no apropiados. A diferencia de un entorno multiprocesador, si desactivamos las interrupciones consumimos mucho tiempo debido al paso de mensajes a todos los procesadores, retardando la entrada a la sección crítica y la eficiencia del sistema.
  • 15. Por lo que los sistemas modernos proporcionan instrucciones especiales que permiten consultar y modificar el contenido de dos palabras atómicamente, como unidad de trabajo interrumpible. Tal es el caso de Exclusión Mutua con Test-and-Set Datos compartidos: booleanlock = false; do{ while(TestAndSetLock (&lock)) ; /*No hace nada*/ //sección critica lock= False; //sección restante }while (TRUE);
  • 16. Hardware de Sincronización Atómicamente intercambia (swap) dos variables. void Swap(boolean &a, boolean &b) { booleantemp = a; a = b; b = temp; }
  • 17. Exclusión Mutua con Intercambio (Swap) Datos compartidos (inicializados a false): booleanlock; booleanwaiting[n]; Proceso Pi do { key = true; while (key == true) Swap(lock,key); //seccion critica lock = false; //sección restante }
  • 18. Semáforos Herramienta de sincronización que no requiere de espera Semáforo S – variable entera Puede solo se puede acceder mediante dos operaciones indivisibles(atómicas) operaciones: wait (S): // P: proberen = probar whileS<= 0; //no-op S--; signal (S): // V:verhogen = incrementar S++;
  • 19. Utilización Existen diferencias entre los semáforos contadores y los semáforos binarios que trabajan con (0,1) también conocidos como cerrojos mutexya que proporcionan exclusión mutua Datos compartidos: semaphoremutex; //inicialmente mutex = 1 Proceso Pi: do { waiting(mutex); //seccion critica signal(mutex); //sección restante } while (TRUE);
  • 20. Implementación Es necesario dedinir un semáforo como un registro typedefstruct { intvalue; structprocess *list; } semaphore; Suponiendo que hayan dos operaciones simples: block: suspende el proceso que lo invoco. wakeup(P) : reanuda la ejecución de un proceso P bloqueado
  • 21. Bloqueos Mutuos e Inanición Bloqueo mutuo (Deadlock) – dos ó más procesos están esperando indefinidamente por un evento que puede ser causado sólo por uno de los procesos que están en espera. Supongamos que: S y Q son dos semáforos inicializados a 1 P0 P1 wait(S); wait(Q); wait(Q); wait(S); . . signal(S); signal(Q); signal(Q); signal(S); Inanición – bloqueo indefinido. Un proceso puede jamás ser removido de la cola de semáforos en la cual se encuentra suspendido.