jae-hwan-kim / Practice-IPC

πŸ’¬ IPC :: Signal 둜 ν”„λ‘œμ„ΈμŠ€κ°„ ν†΅μ‹ ν•˜κΈ° :: Personal Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IPC

ν”„λ‘œμ„ΈμŠ€κ°„ 톡신을 IPC(Inter-Process Communication) 라고 ν•œλ‹€.

Siganl

IPC λ₯Ό μœ„ν•œ λ°©λ²•μ—λŠ” Signal, Pipe, Socket 이 μžˆλŠ”λ°, 이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” Signal 에 λŒ€ν•΄ κ³΅λΆ€ν•œλ‹€.

minitalk?

ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν–ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ 터미널에 메세지λ₯Ό μž…λ ₯ν•˜λ©΄ μ„œλ²„λŠ” λ©”μ‹œμ§€λ₯Ό 터미널에 좜λ ₯ν•œλ‹€.

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ λŒ€ν™”ν•˜λŠ” ꡬ쑰이며 ν…μŠ€νŠΈλ°–μ— μ „μ†‘ν•˜μ§€ λͺ»ν•˜λŠ” μž‘μ€ ν”„λ‘œκ·Έλž¨μ΄κΈ° λ•Œλ¬Έμ— minitalk 이라고 ν•œλ‹€.

How?

  1. 터미널에 man signal 을 μž…λ ₯ν•˜λ©΄ signal λ„˜λ²„λ₯Ό λ³Ό 수 μžˆλ‹€. 30 κ³Ό 31 λ²ˆμ€ μ‚¬μš©μžκ°€ 지정할 수 있기 λ•Œλ¬Έμ— 이λ₯Ό ν™œμš©ν•œλ‹€.
  2. 터미널에 man 2 kill 을 μž…λ ₯ν•˜λ©΄ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— μ‹œκ·Έλ„μ„ λ³΄λ‚΄λŠ” 방법을 μ•Œ 수 μžˆλ‹€.
  3. 30 κ³Ό 31 을 μ‚¬μš©μž μ„€μ •ν•΄μ£Όκ³ , kill ν•¨μˆ˜λ‘œ ν΄λΌμ΄μ–ΈνŠΈ <-> μ„œλ²„ μ‚¬μ΄μ—μ„œ μ‹œκ·Έλ„ 톡신을 ν•  수 μžˆλ‹€.

버전

1.3 버전이 μ΅œμ’… 버전이며, mintalk 디렉토리와 minitalk_bonus 디렉토리가 μžˆλ‹€. bonus λ””λ ‰ν† λ¦¬μ—λŠ” ack κΈ°λŠ₯κΉŒμ§€ μΆ”κ°€κ°€ λ˜μ–΄μžˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 λ©”μ‹œμ§€λ₯Ό μ„œλ²„κ°€ 잘 λ°›μ•˜μ„ 경우 μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μž˜λ°›μ•˜λ‹€κ³  확인 λ©”μ‹œμ§€λ₯Ό 보낸닀.

(❗️ 1.0, 1.1, 1.2, 1.3 버전이 μžˆλ‹€. 깃을 잘 μ‚¬μš©ν•˜μ§€ μ•Šμ•˜λ˜ λ‚˜μ˜ 흔적이닀.)

싀행방법

  1. minitalk λ˜λŠ” minitalk_bonus λ””λ ‰ν† λ¦¬λ‘œ μ΄λ™ν•œλ‹€.
  2. make λ₯Ό μž…λ ₯ν•œλ‹€.
  3. server 폴더에 λ“€μ–΄κ°€μ„œ ./server λ₯Ό μž…λ ₯ν•˜λ©΄, μ„œλ²„ ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λœλ‹€.
  4. 터미널을 ν•˜λ‚˜ 더 μ—΄μ–΄μ„œ client 폴더에 λ“€μ–΄κ°€μ„œ ./client [ server pid ] "λ©”μ‹œμ§€" λ₯Ό μž…λ ₯ν•œλ‹€.
  5. λ©”μ‹œμ§€κ°€ 보내진닀.

λ‹€μŒμ€ minitalk_bonus λ₯Ό μ‹€ν–‰ν•œ 이미지이닀.

About

πŸ’¬ IPC :: Signal 둜 ν”„λ‘œμ„ΈμŠ€κ°„ ν†΅μ‹ ν•˜κΈ° :: Personal Project


Languages

Language:C 86.5%Language:Makefile 13.5%