๐Ÿ–ฅ๏ธ Computer Science/OS

[OS] ํ”„๋กœ์„ธ์Šค Process (2) - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž์› ๊ณต์œ  (IPC)

Rosieblue 2023. 7. 10. 12:51
728x90

IPC (Inter-Process Communication)

 

์ด์ „ ํฌ์ŠคํŠธ์—์„œ ํ”„๋กœ์„ธ์Šค๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.

์ด์— ๋น„๊ตํ•ด์„œ ์Šค๋ ˆ๋“œ๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์Šคํƒ ์™ธ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค์€ ๊ณต์œ ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ž์›๊ณต์œ ๊ฐ€ ์‰ฝ๋‹ค.

 

ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋“ค์€ ๋ณ„๋„์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ์˜ ์ž์›(๋ณ€์ˆ˜, ์ž๋ฃŒ๊ตฌ์กฐ ๋“ฑ)์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค๋“ค์€ ์„œ๋กœ ์˜์›ํžˆ ์ž์›์„ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ผ๊นŒ? ๋ถ„๋ช… ์•„๋‹ ๊ฒƒ์ด๋‹ค. ์˜ค๋Š˜์€ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž์› ๊ณต์œ ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž์› ๊ณต์œ  ์ธก๋ฉด์—์„œ ๊ตฌ๋ถ„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • Independant : ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๋ฅผ ์•„์˜ˆ ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค
  • Cooperating : ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค. (์ž์› ๊ณต์œ  ํฌํ•จ)

์šฐ๋ฆฌ๊ฐ€ ๊ถ๊ธˆํ•œ ๊ฒƒ์€ Cooperatingํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์–ด๋–ป๊ฒŒ ์ž์›์„ ๊ณต์œ ํ•˜๋Š๋ƒ์ด๋‹ค. ์ด๋ฅผ IPC(Inter Process Communication)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 

Message Passing(๋ฉ”์‹œ์ง€ ๊ตํ™˜) vs Shared Memory (๋ฐ์ดํ„ฐ ๊ณต์œ )

 

IPC์—์„œ๋Š” ์ž์›์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ Message Passing(๋ฉ”์‹œ์ง€ ๊ตํ™˜)๊ณผ Shared Memory(๋ฐ์ดํ„ฐ ๊ณต์œ )๊ฐ€ ์žˆ๋‹ค.

์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

(a) Message Passing์€ ์œ„ ๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ํ”„๋กœ์„ธ์Šค A์—์„œ ์ปค๋„์ชฝ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ์ปค๋„์—์„œ ๋‹ค์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋กœ์„ธ์Šค B ์ชฝ์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

(b) Shared Memory๋Š” ํ”„๋กœ์„ธ์Šค A์™€ B๊ฐ€ ์ž์› ๊ณต์œ ๋ฅผ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ผ๋ถ€๋ฅผ ๊ณต์œ ํ•ด์„œ ๊ฑฐ๊ธฐ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํ•œํŽธ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์•ผํ•œ๋‹ค.

 

Message Passing

์ด ๊ธฐ๋ฒ•์€ ์ž์› ๊ณต์œ ๋ฅผ ์œ„ํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ์ง์ ‘ ๋„์™€์ค€๋‹ค. ์ปค๋„์ด ๊ฐœ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ†ต์‹ ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋งํฌ (comunication link)๋ฅผ ์ƒ์„ฑํ•œ ํ›„ send()์™€ receive() ์‹œ์Šคํ…œ ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ฒŒ ๋œ๋‹ค

 

Direct Communication

- ํ†ต์‹ ํ•˜๋ ค๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œ!

 

1. A๊ฐ€ ์ปค๋„์— M(๋ฉ”์‹œ์ง€)๋ฅผ ๋ณด๋ƒ„

2. ์ปค๋„์ด B์—๊ฒŒ M์„ ๋ณด๋ƒ„

(์ปค๋„์ด ์ง์ ‘์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•จ)

 

์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋งํฌ๋Š” ์ž๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ํ•˜๋‚˜์˜ ๋งํฌ๋Š” ์ •ํ™•ํžˆ ํ•œ ์Œ์˜ ํ”„๋กœ์„ธ์Šค์—๋งŒ ํ• ๋‹น๋œ๋‹ค

 

Indirect Communication

- mailbox(or port)๋ฅผ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ์ „๋‹ฌ

 

1. A๊ฐ€ ์ปค๋„์˜ ์–ด๋Š ๊ณต๊ฐ„(Mailbox)์— ๋ฉ”์‹œ์ง€๋ฅผ ๋„ฃ์Œ

2. B๊ฐ€ ์ปค๋„์˜ Mailbox์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๊บผ๋‚ด๊ฐ

(์ปค๋„์ด ๊ฐ„์ ‘์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•จ)

 

๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ์ปค๋„์ด ๊ฐœ์ž…ํ•˜์ง€๋งŒ, ์ปค๋„์ด ์ง์ ‘ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฑด๋‚ด์ฃผ๋Š๋ƒ ๋งˆ๋Š๋ƒ์— ๋”ฐ๋ฅธ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

์ด ๋ฉ”์ผ๋ฐ•์Šค๋ผ๋Š” ๊ฒƒ์€ ์ปค๋„์— ์กด์žฌํ•˜๋ฉฐ ๊ณ ์œ ์˜ id๊ฐ€ ์žˆ์–ด์„œ ๋ฉ”์ผ๋ฐ•์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋งŒ ์„œ๋กœ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋งŒ์•ฝ indirect communication์—์„œ p1, p2, p3์ด ๋ฉ”์ผ๋ฐ•์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ p1์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒˆ๋‹ค๋ฉด p2์™€ p3 ์ค‘ ๋ˆ„๊ฐ€ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ฒŒ ๋˜๋Š”๊ฐ€? p2์™€ p3์—๊ฐœ ๊ฐ๊ฐ ๋”ฐ๋กœ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ, ๋งํฌ์— ๋Œ€ํ•œ receive์—ฐ์‚ฐ์„ ๋งค ์‹œ์  ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์ž๋ฅผ ์ž„์˜๋กœ ๊ฒฐ์ •ํ•˜์—ฌ ๋ˆ„๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜๋Š”์ง€ ์†ก์‹ ์ž์—๊ฒŒ ํ†ต์‹ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ๋‹ค. (๋งํฌ ์ฐธ์กฐ)

 

 

ํ•œํŽธ ์œ„ ๊ทธ๋ฆผ๋“ค์„ ๋ณด๋ฉด ์ข€ ๋ณต์žกํ•ด๋ณด์ธ๋‹ค. ์ค‘๊ฐ„์— ์ปค๋„์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ Message Passing ๊ธฐ๋ฒ•์€ Overhead๊ฐ€ ํฌ๋‹ค.

 

Shared Memory

์ด๋Š” ํ”„๋กœ์„ธ์Šค A์™€ B๊ฐ€ ๋ชจ๋‘ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ด ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์—์„œ ์„œ๋กœ ์ž์›์„ ๊ณต์œ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ๋Š” ๋”ฐ๋กœ ์ค‘๊ฐ„ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋‹ˆ Message-Passing๋ณด๋‹ค overhead๊ฐ€ ์ ๋‹ค. (๋ฌผ๋ก  ์ด๋ ‡๊ฒŒ shared memory๋ฅผ ์ด์šฉํ•ด๋„, ์ฒ˜์Œ์—๋Š” ์ปค๋„ํ•œํ…Œ ์šฐ๋ฆฌ shared memory ์ด์šฉํ• ๊ฒŒ~ ์ด๋ ‡๊ฒŒ ์•Œ๋ ค์ค˜์•ผ ๋œ๋‹ค๊ณ  ํ•œ๋‹ค!)

ํ•˜์ง€๋งŒ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค. 

 

์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ์„ธ์Šค A๊ฐ€ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋™์‹œ์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฝ๋Š”๋‹ค๋ฉด? ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ๊ฒ ๋‹ค.

 

References

https://jhnyang.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-IPC%EB%A9%94%EC%84%B8%EC%A7%80-%EA%B5%90%ED%99%98Message-passing-vs-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B3%B5%EC%9C%A0Shared-memory 

Process Management: ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ (3/3) (tistory.com)