stringtranslate.com

Bloqueo (informática)

En informática , un proceso que está 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 cual el proceso está esperando ("está bloqueado"), el proceso avanza desde el estado bloqueado a uno inminente, como ejecutable .

En un sistema informático multitarea , las tareas individuales , o subprocesos 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 utiliza un recurso, generalmente no es posible o deseable que otra tarea acceda a él. Para evitar este uso concurrente se utilizan técnicas de exclusión mutua . Cuando la otra tarea está bloqueada, no se puede ejecutar hasta que la primera tarea haya terminado de usar el recurso compartido.

Los lenguajes de programación y los algoritmos de programación están diseñados para minimizar el efecto general del bloqueo. Un proceso que se bloquea puede impedir que progresen las tareas de trabajo locales. En este caso, "bloquear" a menudo se considera algo no deseado. [2] Sin embargo, es posible que dichas tareas de trabajo se hayan asignado a procesos independientes, donde detener una tiene poco o ningún efecto sobre las demás, ya que la programación continuará. Un ejemplo es el "bloqueo de un canal ", donde esperar pasivamente por la otra parte (es decir, sin sondeo ni bucle de giro ) es parte de la semántica de los canales. [3] Diseñados correctamente, cualquiera de estos puede usarse para implementar sistemas reactivos. [ se necesita aclaración ]

Un punto muerto significa que los procesos se esperan patológicamente unos a otros en un círculo. Como tal, no está directamente asociado con el bloqueo.

Ver también

Referencias

  1. ^ Puestos, William (2004). Sistemas operativos: componentes internos y principios de diseño (5ª ed.). Prentice Hall. ISBN 978-0131479548.
  2. ^ C++ y más allá de 2012: Herb Sutter - Simultaneidad de C++
  3. ^ Rob Pike (2 de julio de 2012). Vaya a Patrones de concurrencia. Google I/O 2012. Google para desarrolladores.