Concurrencia

323 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
323
En SlideShare
0
De insertados
0
Número de insertados
5
Acciones
Compartido
0
Descargas
8
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Concurrencia

  1. 1. Sistemas Operativos Concurrencia L.C.I. Horacio J. Tacubeño Crúz
  2. 2. L.C.I. Horacio J. Tacubeño Crúz Concurrencia Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): - Un conjunto de procesos que potencialmente pueden ejecutarse concurrentemente (a la vez).
  3. 3. L.C.I. Horacio J. Tacubeño Crúz Concurrencia Problemática: - Podemos querer que dos o más procesos cooperen. - Que accedan a datos comunes. Se debe proporcionar: - Mecanismos de sincronización y comunicación entre procesos. - Ejecución ordenada
  4. 4. Concurrencia Problema básico: Dos o más procesos quieren llevar a cabo una determinada tarea concurrentemente. - Pueden llegar a resultados incorrectos. Debido a que no sabemos el orden de ejecución. • No sabemos cuando serán interrumpidos y su alternancia en la CPU. L.C.I. Horacio J. Tacubeño Crúz
  5. 5. Concurrencia Ejemplo: Productor-Consumidor ejecutado concurrentemente. Productor: Genera información y la acumula en un buffer. Consumidor: Accede al buffer y usa la información. Caso de: Programa de impresión que produce caracteres y consume el manejador de la impresora. Compilador produce código ensamblador y consume el ensamblador. L.C.I. Horacio J. Tacubeño Crúz
  6. 6. Condiciones de competencia • Los procesos que están colaborando podrían compartir cierto almacenamiento común en el que ambos pueden leer y escribir. El almacenamiento compartido puede estar en la memoria principal o puede ser un archivo compartido; la ubicación de la memoria compartida no altera la naturaleza de la comunicación ni los problemas que surgen. L.C.I. Horacio J. Tacubeño Crúz
  7. 7. Condiciones de competencia • Imagine que nuestro directorio de spooler tiene un número elevado de ranuras, numeradas 0. 1.2.....cada una con capacidad para un nombre de archivo. Imagine además que hay dos variables compartidas, out, que apuntan al siguiente archivo por imprimir, e in. que apunta a la siguiente ranura libre del directorio. L.C.I. Horacio J. Tacubeño Crúz RanuraLibre=?? El error surgió en las variables compartidas, Dos procesos entran a la región critica
  8. 8. Región Critica - Competencia • Los procesos acceden a la memoria compartida se denomina región crítica o sección crítica. Si pudiéramos organizar las cosas de modo que dos procesos nunca pudieran estar en sus regiones críticas al mismo tiempo, podríamos evitar las condiciones L.C.I. Horacio J. Tacubeño Crúz
  9. 9. Evitar condiciones de competencia Evitar condiciones de competencia 1. Dos procesos nunca pueden estar simultáneamente dentro de sus regiones críticas. 2. No puede suponerse nada acerca de las velocidades o el número de las CPU. 3. Ningún proceso que se ejecute fuera de su región crítica puede bloquear a otros procesos. 4. Ningún proceso deberá tener que esperar indefinidamente para entrar en su región crítica. L.C.I. Horacio J. Tacubeño Crúz
  10. 10. Exclusión Mutua • Un proceso que esté ocupado actualizando la memoria compartida en su región crítica, ningún otro proceso entre en su región crítica y cause problemas. L.C.I. Horacio J. Tacubeño Crúz
  11. 11. Inhabilitación de interrupciones • Cada proceso inhabilite las interrupciones justo después de ingresar en su región crítica y vuelva a habilitarlas justo antes de salir de ella. Por lo tanto ocurrir interrupciones de reloj, con las interrupciones desactivadas la CPU no se conmutará a ningún otro proceso. L.C.I. Horacio J. Tacubeño Crúz
  12. 12. Inhabilitación de interrupciones • Así. una vez que un proceso ha inhabilitado las interrupciones, puede examinar y actualizar la memoria compartida sin temor a que otro proceso intervenga. L.C.I. Horacio J. Tacubeño Crúz
  13. 13. Inhabilitación de interrupciones ¿Qué problema existirá en la inhabilitación de procesos, aplicados por el usuario? L.C.I. Horacio J. Tacubeño Crúz
  14. 14. Variables Candado • Supongamos que tenemos una sola variable (de candado) compartida cuyo valor inicial es 0. Cuando un proceso quiere entrar en su región crítica, lo primero que hace es probar el candado. L.C.I. Horacio J. Tacubeño Crúz
  15. 15. Variables Candado • Si el candado es 0 el proceso le asigna 1 y entra en su región crítica: si es 1 el proceso espera hasta que el candado vuelve a ser 0. Así. un 0 significa que ningún proceso está en su región crítica, y un 1 significa que algún proceso está en su región crítica. L.C.I. Horacio J. Tacubeño Crúz
  16. 16. Variables Candado • ¿Qué problema surge al utilizar variables candado? L.C.I. Horacio J. Tacubeño Crúz
  17. 17. Alternancia estricta (61) • La variable interna turn que inicialmente es 0 indica a quién le toca entrar en la región crítica y examinar o actualizar la memoria compartida. En un principio, el proceso 0 inspecciona turn ve que es 0 y entra en su región crítica. El proceso 1 también ve que turn es 0 y se mantiene en un ciclo corto probando turn continuamente para detectar el momento en que cambia a 1. L.C.I. Horacio J. Tacubeño Crúz

×