Nomi
|
Raqami
|
O'rnatilgan harakatlar
|
Izoh
|
Turi
|
SIGABRT
|
6
|
Damp xotira bilan tugatish
|
abort() funksiyasi yordamida uzatiladigan habar
|
Boshqaruv
|
SIGALRM
|
14
|
To'xtatish
|
alarm() belgilagan vaqt tugaganidan so'ng uzatiladigan habar
|
Habar
|
SIGBUS
|
10
|
Damp xotira bilan tugatish
|
Fizik xotiraga noto'g'ri murojaat qilish
|
Navbartdan tashqari holat
|
SIGCHLD
|
18
|
Inkor qilinadi
|
Avlod jarayon to'xtatilganda yoki tugatilganda
|
Habar
|
SIGCONT
|
25
|
Bajarishni davom ettirish
|
Avval to'xtatilgan jarayonni bajarishni davom ettirish
|
Boshqaruv
|
SIGFPE
|
8
|
Damp xotira bilan tugatish
|
Oddiy arifmetik amal
|
Navbartdan tashqari holat
|
SIGHUP
|
1
|
To'xtatish
|
Terminalni yopish
|
Habar
|
SIGILL
|
4
|
Damp xotira bilan tugatish
|
Protsessorning noto'g'ri instruksiyasi
|
Navbartdan tashqari holat
|
SIGINT
|
2
|
To'xtatish
|
Terminaldan (Ctrl-C) to'xtatish signali
|
Boshqaruv
|
SIGKILL
|
9
|
To'xtatish
|
Shartsiz to'xtatish
|
Boshqaruv
|
SIGPIPE
|
13
|
To'xtatish
|
Uzilgan bog'lanishga yozish(pipe, socket)
|
Habar
|
SIGQUIT
|
3
|
Damp xotira bilan tugatish
|
Terminaldan «Quit» signali (Ctrl-\)
|
Boshqaruv
|
SIGSEGV
|
11
|
Damp xotira bilan tugatish
|
Xotiraga murojaat qilishda xatolik
|
Navbartdan tashqari holat
|
SIGSTOP
|
23
|
Jarayonni to'xtatish
|
Jarayon bajarilishini to'xtatish
|
Boshqaruv
|
SIGTERM
|
15
|
To'xtatish
|
Tugatish signali (kill utilitasi uchun o'rnatilgan signal)
|
Boshqaruv
|
SIGTSTP
|
20
|
Jarayonni to'xtatish
|
Terminaldan to'xtatish uchun berilgan signal (Ctrl-Z).
|
Boshqaruv
|
SIGTTIN
|
26
|
Jarayonni to'xtatish
|
Fondagi jarayonning terminaldan o'qishga urinishi
|
Boshqaruv
|
SIGTTOU
|
27
|
Jarayonni to'xtatish
|
Fondagi jarayonning terminalga yozishga urinishi
|
Boshqaruv
|
SIGUSR1
|
16
|
To'xtatish
|
Foydalanuvchi signali #1
|
Foydalanuvchi
|
SIGUSR2
|
17
|
To'xtatish
|
Foydalanuvchi signali #1
|
Foydalanuvchi
|
SIGPOLL
|
22
|
To'xtatish
|
poll() tomonidan kuzatib boriladigan hodisa
|
Habar
|
SIGPROF
|
29
|
To'xtatish
|
Profillashtirish taymeri vaqtining tugashi
|
Qayta ishlash
|
SIGSYS
|
12
|
Damp xotira bilan tugatish
|
Noto'g'ri tizim chaqirig'i
|
Navbartdan tashqari holat
|
SIGTRAP
|
5
|
Damp xotira bilan tugatish
|
Trassirovka yoki breykpointning qopqoni
|
Qayta ishlash
|
SIGURG
|
21
|
Inkor qilinadi
|
Socketda tezkor ma'lumotlar qabul qilindi
|
Habar
|
SIGVTALRM
|
28
|
To'xtatish
|
Virtual taymerning tugashi
|
Habar
|
SIGXCPU
|
30
|
Damp xotira bilan tugatish
|
Jarayon o'ziga belgilangan vaqtdan ortib ketganida
|
Navbartdan tashqari holat
|
SIGXFSZ
|
31
|
Damp xotira bilan tugatish
|
Jarayon o'ziga belgilangan fayl hajmidan ortib ketganda
|
Navbartdan tashqari holat
|
Jarayonlar va signallar
Signal – jarayonga qandaydir sodir bo’lgan hodisa to’g’risida habar berish. Signallar ba’zida “dasturiy uzilishlar” deb ham ataladi.
Signal hususiyatlari
- Signal odatda asinxron ko’rinishda paydo bo’ladi.
- Jarayon signalning aynan qachon paydo bo’lishini oldindan bilmaydi.
- Signal bir jarayondan boshqasiga (yoki o’ziga) yoki kerneldan jarayonga uzatilishi mumkin.
Signal yaratilish manbaalari
Qurilma
- Jarayon mavjud bo’lmagan qurilma manziliga murojaat qiladi.
- Nolga bo’lish bajarilganda.
Kernel
- Kiritish/Chiqarish qurilmalariga bog’lanish mumkin bo’lganda uni kutayotgan jarayonga bu haqda habar beradi.
Boshqa jarayonlar
- Avlod jarayonlar o’zlarini tugaganligi to’g’risida ajdod jarayonlarni ogohlantiradi.
Foydalanuvchi
- Chiqish, bekor qilish yoki to’xtatish signalini generatsiya qiladigan klaviatura ketma ketligini bosish. (masalan Ctrl-C SIGINT, Ctrl-\ SIGQUIT, а Ctrl-Z SIGTSTP ni generatsiya qiladi)
Signal chaqirilgandan so’ng bajariladigan ishlar
Signalni qabul qilgan jarayon quyidagi 3 holatdan birini bajaradi:
Tizim tomonidan belgilangan harakatlar
- o’zining to’xtatilayotganligi to’g’risida ajdod jarayonni ogohlantiradi;
- core fayl yaratadi (jarayonning o’sha paytdagi xotira holatini saqlovchi fayl)
- to’xtatadi.
Signalni hisobga olmaslik
Jarayon : SIGSTOP va SIGKILL signallaridan boshqa barcha signallarni hisobga olmasligi mumkin.
Signalni tutish
Jarayon SIGSTOP va SIGKILL signallaridan boshqa signallarni qabul qilganda, maxsus signalni qayta ishlash ishlarini bajaradi.
Signallar bilan amaliy ishlash
Signallar haqida gapirganda quyidagilarni esga olish kerak:
Linuxda signallar jarayonlar o’rtasidagi(shuningdek potoklar o’rtasidagi) vosita vazifasini bajaradi
Har qanday jarayon o’zining signal maskasiga ega (jarayon qabul qilmaydigan signallar)
Har qanday bog’lanish (thread), jarayon kabi signal maskasiga ega
Signal qabul qilishda(agar u blokirovka qilinmagan bo’lsa) jarayon/potok uziladi, boshqaruv signalni qayta ishlovchiga uzatiladi, agar funksiya jarayon/potokning to’xtatmasa boshqaruv yana jarayon/potok uzilgan joyga qaytadi
Foydalanuvchi o’zining signal qayta ishlovchisini faqat jarayon uchun belgilashi mumkin. Bu qayta ishlovchi shu jarayondan tug’ilgan har bir potok uchun chaqiriladi
Signallarni qayta ishlash funksiyalari
Signallar bilan ishlashning nazariy asoslariga to’xtalib o’tmasdan ularni amaliy ishlatishga kirishamiz. Birinchi navbatda SIGUSR1 va SIGUSR2 signallarini ko’rib chiqamiz, bu ikki signal butunlay foydalanuvchi ixtiyoriga berilgan signal hisoblanadi.
Funksiyalar jarayon(yoki potok) inkor qila olmaydigan signallarni qabul qilganda chaqiriladi. O’rnatilgan qayta ishlovchi jarayonni tugatadi. Lekin biz o’zimizni qiziqtirgan signallar uchun qayta ishlovchilarimizni yozishimiz mumkin. Signallarni qayta ishlovchilarni yozishda juda ehtiyotkor bo’lish kerak, bu shunchaki chaqiriladigan funksiya emas, balki kutilmagan paytda paydo bo’lib global obyektlarni havfga qo’yishi mumkin bo’lgan jarayon uzilishini yuzaga keltiradigan funksiya chaqirig’idir. Qo’shimcha ma’lumot uchun: Kobolog yoki hech bo’lmaganda FAQ.
Thread asoslari:
Thread operatsiyalari thread yaratish, tugatish, sinxronlash (qoshish,bloklash), tartiblash, ma`lumotni boshqarish va jarayonlar aloqasini o`z ichiga oladi.
Oqim yaratilgan oqimlar ro`yxatida saqlanmaydi yoki oqim qaysi oqim tomonidan yaratilganligi haqida ma`lumotga ega bo`lmaydi.
Bir jarayon ichidagi barcha oqimlar bir hil addressga ega bo`ladi.
Bir xil jarayondagi oqimlarda quyidagilar bir xil:
Jarayon ko`rstamalari
Ko`p ma’lumotlar
Ochiq fayllar (descriptorlar)
signal va signal qabul qiluvchilar
Joriy ishchi katalog
foydalanuvchi guruh id
Quyidaqilar har bir oqimda unikal bo`ladi:
Oqim ID
Registerlar majmui, stack pointer
Mahalliy o`zgaruvchilar steki, qaytuvchi addresslar
signal maskasi
prioritet
Qaytuvchi qiymat: errno
pthread funksiyalari "0" qaytaradi agar OK bo`lsa.
Oqim yaratish va tugatish:
Misol: pthread1.c
#include
#include
#include
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
const char *message1 = "Thread 1";
const char *message2 = "Thread 2";
int iret1, iret2;
/* har biri funksiya ishga tushiradigan mustaqil oqim yaratish */
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
if(iret1)
{
fprintf(stderr,"Error - pthread_create() return code: %d\n",iret1);
exit(EXIT_FAILURE);
}
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
if(iret2)
{ fprintf(stderr,"Error - pthread_create() return code: %d\n",iret2);
exit(EXIT_FAILURE); }
printf(" _create() for thread 1 returns: %d\n",iret1);
printf("pthread_create() for thread 2 returns: %d\n",iret2);
|
pthread_join( thread1, NULL);
|
|
pthread_join( thread2, NULL);
|
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
Kompilyatsiyasi:
C compiler: cc -pthread pthread1.c (or cc -lpthread pthread1.c)
yoki
C++ compiler: g++ -pthread pthread1.c (or g++ -lpthread pthread1.c)
GNU kompilyatorida hozirda kommandalar qatori imkoniyati ham mavjud “-pthread”, eski versiyali kompilyatorlarida “Ipthread” bo`ladi.
Buyuring: ./a.out
Natija:
Thread 1
Thread 2
Thread 1 returns: 0
Thread 2 returns: 0
Tizim xavfsizligi (firewall)
Ishning maqsadi: Tizim xavfsizligini ta’minlash.Tizim havfsizligi haqidagi tushunchalarni mustahkamlash, uni ta’minlash bo’yicha ishlarni amalga oshirish tajribalariga ega bo’lish.
Nazariy qism: Router yoki firewall. Router ikkita tarmoqni bog’laydigan qurilma hisoblanadi. Firewall esa tarmoqni faqat bog’lab qolmasdan paketlarni bir tarmoqdan boshqasiga o’tish qoidalarini saqlaydigan va amalga oshiradigan qurilmadir. firewallga tarmoqlar, hostlar, protokollar va portlarga asoslangan chegaralashlarni o’rnatish mumkin. Firewallar shuningdek paketlar mazmunini ularni qayta yo’naltirish paytida o’zgartirishi ham mumkin.
Paketni qayta yo’naltirish
Paketni qayta yo’naltirish paketlarni bir tarmoqdan boshqasiga o’tishiga ruxsat berish demakdir. Ikkita tarmoqqa ulangan host kompyuter o’zining turli tarmoqlarga ulangan tarmoq interfeyslari orqali paketlarni o’tkazishga ruxsat berishi paketni qayta yo’naltirishga euxsat berilganini bildiradi.
Paketlarni filterlash paketlarni qayta yo’naltirishga juda o’xshab ketadi, lekin paketlarni yo’naltirish yoki yo’q qilishdan oldin ularning har biri qoidalarga asosan alohida tekshirib chiqiladi. Qoidalar iptables da saqlanadi.
Do'stlaringiz bilan baham: |