fbpx
Wikipedia

Exclusión mutua (informática)

Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan en programación concurrente para evitar que entre más de un proceso a la vez en la sección crítica. La sección crítica es el fragmento de código donde puede modificarse un recurso compartido.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.

Descripción

La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la corrupción de la estructura compartida (la sección crítica). Esto impide que el código de la interrupción se ejecute en mitad de la sección crítica.

En un sistema multiprocesador de memoria compartida, se usa la operación indivisible test-and-set sobre una bandera, para esperar hasta que el otro procesador la despeje. La operación test-and-set realiza ambas operaciones sin liberar el bus de memoria a otro procesador. Así, cuando el código deja la sección crítica, se despeja la bandera. Esto se conoce como spin lock o espera activa.

Algunos sistemas tienen instrucciones multioperación indivisibles similares a las anteriormente descritas para manipular las listas enlazadas que se utilizan para las colas de eventos y otras estructuras de datos que los sistemas operativos usan comúnmente.

Requisitos

Los requisitos esenciales para la exclusión mutua son: • [EM1] (seguridad): A lo sumo un proceso puede estar ejecutándose una vez en la SC. • [EM2] (supervivencia): Las peticiones para entrar y salir de la SC al final deben ser concedidas, esto implica la inexistencia de deadlocks e inanición. • [EM3] (ordenación): Si una petición para entrar en la SC ocurrió antes que otra, entonces la entrada a la SC se garantiza en ese orden.


Desventajas

La mayoría de los métodos de exclusión mutua clásicos intentan reducir la latencia y espera activa mediante las colas y cambios de contexto. Algunos investigadores afirman que las pruebas indican que estos algoritmos especiales pierden más tiempo del que ahorran.

A pesar de todo lo dicho, muchas técnicas de exclusión mutua tienen efectos colaterales. Por ejemplo, los semáforos permiten interbloqueos (deadlocks) en los que un proceso obtiene un semáforo, otro proceso obtiene el semáforo y ambos se quedan a la espera de que el otro proceso libere el semáforo. Otros efectos comunes incluyen la Inanición, en el cual un proceso esencial no se ejecuta durante el tiempo deseado, y la inversión de prioridades, en el que una tarea de prioridad elevada espera por otra tarea de menor prioridad, así como la latencia alta en la que la respuesta a las interrupciones no es inmediata.

La mayor parte de la investigación actual en este campo, pretende eliminar los efectos anteriormente descritos. Si bien no hay un esquema perfecto conocido, hay un interesante esquema no clásico de envío de mensajes entre fragmentos de código que, aunque permite inversiones de prioridad y produce una mayor latencia, impide los interbloqueos.

Ejemplos

Algunos ejemplos de algoritmos clásicos de exclusión mutua son:

Véase también

  •   Datos: Q1047554

exclusión, mutua, informática, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, mayo, 2018, algoritmos, exclusión, mutua, comúnmente, abreviada, como, mutex, mutual, exclusion, usan, programación, concurr. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 26 de mayo de 2018 Los algoritmos de exclusion mutua comunmente abreviada como mutex por mutual exclusion se usan en programacion concurrente para evitar que entre mas de un proceso a la vez en la seccion critica La seccion critica es el fragmento de codigo donde puede modificarse un recurso compartido La mayor parte de estos recursos son las senales contadores colas y otros datos que se emplean en la comunicacion entre el codigo que se ejecuta cuando se da servicio a una interrupcion y el codigo que se ejecuta el resto del tiempo Se trata de un problema de vital importancia porque si no se toman las precauciones debidas una interrupcion puede ocurrir entre dos instrucciones cualesquiera del codigo normal y esto puede provocar graves fallos Indice 1 Descripcion 2 Requisitos 3 Desventajas 4 Ejemplos 5 Vease tambienDescripcion EditarLa tecnica que se emplea por lo comun para conseguir la exclusion mutua es inhabilitar las interrupciones durante el conjunto de instrucciones mas pequeno que impedira la corrupcion de la estructura compartida la seccion critica Esto impide que el codigo de la interrupcion se ejecute en mitad de la seccion critica En un sistema multiprocesador de memoria compartida se usa la operacion indivisible test and set sobre una bandera para esperar hasta que el otro procesador la despeje La operacion test and set realiza ambas operaciones sin liberar el bus de memoria a otro procesador Asi cuando el codigo deja la seccion critica se despeja la bandera Esto se conoce como spin lock o espera activa Algunos sistemas tienen instrucciones multioperacion indivisibles similares a las anteriormente descritas para manipular las listas enlazadas que se utilizan para las colas de eventos y otras estructuras de datos que los sistemas operativos usan comunmente Requisitos EditarLos requisitos esenciales para la exclusion mutua son EM1 seguridad A lo sumo un proceso puede estar ejecutandose una vez en la SC EM2 supervivencia Las peticiones para entrar y salir de la SC al final deben ser concedidas esto implica la inexistencia de deadlocks e inanicion EM3 ordenacion Si una peticion para entrar en la SC ocurrio antes que otra entonces la entrada a la SC se garantiza en ese orden Desventajas EditarLa mayoria de los metodos de exclusion mutua clasicos intentan reducir la latencia y espera activa mediante las colas y cambios de contexto Algunos investigadores afirman que las pruebas indican que estos algoritmos especiales pierden mas tiempo del que ahorran A pesar de todo lo dicho muchas tecnicas de exclusion mutua tienen efectos colaterales Por ejemplo los semaforos permiten interbloqueos deadlocks en los que un proceso obtiene un semaforo otro proceso obtiene el semaforo y ambos se quedan a la espera de que el otro proceso libere el semaforo Otros efectos comunes incluyen la Inanicion en el cual un proceso esencial no se ejecuta durante el tiempo deseado y la inversion de prioridades en el que una tarea de prioridad elevada espera por otra tarea de menor prioridad asi como la latencia alta en la que la respuesta a las interrupciones no es inmediata La mayor parte de la investigacion actual en este campo pretende eliminar los efectos anteriormente descritos Si bien no hay un esquema perfecto conocido hay un interesante esquema no clasico de envio de mensajes entre fragmentos de codigo que aunque permite inversiones de prioridad y produce una mayor latencia impide los interbloqueos Ejemplos EditarAlgunos ejemplos de algoritmos clasicos de exclusion mutua son El algoritmo de Dekker El algoritmo de Peterson Vease tambien EditarCierre de exclusion mutua o locks Semaforo inventado por Edsger Dijkstra Monitor concurrencia inventado por C A R Hoare sin interbloqueos Datos Q1047554Obtenido de https es wikipedia org w index php title Exclusion mutua informatica amp oldid 137532441, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos