IPC ๊ฐ„๋‹จ ์ •๋ฆฌ

IPC๋Š” OS์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ณ  ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค.

ํ”„๋กœ์„ธ์Šค๋“ค์€ IPC๋ฅผ ํ†ตํ•ด ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ณ  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹๋„ IPC์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ด๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, 2๊ฐ€์ง€๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค๋ฃฌ๋‹ค.

1. message passing

OS๋Š” ๊ณต์œ ๋ฒ„ํผ์™€ ๊ฐ™์€ ํ†ต์‹  ์ฑ„๋„์„ ์„ค์ •ํ•˜๊ณ  process๋Š” ํ•ด๋‹น buffer์— ๋ฉ”์‹œ์ง€๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ „์†กํ•ด์„œ ์ฑ„๋„๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•œ๋‹ค.

๋˜ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณต์œ  ํ†ต์‹  ์ฑ„๋„์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ฑฐ๋‚˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

์ด ๋ฐฉ์‹์˜ ์žฅ์ ์€ ์ฑ„๋„์„ OS์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์ปค๋„์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ ธ ์•ˆ์ „์„ฑ์ด ํ™•๋ณด๋œ๋‹ค.

๋‹จ์ ์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋‹ค. ์ „๋‹ฌํ•˜๋ ค๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ OS ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์ฑ„๋„๋กœ ๋ณต์‚ฌํ•ด์•ผ ํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ pipe, sokcet, message queue ๋“ฑ์˜ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๊ณ  kafka๋„ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•œ๋‹ค.

2. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ(Shared Memory)

์ด๊ฒƒ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ OS๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ฑ„๋„์„ ์„ค์ • ํ›„, ๋‘ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์— mappingํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์ผ๋ถ€์ธ ์ž„์˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ง์ ‘ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋‹ค.

OS๋Š” ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๊ฒƒ์ด ์žฅ์ ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ†ต์‹ ํ•˜๋Š” ๋™์•ˆ OS์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹จ์ ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด

a๋Š” ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ, b๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

  1. ํ†ต์‹  ๋ฐฉ์‹

    1. OS ์ปค๋„์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌ ์ „๋‹ฌํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹

    2. ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ณต์œ ํ•˜๋ฉฐ, ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ฝ๊ธฐ/์“ฐ๊ธฐ

  2. ์„ฑ๋Šฅ

    1. ์ปค๋„์„ ๊ฑฐ์น˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ๋“ฑ์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ

    2. ์ปค๋„ ๊ฐœ์ž… ์—†์ด ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜์—ฌ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

  3. ๋™๊ธฐํ™”

    1. OS์˜ ๊ธฐ๋ณธ์ ์ธ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ณ  ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋œ ๋ฐœ์ƒ

    2. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ์žฅ๋‹จ์ ์ด ์žˆ์œผ๋ฉฐ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์€ ์•ˆ์ „์„ฑ์ด ๋†’์ง€๋งŒ ์†๋„๊ฐ€ ๋А๋ฆฌ๊ณ , ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

Last updated