IPC(Inter-Process Communication)

Icarus_wยท2022๋…„ 12์›” 22์ผ
0

CS๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
6/25

process๋Š” ๋…๋ฆฝ์ ์ธ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ process์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค.

ํ•˜์ง€๋งŒ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ OS ๋Š” process๊ฐ„์˜ ์ž์› ์ ‘๊ทผ์„ ์œ„ํ•œ ๋งค์ปค๋‹ˆ์ฆ˜์ธ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ (IPC)๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

IPC ๋ฐฉ๋ฒ• : ํŒŒ์ดํ”„, ํŒŒ์ผ, ์†Œ์ผ“, ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•

IPC ๋ชจ๋ธ

  1. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ

    process๋“ค์ด ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์ผ๋ถ€๋ฅผ ๊ณต์œ 

    ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ kernal์— ์š”์ฒญ -> ๊ตฌ์ถ•ํ›„์—๋Š” kernal์˜ ๊ด€์—ฌ X

    ์ฆ‰, IPC์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

    ํ•˜์ง€๋งŒ, ๋™์‹œ์— ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ ‘๊ทผํ•˜๋ฉด ์ผ๊ด€์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

    image

  1. ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ

    System Call์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ ๋œ๋‹ค.

    Kernal์„ ํ†ตํ•ด Send(message)์™€ Receive(message)๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ์„ ์ œ๊ณต๋ฐ›๋Š”๋‹ค.

    message ์ „์†ก - process1 -> kernal -> process2

    ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

    ์ถฉ๋Œ์„ ํšŒํ”ผํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ ์€์–‘์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์— ์œ ์šฉ

    ์˜ˆ์‹œ ) Pipe, Socket, message queue

    image

์žฅ์ ๋‹จ์ 
๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ๋น ๋ฆ„๋ฉ”๋ชจ๋ฆฌ ๋™์‹œ ์ ‘๊ทผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ๋™๊ธฐํ™” ๊ณผ์ • ํ•„์š”
๋ฉ”์‹œ์ง€์ „๋‹ฌkernal์ด ์ œ์–ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋ฉฐ, kernal์ด ๋™๊ธฐํ™”๋ฅผ ์ œ๊ณต๋Š๋ฆผ
profile
ํ•˜๋ฃจ์— ํ•˜๋‚˜

0๊ฐœ์˜ ๋Œ“๊ธ€