-> ๋ ๊ฒฝ์ฐ ๋ชจ๋ I/O์ ์๋ฃ๋ ์ธํฐ๋ฝํธ๋ก ์๋ ค์ค
๋๊ธฐ์ ์ ์ถ๋ ฅ์ด๋ผ๋ ๊ฒ์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ ์์ฒญ์ ํ๋ค -> ๋ณธ์ธ์ด ํ๋๊ฒ์ด ์๋๋ผ ์ด์์ฒด์ ๋ฅผ ํตํด ํด์ผํ๋ค. -> ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ํํ ์ ์ถ๋ ฅ ์์ฒญ์ ํ๋ค. -> ์ ์ถ๋ ฅ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ํ๋๋ค. -> ์ํ์ด ๋๋ ๋์์ ์ ์ถ๋ ฅ์ ์์ฒญํ ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ์ด ๋๋ ๋๊น์ง ์๋ฌด๊ฒ๋ ํ์ง ์์ผ๋ฉด ๊ทธ๊ฒ์ ๋๊ธฐ์ ์ ์ถ๋ ฅ์ด๋ค.
์ฌ์ฉ์ ํ๋ก์ธ์ค๊ฐ ์
์ถ๋ ฅ ์์ฒญ์ ํํ ์
์ถ๋ ฅ์ด ์งํ๋๋ ๋์์ ๊ทธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ก์์ instruction์ ์ํํ๋ฉด ๊ทธ๊ฒ์ ๋น ๋๊ธฐ์ ์
์ถ๋ ฅ์ด๋ค.
I/O๋ฅผ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด 2๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
์ข์ธก์ ์๋ ๊ทธ๋ฆผ์ด ์ผ๋ฐ์ ์ธ I/O ๊ทธ๋ฆผ์ด๋ค. CPU์์ ์ฝ์ ์ ์๋ instruction์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ instruction๊ณผ I/O์ฅ์น๋ฅผ ์ ๊ทผํ๋ instruction์ด ์กด์ฌํ๋ค. CPU์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ทผํ๋ instruction์ loadStore์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. Device์ ์ ๊ทผํ๊ธฐ ์ํด loadStore๊ณผ ๋ณ๊ฐ์ instruction์ด ์กด์ฌํ๋ค. device๋ ์ฃผ์๊ฐ ์์ด์ I/O์ ๊ทผํ๋ instruction์ ์คํํ๊ฒ ๋๋ฉด device๋ฅผ ์ ๊ทผํ๊ฒ ๋๋ค. -> Memory Mapped I/O๋ผ๊ณ ๋ถ๋ฅธ๋ค.
I/O device์๋ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋งค๊ฒจ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผํ๋ instruction์ ํตํด์ I/O์ ์ ๊ทผ ํ ์ ์๋ค.
ํ๋ก๊ทธ๋จ์ ํ์ผ ํํ๋ก File system์ ์ ์ฅ๋๋ค. -> ์คํํ๊ฒ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ ํ๋ก์ธ์ค๊ฐ ๋๋ค.
๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ๋ก ์ฌ๋ผ๊ฐ๋ ๊ฒ์ด ์๋๋ผ ์ค๊ฐ์ Virtual Memory์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
์ด๋ค ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ฒ ๋๋ฉด ๊ทธ ํ๋ก๊ทธ๋จ๋ง์ ๋ ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ(address space)์ด virtual memory์ ์๊ธฐ๊ฒ ๋๋ค. -> 0๋ฒ์ง ๋ถํฐ ์์ํ๋ ๋ ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ! -> ์ด๋ฌํ ์ฃผ์ ๊ณต๊ฐ์ code, data, stack์์ญ์ผ๋ก ๋๋๊ฒ ๋๋ค.
code : CPU๊ฐ ์คํํ ๊ธฐ๊ณ์ด ์ฝ๋
data : ์ ์ญ๋ณ์, ์๋ฃ๊ตฌ์กฐ ๋ฑ
stack : ํจ์
-> virtual memory์ ์ฌ๋ผ๊ฐ ์๋ ๋ชจ๋ memory๋ฅผ Physical memory์ ํต์งธ๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ ๋น์ฅ ํ์ํ ๋ถ๋ถ๋ง ์ฌ๋ฆฐ๋ค.(ํต์งธ๋ก ์ฌ๋ฆฌ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋๋ค.) -> ์ฌ์ฉ์ด ์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ซ์๋ธ๋ค. -> ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ๋ณด๊ดํ๊ณ ์์ด์ผ ํ๋ ๋ถ๋ถ์ด ํ์ํ๋ค. -> ๊ทธ๋ฐ ๋ถ๋ถ์ ๋์คํฌ์ Swap area์ ๋ด๋ ค๋๊ฒ ๋๋ค.
Swap area๋ physical memory์ ์ฐ์ฅ๋ถ๋ถ์ด๊ณ (์ ์์ด ๋๊ฐ๊ฒ ๋๋ฉด virtual, physical memory๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ๋ผ์ง๋ฏ๋ก ์๋ฏธ์์ด์ง๋ค) File system์ ๋นํ๋ฐ์ฑ ์ ์ฅ๊ณต๊ฐ์ผ๋ก ๊ฐ์ ํ๋๋์คํฌ์ง๋ง ์๋ฏธํ๋ ๋ฐ๊ฐ ๋ค๋ฅด๋ค.
Virtual Memory๋ ๊ฐ ํ๋ก๊ทธ๋จ๋ง๋ค ๋ ์์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ์ฃผ์๊ณต๊ฐ์ ์๋ฏธํ๋ค.
vitual memory์ ์ฃผ์๋ฅผ physical memory์ ์ฃผ์๋ก ์ฎ๊ฒจ์ฃผ๋ address translationํด์ฃผ๋ H.W๊ฐ ์กด์ฌํ๋ค.
PCB(Process Controll Block) : ํ๋ก์ธ์ค๊ฐ ์คํ ๋ ๋๋ง๋ค ์ปค๋ data์์ญ์ ์๋ฃ๊ตฌ์กฐ๊ฐ ์์ฑ๋์ด ๊ด๋ฆฌ ํ ์ ์๋๋ก ํ๋ค.
-> ์ด์์ฒด์ ์ ์ญํ ์ ๊ด๋ฆฌ์ด๊ธฐ ๋๋ฌธ! ์ํ๋ฅผ ์์์ผ ํจ.
์ปค๋์ ํจ์ ๊ตฌ์กฐ๋ก ์ฝ๋๊ฐ ์ง์ ธ์๊ธฐ ๋๋ฌธ์ ํจ์๋ฅผ ํธ์ถํ๊ฑฐ๋ ๋ฆฌํดํ ๋ stack์์ญ์ ์ฌ์ฉํด์ผ ํ๋ค. ์ด์์ฒด์ ์ฝ๋๋ ์ฌ๋ฌ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์์ฒญ์ ํด์ ์ด๋ค ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด๋ค ํจ์๋ฅผ ํธ์ถํ๋์ง ์ ์งํด์ผํ๋ค.
-> ๋ฐ๋ผ์ ์ปค๋ ์คํ์ ๋ฐ๋ก ์ ์งํด์ผ ํ๋ค.
[์ถ์ฒ] ๋ฐํจ๊ฒฝ ๊ต์๋ ๊ฐ์