๐ System Structure & Program Execution 1์์ ์ด์ด์ง๋ ๋ด์ฉ์ ๋๋ค.
๋๊ธฐ์ ์
์ถ๋ ฅ(synchronous I/O)
๋น๋๊ธฐ์ ์
์ถ๋ ฅ( asynchronous I/O)
๋๊ธฐ์์ ๋ป์ ๋์ถฉ '์๊ฐ์ ์ผ๋ก ๋ง์ถ๋ค'
๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค. ๋น๋๊ธฐ์์ ๋ฐ๋์ด๋ค. ์์ ๋ ๊ฒฝ์ฐ ๋ชจ๋ I/O์ ์๋ฃ๋ ์ธํฐ๋ฝํธ๋ก ์๋ ค์ค๋ค. ๋๊ธฐ์์ I/O ์์
์ด ๋๋๊ธฐ๊น์ง๋ฅผ ๊ธฐ๋ค๋ฆฐ ๋ค์ ๊ทธ ์์
์ ํ์ธํ๊ณ ๋ค์ instruction์ ์งํํ๋ค. ๋น๋๊ธฐ์์ ์ด์ ๋ฐ๋๋ก I/O ์์
์ด ๋๋๋์ ๊ฐ๋งํ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ CPU์ ์ด๊ถ์ ์ป์ด์์ ๋ค๋ฅธ ์์
๋ค์ ์งํํ๋ ๋ฐฉ์์ด๋ค.
๋๊ธฐ์๊ณผ ๋น๋๊ธฐ์์ ์๋ํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ถ๋ถ์์ ์ฐ์ธ๋ค. ๋ง์ฝ ๋ด๊ฐ ๋ฌด์์ธ๊ฐ๋ฅผ readํด์ค๋ ์์ ์ด ํ์ํ๋ฉด ๊ทธ readํด์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก๋ง ์ฝ๋๊ฐ ์งํ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ด๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ๋๊ธฐ์์ด ๋ ์ ๋นํ๋ค. ํ์ง๋ง ๋ง์ฝ write์ ๊ฒฝ์ฐ ๋ด๊ฐ ๋ฌด์์ธ๊ฐ๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ๊ฒ์ด ์ ๋ง ์ถ๋ ฅ์ด๋์๋์ง ํ์ธ์ ํ์ง ์์๋ ์์ ์ ์งํํ ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋น๋๊ธฐ์์ด ์ ๋นํ๋ค. ๋ฐ๋ผ์ ์ด ๋ ๋ฐฉ์์ ์ํ๋ ๋ฐ์ ๋ฐ๋ผ ๊ตฌํํ๊ธฐ ๋๋ฆ์ด๋ค.
๋ง์ฝ ๋๊ธฐ์ ์
์ถ๋ ฅ์ ํ๊ฒ ๋๋ค๋ฉด I/O์์
์ด ์๋ฃ๋๊ธฐ ์ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋ฐฉ์์ด ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ CPU๋ ๋๊ณ ์๊ฒ๋๋๋ฐ, ์ด๋ฌํ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ์์ ๋๊ธฐ์ ์
์ถ๋ ฅ ๋ฐฉ์ 2
๋ฅผ ๋ณด๋ฉด ๋๋ค.๋ณดํต์ ๋๊ธฐ์ ์
์ถ๋ ฅ์ ๋ฐฉ์์ 2๋ฒ์ ํํ๋ค.
I/O๋ฅผ ์ํํ๋ ๋ฐฉ์ ์ญ์ ๋๊ฐ์ง๋ก ๋๋๋ค.
special instruction
์ ์ํดMemory Mapped I/O
์ ์ํด 1๋ฒ์ด ๋ณดํต ์ผ๋ฐ์ ์ธ I/O ๋ฐฉ์์ด๋ค. ์ฐ๋ฆฌ๊ฐ CPU์์ ์คํํ ์ ์๋ instruction์๋ ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ๊ทผํ๋ instruction๊ณผ I/O ์ฅ์น์ ์ ๊ทผํ ์ ์๋ instruction์ด ์๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ๋ฟ๋ง ์๋๋ผ I/O device๋ ์ฃผ์๊ฐ ์์ด์ ๊ทธ ํน์ ์ฃผ์์ ๋ํด์ I/O์ ์ ๊ทผํ๋ instruction์ ์คํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
2๋ฒ์ I/O device๋ค์๋ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋งค๊ฒจ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ๋ ๊ฒ์ฒ๋ผ I/O device์ ์ ๊ทผํ๋ ๋ฐฉ์์ด๋ค. I/O ์ฅ์น์๋ ๋ฉ๋ชจ๋ฆฌ์ฃผ์์ ์ฐ์ฅ์ฃผ์๋ฅผ ๋ถ์ธ ๋ค์์ ๋ฉ๋ชจ๋ฆฌ์ ๊ทผ instruction์ผ๋ก I/O device์๋ ์ ๊ทผํ๋ ๊ฒ์ด๋ค.
๋ค์ ํ๋์จ์ด์ ์ธ ์๊ธฐ๋ก ๋์์์ ์ ์ฅ์ฅ์น ๊ณ์ธต ๊ตฌ์กฐ์ ๋ํด ์ด์ผ๊ธฐํด๋ณธ๋ค. ์์ ๊ตฌ์กฐ๊ฐ ์ ์ฅ์ฅ์น์ ๊ณ์ธต ๊ตฌ์กฐ์ด๋ค. ์ฌ์ค ๊ทธ๋ฆผ์ ๋งจ ์์๋ CPU๊ฐ ์กด์ฌํ๋ค. ์๋ก ๊ฐ์๋ก ๋ณดํต ์๋๋ ๋น ๋ฅด์ง๋ง ๋จ์๋น ๊ฐ๊ฒฉ์ด ๋น์ธ๊ธฐ ๋๋ฌธ์ ์ฉ๋์ด ์ ๊ณ , ์๋๋ก ๊ฐ์๋ก ์๋๋ ๋๋ฆฌ์ง๋ง ์ ์ฅํ ์ ์๋ ์์ด ๋ง์์ง๋ค.
๋ ์์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ volatile storage
์ nonvolatile storage
์ ์๋ฏธ๋ ํ๋ฐ์ฑ์ด๋ ํ๋ฐ์ฑ์ด์ง ์๋์ด๋ค. ์์ ์ ์ ๊ธฐ์ค์ผ๋ก volatile์ด๋ผ๊ณ ์จ์๋ ๊ฒ๋ค์ ์ ์์ด ๋๊ฐ๋ฉด ๋ด์ฉ์ด ์ฌ๋ผ์ง๋ค. nonvolatile์ ๊ทธ ๋ฐ๋์ด๋ค.
๋ค์ CPU์์ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ถ๋ถ์ Primary storage
๋ผ๊ณ ํ๊ณ ๊ทธ ์ธ์ secondary์ tertiary storage
๋ CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ถ๋ถ์ด ์๋๋ค.
์์ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ์บ์ฑ์ด๋ผ๋ ์ฉ์ด๋ฅผ ์์๋ณด์. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ๋ ๋น ๋ฅธ ์ ์ฅ ์์คํ
์ ์ํด ์ ๋ณด๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ ์ด์ผ๊ธฐํ๋ค.
์์์ ๋งํ๋๋ก ์๋ก ๊ฐ์๋ก ์ฉ๋์ด ์ ๊ธฐ ๋๋ฌธ์ ์๋์ชฝ์ ์๋ ๋ด์ฉ์ ์ ๋ถ ์์ ์ฌ๋ ค๋์ ์๋ ์๋ค. ๋ํ ์๋์ฐจ์ด๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฒ์ ์์ถฉํ๊ธฐ ์ํด ์ค๊ฐ์ cache memory
๋ฅผ ๋๋ค. ๋น์ฅ ํ์ํ ๊ฒ๋ง ๋ฐ์์ ์๋ก ์ฌ๋ ค์ฐ๋๋ฐ ๊ทธ๋ฐ ์์
์ caching
์ด๋ผ๊ณ ํ๋ค. ๋ณดํต ์บ์ฑ์ ์ฌ์ฌ์ฉ์ ์ฐ์ธ๋ค. ํ๋ฒ ์ฝ์ด๋ค์ธ ๋ฐ์ดํฐ๋ฅผ caching memory์ ๋ด๋๋ค๋ฉด ๋ค์ ๋ฐ์๊น์ง ๊ฐ์ ๊ฐ์ ธ์ฌ ํ์๊ฐ ์๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ง์ฝ ์ด๋ค ํ๋ก๊ทธ๋จ์ ์คํํ๊ฒ ๋๋ค๋ฉด ๋ฐ๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ง ์๊ณ ๊ฐ์๋ฉ๋ชจ๋ฆฌ
์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค. ์ ๋ ๋ฏ ๊ฐ ํ๋ก๊ทธ๋จ๋ง๋ค ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ณต๊ฐ์ด ์๊ธฐ๋๋ฐ, ๊ทธ ๊ณต๊ฐ์ stack, data, code
๋ก ์ด๋ฃจ์ด์ง๋ค. ์ด๋ ๊ฒ ๋
์์ ์ผ๋ก ํ๋ณดํ ๊ฐ์๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ํ ๋๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์คํํ๊ฒ ๋๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ปค๋์์ญ์ ํญ์ ์กด์ฌํ์ง๋ง, ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์ฌ์ฉ์ํ๋ก๊ทธ๋จ์ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๋ฉด ์ฌ๋ผ์ง๊ฒ ๋๋ค. ๋ง์ฝ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ์ฌ์ฉ์ํ๋ก๊ทธ๋จ์ ์ฌ๋ฆฌ๊ฒ ๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์งํ
๋, ๊ฐ์๋ฉ๋ชจ๋ฆฌ์์ ๊ทธ๋๊ทธ๋ ํ์ํ ๋ถ๋ถ๋ค๋ง ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์คํํ๋ ๋ฐฉ์์ด๋ค. swap area
๋ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ง ๋ชปํ ๋๋จธ์ง ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ๋ถ๋ถ๋ค์ด ๋ด๊ธฐ๋ ๊ณณ์ด๋ค.
๋ฐ๋ผ์ ์์์ ๋๊ฐ์ ๋์คํฌ(File area, Swap area)
๊ฐ ์กด์ฌํ๋๋ฐ File area
์ ๋ฐ์ดํฐ๋ค์ ์ ์์ด ๋๊ฐ๋ ์ฌ๋ผ์ง์ง ์์ง๋ง, Swap area
์ ๋ฐ์ดํฐ๋ค์ ์ ์์ด ๋๊ฐ๋ฉด ํ์์๋ ๋ฐ์ดํฐ๊ฐ ๋๋๊น ์ฌ๋ผ์ง๊ฒ ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์์ ๋ฐฉ์๋๋ก user mode์ kernel mode
๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์คํ๋๋ค๊ฐ ์ข
๋ฃ๋๋ค.