Señal (informática)


Señal (informática)

Una señal (signal) es una forma limitada de comunicación entre procesos empleada en Unix y otros sistemas operativos compatibles con POSIX. En esencia es una notificación asíncrona enviada a un proceso para informarle de un evento. Cuando se le manda una señal a un proceso, el sistema operativo modifica su ejecución normal. Si se había establecido anteriormente un procedimiento (handler) para tratar esa señal se ejecuta éste, si no se estableció nada previamente se ejecuta la acción por defecto para esa señal.

Contenido

Envío de señales

  • Al escribir Ctrl-C en el shell donde se ejecuta un proceso el sistema le envía una señal SIGINT, que por defecto causa la terminación del proceso. Ctrl-Z hace que el sistema envíe una señal SIGTSTP que suspende la ejecución del proceso.
  • La llamada al sistema kill enviará la señal especificada al proceso.
  • Excepciones como la división por cero o la violación de segmento generan señales.
  • Los procesos pueden enviar señales tanto a otros procesos como a sí mismos usando kill(2) (por supuesto con los permisos necesarios) por ejemplo kill(pid,SIGUSR1) siendo pid el identificador del proceso al cual deseamos enviar la señal SIGUSR1.
  • El núcleo puede generar una señal para informar de un evento a un proceso. Por ejemplo, SIGPIPE se genera cuando un proceso escribe en una tubería que había sido cerrada por el proceso que leía de ella.

Manipulación de señales

Los manipuladores de señales se establecen mediante la llamada al sistema signal(). Si hay un manipulador de señal para una señal dada se invoca y, si no lo hay, se usa el manipulador por defecto. El proceso puede especificar también dos comportamientos por defecto sin necesidad de crear un manipulador: ignorar la señal (SIG_IGN) y usar el manipulador por defecto (SIG_DFL). Hay dos señales que no pueden ser interceptadas ni manipuladas: SIGKILL y SIGSTOP.

La manipulación de señales es vulnerable a que se produzca una condición de carrera, pues las señales son asíncronas y puede ocurrir que llegue otra señal (incluso del mismo tipo) al proceso mientras transcurre la ejecución de la función que manipula la señal. Puede usarse la función sigprocmask para desbloquear la entrega de señales.

Las señales pueden interrumpir una llamada al sistema en proceso, dejando en manos de la aplicación la gestión del PCLSRing.

Lista de señales

La Single Unix Specification especifica las siguientes señales, definidas en <signal.h>:

SIGABRT - PROCESO abortado.
SIGALRM - Señal de alarma, salta al expirar el timer. Reprogramable.
SIGBUS - Error en el bus "access to undefined portion of memory object"(SUS).
SIGCHLD - Proceso hijo terminado, detenido (*o que continúa). Tratamiento por defecto: ignorar. Reprogramable.
SIGCONT - Continúa si estaba parado.Tratamiento por defecto: continuar. Reprogramable.
SIGFPE - Excepción de coma flotante -- "erroneous arithmetic operation"(SUS).
SIGHUP - Hangup, al salir de la sessión se envía a los processos en Background. Tratamiento por defecto: exit. Reprogramable.
SIGILL - Instrucción ilegal.
SIGINT - Interrupción, se genera al pulsar "^c" durante la ejecución. Tratamiento por defecto:exit. Reprogramable.
SIGKILL - Destrucción inmediata del proceso.Tratamiento:exit. No reprogramable, no ignorable.
SIGPIPE - Se genera al escribir sobre la pipe sin lector. Tratamiento por defecto:exit. Reprogramable.
SIGQUIT - Terminar.
SIGSEGV - segmentation violation.Salta con dirección de memoria ilegal. Tratamiento por defecto:exit + volcado de memoria. Reprogramable.
SIGSTOP - Detiene el proceso. Se genera al pulsar "^z" durante la ejecución. No reprogramable, no ignorable.
SIGTERM - Terminación. Tratamiento por defecto:exit. Reprogramable.
SIGTSTP - Parada de terminal.
SIGTTIN - Proceso en segundo plano intentando leer ("in").
SIGTTOU - Proceso en segundo plano intentando escribir ("out").
SIGUSR1 - User defined 1. Signal definido por el usuario.Tratamiento por defecto: exit. Reprogramable.
SIGUSR2 - User defined 2. Signal definido por el usuario.Tratamiento por defecto: exit. Reprogramable.
*SIGPOLL - Pollable event.
*SIGPROF - El temporizador copiador expiró.
*SIGSYS - Mala llamada al sistema.
*SIGTRAP - Trace/breakpoint trap.
SIGURG - datos importantes disponibles en socket
*SIGVTALRM - "virtual timer expired"(SUS)
*SIGXCPU - excedido límite de tiempo de CPU
*SIGXFSZ - excedido límite de tamaño de fichero

Nota: el asterisco significa que es una extensión de X/Open System Interfaces (XSI). Las frases entre comillas y seguidas de (SUS) son la forma de escribirlas del SUS[1].

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Señal — Para otros usos de este término, véase Señales (desambiguación). Foco para comunicación mediante señales luminosas. Una señal es un signo, un gesto u otro tipo que informa o avisa de algo. La señal sustituye por lo tanto a la palabra escrita o al …   Wikipedia Español

  • Ratón (informática) — Ratón con cable y rueda. Ratón …   Wikipedia Español

  • Jerga informática — Anexo:Jerga informática Saltar a navegación, búsqueda El lenguaje de la informática está caracterizado por emplear numerosos anglicismos, puesto que el idioma inglés se ha convertido en la lengua franca de la informática. El uso de algunas… …   Wikipedia Español

  • Anexo:Jerga informática — El lenguaje de la informática está caracterizado por emplear numerosos anglicismos, puesto que el idioma inglés se ha convertido en la lengua franca de la informática. El uso de algunas palabras difiere en España e Hispanoamérica. Índice: A B C D …   Wikipedia Español

  • Facultad de Informática (Universidad Politécnica de Madrid) — Saltar a navegación, búsqueda Facultad de Informática (Universidad Politécnica de Madrid) Fundación 1976 Decano Francisco Javier Segovia Pérez …   Wikipedia Español

  • Ingeniería Técnica en Informática de Gestión — Centro de proceso de datos de la NASA en Columbia, compuesto por 20 clusters SGI Altix, un total de 10240 CPU. La Ingeniería Técnica en Informática de Gestión es una disciplina de la ingeniería que trata sobre la adquisición de conocimientos… …   Wikipedia Español

  • Escuela Técnica Superior de Ingenierías Informática y de Telecomunicación (Universidad de Granada) — Saltar a navegación, búsqueda E. T. S. de Ingenierías Informática y de Telecomunicación Fundación 1986 Localización Granada, España Estudiantes 3400 (2005) Director/a …   Wikipedia Español

  • Ancho de banda (informática) — Saltar a navegación, búsqueda Para otros usos de este término, véase Ancho de banda. En computación de redes y en ciencias de la computación, ancho de banda digital, ancho de banda de red o simplemente ancho de banda es la medida de datos y… …   Wikipedia Español

  • Teclado (informática) — Para otros usos de este término, véase Teclado. En informática un teclado es un periférico de entrada o dispositivo, en parte inspirado en el teclado de las máquinas de escribir, que utiliza una disposición de botones o teclas, para que actúen… …   Wikipedia Español

  • Proceso (informática) — Este artículo se refiere al proceso informático. Un proceso es un programa en ejecución. Los procesos son gestionados por el sistema operativo y están formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el… …   Wikipedia Español