์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ธ ํ์ด์ง(Paging)์ ๋ํด ์์๋ณธ๋ค.
1. ํ์ด์ง(Paging)
์ธ๋ถ ๋จํธํ๋ก ์ธํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ ๋งค์ฐ ์ฌํ๋ค๋ ๊ฒ์ ์ดํด๋ณด์๋ค. Compaction์ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ๋จํธํ๋ ํด๊ฒฐํ ์ ์์ง๋ง, ๊ทธ๋ก ์ธํด ๋ฐ์ํ๋ ์ค๋ฒํค๋์ ๋นํจ์จ์ ์ธ ์ฑ๋ฅ์ผ๋ก ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค. ๊ทธ ์ดํ์ ์ฐ๊ตฌ๋ฅผ ํตํด ๋์จ ๊ฒ์ด ํ์ด์ง์ด๋ค. ํ์ด์ง์ hole์ ๊ฐ์ง๊ณ ํด๊ฒฐํ๋ ค ํ ๊ฒ์ด ์๋๋ผ ํ๋ก์ธ์ค๋ฅผ ์์ ํฌ๊ธฐ๋ก ๋๋ ์ ์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ์๋ค.
ํ์ด์ง์ ํ๋ก์ธ์ค๋ฅผ ์ผ์ ํ ์์ ํฌ๊ธฐ๋ก ๋๋๋๋ฐ, ํ๋ก์ธ์ค๋ฟ์๋๋ผ hole๋ ๊ฐ์ ํฌ๊ธฐ๋ก ๋๋๋ค. ์ด๋ฌํ ์์ ์กฐ๊ฐ๋ค์ ํฌ๊ธฐ๋ฅผ ๋ง์ถฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ค. ํ์ง๋ง, ํ๋์ ํ๋ก์ธ์ค๋ ์ฐ์์ ์ธ ๋์์ ์ํํ๋๋ฐ ์ด๋ฅผ ์์ ์กฐ๊ฐ์ผ๋ก ๋๋์ด์ ์ฌ๊ธฐ์ ๊ธฐ ํฉ์ด์ง๋ค๋ฉด ํ๋ก์ธ์ค๊ฐ ์ ์์ ์ผ๋ก ๋์ํ ๊น?
๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ฌ ๊ณณ์ ํฉ์ด์ง ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด CPU๋ฅผ ์์ฌ์ผํ๋ค. ์ด์ ๋ค์คํ๋ก๊ทธ๋๋ฐ์ ์ดํด๋ดค์ ๋ MMU๋ฅผ ํตํด ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๋๋ ์ ์ฌ์ฉํ๋ค๊ณ ํ์๋ค. ์ด ์ญ์ CPU๋ฅผ ์์ด๋ ํ๋์ด๋ค. ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ ์ฐ์์ ์ด์ง ์๋๋ฐ, CPU๋ ์ฐ์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋ณด์ฅ๋ฐ์ผ๋ฉฐ ์ ์์ ์ผ๋ก ์ํํ๋ค.
ํ์ด์ง์ผ๋ก ์์ ํฌ๊ธฐ๋ก ๋๋ ๊ฒ๋ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์๋ค. ๋ง์ฝ 50byte ํฌ๊ธฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ค๊ณ ํ์. ํ์ด์ง์ ํฌ๊ธฐ๋ ๊ฐ 10byte๋ก ๋๋๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ๋ก์ธ์ค P1์ 5๊ฐ์ ํ์ด์ง๋ก ๋๋ ์ ์๋ค. ์ด๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ 5๊ณณ์ ๋๋ ์ ํ ๋นํ์๋ค. CPU๋ ๋ ผ๋ฆฌ ์ฃผ์๋ก ํ๋ก๊ทธ๋จ์ด ์ค์ ํ๋๋ก ์ฐ์์ ์ธ ์ฃผ์๊ฐ์ผ๋ก ๋ช ๋ น์ ๋ด๋ฆฌ๊ณ ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ๊ธฐ์ ์ ๊ฐ ํ์ด์ง์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์๋ ํ ์ด๋ธ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋๋ ์กฐ๊ฐ์ page ๋ผ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ ์กฐ๊ฐ์ frame ์ด๋ผ ํ๋ค. ํ๋ก์ธ์ค๋ ํ์ด์ง์ ์งํฉ์ด๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ ์์ ์งํฉ์ด๋ค. ํ๋ก์ธ์ค๋ฅผ ์ ์์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด MMU์ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ฅผ ์ฌ๋ฌ๊ฐ ์ฌ์ฉํด์ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ ํ์ด์ง์ ์ค์ ์ฃผ์๋ก ๋ณ๊ฒฝํด์ค๋ค. ์ด๋ฌํ ์ฌ๋ฌ ๊ฐ์ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๋ฅผ ํ์ด์ง ํ ์ด๋ธ(Page Table) ์ด๋ผ ํ๋ค.
1.1. ์ฃผ์ ๋ณํ(Address Translation)
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฌ๋ฌ ๊ฐ๋ก ํฉ์ด์ง ํ์ด์ง์ CPU๊ฐ ์ ๊ทผํ๊ธฐ ์ํด์ ํ์ด์ง ํ ์ด๋ธ์ ํตํด ์ฃผ์๋ฅผ ๋ณํํด์ผ ํ๋ค.
1.1.1 ๋ ผ๋ฆฌ ์ฃผ์(Logical address)
CPU๊ฐ ๋ด๋ ์ฃผ์๋ 2์ง์๋ก ํํ๋๋ค. ์ด ์ฃผ์๊ฐ m๋นํธ๋ก ํํ๋๋ค๊ณ ๊ฐ์ ํ์. ์ฌ๊ธฐ์ ํ์ n๋นํธ๋ ์คํ์ (offset) ๋๋ ๋ณ์(displacement)๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ m-n ๋นํธ๋ ํ์ด์ง์ ๋ฒํธ์ ํด๋นํ๋ค.(n = d, m-n = p)
๋ ผ๋ฆฌ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์(physical address)๋ก ๋ณํํ๊ธฐ ์ํด์ ํ์ด์ง ๋ฒํธ(p)๋ ํ์ด์ง ํ ์ด๋ธ์ ์ธ๋ฑ์ค ๊ฐ์ด๊ณ , p์ ํด๋น๋๋ ํ ์ด๋ธ ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ ์ ๋ฒํธ์ด๋ค. ๋ณ์(d)๋ ๋ณํ์ง ์๋ ๊ฐ์ด๋ค. d๋ ํ์ด์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ๋ง์ฝ ํ์ฌ ํ์ด์ง ํฌ๊ธฐ๋ฅผ 16byte์ด๋ผ๊ณ ํ๋ค๋ฉด, ์ด๋ 2^4์ด๋ฏ๋ก d = 4 ์ด๋ค.
๋ง์ฝ ๋
ผ๋ฆฌ์ฃผ์๊ฐ 50๋ฒ์งธ๋ก ์ฃผ์ด์ง๋ค๋ฉด, 50=110010
์ด๊ณ , page size๊ฐ 16byte๋ผ ์ฃผ์ด์ก์ ๋, 4์๋ฆฌ๋ฅผ ์ ์ธํ p=11
์ด๊ณ d=0010
์ด๋ค.
1.1.2 ๋์ ์์
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด, ์ด๋ป๊ฒ ๋์ํ๋ ์ง ํ๋์ ํ์ธ ํ ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ํด์ผํ ์ผ์, ๋
ผ๋ฆฌ ์ฃผ๊ณ ๊ฐ ๋ค์ด์์ ๋, ์ด๊ฒ์ page
, displacement
๋ก ๋๋๊ณ , page
๋ณ์๋ฅผ frame
๋ณ์๋ก ๋ฐ๊ฟ์ฃผ๋ page table
์ ํต๊ณผํ์ฌ ๋์จ ๊ฐ์ ๊ฐ์ง๊ณ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค.
์ ๊ทธ๋ฆผ์ผ๋ก ๋ถํฐ ๋ฐ๋ผํด ๋ณผ ์ ์๋ค. p์ d๋ง ์ ์๊ฐํ๋ฉด ์ฌ์ด ์์ด๋์ด์์ ์ ์ ์๋ค. ์ด ํ์ด์ง์ผ๋ก๋ถํฐ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ฉด์ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๋ ํด๊ฒฐํ๋ค. ํ์ง๋ง..
1.2 ๋ด๋ถ๋จํธํ(Internal Fragment)
ํ์ด์ง์ ์ธ๋ถ ๋จํธํ๊ฐ ์๋ ๋ด๋ถ ๋จํธํ๊ฐ ๋ฐ์ํ๋ค. ๋ด๋ถ๋จํธํ๋ ํ๋ก์ธ์ค ํฌ๊ธฐ๊ฐ ํ์ด์ง ํฌ๊ธฐ์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ง์ง๋ง ํ์ด์ง๋ ํ ํ๋ ์์ ๋ค ์ฑ์ธ ์ ์๋ค. ์ด๋ก ์ธํด ๋ฐ์ํ๋ ๊ณต๊ฐ์ ๊ฒฐ๊ตญ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ก ์ด์ด์ง๋ค.
์๋ฅผ ๋ค์ด, 15bytes ํฌ๊ธฐ์ ํ๋ก์ธ์ค P๊ฐ ์๋ค. ํ์ด์ง ํฌ๊ธฐ(ํ๋ ์ ํฌ๊ธฐ)๋ฅผ 4bytes๋ผ ํ๋ฉด, P๋ฅผ ํ์ด์ง๋ก ๋๋ ๊ฒฐ๊ณผ์ธ 4, 4, 4, 3 ์ ํฌ๊ธฐ๋ก ์ด 4๊ฐ์ ํ์ด์ง๊ฐ ๋ง๋ค์ด์ง๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง 3bytes ํ์ด์ง๋ ํ๋ ์ ํฌ๊ธฐ๋ณด๋ค 1byte์์ผ๋ฏ๋ก, ์ด ๋งํผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋น๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋น์ด์ง ๊ณต๊ฐ์ ํ๋ก์ธ์ค P์์๋ ์ฐ์ง ์๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค์์๋ ์ฐ์ง ๋ชปํ๋ ๋ญ๋น๋๋ ๊ณต๊ฐ์ด ๋๋ค.
๋ด๋ถ๋จํธํ๋ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์๋ค. ํ์ง๋ง ๋ด๋ถ๋จํธํ๋ ์ธ๋ถ๋จํธํ์ ๋นํด ๋ญ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋งค์ฐ ์ ๋ค. ๋ด๋ถ๋จํธํ์ ์ต๋ ๋ญ๋น๋๋ ํฌ๊ธฐ๋ page size - 1
์ด ๋๋ค.(์ธ๋ถ ๋จํธํ๋ ์ต๋ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ์ 1/3์ด ๋ญ๋น๋๋ค๊ณ ์ด์ ์ ์ดํด๋ดค๋ค.) ์ด๋ ๋ฌด์ํ ์ ๋๋ก ์์ ํฌ๊ธฐ์ด๋ค.
1.3 ํ์ด์ง ํ ์ด๋ธ ๋ง๋ค๊ธฐ
ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๋ค. ๋จผ์ , CPU ๋ด๋ถ์ ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋ค ์ ์๋ค. CPU ๋ด๋ถ์ ๊ธฐ์ต์ฅ์น๋ ๋ ์ง์คํฐ๋ก, ์ฌ๋ฌ ๊ฐ์ ๋ ์ง์คํฐ๋ก ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋๋ ๊ฒ์ด๋ค. CPU ๋ด๋ถ์ ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋ค๋ฉด, ์ฅ์ ์ ์ฃผ์ ๋ณํ ์๋๊ฐ ๋น ๋ฅด๋ค. ํ์ง๋ง ๋จ์ ์ CPU ๋ด๋ถ์ ์ฌ์ฉํ ์ ์๋ ๋ ์ง์คํฐ๋ ํ์ ๋์ด ์์ผ๋ฏ๋ก ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ์ ํ๋๋ค.
- CPU
- ์ฅ์ : ์ฃผ์ ๋ณํ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๋จ์ : CPU ๋ด๋ถ์ ์ฌ์ฉํ ์ ์๋ ๋ ์ง์คํฐ๋ ํ์ ๋์ด ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ ํ๋๋ค.
๋ฐ๋๋ก, ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์์ ๋ง๋ค ์๋ ์๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์ ๋ง๋๋ ๊ฒ์ ์ฅ๋จ์ ์ CPU์ ์ ๋ฐ๋์ด๋ค. ์ฆ, ์ฅ์ ์ ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ์ ์ ํ์ด ์๋ ๊ฒ์ด๊ณ , ๋จ์ ์ ์ฃผ์ ๋ณํ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๊ฒ์ด๋ค. CPU๋ ํ๋ก์ธ์ค์ ์ฃผ์์ ์ ๊ทผํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ์ ์์นํ ํ์ด์ง ํ ์ด๋ธ์ ํ ๋ฒ, ์ค์ ์ฃผ์๋ก ์ ๊ทผํ๋๋ฐ ํ ๋ฒํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ด 2๋ฒ ์ ๊ทผํด์ผํ๋ฏ๋ก ์๋ ์ญ์ 2๋ฐฐ๋ก ๋๋ ค์ง๋ค.
- Memory
- ์ฅ์ : ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ์ ์ ํ์ด ์๋ค.
- ๋จ์ : ์ฃผ์ ๋ณํ ์๋๊ฐ ๋๋ฆฌ๋ค.
1.3.1 TLB(Translation Look-aside Buffer)
ํ์ด์ง ํ ์ด๋ธ์ CPU์ ๋ง๋ค ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ง๋ค ๋ ๋ ๋ค ์ฅ๋จ์ ์ด ํ์คํ๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง ํ ์ด๋ธ๋ ์บ์๋ก ๋ง๋ค์ด ํด๊ฒฐํ์๋ค. ํ์ด์ง ํ ์ด๋ธ์ ๋ณ๋์ ์นฉ(SRAM)์ผ๋ก ๋ง๋ค์ด์ CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์์น์ํค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ํ ์ด๋ธ์ TLB(Translation Look-aside Buffer) ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด๋ CPU๋ณด๋ค ๋ณํ ์๋๋ ๋๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํ ์ด๋ธ ํฌ๊ธฐ๋ ์์ง๋ง, CPU๋ณด๋ค ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ํฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ณํ ์๋๊ฐ ๋น ๋ฅด๋ค.
TLB๋ ์บ์์ ์ญํ ์ด ๋์ผํ๋ฏ๋ก, ์ค์ ์ ์ฒด ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์์นํด ์๊ณ ํ ์ด๋ธ์ ์ผ๋ถ๋ฅผ TLB์ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก TLB์ ์ ํจํ ํ์ด์ง๊ฐ ์์ ๋์ ์์ ๋์ ์๋ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ค.
1.3.2 TLB์ ํจ์จ
๊ทธ๋ ๋ค๋ฉด, TLB์ ํจ์จ์ ์์๋ณด๊ธฐ ์ํด Effective Memory Access Time์ ๊ณ์ฐํด๋ณด์.
|์ฉ์ด|์ ์|๊ฐ| |::----|::----|:โ| |Tm|๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๋ ์๊ฐ|100ns| |Tb|TLB๋ฅผ ์ฝ๋ ์๊ฐ|20ns| |hit ratio|TLB์ ์ ํจํ ํ์ด์ง ์ํธ๋ฆฌ๊ฐ ์์ ํ๋ฅ |80%|
๋จผ์ , EMAT์ ์ ํํ๋ ์์ ๋ณด์. ๊ฐ์ค ํ๊ท ์ ์์ด๋ค. h๋ hit ratio์ด๋ค.
์ค์ ์ ํจํ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๊ฐ์ ์์ ๊ฐ๋ค. ์์ ๊ฒฝ์ฐ 2๋ฒ ์ฝ์ด์ผ ํ์ฌ Tm
์ ๋๋ฒ ๋ํด์ฃผ์๋ค. TLB์ ์ ํจํ ํ์ด์ง๊ฐ ์๋ค๋ฉด TLB๋ฅผ ์ฝ๋ ์๊ฐ๊ณผ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๋ ์๊ฐ๋ง ์์ผ๋ฉด ๋๋ค. ํ์ง๋ง, TLB์ ์ ํจํ ํ์ด์ง๊ฐ ์๋ค๋ฉด ์ด๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์์ผ ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด 2๋ฒ ์ฝ์ด์ผ ํ๋ค.
์์ ๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด, 0.8 * (20 + 100) + 0.2 * (20 + 100 + 100) = 140ns
์ด๋ค. hit ratio
๋ ์ค์ ๋ก ํ๊ท 95%์ด์์ด๋ฏ๋ก ์ถฉ๋ถํ ํจ์จ์ ์ผ๋ก ๋์ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
1.4 ๋ณดํธ(Protection)
๋ชจ๋ ์ฃผ์๋ ํ์ด์ง ํ ์ด๋ธ์ ๊ฒฝ์ ํ๋ฏ๋ก, ํ ์ด๋ธ์ ์ด์ฉํด์ ๋ณดํธ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ค. ์ ๊ทผ์ด ์ ํจํ์ง ๊ทธ๋ ์ง ์์์ง๋ฅผ ๊ตฌ๋ถํ๋ bit๋ฅผ ์ถ๊ฐํ์ฌ ์ผ์ ธ์์ ๋ ์ํํ๋๋ก ํ๋ค. ๋ํ์ ์ผ๋ก ํ์ด์ง ํ ์ด๋ธ๋ง๋ค r(read), w(write), x(execute) ๋นํธ๋ฅผ ๋์ด, ํด๋น ๋นํธ๊ฐ ์ผ์ ธ์์ ๋ ๊ทธ ์ํ์ด ๊ฐ๋ฅํ๋๋กํ๋ค.
์ ๊ทธ๋ฆผ์ ํ์ด์ง ํ ์ด๋ธ์ r,w,x ๋นํธ๋ฅผ ์ถ๊ฐํ ๋ชจ์ต์ด๋ค. ๋ง์ฝ, 1๋ฒ ํ์ด์ง ์ํธ๋ฆฌ์ฒ๋ผ ์ฐ๊ธฐ ๋นํธ๊ฐ ๊บผ์ ธ์๋ ํ์ด์ง์ ์ฐ๊ธฐ ์์ ์ ์๋ํ๋ฉด CPU์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ISR์์ ๊ฐ์ ๋ก ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํจ๋ค.
1.5 ๊ณต์ (Sharing)
๊ณต์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค. ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฐ๋ ๋ณต์ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ค๋ฉด, ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ code + data + stack ์์ญ์ผ๋ก ๋๋๋๋ฐ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ค๋ฉด code ์์ญ์ ๊ฐ์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ๋์ code ์์ญ์ ๋ณต์ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ค์ด๋ ๊ฒ์ด๋ค. ๋จ, code๊ฐ ๊ณต์ ๋๋ ค๋ฉด code๊ฐ ๋ณํ์ง ์๋ ํ๋ก๊ทธ๋จ์ด์ด์ผ ํ๋ค. ์ด๋ฅผ non-self-modifying code = reentrant code(์ฌ์ง์ ๊ฐ๋ฅ ์ฝ๋) = pure code ๋ผ๊ณ ํ๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz