Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии, один из основных способов взаимодействия между процессами. Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчика, то выполняется обработчик по умолчанию. Названия сигналов «SIG…» являются числовыми константами (макроопределениями Си) со значениями, определяемыми в заголовочном файле signal.h. Числовые значения сигналов могут меняться от системы к системе, хотя основная их часть имеет в разных системах одни и те же значения. Утилита kill позволяет задавать сигнал как числом, так и символьным обозначением. Спецификация сигналов включена в стандарты POSIX.
Introduction To Unix Signals Programming
Στην επιστήμη της πληροφορικής, τα σήματα (signals) είναι μία περιορισμένη μορφή διαδιεργασιακής επικοινωνίας η οποία χρησιμοποιείται στο Unix, μα και σε άλλα λειτουργικά συστήματα τα οποία υπακούν στο πρότυπο POSIX. Πρόκειται για λογισμικού που δρουν ως σινιάλα και μπορούν να αποστέλλονται σε μία διεργασία από κάποια άλλη ή από τον πυρήνα, αναγκάζοντάς την να τα χειριστεί ασύγχρονα μόλις τα λάβει και ακολούθως να επιστρέφει στην κανονική ροή εκτέλεσης. Κάθε σήμα διακρίνεται από έναν ακέραιο με τον οποίο είναι συσχετισμένο κάποιο συμβολικό όνομα (SIGxxxx). Το μοντέλο είναι το εξής: ένα πρόγραμμα στον κώδικά του δηλώνει ότι μία συνάρτηση είναι χειριστής ενός συγκεκριμένου σήματος (εγκατάσταση χειριστή). Όταν ληφθεί το σήμα αυτό κατά την εκτέλεση της αντίστοιχης διεργασίας, αυτομάτως η τελευταία διακόπτει ό,τι έκανε (εντολή Α) και εκτελεί τον χειριστή. Μόλις ο χειριστής επιστρέψει ο έλεγχος δίνεται ξανά στην εντολή Α. Ένας χειριστής εγκαθίσταται με την κλήση συστήματος sigaction (αν δίνεται η ειδική τιμή SIG_IGN ως όρισμα στη sigaction αντί για όνομα συνάρτησης, τότε το αντίστοιχο σήμα αγνοείται από τη διεργασία), ενώ με τις κλήσεις kill ή sigqueue το τρέχον πρόγραμμα αποστέλλει ένα συγκεκριμένο σήμα σε μία συγκεκριμένη διεργασία (η διαφορά τους είναι ότι η sigqueue, μαζί με το σήμα, αποστέλλει και έναν επιπλέον ακέραιο με δεδομένα του προγραμματιστή). Σχεδόν για κάθε σήμα υπάρχει κάποιος προεπιλεγμένος χειριστής ο οποίος παρέχεται από το πρότυπο POSIX και δεν χρειάζεται να γραφεί ή να εγκατασταθεί χειροκίνητα (συνήθως επιφέρει τον τερματισμό της διεργασίας ή αγνοεί τελείως το σήμα)· για κάποια συγκεκριμένα σήματα μάλιστα δεν μπορεί να υποσκελιστεί από χειριστή του προγραμματιστή.
En informàtica, un senyal és una forma limitada de comunicació entre processos o IPC (de l'anglès Inter Proces Communication) utilitzat en sistemes operatius UNIX, UNIX-like i altres sistemes operatius compatibles amb l'estàndard POSIX. Bàsicament, els senyals són notificacions que són enviades a processos amb l'objectiu de notificar-los l'ocurrència d'un esdeveniment. Els senyals permeten interrompre l'execució d'un procés per tractar un determinat esdeveniment asíncron que s'ha produït. Aquests senyals poden ser causats per diferents motius:
シグナル（英: signal）とは、Unix系（POSIX標準に類似の）オペレーティングシステム (OS) における、限定的なプロセス間通信の形式を使って、プロセスに対し、非同期で、イベントの発生を伝える機構である。シグナルが送信された際、OSは宛先プロセスの正常な処理の流れに割り込む。どんな不可分でない処理の間でも割り込むことができる。受信プロセスが以前にシグナルハンドラを登録しておけば、シグナル受信時にそのルーチンが実行される。さもなくば、デフォルトのシグナル処理が行われる。（同様なものは他のTSSなどでも開発されてはいるが、UNIXのシグナルは）1970年ごろベル研究所でUNIXに実装された。後にPOSIXである程度は標準化されているが、標準化が諦められているような振舞などもいくつかあり、特に他の幾つかの要素（fork等）とマルチスレッドとシグナルが絡むと実装毎の対処にプログラミングが大変になることがある。プロセスはI/O待ちなど、カーネルの内部で処理がブロックしている場合などで割り込み不可状態になることがあり、その場合は如何なるシグナルを送っても無効になる。
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.
Signal (informatique)
Signál je v informatice jednoduchá zpráva, která se posílá procesům. Signály slouží v unixových systémech k informování procesu o výskytu události. Pomocí signálů lze meziprocesově komunikovat a manipulovat s procesy (ukončovat, pozastavovat, atd.). Příjemcem/odesílatelem signálu může být jen proces (v Unixech může být odesílatelem i jádro operačního systému).
Сигнал (Unix)
신호는 유닉스, 유닉스 계열, POSIX 호환 운영 체제에 쓰이는 제한된 형태의 프로세스 간 통신이다. 신호는 프로세스나 동일 프로세스 내의 특정 스레드로 전달되는 비동기식 통보이다. 이러한 신호들은 1970년대 벨 연구소를 통해 존재한 뒤로 최근의 시기에는 POSIX 표준에 정의되어 있다.
Dalam ilmu komputer, Sinyal adalah salah satu bentuk dari komunikasi antar proses atau Inter-Process Communication (IPC) yang biasanya digunakan di Unix, mirip Unix, dan sistem operasi lain yang mendukung POSIX. Sinyal adalah sebuah notifikasi asinkron yang dikirim kepada suatu proses atau utas tertentu dalam proses yang sama untuk menginformasikan bahwa suatu peristiwa telah terjadi. Berawal pada tahun 1970-an di UNIX Bell Labs dan baru-baru ini telah dispesifikasi dalam standar POSIX.
Senyal (informàtica)
Sinyal (komunikasi antar proses)
Signal (datavetenskap)
Signal (IPC)
Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling. They are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems. A signal is an asynchronous notification sent to a process or to a specific thread within the same process to notify it of an event. Common uses of signals are to interrupt, suspend, terminate or kill a process. Signals originated in 1970s Bell Labs Unix and were later specified in the POSIX standard. When a signal is sent, the operating system interrupts the target process' normal flow of execution to deliver the signal. Execution can be interrupted during any non-atomic instruction. If the process has previously registered a signal handler, that routine is executed. Otherwise, the default signal handler is executed. Embedded programs may find signals useful for inter-process communications, as signals are notable for their Algorithmic efficiency. Signals are similar to interrupts, the difference being that interrupts are mediated by the CPU and handled by the kernel while signals are mediated by the kernel (possibly via system calls) and handled by individual processes. The kernel may pass an interrupt as a signal to the process that caused it (typical examples are SIGSEGV, SIGBUS, and ).
Em ciência da computação, um sinal (signal em inglês) é uma forma limitada de comunicação entre processos utilizada em sistemas Unix e outros sistemas operacionais compatíveis com o padrão POSIX. Essencialmente, um sinal é uma notificação assíncrona enviada a processos com o objetivo de notificar a ocorrência de um evento. Quando um sinal é enviado a um processo, o sistema operacional interrompe o seu fluxo normal de execução. A execução pode ser interrompida em qualquer operação que não seja . Um processo pode registrar uma rotina de tratamento de sinal (signal handler em inglês) para tratar um determinado sinal, se não for desejado que a rotina padrão para este sinal seja executada.
Bei Verwendung des Betriebssystems Unix ist ein Signal eine Systemnachricht an einen laufenden Prozess. Signale sind eine primitive Form der Interprozesskommunikation. Die meisten Signale bewirken auch eine Aktion – meist das Beenden des Prozesses. Andere hingegen dienen lediglich der Information (z. B. SIGWINCH) oder können einen Prozess anhalten (SIGSTOP). Es gibt auch vom Benutzer frei verwendbare Signale (SIGUSR1 und SIGUSR2). Einige Signale können vom Prozess abgefangen oder unterdrückt werden. So fangen z. B. manche Serverprogramme (im Unix-Jargon „Daemon“) SIGUSR1 oder SIGUSR2 ab und lesen dann ihre Konfigurationsdateien neu ein.
En informatique, un signal est une forme de communication entre processus utilisée par les systèmes de type Unix et ceux respectant les standards POSIX. Il s'agit d'une notification asynchrone envoyée à un processus pour lui signaler l'apparition d'un événement. Quand un signal est envoyé à un processus, le système d'exploitation interrompt l'exécution normale de celui-ci. Si le processus possède une routine de traitement pour le signal reçu, il lance son exécution. Dans le cas contraire, il exécute la routine de traitement des signaux par défaut. La norme POSIX (et la documentation de Linux) limite les fonctions directement ou indirectement appelables depuis cette routine de traitements des signaux. Par exemple malloc ou printf ne peuvent y être utilisés (à cause d'une possible interférence avec l'état global du programme). Plus précisément, cette norme donne une liste exhaustive de fonctions primitives dites async-signal safe (en pratique, les appels systèmes) qui sont les seules à pouvoir être appelées depuis une routine de traitement de signal sans avoir un comportement indéfini. Il est donc suggéré d'avoir une routine de traitement de signal qui positionne simplement un drapeau déclaré volatile sig_atomic_t qui serait testé ailleurs dans le programme.
Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии, один из основных способов взаимодействия между процессами. Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчика, то выполняется обработчик по умолчанию. Спецификация сигналов включена в стандарты POSIX.
在计算机科学中，信号（英語：Signals）是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制，用来提醒进程一个事件已经发生。当一个信号发送给一个进程，操作系统中断了进程正常的控制流程，此时，任何非原子操作都将被中断。如果进程定义了信号的处理函数，那么它将被执行，否则就执行默认的处理函数。 信号类似于中断，不同之处在于中断由处理器调解并由内核处理，而信号由内核调解(可能通过系统调用)并由进程处理。内核可以将中断作为信号传递给导致中断的进程（典型的例子有SIGSEGV、SIGBUS、SIGILL和SIGFPE）。 信号起源于20世纪70年代的贝尔实验室Unix，最近在POSIX标准中有所规定。 嵌入式程序可能会发现信号对于进程间通信很有用，因为信号的计算和内存占用很小。
En informàtica, un senyal és una forma limitada de comunicació entre processos o IPC (de l'anglès Inter Proces Communication) utilitzat en sistemes operatius UNIX, UNIX-like i altres sistemes operatius compatibles amb l'estàndard POSIX. Bàsicament, els senyals són notificacions que són enviades a processos amb l'objectiu de notificar-los l'ocurrència d'un esdeveniment. Els senyals permeten interrompre l'execució d'un procés per tractar un determinat esdeveniment asíncron que s'ha produït. Aquests senyals poden ser causats per diferents motius: * Dispositius E/S: una desconnexió... * Excepcions: overflow... * Esdeveniments establerts: Alarmes... * Altres processos: kill... Quan un senyal s'envia a un procés, el sistema operatiu interromp el flux d'execució normal del procés per tal de processar l'esdeveniment indicat pel senyal. L'execució pot ser interrompuda durant l'execució de qualsevol instrucció no atòmica. Els programes poden implementar i registrar prèviament controladors de senyal (de l'anglès signal handler). Els controladors de senyal no són més que rutines informàtiques que s'executen en rebre un senyal. Si no s'ha registrat cap controlador de senyal aleshores s'executa el controlador per defecte.
유닉스 신호
Σήμα (υπολογιστές)
Сигнал — це засіб міжпроцесної взаємодії в Unix-подібних та інших операційних системах, що сумісні зі стандартом POSIX. Сигнал являє собою асинхронне повідомлення, що посилається процесу, щоб проінформувати його про подію, яка відбулась. Коли процес отримує сигнал, операційна система перериває хід його виконання і запускає підпрограму обробки цього сигналу. Якщо в програмі явно не задана реакція на сигнал, запускається його стандартний обробник.
Señal (informática)
Στην επιστήμη της πληροφορικής, τα σήματα (signals) είναι μία περιορισμένη μορφή διαδιεργασιακής επικοινωνίας η οποία χρησιμοποιείται στο Unix, μα και σε άλλα λειτουργικά συστήματα τα οποία υπακούν στο πρότυπο POSIX. Πρόκειται για λογισμικού που δρουν ως σινιάλα και μπορούν να αποστέλλονται σε μία διεργασία από κάποια άλλη ή από τον πυρήνα, αναγκάζοντάς την να τα χειριστεί ασύγχρονα μόλις τα λάβει και ακολούθως να επιστρέφει στην κανονική ροή εκτέλεσης. Κάθε σήμα διακρίνεται από έναν ακέραιο με τον οποίο είναι συσχετισμένο κάποιο συμβολικό όνομα (SIGxxxx).
Un segnale, in informatica, è un impulso asincrono trasmesso da un processo ad un altro, ed è uno degli strumenti di comunicazione tra processi. Tipicamente nessun dato viene trasmesso assieme al segnale, contrariamente a quanto accade, in generale, per gli eventi nella programmazione ad eventi. La Single UNIX Specification specifica i seguenti segnali per <signal.h></signal.h>:
Un segnale, in informatica, è un impulso asincrono trasmesso da un processo ad un altro, ed è uno degli strumenti di comunicazione tra processi. Tipicamente nessun dato viene trasmesso assieme al segnale, contrariamente a quanto accade, in generale, per gli eventi nella programmazione ad eventi. Nei sistemi operativi Unix, Unix-like ed in genere quelli che seguono le specifiche POSIX, esiste una metodologia uniforme di utilizzare i segnali, come l'utilizzo della chiamata di sistema kill per mandare segnali, oppure l'uso di signal e sigaction per la definizione delle funzioni per la gestione dei segnali. In tali sistemi, oltre che da altri processi, i segnali sono inviati anche direttamente dal kernel per notificare il verificarsi di condizioni anomale (ad es. SIGSEGV, SIGBUS o anche SIGURG) La Single UNIX Specification specifica i seguenti segnali per <signal.h></signal.h>:
シグナル (Unix)
Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling. They are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems. A signal is an asynchronous notification sent to a process or to a specific thread within the same process to notify it of an event. Common uses of signals are to interrupt, suspend, terminate or kill a process. Signals originated in 1970s Bell Labs Unix and were later specified in the POSIX standard.
En signal är en begränsad form av interprocesskommunikation som används i Unix, Unix-liknande, och andra operativsystem som följer POSIX. I grunden är det ett asynkront meddelande som sänds till en process med målet att rapportera om en viss händelse som skett. När en signal skickas till en process, avbryter operativsystemet processen på ett normalt sätt. Programmets körning kan bli avbruten när som helst under en icke-atomisk instruktion. Om processen dock tidigare har registrerat en så kallad signal handler, är det den rutinen som körs. Om ingen signal handler har registrerats är det default-signalen som skickas.
Signal (Unix)
Signál (informatika)
Signál je v informatice jednoduchá zpráva, která se posílá procesům. Signály slouží v unixových systémech k informování procesu o výskytu události. Pomocí signálů lze meziprocesově komunikovat a manipulovat s procesy (ukončovat, pozastavovat, atd.). Příjemcem/odesílatelem signálu může být jen proces (v Unixech může být odesílatelem i jádro operačního systému). Jestliže proces obdrží signál, začne se ihned provádět příslušná akce, i když nebyla dokončena právě zpracovávaná funkce. Mluvíme tzv. o asynchronních signálech. Po dokončení akce pokračuje program od místa přerušení (pokud nebyl ukončen).
Sinal (ciência da computação)
En informatique, un signal est une forme de communication entre processus utilisée par les systèmes de type Unix et ceux respectant les standards POSIX. Il s'agit d'une notification asynchrone envoyée à un processus pour lui signaler l'apparition d'un événement. Quand un signal est envoyé à un processus, le système d'exploitation interrompt l'exécution normale de celui-ci. Si le processus possède une routine de traitement pour le signal reçu, il lance son exécution. Dans le cas contraire, il exécute la routine de traitement des signaux par défaut.
Dalam ilmu komputer, Sinyal adalah salah satu bentuk dari komunikasi antar proses atau Inter-Process Communication (IPC) yang biasanya digunakan di Unix, mirip Unix, dan sistem operasi lain yang mendukung POSIX. Sinyal adalah sebuah notifikasi asinkron yang dikirim kepada suatu proses atau utas tertentu dalam proses yang sama untuk menginformasikan bahwa suatu peristiwa telah terjadi. Berawal pada tahun 1970-an di UNIX Bell Labs dan baru-baru ini telah dispesifikasi dalam standar POSIX. Ketika sebuah sinyal terkirim, sistem operasi memotong arus eksekusi normal dari proces yang dikirimi sinyal untuk mengantar sinyal. Eksekusi dapat dipotong selama eksekusi non-atomik. Jika signal handler telah terlebih dahulu terdaftar dalam proses, maka fungsi signal handler yang akan tereksekusi.
Segnale (informatica)
Сигнал (операційні системи)
Unix信号