shared memory ๊ด๋ จํด์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.
์๋
ํ์ธ์ ์๊ฐ์ค์ธ ์๊ฐ์์
๋๋ค. ๊ต์๋์ด ์๋๋ผ ์ ๋ต๋ณ์ด ์ ํํ์ง ์๊ฒ ์ง๋ง ์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฑํฐ 3์์ POSIX shared memory๋ ๋ฉ๋ชจ๋ฆฌ ๋งต ํ์ผ์ ์ด์ฉํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ์
จ๋๋ฐ, ๊ทธ ๋ฉ๋ชจ๋ฆฌ ํ์ผ์ด ํ์ผ ์์คํ
์์ ์กด์ฌํด์ผ ํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์? => ๊ฐ์์๋ ๋ณด๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋งต ํ์ผ์ด ํ์ผ ์์คํ
์์ ์กด์ฌํ๋จ ๋ง์ด ์๋๊ฑฐ ๊ฐ์์ ํ์ผ ์์คํ
์ ํ์ผ์ด ์๊ธฐ๋ฏ์ด ๋ฉ๋ชจ๋ฆฌ์ ํ์ผ์ ๋ง๋ ๋ค ์ ๋๋ก ์ค๋ช
์ด ๋์ด์์ต๋๋ค. ( ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ์ผ์ด๋ ์์ฒญ ๋น ๋ฅด๊ฒ ๋ค๊ณ ์ค๋ช
์ ํ์๋ฉด์ ) ๊ทธ๋ฆฌ๊ณ ํด์ฆ #3์ 2๋ฒ์์ "3) shared memory๋ memory-mapped file๋ก๋ง ๋ง๋ค ์ ์๋ค"๊ฐ ์ค๋ต์ธ ๊ฑธ๋ก ๋์์๋๋ฐ ๊ทธ๋ ๋ค๋ฉด shm_open + mmap์ด ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ง๋ค ์ ์๋ ๊ฑด๊ฐ์? => shmget, ๊ณผ shmmat ๋ก ์ปค๋์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์ฒญํ๊ณ , ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ attach, dettach ํ๋ ๋ฐฉ์๋ ์์ต๋๋ค. memory-mapped file ์ memory mapped file ์ open ํ๊ณ mmap ์ ํ๋ค๋ฉด, ์์ ๋ฐฉ์์ ์ปค๋์ด ํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋๋ก ์์ฒญํ๊ณ ์ด๊ฑธ ์์ ์ process ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก attach ํ๋ ๋ฐฉ์ ์
๋๋ค. shmget, ๊ณผ shmmat ๋ฅผ ๊ฒ์ํด๋ณด์๋ฉด ๋ ๊ฑฐ ๊ฐ์ต๋๋ค.