Inter Process Communication (IPC) v OS
โก Chytrรฉ shrnutรญ
Meziprocesovรก komunikace (IPC) je sada mechanismลฏ operaฤnรญho systรฉmu, kterรฉ umoลพลujรญ procesลฏm a vlรกknลฏm vymฤลovat si data, koordinovat aktivity a synchronizovat akce, aลฅ uลพ bฤลพรญ na jednom poฤรญtaฤi nebo na nฤkolika poฤรญtaฤรญch propojenรฝch sรญtรญ.

Co je meziprocesovรก komunikace?
Meziprocesovรก komunikace (IPC) se pouลพรญvรก pro vรฝmฤnu dat mezi vรญce vlรกkny v jednom nebo vรญce procesech nebo programech. Procesy mohou bฤลพet na jednom poฤรญtaฤi nebo na vรญce poฤรญtaฤรญch propojenรฝch sรญtรญ. รplnรก forma IPC je meziprocesovรก komunikace.
Jednรก se o sadu programovacรญch rozhranรญ, kterรก umoลพลujรญ programรกtorovi koordinovat aktivity mezi rลฏznรฝmi programovรฝmi procesy, kterรฉ mohou v operaฤnรญm systรฉmu bฤลพet soubฤลพnฤ. To umoลพลuje jednomu programu zpracovรกvat mnoho uลพivatelskรฝch poลพadavkลฏ souฤasnฤ.
Protoลพe kaลพdรฝ uลพivatelskรฝ poลพadavek mลฏลพe vรฉst ke spuลกtฤnรญ vรญce procesลฏ v operaฤnรญm systรฉmu, tyto procesy mohou potลebovat vzรกjemnฤ komunikovat. Kaลพdรฝ pลรญstup IPC mรก svรฉ vรฝhody a omezenรญ, takลพe nenรญ neobvyklรฉ, ลพe jeden program pouลพรญvรก nฤkolik metod IPC.
Pลรญstupy pro meziprocesovou komunikaci
Zde je nฤkolik dลฏleลพitรฝch metod pro komunikaci mezi procesy:
Meziprocesovรฉ komunikaฤnรญ pลรญstupy
Trubky
Pro komunikaci mezi dvฤma souvisejรญcรญmi procesy se ลกiroce pouลพรญvรก kanรกl. Jednรก se o poloduplexnรญ metodu, takลพe prvnรญ proces komunikuje s druhรฝm procesem. Pro dosaลพenรญ plnฤ duplexnรญ komunikace je vลกak potลeba dalลกรญ kanรกl.
Pลedรกvรกnรญ zprรกv
Je to mechanismus, kterรฝm procesy komunikujรญ a synchronizujรญ se. Pomocรญ pลedรกvรกnรญ zprรกv spolu procesy komunikujรญ, aniลพ by se uchylovaly ke sdรญlenรฝm promฤnnรฝm.
Mechanismus IPC umoลพลuje dvฤ operace:
- Odeslat (zprรกvu) โ velikost zprรกvy mลฏลพe bรฝt pevnรก nebo variabilnรญ
- Pลijmout (zprรกvu)
Fronty zprรกv
Fronta zprรกv je propojenรฝ seznam zprรกv uloลพenรฝch v jรกdro. Je identifikovรกn identifikรกtorem fronty zprรกv. Tato metoda nabรญzรญ komunikaci mezi jednรญm nebo vรญce procesy s plnฤ duplexnรญ kapacitou.
pลรญmรก komunikace
V tomto typu komunikace mezi procesy se musรญ procesy navzรกjem explicitnฤ pojmenovรกvat. V tรฉto metodฤ je mezi dvojicรญ komunikujรญcรญch procesลฏ vytvoลeno propojenรญ a mezi kaลพdou dvojicรญ existuje pouze jedno propojenรญ.
Nepลรญmรก komunikace
Nepลรญmรก komunikace je navรกzรกna pouze tehdy, kdyลพ procesy sdรญlejรญ spoleฤnou poลกtovnรญ schrรกnku. Kaลพdรก dvojice procesลฏ mลฏลพe sdรญlet nฤkolik komunikaฤnรญch linek a jedna linka mลฏลพe komunikovat s mnoha procesy. Linka mลฏลพe bรฝt obousmฤrnรก nebo jednosmฤrnรก.
Sdรญlenรก pamฤลฅ
Sdรญlenรก pamฤลฅ je oblast pamฤti sdรญlenรก mezi dvฤma nebo vรญce procesy. Tato pamฤลฅ musรญ bรฝt chrรกnฤna pลed soubฤลพnรฝm pลรญstupem synchronizacรญ procesลฏ, kterรฉ ji pouลพรญvajรญ.
FIFO
Metoda FIFO se pouลพรญvรก pro komunikaci mezi dvฤma nesouvisejรญcรญmi procesy. Jednรก se o plnฤ duplexnรญ metodu, coลพ znamenรก, ลพe prvnรญ proces mลฏลพe komunikovat s druhรฝm procesem a mลฏลพe nastat i opak.
Proฤ IPC?
Zde jsou dลฏvody pro pouลพitรญ protokolu meziprocesovรฉ komunikace pro sdรญlenรญ informacรญ:
- Pomรกhรก to urychlit modularitu.
- Vรฝpoฤetnรญ zrychlenรญ.
- Oddฤlenรญ privilegiรญ.
- Pohodlรญ.
- Pomรกhรก procesลฏm a operaฤnรญmu systรฉmu komunikovat a synchronizovat jejich akce.
Termรญny pouลพรญvanรฉ v IPC
Nรญลพe je uvedeno nฤkolik dลฏleลพitรฝch termรญnลฏ pouลพรญvanรฝch v IPC:
Semaphores: Semafor je signalizaฤnรญ mechanismus. Tato metoda operaฤnรญho systรฉmu buฤ povoluje, nebo zakazuje pลรญstup k prostลedku v zรกvislosti na jeho nastavenรญ.
Signals: Signรกl je metoda komunikace mezi vรญce procesy pomocรญ signalizace. Zdrojovรฝ proces odeลกle signรกl, kterรฝ je rozpoznรกn ฤรญslem, a cรญlovรฝ proces jej zpracuje.
Nรกvrh na ฤtenรญ: Co je to Semaphore? Binรกrnรญ, typy poฤรญtรกnรญ s pลรญkladem
Co je jako FIFOS a na rozdรญl od FIFOS
Nรกsledujรญcรญ tabulka porovnรกvรก podobnรฉ a odliลกnรฉ FIFO operace:
| Jako FIFOS | Na rozdรญl od FIFOS |
|---|---|
| ลรญdรญ se metodou FIFO. | Pouลพรญvรก metodu k naฤtenรญ specifickรฝch nalรฉhavรฝch zprรกv dลรญve, neลพ se dostanou na frontu. |
| FIFO existuje nezรกvisle na odesรญlacรญm i pลijรญmacรญm procesu. | Vลพdy pลipravenรฝ, takลพe nenรญ potลeba jej otevรญrat ani zavรญrat. |
| Umoลพลuje pลenos dat mezi nesouvisejรญcรญmi procesy. | Nemรก ลพรกdnรฉ problรฉmy se synchronizacรญ mezi otevรญrรกnรญm a zavรญrรกnรญm. |

