IPC (Inter-Process Communication)
โข
Process๋ย ์์ ํย ๋
๋ฆฝ๋ย ์คํ๊ฐ์ฒด์
๋๋ค.ย ์๋กย ๋
๋ฆฝ๋์ด ์๋ค๋ย ๊ฒ์ย ๋ค๋ฅธย ํ๋ก์ธ์ค์ย ์ํฅ์ย ๋ฐ์งย ์๋๋ค๋ย ์ฅ์ ์ดย ์์ต๋๋ค.ย ๊ทธ๋ฌ๋ย ๋
๋ฆฝ๋์ดย ์๋ย ๋งํผย ๋ณ๋์ย ์ค๋น๊ฐย ์์ด๋ย ์๋ก๊ฐ์ย ํต์ ์ดย ์ด๋ ต๋ค๋ย ๋ฌธ์ ๊ฐย ์๊ฒ ๋ฉ๋๋ค.ย
โข
์ด๋ฅผย ์ํด์ย ์ปค๋ย ์์ญ์์ย IPC๋ผ๋ย ๋ด๋ถย ํ๋ก์ธ์ค๊ฐย ํต์ ย - Inter Process Communication์ย ์ ๊ณตํ๊ฒ ๋๊ณ ,ย ํ๋ก์ธ์ค๋ย ์ปค๋์ดย ์ ๊ณตํ๋ย IPC์ค๋น๋ฅผย ์ด์ฉํด์ ํ๋ก์ธ์ค๊ฐ ํต์ ์ย ํ ย ์ย ์๊ฒ ๋ฉ๋๋ค.
IPC์ ์ข ๋ฅ
1) PIPE (์ต๋ช ํ์ดํ)
โข
ํ๋์ ํ๋ก์ธ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ๋ง ํ๊ณ , ๋ค๋ฅธ ํ๋์ ํ๋ก์ธ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ๋ง ํ ์ ์๋ ๊ตฌ์กฐ
โข
ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ํต์ ์ด ๊ฐ๋ฅํ ํ์ดํ์ ํน์ง ๋๋ฌธ์ Half-Duplex(๋ฐ์ด์ค) ํต์ ์ด๋ผ๊ณ ๋ ํจ
โข
๋ฐ๋ผ์ ์์ชฝ์ผ๋ก ๋ชจ๋ ์ก/์์ ์ ํ๊ณ ์ถ์ผ๋ฉด 2๊ฐ์ ํ์ดํ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
2) Named PIPE (FIFO)
โข
์ต๋ช
ํ์ดํ๊ฐ ํต์ ์ ํ ํ๋ก์ธ์ค๋ฅผ ๋ช
ํํ ์ ์ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๋ฐ๋ฉด(๋ถ๋ชจ - ์์ ๊ด๊ณ), Named PIPE๋ ์ ํ ๋ชจ๋ฅด๋ ์ํ์ ํ๋ก์ธ์ค๋ค ์ฌ์ด์ ํต์ ์ ์ฌ์ฉ๋๋ค.
โข
์ฆ, ์ต๋ช
ํ์ดํ์ ํ์ฅ๋ ์ํ๋ก ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋ฌด๊ดํ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ํต์ ์ด ๊ฐ๋ฅํ ๊ฒ (ํต์ ์ ์ํด ์ด๋ฆ์๋ ํ์ผ์ ์ฌ์ฉ)
โข
ํ์ง๋ง, Named ํ์ดํ ์ญ์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋์์ ๋ถ๊ฐ๋ฅํจ. ๋ฐ๋ผ์ ์ ์ด์ค ํต์ ์ ์ํด์๋ ์ต๋ช
ํ์ดํ์ฒ๋ผ 2๊ฐ๋ฅผ ๋ง๋ค์ด์ผ ๊ฐ๋ฅ
3) ๋ฉ์์ง ํ (Message Queue)
โข
์
์ถ๋ ฅ ๋ฐฉ์์ Named PIPE์ ๋์ผํ์ง๋ง, Named PIPE๊ฐ ๋ฐ์ดํฐ์ ํ๋ฆ์ด๋ผ๊ณ ํ๋ค๋ฉด ๋ฉ์์ง ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ผ๋ ์ ์ด ๋ค๋ฅด๋ค.
โข
์ฌ์ฉํ ๋ฐ์ดํฐ์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ฉด์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋ค.
4) ๊ณต์ ๋ฉ๋ชจ๋ฆฌ (Shared Memory)
โข
ํ์ดํ, ๋ฉ์์ง ํ๊ฐ ํต์ ์ ์ด์ฉํ ์ค๋น๋ผ๋ฉด, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๊ณต์ ํ๋๋ก ์ง์ํ๋ ์ค๋น๋ค.
โข
๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํด์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํด์ค๋ค.
โข
ํ๋ก์ธ์ค๊ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ปค๋์ ์์ฒญํ๋ฉด, ์ปค๋์ ํด๋น ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ฃผ๊ณ ์ดํ ๋ชจ๋ ํ๋ก์ธ์ค๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.
โฆ
์ค๊ฐ์ ์์ด ๊ณง๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ด์ IPC ์ค์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์๋ํจ
5) ๋ฉ๋ชจ๋ฆฌ ๋งต (Memory Map, mMap)
โข
๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํด์ค๋ค. ๋ฉ๋ชจ๋ฆฌ ๋งต์ ์ด๋ฆฐ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋งตํ์์ผ์ ๊ณต์ ํ๋ ๋ฐฉ์์ด๋ค. (์ฆ ๊ณต์ ๋งค๊ฐ์ฒด๊ฐ ํ์ผ+๋ฉ๋ชจ๋ฆฌ)
โข
์ฃผ๋ก ํ์ผ๋ก ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.
6) ์์ผ (Socket)
โข
๋คํธ์ํฌ ์์ผ ํต์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ค.
โข
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ผ์ ํตํด์ ํต์ ํ๋ ๊ตฌ์กฐ๋ก, ์๊ฒฉ์์ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ฌ์ฉํ๋ค.
์ด๋ฌํ IPC ํต์ ์์ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ณ ๋ณดํธํ๊ธฐ ์ํด ์ธ๋งํฌ์ด์ ๋ฎคํ
์ค๋ฅผ ์ฌ์ฉํ๋ค. (๊ณต์ ๋ ์์์ ํ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผ์ํฌ ๋)