Una señal es una forma limitada de la comunicación entre procesos usada en el Unix, el Unix-como, y el otro POSIX - sistemas operativos obedientes. Esencialmente es una notificación asincrónica enviada a un proceso para notificarlo de un acontecimiento que ocurrió. Cuando una señal se envía a un proceso, el sistema operativo interrumpe el flujo normal de los procesos de la ejecución . La ejecución se puede interrumpir durante cualquier instrucción no atómica . Si el proceso ha colocado previamente a tratante de la señal del, se ejecuta esa rutina. Si no ejecutan al tratante de la señal del defecto.

Envío de señales

Mecanografiar ciertas combinaciones en el terminal de control de un proceso corriente hace el sistema enviarle ciertas señales: Ctrl-c (en un Unixes más viejo, DEL) envía una señal de la internacional ( SIGINT ); por abandono, esto hace el proceso terminar.
Ctrl-z envía una señal de TSTP ( SIGTSTP ); por abandono, esto hace el proceso suspender la ejecución.
El Ctrl \ envía una señal PARADA ( SIGQUIT ); por abandono, esto hace el proceso terminar y la base de la descarga.
El kill (la llamada de sistema 2) enviará la señal especificada al proceso, si los permisos permiten. Semejantemente, la matanza del (1) comando de permite que un usuario del envíe señales a los processses. La llamada de sistema de raise envía la señal especificada al proceso actual del .
Las excepciones tal como división por cero o una violación de la segmentación generarán señales (aquí, el SIGFPE y el SIGSEGV respectivamente, que ambos causan a vaciado de memoria por abandono).
El núcleo puede generar una señal de notificar el proceso de un acontecimiento. Por ejemplo, el SIGPIPE será generado cuando un proceso escribe a una pipa que ha sido cerrada por el lector; por abandono, esto hace el proceso terminar, que es conveniente al construir los shell pipelines

Manipulación de señales

Los tratantes de la señal pueden ser instalados con la llamada de sistema de la señal del () . Si un tratante de la señal no está instalado para una señal particular, utilizan al tratante del defecto. Si no la señal se intercepta e invocan el tratante de la señal. El proceso puede también especificar dos comportamientos del defecto, sin crear a un tratante: no hacer caso de la señal (SIG_IGN) y utilizar a tratante de la señal del defecto (SIG_DFL). Hay dos señales que no pueden ser interceptadas y ser manejadas: SIGKILL y SIGSTOP . La dirección de la señal es vulnerable a las condiciones de raza porque las señales son asincrónicas, otra señal (incluso del mismo tipo) se puede entregar al proceso durante la ejecución de la señal que maneja rutina. La llamada del sigprocmask del () se puede utilizar para bloquear y para desbloquear la entrega de señales.

Las señales pueden causar la interrupción de una llamada de sistema en curso, dejándolo al uso para manejar un recomenzar no transparante .

Relación con excepciones

ejecución de s del proceso un la 'puede dar lugar a la generación de una excepción del hardware, por ejemplo, si el proceso intenta dividir por cero o incurre en una falta TLB. En el Unix - como sistemas operativos, este acontecimiento cambia automáticamente el contexto del procesador para comenzar a ejecutar a un tratante de la excepción del núcleo . Con algunas excepciones, tales como una avería de página, el núcleo tiene suficiente información completamente a la manija del el acontecimiento y reasume la ejecución del proceso. En otras excepciones, sin embargo, el núcleo no puede proceder inteligente y debe en lugar de otro diferir la operación de dirección de excepción al proceso de dislocación. Este aplazamiento se alcanza vía el mecanismo de la señal, en donde el núcleo envía al proceso una señal que corresponde a la excepción actual. Por ejemplo, si un proceso intentara dividir por cero en una CPU X86, una excepción del error de divisoria del sería generada y hacer el núcleo enviar la señal SIGFPE al proceso. Semejantemente, si el proceso intentara tener acceso a una dirección de memoria fuera de su espacio de dirección virtual, el núcleo notificaría el proceso de esta violación vía una señal SIGSEGV . El trazado exacto entre los nombres de la señal y las excepciones es obviamente dependiente sobre la CPU, puesto que los tipos de excepción diferencian entre las arquitecturas.

Lista de señales

La sola especificación de Unix especifica las señales siguientes que se definen en < Signal.h >: SIGABRT del - procesar el abortado SIGALRM del
- señal levantada por el SIGBUS - error en el bus del
de la alarma del : " tener acceso a la porción indefinida de object" de la memoria; el SIGCHLD - proceso hijo del
terminó, (*or continuo) el parado SIGCONT del
- continuar si el parado SIGFPE - excepción del
de la coma flotante: " operation" aritmético erróneo; el SIGHUP - SIGILL
del retraso - el SIGINT - SIGKILL del
de la instrucción ilegal del
de la interrupción - el SIGPIPE del
de la matanza - escribir a la pipa sin un de lectura SIGQUIT del
- el parado SIGSEGV - SIGSTOP
de la violación de la segmentación - parar el ejecutar temporalmente SIGTERM - SIGTSTP
de la terminación - el terminal SIGTTIN - proceso del
de la señal de parada de fondo que intenta leer (" in") SIGTTOU - proceso del
de fondo que intenta escribir (" out") el SIGUSR1 - 1 definido por el usario SIGUSR2
- 2 el definido por el usario SIGPOLL - pollable SIGPROF del
* del
* del acontecimiento - que perfilaba el contador de tiempo expiró el SIGSYS - mán SIGTRAP del
* del
* de Syscall - el SIGURG - datos urgentes del
de la trampa del rastro/del punto de desempate disponibles en el SIGVTALRM del
* del zócalo - señal levantada por el contador de tiempo que contaba tiempo virtual: " expired" virtual del contador de tiempo; SIGXCPU - límite del
* del tiempo CPU excedió el SIGXFSZ del
* - tamaño del archivo excedido límite

Nota: Donde una sección es marcada por un asterisco, ésta denota una extensión de los interfaces de sistema (XSI) de X/Open. La fraseología en las cotizaciones añadidas con (SUS) denota la fraseología del SUS.

Ver también

< Signal.h >

.

  • Zenithic
  • Kay Kendall
    Random links:Milltown (ciudad), Wisconsin | TRAMITAR-SQL | Tom de Finlandia | Fax negro | Royal Air Force Stafford

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">