Signál (IPC) - Signal (IPC)
tento článek potřebuje další citace pro ověření.Srpna 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Signály jsou omezenou formou meziprocesová komunikace (IPC), obvykle používaný v Unix, Unixový, a další POSIX - kompatibilní operační systémy. Signál je asynchronní oznámení zaslané do proces nebo konkrétní vlákno v rámci stejného procesu, abychom jej informovali o události, ke které došlo. Signály vznikly v 70. letech Bell Labs Unix a byly nedávno specifikovány v POSIX Standard.
Když je odeslán signál, operační systém přeruší cílový proces normálně průběh exekuce doručit signál. Provádění lze přerušit během kteréhokoli ne-atomová instrukce. Pokud proces již dříve zaregistroval a obsluha signálu, tato rutina je provedena. Jinak se provede výchozí obslužný program signálu.
Integrované programy mohou najít signály užitečné pro komunikaci mezi procesy, protože výpočetní a paměťová stopa pro signály je malá.
Signály jsou podobné přerušení s tím rozdílem, že přerušení jsou zprostředkována procesorem a zpracovává jádro zatímco signály jsou zprostředkovány jádrem (možná prostřednictvím systémových volání) a zpracovávány procesy. Jádro může předat přerušení jako signál procesu, který jej způsobil (typické příklady jsou SIGSEGV, SIGBUS, SIGILL a SIGFPE ).
Dějiny
Verze 1 Unix měl samostatný systémová volání zachytit přerušení, ukončení a strojní pasti. Verze 4 spojil všechny pasti do jednoho hovoru, signála každá očíslovaná past získala symbolické jméno v Verze 7. zabít objevil se v Verze 2 a v Verze 5 mohl vysílat libovolné signály.[1] Plán 9 od Bell Labs signály nahrazeny poznámky, které umožňují odesílání krátkých, libovolných řetězců.[Citace je zapotřebí ]
Odesílání signálů
The zabít (2) systémové volání vyšle specifikovaný signál do zadaného procesu, pokud to povolení dovolí. Podobně zabít (1) příkaz umožňuje uživateli odesílat signály do procesů. The zvýšit (3) funkce knihovny pošle zadaný signál aktuálnímu procesu.
Výjimky jako dělení nulou nebo a porušení segmentace bude generovat signály (zde, SIGFPE "výjimka s plovoucí desetinnou čárkou" a SIGSEGV „porušení segmentace“, které oba ve výchozím nastavení způsobují a skládka jádra a ukončení programu).
Jádro může generovat signály pro upozornění procesů na události. Například, SIGPIPE bude generováno, když proces zapíše do kanálu, který byl uzavřen čtečkou; ve výchozím nastavení to způsobí ukončení procesu, což je výhodné při konstrukci skořepinové potrubí.
Psaní určitých kombinací kláves na ovládací terminál běžícího procesu způsobí, že mu systém pošle určité signály:[2]
- Ctrl-C (ve starších Unixech, DEL) vyšle signál INT („přerušení“, SIGINT ); ve výchozím nastavení to způsobí ukončení procesu.
- Ctrl-Z odešle signál TSTP ("terminál stop", SIGTSTP ); ve výchozím nastavení to způsobí, že proces pozastaví provádění.[3]
- Ctrl- odešle signál KONEC (SIGQUIT ); ve výchozím nastavení to způsobí ukončení procesu a vyřazení jádra.
- Ctrl-T (není podporováno ve všech systémech UNIX) odesílá signál INFO (SIGINFO ); ve výchozím nastavení a pokud to příkaz podporuje, způsobí to, že operační systém zobrazí informace o spuštěném příkazu.[4]
Tyto výchozí kombinace kláves s moderními operačními systémy lze změnit pomocí stty příkaz.
Manipulační signály
Obslužné programy signálu lze nainstalovat pomocí signál (2) nebo sigaction (2) systémové volání. Pokud není pro konkrétní signál nainstalován obslužný program signálu, použije se výchozí obslužný program. Jinak je signál zachycen a je vyvolána obsluha signálu. Proces může také určit dvě výchozí chování, aniž by vytvořil obslužnou rutinu: ignorovat signál (SIG_IGN) a použít výchozí obslužnou rutinu signálu (SIG_DFL). Existují dva signály, které nelze zachytit a zpracovat: SIGKILL a SIGSTOP.
Rizika
Zpracování signálu je citlivé na podmínky závodu. Protože signály jsou asynchronní, může být do procesu během provádění rutiny zpracování signálu doručen další signál (dokonce stejného typu).
The sigprocmask (2) volání lze použít k blokování a odblokování doručování signálů. Blokované signály nejsou do procesu dodávány, dokud nejsou odblokovány. Signály, které nelze ignorovat (SIGKILL a SIGSTOP), nelze blokovat.
Signály mohou způsobit přerušení probíhajícího systémového volání a ponechat jej na správě aplikace neprůhledný restart.
Obslužné rutiny signálů by měly být psány způsobem, který nemá za následek žádné nežádoucí vedlejší účinky, např. errno změna, změna masky signálu, změna dispozice signálu a další globální proces změny atributů. Použití ne-reentrant funkce, např. malloc nebo printf, manipulátory vnitřních signálů jsou také nebezpečné. Zejména POSIX specifikace a manuálová stránka Linuxu signál (7) vyžaduje, aby všechny funkce systému fungovaly přímo nebo nepřímo volané ze signální funkce jsou asynchronní signál bezpečný. signální bezpečnost (7) poskytuje seznam takových bezpečných funkcí asynchronního signálu (prakticky systémová volání ), jinak se jedná o nedefinované chování. to je navrhl jednoduše nastavit volatilní sig_atomic_t
proměnnou v obslužné rutině signálu a otestovat ji jinde.
Obsluha signálů může místo toho dát signál do a fronta a okamžitě se vrátit. Hlavní vlákno pak bude pokračovat „nepřerušovaně“, dokud nebudou převzaty signály z fronty, například v smyčka události. „Nepřerušovaný“ zde znamená, že operace, které blok se mohou předčasně vrátit a musí být obnoveno, jak je zmíněno výše. Signály by měly být zpracovávány z fronty v hlavním vlákně, nikoli pomocí pracovní fondy, protože to znovu zavádí problém asynchronicity. Správa fronty však není možná bezpečným způsobem asynchronního signálu pouze s sig_atomic_t, protože je zaručeno, že pouze jednotlivá čtení a zápisy do těchto proměnných budou atomické, nikoli přírůstky nebo (fetch-and) -decrements, jak by to vyžadovala fronta. Ve skutečnosti tedy lze bezpečně zařadit do fronty pouze jeden signál na obsluhu sig_atomic_t dokud nebude zpracována.
Vztah s hardwarovými výjimkami
A proces Provedení může vést k vygenerování hardwaru výjimka, například pokud se proces pokusí dělit nulou nebo dojde k a chyba stránky.
v Unixový operační systémy, tato událost automaticky změní procesor kontext začít vykonávat a jádro obsluha výjimek. V případě některých výjimek, například a chyba stránky, jádro má dostatek informací k úplnému zvládnutí samotné události a obnovení procesu.
Jiné výjimky však jádro nedokáže inteligentně zpracovat a místo toho musí operaci zpracování výjimek odložit na chybující proces. Tohoto odkladu je dosaženo pomocí signálního mechanismu, kdy jádro odesílá do procesu signál odpovídající aktuální výjimce. Například pokud se proces pokusil o celočíselné dělení nulou na x86 procesor, a chyba rozdělení bude vygenerována výjimka a způsobí, že jádro pošle SIGFPE signál do procesu.
Podobně, pokud se proces pokusil o přístup k adrese paměti mimo její virtuální adresový prostor, jádro upozorní proces na toto porušení prostřednictvím SIGSEGV signál. Přesné mapování mezi názvy signálů a výjimkami zjevně závisí na CPU, protože typy výjimek se mezi architekturami liší.
Signály POSIX
Níže uvedený seznam dokumentuje signály specifikované v Single Unix Specification. Všechny signály jsou definovány jako makro konstanty v <signal.h>
hlavičkový soubor. Název konstanty makra se skládá z „SIG“ předpona následovaný mnemotechnickým názvem signálu.
- SIGABRT a SIGIOT
- Signály SIGABRT a SIGIOT se odesílají do procesu, který jim to sděluje přerušit, tj. ukončit. Signál je obvykle iniciován samotným procesem, když volá
přerušit()
funkce C Standardní knihovna, ale lze jej poslat do procesu zvenčí jako každý jiný signál. - SIGALRM, SIGVTALRM a SIGPROF
- Signál SIGALRM, SIGVTALRM a SIGPROF je odeslán do procesu, když je časový limit specifikovaný ve volání předcházejícího poplach funkce nastavení (např
setitimer
) uplyne. SIGALRM je odeslán po uplynutí reálného nebo hodinového času. SIGVTALRM se odešle, když vyprší čas procesoru použitý procesem. SIGPROF se odešle, když vyprší čas CPU používaný procesem a systémem jménem procesu. - SIGBUS
- The SIGBUS signál je odeslán do procesu, když způsobí a chyba sběrnice. Podmínky, které vedou k odeslání signálu, jsou například nesprávné zarovnání přístupu do paměti nebo neexistující fyzická adresa.
- SIGCHLD
- The SIGCHLD signál je odeslán do procesu, když a dětský proces končí, je přerušeno nebo se obnoví po přerušení. Jedno běžné použití signálu je instruovat operační systém, aby vyčistil prostředky používané podřízeným procesem po jeho ukončení bez výslovného volání
Počkejte
systémové volání. - SIGCONT
- The SIGCONT signál dává pokyn operačnímu systému pokračovat (restart) proces dříve pozastavený signálem SIGSTOP nebo SIGTSTP. Jedno důležité použití tohoto signálu je v kontrola práce v Unix shell.
- SIGFPE
- Signál SIGFPE je odeslán do procesu, když provede chybnou aritmetickou operaci, například dělení nulou. To může zahrnovat celočíselné dělení nulou a přetečení celého čísla ve výsledku dělení (pouze INT_MIN / -1, INT64_MIN / -1 a% -1 přístupné z C).[5][6]
- ZOBRAZENÍ
- The ZOBRAZENÍ signál je odeslán do procesu, když je jeho ovládací terminál uzavřen. Původně byl navržen tak, aby oznamoval proces a sériová linka kapka (a zavěsit). V moderních systémech tento signál obvykle znamená, že ovládání pseudo nebo virtuální terminál Byl zavřen.[7] Mnoho démoni znovu načtou své konfigurační soubory a znovu otevřou své logy, místo aby při příjmu tohoto signálu skončily.[8] nic je příkaz k provedení příkazu k ignorování signálu.
- SIGILL
- Signál SIGILL je odeslán do procesu, když se pokusí provést ilegální, poškozený, neznámý nebo privilegovaný návod.
- SIGINT
- Signál SIGINT je odeslán do procesu jeho řídícím terminálem, pokud si to uživatel přeje přerušit proces. To se obvykle zahájí stisknutím Ctrl+C, ale na některých systémech „vymazat „znak nebo“přestávka "klíč lze použít.[9]
- SIGKILL
- Signál SIGKILL je odeslán do procesu, aby se okamžitě ukončil (zabít). Na rozdíl od SIGTERM a SIGINT nelze tento signál zachytit nebo ignorovat a přijímací proces nemůže po přijetí tohoto signálu provést žádné vyčištění. Platí následující výjimky:
- Zombie procesy nemohou být zabiti, protože jsou již mrtví a čekají, až je jejich mateřské procesy sklidí.
- Procesy, které jsou v zablokovaném stavu, nezemřou, dokud se znovu neprobudí.
- The inic proces je speciální: Nedostává signály, které nechce zvládnout, a proto může SIGKILL ignorovat.[10] Výjimkou z tohoto pravidla je, zatímco je init ptraced v systému Linux.[11][12]
- An nepřerušovaně spí proces nemusí být ukončen (a uvolnit jeho zdroje), i když je odeslán SIGKILL. Toto je jeden z mála případů, kdy může být nutné restartovat systém UNIX, aby se vyřešil dočasný softwarový problém.
- SIGKILL se používá jako poslední možnost při ukončení procesů ve většině systémů vypnout postupy, pokud dobrovolně neopustí v reakci na SIGTERM. Chcete-li urychlit postup vypnutí počítače, Mac OS X 10.6, aka Levhart sněžný, odešle SIGKILL aplikacím, které se označily jako „čisté“, což má za následek rychlejší časy vypnutí, pravděpodobně bez škodlivých účinků.[13] Příkaz
killall -9
má podobný, i když nebezpečný účinek, když je proveden např. v Linuxu; neumožňuje programům ukládat neuložená data. Má další možnosti a při žádném nepoužívá bezpečnější signál SIGTERM. - SIGPIPE
- Signál SIGPIPE je odeslán do procesu, když se pokouší o zápis do trubka bez procesu připojeného k druhému konci.
- SIGPOLL
- Signál SIGPOLL je odeslán, když došlo k události na explicitně sledovaném deskriptoru souboru.[14] Jeho efektivní využití vede k tvorbě asynchronní I / O požadavky, protože jádro bude hlasování deskriptor namísto volajícího. Poskytuje alternativu k aktivnímu hlasování.
- SIGRTMIN na SIGRTMAX
- Signály SIGRTMIN až SIGRTMAX jsou určeny k použití pro účely definované uživatelem. Oni jsou reálný čas signály.
- SIGQUIT
- Signál SIGQUIT je odeslán do procesu jeho řídícím terminálem, když uživatel požaduje proces přestat a proveďte a skládka jádra.
- SIGSEGV
- The SIGSEGV signál je odeslán do procesu, když vytvoří neplatnou referenci virtuální paměti, nebo Porucha Segmentace, tj. když provádí a segmentace protiiolace.[15]
- SIGSTOP
- The SIGSTOP signál dává pokyn operačnímu systému stop proces pro pozdější obnovení.
- SIGSYS
- Signál SIGSYS je odeslán do procesu, když předá špatný argument a systémové volání. V praxi se s tímto druhem signálu setkáváme jen zřídka, protože aplikace se spoléhají na knihovny (např. libc ) zavolat za ně. SIGSYS mohou přijímat aplikace porušující Linux Seccomp pravidla zabezpečení nakonfigurovaná tak, aby je omezovala.
- SIGTERM
- Signál SIGTERM je odeslán do procesu a je požadován ukončení. Na rozdíl od signálu SIGKILL může být procesem zachycen a interpretován nebo ignorován. To umožňuje procesu provádět pěkné ukončení, uvolňovat zdroje a případně ukládat stav. SIGINT je téměř totožný se SIGTERM.
- SIGTSTP
- The SIGTSTP signál je odeslán do procesu jeho řízením terminál požádat o to stop (terminal SvatýÓp). Běžně se inicializuje stisknutím uživatele Ctrl+Z. Na rozdíl od SIGSTOP může proces zaregistrovat obsluhu signálu pro signál nebo jej ignorovat.
- SIGTTIN a SIGTTOU
- The SIGTTIN a SIGTTOU signály se odesílají do procesu, když se pokouší číst v nebo napište ven respektive z tty zatímco v Pozadí. Tyto signály jsou obvykle přijímány pouze procesy pod kontrola práce; démoni nemají řídicí terminály, a proto by tyto signály nikdy neměly přijímat.
- SIGTRAP
- Signál SIGTRAP je odeslán do procesu, když dojde k výjimce (nebo past) nastane: podmínka, že a debugger požádal o informace - například o konkrétním případu funkce je proveden, nebo když konkrétní proměnná mění hodnotu.
- SIGURG
- The SIGURG signál je odeslán do procesu, když a zásuvka má naléhavé nebo out-of-band data k dispozici ke čtení.
- SIGUSR1 a SIGUSR2
- Signály SIGUSR1 a SIGUSR2 jsou odesílány do procesu, který indikuje uživatelem definované podmínky.
- SIGXCPU
- Signál SIGXCPU je odeslán do procesu, když je vyčerpán procesor po dobu, která překračuje určitou předem určenou uživatelem nastavitelnou hodnotu.[16] Příchod signálu SIGXCPU poskytuje přijímacímu procesu šanci rychle uložit všechny mezivýsledky a elegantně se ukončit, než jej operační systém ukončí pomocí signálu SIGKILL.
- SIGXFSZ
- Signál SIGXFSZ je odeslán do procesu, když roste a soubor že překračuje maximální povolený velikost.
- SIGWINCH
- Signál SIGWINCH je odeslán do procesu, když jeho řídicí terminál změní svou velikost (a vyhrátdow change).[17]
Výchozí akce
Proces může definovat jak zacházet s příchozími POSIX signály. Pokud proces nedefinuje chování signálu, pak výchozí obslužný program pro tento signál se používá. V tabulce níže jsou uvedeny některé výchozí akce pro systémy UNIX kompatibilní s POSIX, například FreeBSD, OpenBSD a Linux.
Signál | Přenosný číslo | Výchozí akce | Popis |
---|---|---|---|
SIGABRT | 6 | Ukončit (výpis jádra) | Zpracujte signál přerušení |
SIGALRM | 14 | Vypovědět | Budík |
SIGBUS | N / A | Ukončit (výpis jádra) | Přístup k nedefinované části paměťového objektu |
SIGCHLD | N / A | Ignorovat | Proces dítěte byl ukončen, zastaven nebo pokračoval |
SIGCONT | N / A | Pokračovat | Pokud je zastaveno, pokračujte v provádění |
SIGFPE | 8 | Ukončit (výpis jádra) | Chybná aritmetická operace |
ZOBRAZENÍ | 1 | Vypovědět | Zavěsit |
SIGILL | 4 | Ukončit (výpis jádra) | Protiprávní pokyny |
SIGINT | 2 | Vypovědět | Signál přerušení terminálu |
SIGKILL | 9 | Vypovědět | Zabít (nelze chytit nebo ignorovat) |
SIGPIPE | 13 | Vypovědět | Pište na dýmku, aniž by ji někdo přečetl |
SIGPOLL | N / A | Vypovědět | Pollable událost |
SIGPROF | N / A | Vypovědět | Časovač profilování vypršel |
SIGQUIT | 3 | Ukončit (výpis jádra) | Signál ukončení terminálu |
SIGSEGV | 11 | Ukončit (výpis jádra) | Neplatný odkaz na paměť |
SIGSTOP | N / A | Stop | Zastavit provádění (nelze zachytit nebo ignorovat) |
SIGSYS | N / A | Ukončit (výpis jádra) | Špatné systémové volání |
SIGTERM | 15 | Vypovědět | Signál ukončení |
SIGTRAP | 5 | Ukončit (výpis jádra) | Stopová / zarážková past |
SIGTSTP | N / A | Stop | Signál zastavení terminálu |
SIGTTIN | N / A | Stop | Proces na pozadí se pokouší o čtení |
SIGTTOU | N / A | Stop | Proces na pozadí se pokouší o zápis |
SIGUSR1 | N / A | Vypovědět | Uživatelem definovaný signál 1 |
SIGUSR2 | N / A | Vypovědět | Uživatelem definovaný signál 2 |
SIGURG | N / A | Ignorovat | Data mimo pásmo je k dispozici v zásuvce |
SIGVTALRM | N / A | Vypovědět | Virtuální časovač vypršel |
SIGXCPU | N / A | Ukončit (výpis jádra) | Byl překročen časový limit CPU |
SIGXFSZ | N / A | Ukončit (výpis jádra) | Byl překročen limit velikosti souboru |
SIGWINCH | N / A | Ignorovat | Velikost okna terminálu se změnila |
- Přenosné číslo:
- U většiny signálů je odpovídající číslo signálu definováno implementací. Tento sloupec uvádí čísla uvedená ve standardu POSIX.[18]
- Vysvětlení akcí:
- Vypovědět - Abnormální ukončení procesu. Proces je ukončen se všemi důsledky _exit () kromě toho, že stav zpřístupněný wait () a waitpid () označuje abnormální ukončení zadaným signálem.
- Ukončit (výpis jádra) - Abnormální ukončení procesu. Navíc mohou nastat implementace definované abnormální akce ukončení, jako je vytvoření souboru jádra.
- Ignorovat - Ignorujte signál.
- Stop - Zastavit (ne ukončit) proces.
- Pokračovat - Pokračujte v procesu, pokud je zastaven; v opačném případě signál ignorujte.
Různé signály
Následující signály nejsou specifikovány v POSIX Specifikace. Někdy se však používají v různých systémech.
- SIGEMT
- Signál SIGEMT je odeslán do procesu, když emulátor past dojde.
- SIGINFO
- Signál SIGINFO je odeslán do procesu, když se objeví stav (informace) je přijat požadavek z řídicího terminálu.
- SIGPWR
- Signál SIGPWR je odeslán do procesu, když systém zaznamená a výpadku napájení.
- SIGLOST
- Signál SIGLOST je odeslán do procesu, když je zámek souborů ztracený.
- SIGSTKFLT
- Signál SIGSTKFLT je odeslán do procesu, když koprocesor zaznamená a Svatýack Fault (tj. praskání, když je zásobník prázdný, nebo zatlačování, když je plný).[19] Je definován, ale nepoužívá se na Linuxu, kde a x87 chyba zásobníku koprocesoru místo toho vygeneruje SIGFPE.[20]
- SIGUNUSED
- Signál SIGUNUSED je odeslán do procesu, když je systémové volání s nepoužitý číslo systémového volání. Je synonymem pro SIGSYS na většině architektur.[19]
- SIGCLD
- Signál SIGCLD je synonymem pro SIGCHLD.[19]
Viz také
Reference
- ^ McIlroy, M. D. (1987). Čtenář Research Unix: anotované výňatky z Programmer's Manual, 1971–1986 (PDF) (Technická zpráva). CSTR. Bell Labs. 139.
- ^ „Signály ukončení“. Knihovna GNU C).
- ^ „Signály řízení úlohy“. Knihovna GNU C..
- ^ „Různé signály“. Knihovna GNU C..
- ^ https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/arm/lib1funcs.S#L1493
- ^ https://web.archive.org/web/20161110002617/http://en.chys.info/2009/12/floating-point-exception/
- ^ Michael Kerrisk (25. července 2009). „signál (7)“. Příručka programátora systému Linux (verze 3.22). Archivy jádra Linuxu. Citováno 23. září 2009.
- ^ „perlipc (1)“. Referenční příručka programátorů Perl, verze 5.18. perldoc.perl.org - Oficiální dokumentace pro programovací jazyk Perl. Citováno 21. září 2013.
- ^ „Správné zacházení se SIGINT a SIGQUIT“. Citováno 6. října 2012.
- ^ https://manpages.ubuntu.com/manpages/zesty/man2/kill.2.html část POZNÁMKY
- ^ „Proces SIGKILL init (PID 1)“. Přetečení zásobníku.
- ^ „Může proces root kill init?“. Unix a Linux Stack Exchange.
- ^ „Mac Dev Center: Co je nového v systému Mac OS X: Mac OS X v10.6“. 28. srpna 2009. Citováno 18. listopadu 2017.
- ^ „ioctl - ovládá STREAM zařízení“. POSIX specifikace systémového volání. Otevřená skupina. Citováno 19. června 2015.
- ^ „Co je to„ porušení segmentace “?“. support.microfocus.com. Citováno 22. listopadu 2018.
- ^ "getrlimit, setrlimit - řízení maximální spotřeby zdrojů". POSIX specifikace systémového volání. Otevřená skupina. Citováno 10. září 2009.
- ^ Clausecker, Robert (19. června 2017). "0001151: Zavést nový signál SIGWINCH a funkce tcsetsize (), tcgetsize () pro získání / nastavení velikosti okna terminálu". Sledování defektů skupiny Austin. Austin Group. Citováno 12. října 2017.
Přijato podle označení
- ^ „IEEE Std 1003.1-2017 - kill“. IEEE, otevřená skupina.
Soulad mezi celočíselnými hodnotami a sig použitá hodnota je uvedena v následujícím seznamu. Účinky zadání jakékoli signální_číslo jiné než ty, které jsou uvedeny níže, nejsou definovány.
- ^ A b C „signal (7) - Linuxové manuální stránky“. manpages.courier-mta.org. Citováno 22. listopadu 2018.
- ^ „Linux 3.0 x86_64: Kdy je vyvolán SIGSTKFLT?“. Přetečení zásobníku.
- Stevens, W. Richard (1992). Pokročilé programování v prostředí UNIX®. Reading, Massachusetts: Addison Wesley. ISBN 0-201-56317-7.
- „The Open Group Base Specification Issue 7, 2013 Edition“. Otevřená skupina. Citováno 19. června 2015.
externí odkazy
- Tabulka signálů Unix, Ali Alanjawi, University of Pittsburgh
- Stránka Man7.org Signal Man
- Úvod do programování signálů Unix Úvod do programování signálů Unix na Wayback Machine (archivováno 26. září 2013)
- Další úvod do programování signálů Unix
- UNIX a spolehlivé signály POSIX Baris Simsek
- Obsluha signálů Henning Brauer