Inter Process Communication (IPC) v OS
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 nebo vรญce poฤรญtaฤรญch propojenรฝch sรญtรญ. Plnรก forma IPC je meziprocesovรก komunikace.
Jednรก se o sadu programovacรญho rozhranรญ, kterรฉ umoลพลuje programรกtorovi koordinovat aktivity mezi rลฏznรฝmi programovรฝmi procesy, kterรฉ mohou bฤลพet souฤasnฤ v operaฤnรญm systรฉmu. To umoลพลuje konkrรฉtnรญmu programu zpracovat mnoho poลพadavkลฏ uลพivatelลฏ souฤasnฤ.
Vzhledem k tomu, ลพe kaลพdรฝ poลพadavek uลพivatele mลฏลพe mรญt za nรกsledek spuลกtฤnรญ vรญce procesลฏ v operaฤnรญm systรฉmu, mลฏลพe proces vyลพadovat vzรกjemnou komunikaci. Kaลพdรฝ pลรญstup protokolu IPC mรก svรฉ vรฝhody a omezenรญ, takลพe nenรญ neobvyklรฉ, ลพe jeden program pouลพรญvรก vลกechny metody IPC.
Pลรญstupy pro meziprocesovou komunikaci
Zde je nฤkolik dลฏleลพitรฝch metod pro meziprocesovou komunikaci:

Trubky
Pipe se ลกiroce pouลพรญvรก pro komunikaci mezi dvฤma souvisejรญcรญmi procesy. Jednรก se o poloduplexnรญ metodu, takลพe prvnรญ proces komunikuje s druhรฝm procesem. Aby vลกak bylo dosaลพeno plnรฉho duplexu, je zapotลebรญ dalลกรญ potrubรญ.
Pลedรกvรกnรญ zprรกv
Je to mechanismus pro komunikaci a synchronizaci procesu. Pomocรญ pลedรกvรกnรญ zprรกv proces mezi sebou komunikuje, aniลพ by se uchyloval ke sdรญlenรฝm promฤnnรฝm.
Mechanismus IPC poskytuje dvฤ operace:
- Odeslat (zprรกvu) - velikost zprรกvy pevnรก nebo promฤnnรก
- Pลijato (zprรกva)
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 meziprocesovรฉho komunikaฤnรญho procesu by se mฤly navzรกjem explicitnฤ jmenovat. V tรฉto metodฤ je vytvoลeno spojenรญ mezi jednou dvojicรญ komunikujรญcรญch procesลฏ a mezi kaลพdou dvojicรญ existuje pouze jedna vazba.
Nepลรญmรก komunikace
Nepลรญmรก komunikace navazuje jako pouze tehdy, kdyลพ procesy sdรญlejรญ spoleฤnou poลกtovnรญ schrรกnku, kaลพdรก dvojice procesลฏ sdรญlรญ nฤkolik komunikaฤnรญch linek. Odkaz mลฏลพe komunikovat s mnoha procesy. Spojenรญ mลฏลพe bรฝt obousmฤrnรฉ nebo jednosmฤrnรฉ.
Sdรญlenรก pamฤลฅ
Sdรญlenรก pamฤลฅ je pamฤลฅ sdรญlenรก mezi dvฤma nebo vรญce procesy, kterรฉ jsou vytvoลeny pomocรญ sdรญlenรฉ pamฤti mezi vลกemi procesy. Tento typ pamฤti vyลพaduje, aby byla vzรกjemnฤ chrรกnฤna synchronizacรญ pลรญstupu napลรญฤ vลกemi procesy.
FIFO
Komunikace mezi dvฤma nesouvisejรญcรญmi procesy. Jde o plnฤ duplexnรญ metodu, coลพ znamenรก, ลพe prvnรญ proces mลฏลพe komunikovat s druhรฝm procesem a mลฏลพe se stรกt i opak.
Proฤ IPC?
Zde jsou dลฏvody pro pouลพitรญ meziprocesnรญho komunikaฤnรญho protokolu pro sdรญlenรญ informacรญ:
- Pomรกhรก urychlit modularitu
- Vรฝpoฤetnรญ
- Oddฤlenรญ vรฝsad
- Pohodlรญ
- Pomรกhรก operaฤnรญmu systรฉmu komunikovat mezi sebou 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 technika signalizaฤnรญho mechanismu. Tato metoda OS buฤ povolรญ, nebo zakรกลพe pลรญstup k prostลedku, coลพ zรกvisรญ na tom, jak je nastaven.
Signals: Je to zpลฏsob komunikace mezi vรญce procesy prostลednictvรญm signalizace. Zdrojovรฝ proces vyลกle signรกl, kterรฝ je rozpoznรกn ฤรญslem, a cรญlovรฝ proces jej zpracuje.
Doporuฤenรญ ke ฤtenรญ: - Co je to Semaphore? Binรกrnรญ, typy poฤรญtรกnรญ s pลรญkladem
Co je jako FIFOS a na rozdรญl od FIFOS
| Jako FIFOS | Na rozdรญl od FIFOS |
|---|---|
| Postupuje se metodou FIFO | Metoda stahovรกnรญ konkrรฉtnรญch nalรฉhavรฝch zprรกv dลรญve, neลพ se dostanou na frontu |
| FIFO existuje nezรกvisle na procesech odesรญlรกnรญ i pลรญjmu. | Vลพdy pลipraven, takลพe nenรญ tลeba otevรญrat ani zavรญrat. |
| Umoลพลuje pลenos dat mezi nesouvisejรญcรญmi procesy. | Nemรก ลพรกdnรฉ problรฉmy se synchronizacรญ mezi otevลenรญm a zavลenรญm. |
Shrnutรญ
- Definice: Meziprocesovรก komunikace se pouลพรญvรก pro vรฝmฤnu dat mezi vรญce vlรกkny v jednom nebo vรญce procesech nebo programech.
- Pipe se ลกiroce pouลพรญvรก pro komunikaci mezi dvฤma souvisejรญcรญmi procesy.
- Pลedรกvรกnรญ zprรกv je mechanismus pro komunikaci a synchronizaci procesu.
- Fronta zprรกv je propojenรฝ seznam zprรกv uloลพenรฝch v jรกdลe
- Pลรญmรฝ proces je typ meziprocesovรฉho komunikaฤnรญho procesu, kterรฝ by se mฤl explicitnฤ jmenovat.
- Nepลรญmรก komunikace navazuje jako pouze tehdy, kdyลพ procesy sdรญlejรญ spoleฤnou poลกtovnรญ schrรกnku, kaลพdรก dvojice procesลฏ sdรญlรญ nฤkolik komunikaฤnรญch linek.
- Sdรญlenรก pamฤลฅ je pamฤลฅ sdรญlenรก mezi dvฤma nebo vรญce procesy, kterรฉ jsou vytvoลeny pomocรญ sdรญlenรฉ pamฤti mezi vลกemi procesy.
- Metoda Inter Process Communication pomรกhรก urychlit modularitu.
- Semafor je technika signalizaฤnรญho mechanismu.
- Signaling je zpลฏsob komunikace mezi vรญce procesy prostลednictvรญm signalizace.
- Stejnฤ jako FIFO nรกsleduje metodu FIFO, zatรญmco na rozdรญl od FIFO pouลพรญvรก metodu k vytaลพenรญ konkrรฉtnรญch nalรฉhavรฝch zprรกv pลedtรญm, neลพ se dostanou do popลedรญ.
