Está en la página 1de 3

CAPTULO _2.

3 (Materia: SISTEMAS OPERATIVOS) SINCRONIZACIN DE PROCESOS


Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se estn ejecutando en el sistema. La cooperacin entre procesos requiere: la ejecucin concurrente de los mismos, mecanismos de comunicacin y mecanismos de sincronizacin 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 seccin crtica, que es el segmento de cdigo que accede a los recursos. Slo puede haber una seccin crtica en ejecucin por vez, as nos aseguramos que los datos quedan consistentes.

La seccin crtica El problema de la secin crtica consiste en disear un protocolo que los procesos puedan usar para cooperar de esta forma. Cualquier solucin al problema de la seccin crtica deber satisfacer los tres requisitos siguiente:
Exclusin mutua.- Si el proceso Pi est ejecutndose en su seccin crtica, los dems procesos no pueden estar ejecutando sus secciones crticas. Progreso.- Si ningn proceso est ejecutando su seccin crtica, y algunos procesos desean entrar en sus correspondientes secciones crticas, slo aquellos procesos que no estn ejecutando sus secciones restantes pueden participar en la decisin de cul ser el siguiente que entre en su seccin crtica, y esta seleccin no se puede posponer indefinidamente. Espera limitada.- Existe un lmite en el nmero de veces que se permite que otros procesos entren en sus secciones crticas despus de que un proceso haya hecho una solicitud para entrar en su seccin crtica y antes de que la misma haya sido concedida.

Se usan dos mtodos generales para gestionar las secciones crticas 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 SINCRONIZACIN
En sistemas de un procesador, el problema de las secciones crticas podra ser resuelto simplemente si pudiramos deshabilitar las interrupciones mientras una variable compartida est siendo actualizada. Esta solucin no es factible para un sistema con varios procesadores debido a la demora que implica el pasaje de mensajes. En muchos sistemas existen instrucciones de hardware que pueden ser usadas para resolver el problema de las secciones crticas. Estas instrucciones permiten ejecutar atmicamente las operaciones de: chequear y modificar el contenido de una palabra, o intercambiar el contenido de dos palabras

SEMFOROS Las soluciones por hardware presentadas no son fciles de generalizar a problemas ms complejos. Esta dificultad se puede superar usando una herramienta de sincronizacin llamada semforo. Un semforo S es una variable entera que solo es accedida a travs de dos operaciones atmicas: wait y signal. wait(S): while S <= 0 do no-op S := S - 1; signal(S): S := S +1;

PROBLEMAS CLSICOS DE SINCRONIZACIN Buffer finito Lectores y escritores Filsofos comensales Buffer finito Buffer de tamao N Semforo mutex inicializado en 1 Semforo full inicializado en 0 Semforo empty inicializado en N Lectores Y Escritores Una zona de memoria es compartida por varios procesos concurrentes Lectores slo lee datos; no efectan actualizaciones de datos Escritores puede leer y escribir Problema permitir a mltiples lectores leer simultneamente; slo un escritor puede acceder a los datos en forma simultnea. Recursos Compartidos Datos Semforo mutex inicializado en 1. Semforo wrt inicializado en 1. Entero readcount inicializado en 0.

Problema de los Lectores 3 variantes: (1) Los lectores tienen prioridad Muerte por inanicin de los escritores (2) Los escritores tienen prioridad Muerte por inanicin de los lectores (3) Lectores y Escritores tienen la misma Prioridad No hay problemas de inanicin EL PROBLEMA DE LOS FILSOFOS COMENSALES Recursos compartidos Fuente de arroz (datos) Semforos chopstick [5] inicializados en 1 MONITORES Son mecanismos de sicronizacin de nivel ms alto que semforos. La construccin se realiza a nivel de lenguaje de programacin que controla el acceso a datos compartidos. Un tipo monitor tiene un conjunto de operaciones definidas por el programador que gozan de la caracterstica de exclusin mutua dentro del monitor.

También podría gustarte