SlideShare una empresa de Scribd logo
1 de 17
Sistemas Operativos
Concurrencia
L.C.I. Horacio J. Tacubeño Crúz
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
Variables Candado
• ¿Qué problema surge al utilizar variables
candado?
L.C.I. Horacio J. Tacubeño Crúz
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

Más contenido relacionado

La actualidad más candente

Análisis de Sistemas Operativos
Análisis de Sistemas OperativosAnálisis de Sistemas Operativos
Análisis de Sistemas OperativosErika Rodríguez
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorMicael Feliz Arias
 
Administracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorAdministracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorVictor Zapata
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativoswallito
 
Modelos de estados y transiciones
Modelos de estados y transicionesModelos de estados y transiciones
Modelos de estados y transicionesDaniel Vargas
 

La actualidad más candente (16)

Análisis de Sistemas Operativos
Análisis de Sistemas OperativosAnálisis de Sistemas Operativos
Análisis de Sistemas Operativos
 
Presentacion sop
Presentacion sopPresentacion sop
Presentacion sop
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Chap 15cpin
Chap 15cpinChap 15cpin
Chap 15cpin
 
Chap 15apin
Chap 15apinChap 15apin
Chap 15apin
 
Mod tranc
Mod trancMod tranc
Mod tranc
 
Chap 15fpin
Chap 15fpinChap 15fpin
Chap 15fpin
 
2 unidad sistemas operativos
2 unidad sistemas operativos 2 unidad sistemas operativos
2 unidad sistemas operativos
 
Chap 15bpin
Chap 15bpinChap 15bpin
Chap 15bpin
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Administracindeprocesosydelprocesador
AdministracindeprocesosydelprocesadorAdministracindeprocesosydelprocesador
Administracindeprocesosydelprocesador
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Kelly
KellyKelly
Kelly
 
Modelos de estados y transiciones
Modelos de estados y transicionesModelos de estados y transiciones
Modelos de estados y transiciones
 

Similar a Sistemas Operativos Concurrencia

Similar a Sistemas Operativos Concurrencia (20)

Comunicación entre Procesos
Comunicación entre ProcesosComunicación entre Procesos
Comunicació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
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Presentación1
Presentación1Presentación1
Presentación1
 
Vega_NoAnimation.pptx
Vega_NoAnimation.pptxVega_NoAnimation.pptx
Vega_NoAnimation.pptx
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Windows
WindowsWindows
Windows
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidad
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un proceso
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Sistemas operativos 2 unidad
Sistemas operativos 2 unidadSistemas operativos 2 unidad
Sistemas operativos 2 unidad
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 

Sistemas Operativos Concurrencia

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Variables Candado • ¿Qué problema surge al utilizar variables candado? L.C.I. Horacio J. Tacubeño Crúz
  • 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