control de procesos y sincronización acceso exclusivo a secciones críticas

9
Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 UPV - EHU Control de procesos y sincronización Acceso exclusivo a secciones críticas Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea Ingeniería Técnica en Informática de Sistemas Sistemas Operativos II

Upload: molimo

Post on 10-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Ingeniería Técnica en Informática de Sistemas Sistemas Operativos II. Control de procesos y sincronización Acceso exclusivo a secciones críticas. Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea. Recursos compartidos. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 1

UPV - EHU

Control de procesos y sincronización

Acceso exclusivo a secciones críticas

Departamento de Arquitectura y Tecnología de Computadores

Universidad del País Vasco / Euskal Herriko Unibertsitatea

Ingeniería Técnica en Informática de SistemasSistemas Operativos II

Page 2: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 2

UPV - EHU

Recursos compartidos

• En un sistema operativo los procesos compiten por el uso a recursos compartidos.

• El acceso al recurso se realiza mediante la ejecución de un trozo de código.

• Ejemplo: – Recurso compartido: buffer fifo– Código de acceso al buffer (en la llamada al sistema

write):

…R <- cuenta;buffer[R] <- elemento;R <- R+1;cuenta <- R;…

Page 3: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 3

UPV - EHU

Recursos compartidosAcceso concurrente

R <- cuenta;buffer[R] <- elemento;R <- R+1;cuenta <- R;

• Ejemplo de ejecución:– Dos procesos, P1 y P2, ejecutan

concurrentemente el código de acceso al buffer compartido

• Inicialmente, cuenta=7

P1

R=7

P2

R=7

Page 4: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 4

UPV - EHU

Recursos compartidosCondiciones de carrera

R <- cuenta;buffer[R] <- elemento;R <- R+1;cuenta <- R;

• Condición de carrera– Ambos procesos almacenan su elemento en la

misma posición del buffer

P1

R=7

P2

R=7

Page 5: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 5

UPV - EHU

Secciones críticas

• En el acceso concurrente a recursos compartidos, las condiciones de carrera conducen a comportamientos incorrectos.

• ¿Cómo evitar condiciones de carrera?– El trozo de código que controla el acceso a

recursos compartidos es una sección crítica de código.

– Hay que proporcionar acceso exclusivo a las secciones críticas.

Page 6: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 6

UPV - EHU

Acceso exclusivo a secciones críticas de código

Entrar_SC(SC_buf);R <- cuenta;buffer[R] <- elemento;R <- R+1;cuenta <- R;Dejar_SC(SC_buf);

P1 P2

Page 7: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 7

UPV - EHU

Secciones críticasModelo de sección crítica

• Protocolo genérico de acceso a una sección crítica:Entrar_SC(la_SC) /* Solicitud de ejecutar la_SC */

/* código de la_SC */Dejar_SC(la_SC) /* Otro proceso puede ejecutar la_SC */

• Un proceso que va a ejecutar la SC:1. Ejecuta Entrar_SC(). Si la SC está ocupada, el

proceso espera.2. Ejecuta la SC.3. Ejecuta Dejar_SC(), permitiendo que entre uno de

los procesos en espera.

Page 8: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 8

UPV - EHU

Espera por ocupadoPropiedades

• El acceso a una sección crítica debe poseer las siguientes propiedades:1. Exclusión mutua. No puede haber más de un proceso

simultáneamente en la SC.2. No interbloqueo. Ningún proceso fuera de la SC

puede impedir que otro entre a la SC.3. No inanición. Un proceso no puede esperar por

tiempo indefinido para entrar a la SC.4. Independencia del hardware. No se pueden hacer

suposiciones acerca del número de procesadores o de la velocidad relativa de los procesos.

• Suposición: las instrucciones del Lenguaje Máquina son atómicas y se ejecutan secuencialmente

Page 9: Control de procesos y sincronización Acceso exclusivo a secciones críticas

Konputagailuen Arkitektura eta Teknologia SailaDepartamento de Arquitectura y Tecnología de Computadores 9

UPV - EHU

Secciones críticasMecanismos de sincronización

• ¿Cómo espera un proceso para acceder a una SC ocupada (paso 1 del protocolo)?

• Mecanismos de sincronización:a. El proceso ejecuta una espera activa (espera por

ocupado).• En sistemas monoprocesador esto carece de

sentido y se utiliza la inhibición de interrupciones.

b. El proceso se bloquea (espera por bloqueado).