Cuprins
- 1. Ce reprezintă semnalele şi procesele?.pag3
- 2. Clasificarea semnalelor.pag3-8
- 3. Generarea semnalelor.pag8-9
- 4. Trimiterea semnalelor din linia de comandă.pag9
- 5. Trimiterea semnalelor folosind apeluri de sistem.pag10
- 6. Primirea unui semnal de către un proces.pag10
- 7. Aşteptarea unui semnal-primitivele pause şi sigsuspend.pag10-11
- 8. Coruperea semnalelor-primitivele signal şi sigaction.pag11-12
- 9. Blocarea semnalelor.pag12-14
- 10. Moduri de tratare ale semnalelor(programe).pag14-24
- Semnale folosite:
- SIGINT,SIGALRM,SIGQUIT,SIGUSR1,SIGUSR2,SIGTSTP,SIGILL,SIGHUP,SIGSTOP,SIGTERM
- 11. Utilitatea aplicaţiei.pag18
- 12. Bibliografie:
Extras din proiect
1. Ce reprezintă semnalele?
Semnalele- constituie sintetic o modalitate de exprimare a evenimentelor care apar asincron în sistem;
- constituie o avertizare pe care o primeşte un anumit proces
- reprezintă o întrerupere software a unui proces din fluxul de execuţie normal
- sistemul de operare foloseşte semnalele pentru a semnala procesului apariţia unor situaţii excepţionale
- orice semnal este asociat cu o clasă de evenimente; are o sursă şi este generat de o anumită cauză
- există si semnale folosite de alte procese pentru a întrerupe alte procese
Concluzie:- un semnal poate fi generat fie de către sistemul de operare fie de către un proces
Procesele- pot bloca,ignora,trata sau lăsa sistemul de operare să efectueze acţiunea implicită(este constituită de terminarea procesului) la primirea unui semnal
- pot genera semnale sau pot primi semnale
2. Clasificarea semnalelor
După cum am văzut, semnalele corespund în general unor acţiuni specifice. Procesul poate genera sau primi semnale.
De reţinut ar fi faptul că fiecare semnal are asociat un număr, iar fiecărui număr îi corespunde o constantă simbolică definită în bibliotecile sistemului de operare. Standarul POSIX defineşte câteva semnale care trebuie să existe în orice sistem UNIX. Mai jos sunt prezentate cele mai folosite semnale în funcţie de 3 criterii: denumirea semnalului, numărul asociat semnalului şi descrierea semnalului.
Denumire semnal Număr asociat Efectul semnalului
SIGHUP 1 Hangup- terminalul folosit de proces a fost închis(deconectarea terminalului)
SIGINT 2 Interrupt- întreruperea unui proces prin CTRL+C(întreruperea terminalului)
SIGQUIT 3 Quit- exprimă cererea de ieşire din program a utilizatorului(abandonarea unui proces prin CTRL-)
SIGILL 4 Illegal Instruction- instrucţiune ilegală
SIGTRAP 5 Trace Trap- deviere pentru trasare
SIGABRT 6 Abort- semnal de terminare anormală a procesului generat de abort
SIGEMT 7 Emulator Trap Instruction- execuţia instrucţiunii EMT
SIGFPE 8 Floating Point Exception- semnal generat de o eroare în virgulă mobilă
SIGKILL 9 Kill- semnal care are ca efect distrugerea imediată a procesului(terminare forţată)
SIGBUS 10 Bus Error- eroare de magistrală
SIGSEGV 11 Segmentation Fault- generat când un proces face o referinţă la o adresă de memorie invalidă
SIGSYS 12 Bad Argument to System Call- argument greşit la un apel de funcţie sistem
SIGPIPE 13 Broken Pipe- este generat atunci când s-a încercat scrierea într-un pipe care are descriptorul de la capătul de citire închis
SIGALRM 14 Timer Alarm- semnal generat în urma timer-ului poziţionat de alarm
SIGTERM 15 Terminate- reprezintă o cerere de terminare a procesului
SIGUSR1,SIGUSR2 16,17 User Defined 1,2- semnale a căror generare si tratare sunt lăsate în seama utilizatorului
SIGCONT 18 Continue- reprezintă continuarea unui proces oprit prin SIGSTOP
SIGSTOP 19 Stop- suspendă execuţia unui proces până când execuţia va fi reluată prin primirea unui semnal SIGCONT
SIGCLD 20 Death of child- semnal primit de părinte când un fiu s-a terminat
SIGPWR 21 Power Fail Restart- este generat la scăderea tensiunii
Dacă însă doriţi lista completă de semnale suportate de un sistem rulaţi în linia de comandă:
kill-l
Efect: vor fi afişate urmatoarele semnale:
1) SIGHUP; 2) SIGINT; 3) SIGQUIT; 4) SIGILL;
5) SIGTRAP; 6) SIGABRT; 7) SIGBUS; 8) SIGFPE;
9) SIGKILL; 10) SIGUSR1; 11) SIGSEGV; 12) SIGUSR2;
13) SIGPIPE; 14) SIGALRM; 15) SIGTERM; 16) SIGCHLD;
17) SIGCONT; 18) SIGSTOP; 19) SIGTSTP; 20) SIGTTIN;
21) SIGTTOU; 22) SIGURG; 23) SIGXCPU; 24) SIGXFSZ;
25) SIGVTALRM; 26) SIGPROF; 27) SIGWINCH; 28) SIGIO;
29)SIGPWR; 30) SIGSYS; 31) SIGRTMIN; 32)SIGRTMIN+1;
33) SIGRTMIN+2; 34) SIGRTMIN+3; 35) SIGRTMIN+4; 36) SIGRTMIN+5;
37) SIGRTMIN+6 38) SIGRTMIN+7 39) SIGRTMIN+8 40) SIGRTMIN+9;
41) SIGRTMIN+10; 42) SIGRTMIN+11; 43) SIGRTMIN+12; 44)SIGRTMIN+13; 45) SIGRTMIN+14; 46) SIGRTMIN+15; 47) SIGRTMAX-15; 48) SIGRTMAX-14; 49) SIGRTMAX-13; 50) SIGRTMAX-12;
51) SIGRTMAX-11; 52) SIGRTMAX-10; 53) SIGRTMAX-9;
54) SIGRTMAX-8; 55) SIGRTMAX-7; 56) SIGRTMAX-6; 57) SIGRTMAX-5; 58) SIGRTMAX-4; 59) SIGRTMAX-3; 60) SIGRTMAX-2; 61) SIGRTMAX-1; 62) SIGRTMAX
Preview document
Conținut arhivă zip
- Comunicare intre Procese Folosind Semnale in Linux.doc