1 Tema 6: Concurrencia de Procesos Sistemas Operativos.

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Administración de memoria
TEMA 1 Introducción a la Programación Concurrente
Planificación de Monoprocesadores
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
T5-multithreading SO-Grado Q1.
Administración de procesos y del procesador.
Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecución junto con el entorno.
Modelo de procesos de dos estados
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
SISTEMAS OPERATIVOS UNIDAD 1..
UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Mejoras a las Máquinas Von Neumann
Tema 3. Optimización de Código
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Un sistema operativo es un software, es decir, forma parte de la.
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Concurrencia: interbloqueo e inanición
Tema 10: Gestión de Memoria
Semana 5 Subprogramas..
Concurrencia: Exclusión Mútua y Sincronización
Sistemas Operativos Procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Unidad III Administración de procesos
Sistemas Concurrentes: programación concurrente
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
Overview Sistemas Computacionales
PROGRAMACION CONCURRENTE
Hilos En La Computación. (THREADS).
Planificación de Procesos
Planificación y Gestión de procesos
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Capítulo 7 Gestión de memoria.
Gestión de procesos Sistemas Operativos Edwin Morales
Programación secuencial vs programación concurrente
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Gestión de Memoria.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
Conocer y entender la forma en que funcionan los procesos como parte fundamental de los Sistemas Operativos.
Teoría de Sistemas Operativos Sincronización Procesos
Unidad 2 – Gestión de Procesos
Estados de procesos El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Transiciones.
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
UTFSM - Sistemas Operativos
INTERRUPCIONES – ABRAZO MORTAL
3.2.1 Administración de almacenamiento
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Estructura del sistema operativo
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Ciclos condicionales y exactos Estructura de control de ciclos
Tema 6: Concurrencia de Procesos
Transcripción de la presentación:

1 Tema 6: Concurrencia de Procesos Sistemas Operativos

2 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 2 Tema 6: Concurrencia de Procesos

3 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 3 Tema 6: Concurrencia de Procesos

4 1. Cooperación de Procesos Tema 6: Concurrencia de Procesos  Relación entre los procesos en un sistema multiprogramado:  Competencia (procesos independientes)  Cooperación  Procesos que cooperan:  Colaboran en la consecución de algún fin  Comparten recursos  Tipos de recursos:  Consumibles (un solo uso)  Reutilizables en serie

5 1. Cooperación de Procesos Tema 6: Concurrencia de Procesos  Formas de acceso a los recursos compartidos:  Concurrencia Acceso simultáneo directo al recurso  Sincronización Uso de mecanismos de coordinación para ordenar acceso  Comunicación Sólo un proceso accede directamente a recurso Demás procesos le envían peticiones (cliente/servidor)  La modificación concurrente del estado de un recurso puede dar lugar a condiciones de carrera!

6 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 6 Tema 6: Concurrencia de Procesos

tabla 1. Concurrencia y Sección Crítica Tema 6: Concurrencia de Procesos i=0 i=1i=2 e1e2 … tabla[i]= e1; i= i+1;... P1 … tabla[i]= e2; i= i+1;... P2  Condición de carrera: corrupción del estado de un recurso causada por su actualización concurrente por parte de varios procesos (o hilos).

8 1. Concurrencia y Sección Crítica Tema 6: Concurrencia de Procesos tabla i=0 … tabla[i]= e1; i= i+1;... P1 … tabla[i]= e2; i= i+1;... P2  Sección crítica: porción de código en la que se accede a un recurso compartido.  Exclusión mutua: garantizar que en cada momento se pueda estar ejecutando como máximo una sección crítica asociada a un recurso.

9 1. Concurrencia y Sección Crítica Tema 6: Concurrencia de Procesos  Requisitos de la exclusión mutua: 1.Nunca debe haber más de un proceso ejecutando su sección crítica asociada a un mismo recurso. 2.Todo proceso permanece tiempo finito en sección crítica. 3.Ningún proceso suspendido, detenido o abortado fuera de sección crítica debe impedir la entrada a otro proceso. 4.Ningún proceso esperará eternamente a entrar en sección crítica 5.Si ningún proceso está ejecutando su sección crítica, cualquier proceso podrá hacerlo inmediatamente. 6.Si hay procesos esperando para entrar en sección crítica y el proceso que la estaba ejecutando sale, uno de los que esperan entrará inmediatamente.  No se pueden hacer suposiciones respecto a las velocidades relativas de ejecución de los procesos.

10 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 10 Tema 6: Concurrencia de Procesos

