Your SlideShare is downloading. ×
0
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
SICRONIZACION DE PROCESOS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SICRONIZACION DE PROCESOS

10,713

Published on

Published in: Education, Business, Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,713
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
620
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sincronización de procesos 5.1. Antecedentes: 5.2. El problema de la sección crítica 5.3. Hardware de sincronización 5.4. Semáforos 5.5. Problemas clásicos de sincronización 5.6. Monitores 5.7. Sincronización en Java
  • 2. Sincronización de Procesos 5.1. Antecedentes: Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se están ejecutando en el sistema • La cooperación entre procesos requiere: la ejecución concurrente de los mismos, mecanismos de comunicación y mecanismos de sincronización • Un problema clásico de procesos cooperativos es el problema del productor- consumidor Productor: Consumidor: repeat repeat ........ while contador =n do nada; producir un elemento en sigp sigc:=buffer[sale]; sale:=sale+1 mod n; ………….. ……….. while entra +1 mod n=sale do nada; Consumir el elemento que esta en buffer[ entra]:=sigp; sigc entra:=entra+1 mod n; ……. until false ; until false ;
  • 3. • Los códigos pueden ser modificados como sigue: Productor: Consumidor: repeat repeat ........ while contador =n do nada; producir un elemento en sigp sigc:=buffer[sale]; ………….. sale:=sale+1 mod n; while contador =n do nada; contador:=contador -1; buffer[ entra]:=sigp; ……….. entra:=entra+1 mod n; Consumir el elemento que esta en sigc contador:=contador +1; ……. until false ; until false ; • Cada rutina es correcta pero pueden no funcionar correctamente correcta, cuando son ejecutadas concurrentemente • La situación en la que varios procesos acceden y manipulan el mismo dato concurrentemente, y el resultado de la ejecución depende del particular orden en que los accesos tienen lugar, es llamada condición de competencia • Se requiere alguna forma de sincronización para garantizar que solo un proceso a la vez puede estar manipulando el dato.
  • 4. 5.2. El problema de la sección crítica Dado un conjunto n de procesos, cada proceso tiene un segmento de código, llamado sección crítica, en la cual los procesos pueden cambiar variables comunes, actualizar una tabla, grabar un archivo, etc. La característica importante del sistema es que, cuando un proceso se esta ejecutando en su sección crítica; ningún otro proceso puede ejecutarse en su sección crítica. En un sistema, la ejecución de las secciones críticas de los procesos debe ser mutuamente excluyentes en el tiempo. El problema de la sección crítica consiste en diseñar un protocolo que los procesos puedan usar para cooperar. Cada proceso debe solicitar permiso para ingresar a su sección crítica. La sección de código que implementa esta solicitud es la sección de ingreso. La sección crítica puede ir seguida de una sección de egreso. El código que queda es la sección restante.
  • 5. Una solución al problema de la sección crítica debe satisfacer los tres requisitos si •Mutua exclusión. •Progreso •Espera limitada. Estructura general de un proceso repeat Sección de ingreso Sección crítica Sección de egreso Sección restante until false;
  • 6. 5.3. Hardware de sincronización En sistemas de un procesador, el problema de las secciones críticas podría ser resuelto simplemente si pudiéramos deshabilitar las interrupciones mientras una variable compartida está siendo actualizada. • Esta solución no es factible para un sistema con varios procesadores debido a la demora que implica el pasaje de mensajes. • En muchos sistemas existen instrucciones de hardware que pueden ser usadas para resolver el problema de las secciones críticas. • Estas instrucciones permiten ejecutar atómicamente las operaciones de: – chequear y modificar el contenido de una palabra, o – intercambiar el contenido de dos palabras
  • 7. Definición de la instrucción Evaluar-y-Asignar. repeat function Evaluar-y-Asignar(var objetivo: boolean):boolean; begin Evaluar-y-Asignar:=objetivo; Objetivo:=true; End Implementación de la mutua exclusión con Evaluar-y-Asignar repeat while Evaluar-y-Asignar(cerradura) do nada Sección crítica Cerradura:= false Sección restante until false;
  • 8. 5.4. Semáforos Las soluciones por hardware presentadas no son fáciles de generalizar a problemas más complejos. • Esta dificultad se puede superar usando una herramienta de sincronización llamada semáforo. • Un semáforo S es una variable entera que solo es accedida a través de dos operaciones atómicas: esperar(wait) y señal(signal) Las definiciones de estas operaciones son: espera(S): while S<= 0 do nada; S:=S-1; señal(S): S:= S+1; -Podemos usar semáforos para resolver el problema de la sección crítica con n procesos. - Todos los procesos comparten un semáforo, mutex (de mutual exclusión, mutua exclusión ) que recibe el valor inicial a 1. - También podemos usar semáforos para resolver problemas de sincronización.
  • 9. Implementación de la mutua exclusión con SEMÁFOROS repeat espera(mutex) Sección crítica Señal(mutex); Sección restante until false;
  • 10. 5.5. Problemas clásicos de sincronización - El problema de buffer limitado ºSe le utiliza con frecuencia para ilustrar la potencia de las primitivas de sincronización. ºSupondremos que la reserva consiste en n buffers, cada uno de los cuales puede contener un elemento. ºEl semáforo mutex asegura la mutua exclusión de los accesos a la reserva de buffers e inicialmente tiene el valor 1. º los semáforos vacios y llenos cuentan el numero de buffers vacios y llenos, respectivamente. ºEl semáfor vacios asume el valor inical n; llenos de inicia con el valor 0.
  • 11. - El problema de los lectores y escritores -Un objeto de datos(como un archivo o registro) se va a compartir entre varios procesos concurrentes. -Algunos de esos procesos quizá sólo deseen leer el contenido del objeto compartido, pero otros podrían querer actualizarlo. - Distinguimos entre estos dos tipos de procesos llamados lectores(solo están interesados en leer) y escritores a los demás.
  • 12. - El problema de los filósofos comensales
  • 13. 5.6. Monitores - Un monitor se caracteriza por un conjunto de operaciones definidos por el Programador. -La representación de un monitor consiste en declaraciones de variables , procedimientos y funciones que implementan operaciones con el tipo. Representación esquemática de un monitor.
  • 14. 5.7. Sincronización en Java -Uno de los principales usos de sincronización lo tiene JAVA a través de la consistencia de datos que debe garantizar en el manejo de hilos, debido al trabajo paralelo que estos realizan. -La sincronización en java se proporciona a nivel de lenguaje y constituye un Ejemplo de un mecanismo de sincronización a alto nivel.
  • 15. •BIBLIOGRAFIA •Bibliografía Básica Silberschatz, Galvín y Gagne, SISTEMAS OPERATIVOS, 5ta edición, Limusa Wiley, México, 1999 •Bibliografía Complementaria MilenKovic Milan, Sistemas Operativos, 2da Edición, McGraw-Hill Interamericana, 1994 - ENLACES WEB •SISTEMAS OPERATIVOS http://www.sindominio.net/metabolik/alephandria/txt/SSOO-0_5_0.pdf •ADMINISTRACIÓN DE S.O. http://ditec.um.es/aso/ •SISTEMAS OPERATIVOS http://www.pdf-search-engine.com/tanenbaum-sistemas-operativos-pdf.html •PLANIFICACION DE PROCESOS http://www.gabriel-arellano.com.ar/so/ • SINCRONIZACION DE PROCESOS http://arcos.inf.uc3m.es/~ii_ssoo/dokuwiki/doku.php •SINCRONIZACION PROCESOS http://www.dirinfo.unsl.edu.ar/~sonet/teorias/SO-clase4-pagina.pdf •SINCRONIZACION PROCESOS http://web.frm.utn.edu.ar/soperativos/Archivos/sincro.pdf

×