Articulo de referencia

Bloqueo (informática)

En informática , un proceso bloqueado está esperando algún evento , como que un recurso esté disponible o que se complete una operación de E/S . [ 1 ] Una vez que ocurre el even...

En informática , un proceso bloqueado está esperando algún evento , como que un recurso esté disponible o que se complete una operación de E/S . [ 1 ] Una vez que ocurre el evento por el que el proceso está esperando ("está bloqueado"), el proceso avanza del estado bloqueado a uno inminente, como ejecutable .

En un sistema informático multitarea , las tareas individuales , o hilos de ejecución , deben compartir los recursos del sistema. Los recursos compartidos incluyen: la CPU, la red y las interfaces de red, la memoria y el disco.

Cuando una tarea está utilizando un recurso, generalmente no es posible ni deseable que otra tarea acceda a él. Las técnicas de exclusión mutua se utilizan para evitar este uso concurrente. Cuando la otra tarea se bloquea, no puede ejecutarse hasta que la primera tarea haya terminado de usar el recurso compartido.

Los lenguajes de programación y los algoritmos de planificación están diseñados para minimizar el efecto general del bloqueo. Un proceso bloqueado puede impedir que las tareas locales avancen. En este caso, el "bloqueo" suele considerarse indeseado. [ 2 ] Sin embargo, dichas tareas podrían haberse asignado a procesos independientes, donde la detención de uno tiene poco o ningún efecto sobre los demás, ya que la planificación continuará. Un ejemplo es el "bloqueo en un canal ", donde la espera pasiva de la otra parte (es decir, sin sondeo ni bucle de espera ) forma parte de la semántica de los canales. [ 3 ] Con una correcta ingeniería, cualquiera de estos puede utilizarse para implementar sistemas reactivos .

El interbloqueo significa que los procesos esperan patológicamente unos a otros en un círculo vicioso. Por lo tanto, no está directamente asociado con el bloqueo.

Véase también

Referencias

  1. Stallings, William (2004). Sistemas operativos: Principios internos y de diseño (5.ª  ed.). Prentice Hall. ISBN 978-0131479548.
  2. C++ y más allá 2012: Herb Sutter - Concurrencia en C++
  3. Rob Pike (2 de julio de 2012). Patrones de concurrencia en Go . Google I/O 2012. Google para desarrolladores.