Wednesday, February 08, 2006

Introducción

Hoy en día las computadoras pueden trabajar con múltiples procesos y tareas a la vez, lo que significa que deben distribuir sus recursos de manera que cada proceso pueda completarse. Cuando un sistema operativo no sabe asignar de una manera sincronizada sus dispositivos, los procesos pueden producir dos condiciones: bloqueo mutuo o inanición.

Cuando un proceso se va a ejecutar, éste bloquea los dispositivos (el dispositivo no puede ser usado por otro proceso) que está utilizando, y en algunos casos, también bloquea los que va a utilizar en el futuro. Un bloqueo mutuo es un enredo que se produce entre dos o más procesos cuando ambos se ponen en espera por la necesidad bilateral de utilizar un recurso que no está disponible ya que otro trabajo lo ha bloqueado para su uso; a su vez, el último trabajo también espera por otro recurso bloqueado por el primer trabajo. Como se puede ver ambos procesos quedarán en espera hasta que uno de los dos sea cancelado o interrumpido.

Por otro lado, la inanición se produce cuando un proceso espera por un recurso indefinidamente. Un ejemplo puede ser la asignación del procesador a los trabajos con menos tiempo de procesamiento. Si uno es muy grande y los trabajos pequeños no dejan de llegar, el grande nunca obtendrá el procesador.

No comments: