fbpx
Wikipedia

Señal (informática)

Una señal (del inglés 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 este, si no se estableció nada previamente se ejecuta la acción por defecto para esa señal.


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 Pau.
SIGSEGV - segmentation violation.Salta con dirección de memoria ilegal. Tratamiento por defecto:exit + volcado de memoria. Reprogramable.
SIGSTOP - Detiene el proceso. No reprogramable, no ignorable. Similar a SIGTSTP
SIGTERM - Terminación. Tratamiento por defecto:exit. Reprogramable.
SIGTSTP - Parada de terminal. Se genera al pulsar "^z" (Ctrl-z) durante la ejecución.
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 - Error de argumentos al realizar una llamada al sistema 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

  • UNIX and Reliable POSIX Signals by Baris Simsek
  •   Datos: Q1412443

señal, informática, señal, inglés, signal, forma, limitada, comunicación, entre, procesos, empleada, unix, otros, sistemas, operativos, compatibles, posix, esencia, notificación, asíncrona, enviada, proceso, para, informarle, evento, cuando, manda, señal, proc. Una senal del ingles signal es una forma limitada de comunicacion entre procesos empleada en Unix y otros sistemas operativos compatibles con POSIX En esencia es una notificacion asincrona enviada a un proceso para informarle de un evento Cuando se le manda una senal a un proceso el sistema operativo modifica su ejecucion normal Si se habia establecido anteriormente un procedimiento handler para tratar esa senal se ejecuta este si no se establecio nada previamente se ejecuta la accion por defecto para esa senal Indice 1 Envio de senales 2 Manipulacion de senales 3 Lista de senales 4 Enlaces externosEnvio de senales EditarAl escribir Ctrl C en el shell donde se ejecuta un proceso el sistema le envia una senal SIGINT que por defecto causa la terminacion del proceso Ctrl Z hace que el sistema envie una senal SIGTSTP que suspende la ejecucion del proceso La llamada al sistema kill enviara la senal especificada al proceso Excepciones como la division por cero o la violacion de segmento generan senales Los procesos pueden enviar senales tanto a otros procesos como a si 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 senal SIGUSR1 El nucleo puede generar una senal para informar de un evento a un proceso Por ejemplo SIGPIPE se genera cuando un proceso escribe en una tuberia que habia sido cerrada por el proceso que leia de ella Manipulacion de senales EditarLos manipuladores de senales se establecen mediante la llamada al sistema signal Si hay un manipulador de senal para una senal dada se invoca y si no lo hay se usa el manipulador por defecto El proceso puede especificar tambien dos comportamientos por defecto sin necesidad de crear un manipulador ignorar la senal SIG IGN y usar el manipulador por defecto SIG DFL Hay dos senales que no pueden ser interceptadas ni manipuladas SIGKILL y SIGSTOP La manipulacion de senales es vulnerable a que se produzca una condicion de carrera pues las senales son asincronas y puede ocurrir que llegue otra senal incluso del mismo tipo al proceso mientras transcurre la ejecucion de la funcion que manipula la senal Puede usarse la funcion sigprocmask para desbloquear la entrega de senales Las senales pueden interrumpir una llamada al sistema en proceso dejando en manos de la aplicacion la gestion del PCLSRing Lista de senales EditarLa Single Unix Specification especifica las siguientes senales definidas en lt signal h gt SIGABRT PROCESO abortado SIGALRM Senal 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 continua Tratamiento por defecto ignorar Reprogramable SIGCONT Continua si estaba parado Tratamiento por defecto continuar Reprogramable SIGFPE Excepcion de coma flotante erroneous arithmetic operation SUS SIGHUP Hangup al salir de la session se envia a los processos en Background Tratamiento por defecto exit Reprogramable SIGILL Instruccion ilegal SIGINT Interrupcion se genera al pulsar c durante la ejecucion Tratamiento por defecto exit Reprogramable SIGKILL Destruccion 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 Pau SIGSEGV segmentation violation Salta con direccion de memoria ilegal Tratamiento por defecto exit volcado de memoria Reprogramable SIGSTOP Detiene el proceso No reprogramable no ignorable Similar a SIGTSTP SIGTERM Terminacion Tratamiento por defecto exit Reprogramable SIGTSTP Parada de terminal Se genera al pulsar z Ctrl z durante la ejecucion 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 expiro SIGSYS Error de argumentos al realizar una llamada al sistema llamada al sistema SIGTRAP Trace breakpoint trap SIGURG datos importantes disponibles en socket SIGVTALRM virtual timer expired SUS SIGXCPU excedido limite de tiempo de CPU SIGXFSZ excedido limite de tamano de ficheroNota el asterisco significa que es una extension de X Open System Interfaces XSI Las frases entre comillas y seguidas de SUS son la forma de escribirlas del SUS 1 Enlaces externos EditarIntroduction to Unix Signals Programming UNIX and Reliable POSIX Signals by Baris Simsek Datos Q1412443Obtenido de https es wikipedia org w index php title Senal informatica amp oldid 129851254, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos