Concepto de señal
En un sistema, los procesos que se ejecutan simultáneamente
interactúan entre sí. Esta interacción se produce incluso en
el caso de los procesos independientes, esto es, los que no
necesitan cooperar para completar sus tareas. Esto ocurre
cuando varios procesos quieren acceder a los mismos recursos
del sistema operativo, por ejemplo un dispositivo de entrada y
salida.
Para resolver esta situación, el sistema operativo dispone de un
gestor de procesos que determina el orden de acceso a
esos recursos; adicionalmente, cuenta con un mecanismo para
poder enviar mensajes a los procesos. La necesidad de
intercambiar información entre procesos es muy clara en las
arquitecturas colaborativas, por ejemplo, la llamada de
cliente-servidor, donde un proceso suministra información o
servicios a otros procesos.
Las señales pueden considerarse un tipo de mensajes, aunque, si se
comparan con otros medios de comunicación de
procesos (sockets, pipes, etc.), resultan un mecanismo
más pobre, ya que no permiten transmitir datos. A pesar de ello, es
importante conocerlas y saber manejarlas, pues proporcionan
dos servicios fundamentales:
- La defensa del proceso establecido frente a
incidencias comunicadas por el kernel, que envía señales al
proceso cuando se ha producido alguna eventualidad. Si
éstas no son gestionadas (bien ignoradas, bien capturadas) por el
proceso al que van dirigidas, dan lugar a su inmediata
conclusión, lo que puede redundar en una pérdida irrecuperable de
datos. Es el caso del proceso que se da cuando se están
guardando datos en un fichero y, al mismo tiempo, se recibe una
señal del kernel: la conclusión del programa debe aplazarse
hasta la finalización de la transferencia para que no se produzca
una pérdida de datos.
- El mecanismo de comunicación entre dos procesos. Dicho
mecanismo resulta útil y sencillo para avisar a un proceso de
la aparición de eventos excepcionales, si bien no debe
emplearse como forma habitual de comunicación entre procesos.
Por ejemplo, puede utilizarse en el caso de que el usuario
desee interrumpir el proceso de impresión de un documento porque se
ha dado cuenta de que ha mandado imprimir una versión antigua;
o en el caso de un proceso principal que recibe una señal
de conclusión, ya que puede enviar una señal a los procesos
que dependen de él, a fin de que éstos puedan actualizar sus datos
y escribir en disco, antes de finalizar también ellos su
ejecución. Estas necesidades de comunicación con y entre
procesos quedan plenamente satisfechas mediante el
empleo de las señales, al menos en aquellas en que el proceso pide
al kernel que envíe una señal a otro proceso.
Así pues, el uso de señales es un método sencillo de aviso de
incidencias (por circunstancias del propio proceso o por
la intervención de otro proceso) entre el kernel y los
procesos, y su aparición en el tiempo no puede ser prefijada, ya
que suelen referirse a hechos imprevistos. Dicha comunicación
de incidencias debe realizarse de forma estructurada y
bien definida. Las señales pueden aparecer en cualquier
instante, por lo que los procesos no pueden limitarse a verificar
una variable para comprobar si ha llegado una señal, sino que
deben lanzar una rutina de tratamiento de la señal con la que
se gestione de manera automática su recepción en el momento en
que aparezca.
Nota: Este curso forma parte del libro "CEO -
Desarrollo de funciones en el sistema informático" del autor
J. M. Molina, F. Chamorro, publicado por la editorial
McGraw-Hill (ISBN: 84-481-4877-0).
Hay 1 opinión. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Técnicas para el desarrollo de computación móvil (orientado a PDA) Uno de los nuevos paradigmas en el desarrollo de proyectos informáticos es la computación móvil (computación Ubicua). Aquí se verá todo lo que involucra la creación de un... [31/03/06] |
|
1.369 | ||
|
Instalación de un Servidor de Correo en Linux Linux es un sistema operativo libre, con lo que no se tiene que pagar por ningún tipo de licencia. También se puede conseguir el código fuente y poderlo modificar libreme... [16/06/04] |
|
13.740 | ||
|
Creación de Paginas Web con Html HTML es el lenguaje básico y muy sencillo que nos permite la creación de Paginas Web. Este curso ha nacido con la intención de complementar los anteriores cursos de JavaS... [26/05/05] |
|
20.578 | ||
Publicar en
del.icio.us
digg
meneame