SISTEMAS OPERATIVOS Sección Crítica.

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Concurrencia: Exclusión Mútua y Sincronización
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso
Comunicación y sincronización entre procesos Realizado por Kepa Bengoetxea Kortazar
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Unidad III Administración de procesos
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
 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.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
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
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Teoría de Sistemas Operativos Sincronización Procesos
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
O. Ciclo Para (For) La instrucción Para ejecuta una secuencia de instrucciones (una o varias), una determinada cantidad de veces. Sintaxis: Para  Hasta.
ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS. Idea Cuando ocurre una falla de página, el sistema operativo tiene que escoger la página que sacará de la memoria.
Resumen de Sistemas Operativos I Msc./Ing. Antonio Mena.
ESTRUCTURAS DE CONTROL. OBJETIVO  Aplicar las diferentes estructuras de control dentro de la especificación de un algoritmo.
1 Tema 7: Concurrencia y Sincronización Sistemas Operativos.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
ALGORITMOS DE PLANIFICACIÓN ADRIÁN MINGA BRYAN PIEDRA JEREMY CHAMBA.
Semáforos y Comunicación entre Procesos
Generalidades. Introducción a los procesos
Proceso: Una instancia de un programa en ejecución
Estructuras de Control en Visual Basic.net
PHP Hypertext Preprocessor
Ciclos condicionales y exactos Estructura de control de ciclos
DR. DONALD J. RODRÍGUEZ ÚBEDA
Procesos Concurrentes
Planificación de Procesos
Paul Leger Procesos (capitulo 2) Paul Leger
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Exclusión mutua de secciones
HILOS EN SISTEMAS DISTRIBUIDOS
Sistemas Distribuidos
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
L.I. Gerardo Ortiz Rivera
SISTEMAS DISTRIBUÍDOS
Ayudantía 3: Procesos y threads
Exclusión mutua Un Algoritmo Centralizado Algoritmo Descentralizado
PROCESOS COMENZAR.
Sincronización de Procesos
Sincronización de procesos
SINCRONIZACIÓN DE PROCESOS
Sistemas Operativos Semáforos II.
L.I. Gerardo Ortiz Rivera
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Tema 6: Concurrencia de Procesos
Tema 9. Estructuras de repetición. Clase 3
2.4.3 Procesadores Tema 2 página 35
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
Concurrencia: exclusión mutua y sincronización Capítulo 5.
CARRERA DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN SISTEMAS OPERATIVOSMONITORES INTEGRANTES: BIT SOLARIS KALI Sangolquí, Mayo del 2019.
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
Procesos Lic. Gonzalo Pastor.
Estructura de los SISTEMAS OPERATIVOS.
Estructura de Sistemas Operativos
SISTEMAS OPERATIVOS En el mundo de la informática se denomina sistema operativo al programa, o conjunto de ellos, que gestiona los recursos físicos de.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

SISTEMAS OPERATIVOS Sección Crítica

Contenido Introducción Condiciones de competencia El problema del productor -consumidor Sección crítica. Exclusión mutua con espera ocupada. Bibliografía: Tanenbaum, A. S. Sistemas Operativos Modernos. Ed. Prentice-Hall Hispanoamericana, 1996, pp. 38-47. Operating Systems Concepts, Peterson and Silberschatz, pág 326-340.

Procesos concurrentes que comparten datos memoria compartida archivo de datos1 archivo de datos 2 archivo de datos n proceso Pi genera datos proceso Pj lee datos

Ejemplo: problema del productor-consumidor proceso productor proceso consumidor ¿? ¿? almacén común

Condiciones de competencia Situaciones en las cuales dos o más procesos acceden en forma simultánea a datos compartidos, y el resultado del procesamiento depende del orden en que las instrucciones se ejecuten.

Una solución al problema productor-consumidor N: número máximo de elementos admitidos en almacén counter: contador de elementos en almacén void productor () { REPETIR producir un elemento (item) WHILE (counter=N); almacenar (item) incrementar counter FIN } void consumidor () { REPETIR WHILE (counter=0); retirar (item) decrementar counter consumir (item) FIN } main() { parbegin productor () consumidor () parend; }

Dificultades de la solución Cuando un proceso llega a espera ocupada, el otro no podrá ocupar la CPU (supuesto un CPU). Ej: el consumidor espera debido a que el almacén está vacío y el productor no puede generar ya que el procesador lo tiene el consumidor El proceso que está en espera consume tiempo improductivo de CPU (supuesto 2 CPU). Solución posible: Quantum de tiempo por proceso El bloqueo del proceso cuando debe esperar

Primitivas de bloqueo sleep (): Implica que el proceso que la ejecuta pasa al estado de bloqueado. wake_up (proceso): pasa el proceso del estado de bloqueado al estado de listo.

Solución al problema productor-consumidor (con bloqueo) void productor () { REPETIR producir un elemento (item) IF counter=N THEN sleep(); almacenar (item) incrementar counter IF counter = 1 THEN wake_up (consumidor) FIN } void consumidor () { REPETIR IF counter=0 THEN sleep(); retirar (item) decrementar counter IF counter = N-1 THEN wake_up (productor) consumir (item) FIN } Para sincronizar los procesos se requiere que ellos compartan datos (en este caso la variable counter y el almacén)

Condiciones de concurrencia Sean S1 = counter + 1 y S2 = counter - 1 R(S1) = R(S2) = W(S1) = W(S2) = {counter} R(S1) ∩ W(S2) = {counter} ≠ {} R(S2) ∩ W(S1) = {counter} ≠ {} W(S1) ∩ W(S2) = {counter} ≠ {} Si ambos procesos ejecutaran concurrentemente S1 y S2 counter podría tomar un valor incorrecto.

Exclusión mutua y Sección Crítica Exclusión mutua: asegurar que unos procesos no puedan utilizar una variable o archivo compartido si otro proceso lo está utilizando. Sección Crítica: segmento de código de un proceso que accede a variables, ficheros u otros elementos que son comunes con otros procesos. Implementar exclusión mutua consiste en diseñar un protocolo que utilicen los procesos para ejecutarse en forma cooperativa, donde cada proceso debe solicitar entrar en su sección crítica.

Exclusión mutua usando secciones críticas A sale de la sección crítica A entra en la sección crítica trata de entrar en s. crítica entra en s. crítica sale de s. crítica bloqueado Tiempo

El problema de la sección crítica Situación: se tienen n procesos P1, P2, … Pn sección de entrada Sección crítica modifica var. comunes actualiza archivos, tablas, etc. sección de salida sección restante Cuando Pi ejecuta su sección crítica ningún otro proceso puede ejecutar la suya.

Condiciones para lograr paralelismo correcto y eficiente Exclusión mutua: No pueden haber al mismo tiempo dos procesos en sus respectivas secciones críticas. Sin suposiciones: No se deben hacer hipótesis sobre la velocidad o la cantidad de procesadores. Progreso: Ningún proceso que se encuentre fuera de su sección crítica puede impedir que otro entre en la suya. Límite de tiempo: Ningún proceso deberá esperar tiempo arbitrariamente largo para entrar en su sección crítica.

Exclusión mutua con espera ocupada Algoritmo de Peterson: considera que si un proceso debe esperar lo hace en forma ocupada y no bloqueado Consideraciones: Se supondrá que interviene solamente 2 procesos identificados como Pi y Pj (P0 y P1). Ambos procesos utilizan el mismo algoritmo, pero con los índices i y j intercambiados. Hay 2 cantidades comunes para ambos procesos: turno (Pi o Pj) y interesado[proceso P] (TRUE o FALSE).

Algoritmo de Peterson REPETIR interesado[Pi] =TRUE; /* Sección entrada */ turno = Pj; WHILE turno= Pj AND interesado[Pj]); sección_crítica(); interesado[Pi] = FALSE; /* Sección salida */ sección_restante(); FIN Un proceso P entra en su sección crítica cuando: P tiene derecho al turno o, El otro proceso tiene derecho al turno, pero éste no está interesado o, Ambas.

Algunas preguntas REPETIR interesado[Pi] =TRUE; /* Sección entrada */ turno = Pj; WHILE turno= Pj AND interesado[Pj]); sección_crítica(); interesado[Pi] = FALSE; /* Sección salida */ sección_restante(); FIN ¿Si ambos procesos tratan de entrar concurrentemente en su sección crítica? 2. Un inconveniente importante del algoritmo 3. ¿Qué puede ocurrir si un proceso de prioridad baja se está ejecutando en su sección crítica?