ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sincronizacion De Procesos

jorge_roman16 de Mayo de 2012

646 Palabras (3 Páginas)764 Visitas

Página 1 de 3

CAPÍTULO _2.3 (Materia: SISTEMAS OPERATIVOS)

SINCRONIZACIÓN DE PROCESOS

Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se están ejecutando en el sistema.

•La cooperación entre procesos requiere: la ejecución concurrente de los mismos, mecanismos de comunicación y mecanismos de sincronización

Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos.

Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por vez, así nos aseguramos que los datos quedan consistentes.

La sección crítica

El problema de la sección4 crítica consiste en diseñar un protocolo que los procesos puedan usar para cooperar de esta forma.

Cualquier solución al problema de la sección crítica deberá satisfacer los tres requisitos siguiente:

•Exclusión mutua.- Si el proceso Pi está ejecutándose en su sección crítica, los demás procesos no pueden estar ejecutando sus secciones críticas.

•Progreso.- Si ningún proceso está ejecutando su sección crítica, y algunos procesos desean entrar en sus correspondientes secciones críticas, sólo aquellos procesos que no estén ejecutando sus secciones restantes pueden participar en la decisión de cuál será el siguiente que entre en su sección crítica, y esta selección no se puede posponer indefinidamente.

•Espera limitada.- Existe un límite en el número de veces que se permite que otros procesos entren en sus secciones críticas después de que un proceso haya hecho una solicitud para entrar en su sección crítica y antes de que la misma haya sido concedida.

Se usan dos métodos generales para gestionar las secciones críticas en los sistemas operativos:

1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se está ejecutando en modo kernel.

2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se esté ejecutando en modo kernel sea desalojado.

HARDWARE DE SINCRONIZACIÓN

En sistemas de un procesador, el problema de las secciones críticas podría ser resuelto simplemente si pudiéramos deshabilitar las interrupciones mientras una variable compartida está siendo actualizada.

Esta solución no es factible para un sistema con varios procesadores debido a la demora que implica el pasaje de mwwwensajes.

En muchos sistemas existen instrucciones de hardware que pueden ser usadas para resolver el problema de las secciones críticas.

Estas instrucciones permiten eje cutar atómicamente las operaciones de:

– chequear y modificar el contenido de una palabra, o

– intercambiar el contenido de dos palabras

SEMÁFOROS

Las soluciones por hardware presentadas no son fáciles de generalizar a problemas más complejos.

Esta dificultad se puede superar usando una herramienta de sincronización llamada semáforo.

Un semáforo S es una variable entera que solo es accedida a través de dos operaciones atómicas: wait y signal.

wait(S): while S <= 0 do no-op

S := S - 1;

signal(S): S := S +1;

PROBLEMAS CLÁSICOS DE SINCRONIZACIÓN

Buffer finito

Lectores y escritores

Filósofos comensales

Buffer finito

Buffer de tamaño N

Semáforo mutex inicializado en 1

Semáforo full inicializado en 0

Semáforo empty inicializado en N

Lectores Y Escritores

Una zona de memoria es compartida por varios procesos concurrentes

Lectores

...

Descargar como (para miembros actualizados) txt (5 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com