11 3. Control Pesimista y Optimista de la Conc. Tema 6: Concurrencia de Procesos  Control Pesimista:  Consiste en garantizar la exclusión mutua en el acceso a los recursos.  Control Optimista:  No se fuerza exclusión mutua → pueden darse condiciones de carrera!!  Si se dan las condiciones de carrera, se detecta y se solucionan.  Protocolo de entrada típico: salvar estado  Protocolo de salida típico: Comprobar de ha habido condición de carrera En caso afirmativo, restaurar estado y repetir

12 3. Control Pesimista y Optimista de la Conc. Tema 6: Concurrencia de Procesos  Control Pesimista:  Ventajas: Siempre es viable  Inconvenientes: Fuerza esperas (posiblemente innecesarias) Algunos métodos pueden ser muy drásticos  Control Optimista:  Ventajas: Mayor grado de paralelismo  Inconvenientes: Será posible o no en función de la naturaleza del recurso Si hay muchos procesos concurrentes, el nº de conflictos puede aumentar y por tanto el nº de repeticiones

13 3. Control Pesimista y Optimista de la Conc. Tema 6: Concurrencia de Procesos  ¿Control Pesimista u Optimista? Depende de…  Frecuencia y variabilidad de la probabilidad de condiciones de carrera  Coste de la repetición del cálculo  Optimista: idóneo si…  Coste de repetición del cálculo es pequeño, y  Previsible que hayan pocas condiciones de carrera  Pesimista: idóneo si…  Coste de repetición del cálculo es grande, y  Previsible que hayan muchas condiciones de carrera, o se espera variabilidad en su frecuencia

14 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 14 Tema 6: Concurrencia de Procesos

15 4. Métodos basados en impedir la conmut. Tema 6: Concurrencia de Procesos  Pesimismo extremo: impide apropiación en sección crítica  Mecanismos NO disponibles para procesos de usuario  Posibilidades:  Desactivar interrupciones  Uso exclusivo del procesador

16 4. Métodos basados en impedir la conmut. Tema 6: Concurrencia de Procesos Desactivar Interrupciones  Si no hay interrupciones→no hay apropiación … [ sección crítica ] … deshabilitar_interrupciones(); habilitar_interrupciones();  Inconvenientes:  Mientras interrupciones deshabilitadas, Control absoluto de la máquina No se atienden dispositivos Puede que no se refresque la memoria Sistema en peligro!  ¿Y la NMI?  ¿Y si hay otros procesadores?

17 4. Métodos basados en impedir la conmut. Tema 6: Concurrencia de Procesos Suspender la conmutación  Pedir a planificador que suspenda conmutación hasta nueva orden  ¡Ya no hay problemas con…  Dispositivos  Refresco de memoria … [ sección crítica ] … suspender_conmutacion(); reanudar_conmutacion();  Inconvenientes:  Posibilidad condición de carrera con rutinas de interrupción  Tampoco es adecuado para multiprocesadores  ¡Cuidado en sistemas con organización micronúcleo!

18 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 18 Tema 6: Concurrencia de Procesos

19 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos  Espera ocupada (o espera activa)  esperar a que algo ocurra realizando continuas comprobaciones:  Métodos de espera ocupada:  Cerrojos  Alternancia estricta  Algoritmo de Dekker  Algoritmo de Peterson  Algoritmo de Lamport  Instrucciones especiales … variable= 0; while(variable==0); …

20 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Cerrojos  Variable compartida que indica si recurso está libre u ocupado: Vars. compartidas: int cerrojo=0; … [ sección crítica ] … while(cerrojo); cerrojo= 1; cerrojo= 0;  ¡Fallo!  No hay atomicidad entre comprobación y cierre

21 … [ sección crítica ] … P1 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Alternancia Estricta  Caso de que dos procesos usen recurso por turnos  Variable compartida que indica a qué proceso le toca: Vars. compartidas: int turno=P1; while(turno !=P1); turno= P2;  ¡Funciona!  Más restrictivo que cerrojos: un proceso nunca se da paso a sí mismo. … [ sección crítica ] … P2 while(turno !=P2); turno= P1;

22 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Alternancia Estricta  Ventajas:  Sencillez  Aplicable en muchos contextos  Inconvenientes:  ¡Obliga a que alternancia sea estricta!  Esto atenta contra requisito 3 exclusión mutua: “Ningún proceso suspendido, detenido o abortado fuera de sección crítica debe impedir la entrada a otro proceso”

23 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Algoritmo de Dekker  Si los dos procesos interesados→ se alternan  Si uno no está interesado→ el otro puede usar recursos tantas veces como quiera  Comprobación a dos niveles: Vars. compartidas: int interesado1=0; int interesado2=0; int preferente= P1; interesado1=1; while (interesado2) { if (preferente==P2) { interesado1= 0; while (preferente==P2); interesado1=1; } } [ sección crítica ] preferente=P2; interesado1=0; P1 interesado2=1; while (interesado1) { if (preferente==P1) { interesado2= 0; while (preferente==P1); interesado2=1; } } [ sección crítica ] preferente=P1; interesado2=0; P2

24 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Algoritmo de Peterson  Equivalente a algoritmo de Dekker  Reescrito de forma más clara, una rutina para protocolo de entrada y otra para protocolo de salida: Vars. compartidas: int interesado[2]={0,0} int ultimo=0; void protocolo_entrada(int proc) { int otro= 1-proc; interesado[proc]= 1; ultimo= proc; while {(interesado[otro] == 1) && (ultimo==proc)); } void protocolo_salida(int proc) { interesado[proc]= 0; }

25 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Algoritmo de Lamport (o de la panadería)  Coordina a N procesos  Cuando más de un proceso interesado en recurso:  Ordena el acceso por turnos  Una etapa de espera por cada proceso interesado Vars. compartidas: int eligiendo[N]= {0,0,…,0} int turno[N]= {0,0, …,0}; Idea de funcionamiento:  Eligiendo[i] != 0 ↔ proceso i está elgiendo turno (turno[i] no es válido todavía)  Si turno[i] = 0 → proceso i no está interesado en entrar en sección crítica  Si turno [i] > 0 → proceso i está interesado y su turno es turno[i]

26 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos void protocolo_entrada(int proc) { /* Elegir turno */ eligiendo[proc]= 1; turno[proc]= 1 + mayor(turno); eligiendo[proc]= 0; /* Esperar a los que vayan por delante */ for (j=0; j< N; j++) if (j != proc) { /* Si está eligiendo, esperar a ver qué turno saca */ while (eligiendo[j] !=0); /* Si tiene turno y es anterior a nosotros, esperar */ while ((turno[j] != 0) && anterior (turno[j], j, turno[proc], proc)); } Algoritmo de Lamport (o de la panadería) void protocolo_salida(int proc) { /* Nos deshacemos del turno */ turno[proc]= 0; }

27 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Instrucciones especiales: Test and Set (TS, TAS…)  Soluciona el problema de atomicidad de los cerrojos  Formato: TS operando (IBM 360)  Z ← operando == 0  operando ← 1 prot_entrada: TS cerrojo BNF prot_entrada RETN  Único problema: otro master en el bus  Solución: variantes que bloquean el bus

28 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Instrucciones especiales: Intercambiar (XCHG)  Puede funcionar de forma equivalente a TS  Formato: XCHG registro, direccion (80x86)  registro ↔ dirección  Se puede reforzar con prefijo lock prot_entrada: MOV AL,1 lock XCHG AL, cerrojo CMP AL, 0 JNE prot_entrada RET

29 5. Métodos de espera ocupada Tema 6: Concurrencia de Procesos Instrucciones especiales: Comparar e Intercambiar (CS)  Soporte para estrategias optimistas  Formato: CS previo, nuevo, global (IBM 370)  global: variable compartida que se actualiza  previo: valor que tenía global antes de actualización  nuevo: nuevo valor tentativo calculado para actualizar global MOVE previo,global calculo:…. …. CS previo, nuevo, global BNEQ calculo ¿previo=global? actualizar ccr global←nuevo actualizar ccr previo←global Sí No

30 Índice: 1.Cooperación de procesos 2.Concurrencia y Sección Crítica 3.Control Pesimista y Optimista de la Concurrencia 4.Métodos basados en Impedir la Conmutación 5.Métodos de Espera Ocupada 6.Problemas de la Espera Ocupada 30 Tema 6: Concurrencia de Procesos

31 : while(cerrojo); cerrojo=1; : : : cerrojo=0; : P2 : while(cerrojo); cerrojo=1; : : : cerrojo=0; : P1 6. Problemas de la espera ocupada Tema 6: Concurrencia de Procesos  Desperdicio de tiempo de CPU. Sólo admisible en:  Procesadores dedicados  Sistemas monoprogramados  En el núcleo del SO, si se puede garantizar que tiempo de espera es suficientemente inferior a tiempo de conmutación  Si se coordinan procesos con diferentes prioridades: cerrojo=0cerrojo=1 Prioridad(P2) > Prioridad(P1)