Коммерциялық емес акционерлік қоғам Ғұмарбек Дәукеев атындағы Алматы энергетика және байланыс



Pdf көрінісі
бет9/9
Дата27.03.2022
өлшемі0,57 Mb.
#28920
1   2   3   4   5   6   7   8   9
Процестер арасындағы байланыс 

Процестер  арналар,  розеткалар,  ортақ  жад  және  т.  б.  арқылы  өзара 

байланыса алады. 

LINUX  ОЖ  -  де  бірнеше  деңгейге  бөлуге  болатын  процессаралық 

алмасудың бірнеше түрі бар, дәлірек айтсақ, процессаралық өзара әрекеттесу 

құралдары (Interprocess Communication-IPC) бар: 

жергілікті (процессорға байланған және тек компьютерде мүмкін); 

-каналдар 

1. pipe (олар құбырлар, сондай-ақ аталмаған арналар), мен олар туралы 

өткен  постта  көп  айттым,  мысал  келтіруге  болады:  команда1  |  команда2. 

Негізінен, pipe stdin, stdout және stderr қолданады.  

2.  Аталған  арналар  (FIFO:  first  in  First  Out).  Арнаның  бұл  түрі  mknod 

немесе mkfifo көмегімен жасалады және екі түрлі процесс оған аты бойынша 

жүгіне 

алады. 


 

Аталған бағдарламалық арналарды mknod тобы жасайды. 

Бағдарламалық  арна-бұл  ақпаратты  "жазуға"  болатын  және  осы 

ақпаратты  "оқуға"  болатын  арнайы  файл.  Сонымен  қатар,  ақпаратты  жазу 

және кейінгі оқу тәртібі FIFO алгоритмі (кезек) бойынша жасалады.  Аталған 

арнада mknod пәрмені шақырылған кезде көрсетілген атау бар: 




#mknod [опциялар] <аты> p 

 

Мысал:  аталмаған  бағдарламалық  арнаның  жұмысын  көрсету:  mknod 

пәрменімен  pipe  деп  аталатын  бағдарламалық  арна  жасаңыз;  мәтінді 

бағдарламалық арнаға бағыттаңыз: 

 

echo [мәтін ]  >  pipe 

 

біз консольді өзгертеміз; арна арқылы мәтін аламыз және tee пәрменін 

пайдаланып экранға шығарамыз: 

 

tee < pipe 



 

Пәрмен жолындағы аталмаған бағдарламалық арналар | 

 

#ls -l | tee filetee   

#cat filename > filename1 | pwd > filename|ls|sort   

#find /usr -name "*.let" –print | more  

 

Аталмаған  бағдарламалық  арналарды  хабарларды  тек  туысқандар 

процестерімен,  яғни ортақ  процесі  бар  процестермен-ата-бабалармен  жіберу 

үшін пайдалануға болады. 

Fifo-мен  жұмыс  істеу  мысалы:  бірінші  терминалда  (біз  pipe  файлы 

ретінде  аталған  арнаны  жасаймыз  және  деректерді  құбыр  арқылы 

мұрағатшыға жібереміз): 

[root@proxy 1]# mkfifo pipe  

[root@proxy 1]# ls -l  

total 0  

prw-r--r-- 1 root root 0 Nov  9 19:41 pipe  

[root@proxy 1]# gzip -9 -c < pipe > out  

 

екінші терминалда (деректерді аталған арнаға жібереміз): 

 

[root@proxy 1]# cat /path/to/file > pipe 

 

нәтижесінде, бұл берілетін gzip деректерін сығуға әкеледі. 



 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет