Sistema operativos

Solo disponible en BuenasTareas
  • Páginas : 8 (1912 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de marzo de 2012
Leer documento completo
Vista previa del texto
Desactivación de las interrupciones
La solución más sencilla es que cada proceso prohiba todas las interrupciones justo antes de entrar en su región crítica y las permita de nuevo justo antes de salir. Esto funciona correctamente, pues el código del sistema operativo sólo se activa como consecuencia de la ocurrencia de interrupciones. Si el sistema operativo no puede ejecutarse mientras seejecuta la sección crítica, es obvio que no podrá realizar un cambio de proceso en la CPU, por lo tanto, la sección crítica se ejecutará en exclusión con todo proceso.
Variable de cerradura
Analicemos una solución mediante software. Consiste en tener una variable de cerradura compartida por los procesos. Antes de que un proceso entre en su sección crítica comprueba el valor de la cerradura. Si éstavale 0, el proceso cambia el valor a 1 y entra en la sección crítica. Si ésta ya vale 1, el proceso espera hasta que la variable valga 0. Por lo tanto, un 0 indica que ningún proceso se encuentra en una sección crítica y un 1 indica que algún proceso está en una sección crítica.
Alternancia estricta
El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica cuando otroproceso se está ejecutando. El problema de ésta solución es que cuando un proceso no está en la sección crítica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo.
El problema del productor y el consumidor
El problema del productor y el consumidor describe el hecho de que cuando hay dos o más procesosinteractuando a través de un buffer común habiendo procesos que ponen información o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones sedesarrollaron métodos de comunicación/sincronización entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor "duerma" si el buffer está lleno y una vez que exista espacio el proceso "consumidor" despierte al productor para que siga generando o viceversa.
Instrucción TSL
Esta solución requiere ayuda del hardware y es debido a que en general las computadoras diseñadas paratener más de un procesador tienen una instrucción TEST AND SET LOCK


Activar y Desactivar
El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador.
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento delsistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente).
El problema del productor y el consumidor
El problema del productor y consumidor consiste en la situación que de una parte se produce algún producto (datos en nuestro caso) que se posiciona en algún lugar (una cola en nuestro caso) para que sea consumido por otraparte. Como algoritmo obtenemos:

producer: consumer:
forever forever
produce(item) take(item)
place(item) consume(item)
Queremos garantizar que el consumidor no coja los datos más rápido que les está produciendo el productor. Más concreto:
1. el productor puede generar sus datos en cualquier momento
2. el consumidor puedecoger un dato solamente cuando hay alguno
3. para el intercambio de datos se usa una cola a la cual ambos tienen acceso, así se garantiza el orden correcto
4. ningún dato no está consumido una vez siendo producido
Si la cola puede crecer a una longitud infinita (siendo el caso cuando el consumidor consume más lento que el productor produzca), basta con la siguiente solución:

producer:...
tracking img