1 / 9

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

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.

molimo
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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; … Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  3. 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 P2 R=7 R=7 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  4. 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 P2 R=7 R=7 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  5. 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. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  6. 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 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  7. 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: • Ejecuta Entrar_SC(). Si la SC está ocupada, el proceso espera. • Ejecuta la SC. • Ejecuta Dejar_SC(), permitiendo que entre uno de los procesos en espera. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  8. Espera por ocupadoPropiedades • El acceso a una sección crítica debe poseer las siguientes propiedades: • Exclusión mutua. No puede haber más de un proceso simultáneamente en la SC. • No interbloqueo. Ningún proceso fuera de la SC puede impedir que otro entre a la SC. • No inanición. Un proceso no puede esperar por tiempo indefinido para entrar a la SC. • 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 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

  9. 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: • El proceso ejecuta una espera activa (espera por ocupado). • En sistemas monoprocesador esto carece de sentido y se utiliza la inhibición de interrupciones. • El proceso se bloquea (espera por bloqueado). Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

More Related