
User Mode (์ฌ์ฉ์ ๋ชจ๋)
- ์ญํ
- ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ (ํ๋ก์ธ์ค)์ด ์คํ๋๋ ์ ํ๋ ๊ถํ์ ์คํ ๋ชจ๋์ ๋๋ค. ์ฌ์ฉ์ ๋ชจ๋๋ ์ด์์ฒด์ ๊ฐ ์์คํ ์ ๋ณด์๊ณผ ์์ ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ปค๋ ๋ชจ๋์ ๊ตฌ๋ถ๋ ๊ณต๊ฐ์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ก ํฉ๋๋ค.
์ฌ์ฉ์ ๋ชจ๋์ ์ฃผ์ ๊ฐ๋ ๊ณผ ํน์ฑ
- ์ ํ๋ ๊ถํ
- ์ฌ์ฉ์ ๋ชจ๋์์๋ ์ง์ ์ ์ธ ์์คํ ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ, ํ๋์จ์ด ์ฅ์น(๋์คํฌ, ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๋ฑ), CPU ์ ์ด ๊ถํ์ ์ ํํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์์คํ ์์์ ์ฌ์ฉํ๋ ค๋ฉด ์์คํ ํธ์ถ์ ํตํด ์ด์์ฒด์ ์ ์์ฒญํด์ผ ํฉ๋๋ค. ์ด์์ฒด์ ๋ ์ด๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๋ฐํํฉ๋๋ค.
- ์์คํ
์์์ ๋ํ ๊ฐ์ ์ ๊ทผ
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ์ ๊ฐ์ ์์์ ์ง์ ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ํ์ผ์ ์ด๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ ค๋ฉด, ์ด์์ฒด์ ์ ํ์ผ ์์คํ ์ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํด์ผ ํฉ๋๋ค.
- ์ด๋ ์ด์์ฒด์ ์ ์์คํ ํธ์ถ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ์์์ ์ง์ ์ ์ ๊ทผ์ ์ฐจ๋จํ์ฌ ์์คํ ์์ ์ฑ์ ๋์ ๋๋ค.
- ๋ณดํธ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- ์ฌ์ฉ์ ๋ชจ๋์์ ํ๋ก๊ทธ๋จ์ ์์ ์ด ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ด์์๋ง ์์ ํ ์ ์์ต๋๋ค.
- ์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ ๊ธฐ๋ฅ์ ํตํด ๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฒฉ๋ฆฌํ์ฌ, ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํฉ๋๋ค.
- ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ ์ด์์ฒด์ ๋ ํ์ด์ง ํดํธ(page fault) ์์ธ๋ฅผ ๋ฐ์์์ผ ํด๋น ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ฑฐ๋ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค.
- ์์คํ
ํธ์ถ์ ํตํ ์ปค๋ ๋ชจ๋ ์ ํ
- ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์ปค๋์ ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ผ ํ ๋๋ ์์คํ ํธ์ถ(system call)์ ํตํด ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์์ ์ ์์ฒญํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํ์ผ ์ ์ถ๋ ฅ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ๋คํธ์ํฌ ํต์ ๊ฐ์ ์์ ์ด ํ์ํ ๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์ง์ ์ํํ์ง ์๊ณ ์์คํ ํธ์ถ๋ก ์์ฒญํฉ๋๋ค.
- ์์คํ ํธ์ถ ๊ณผ์ ์์๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ ํ ์์ฒญ์ด ์ฒ๋ฆฌ๋๋ฉฐ, ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ๋์์ต๋๋ค.
- ์์ ์ฑ ์ ์ง
- ์ฌ์ฉ์ ๋ชจ๋๋ ๋ณดํธ๋ ์คํ ํ๊ฒฝ์ผ๋ก, ํ๋ก๊ทธ๋จ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์์คํ ์ ์ฒด์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
- ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด๋ ๋ฌดํ ๋ฃจํ ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋ ํด๋น ํ๋ก์ธ์ค๋ง ์ข ๋ฃ๋๊ณ ์์คํ ์ ์ ์ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ๋ชจ๋์ ๋์ ๋ฐฉ์
1. ์์คํ ํธ์ถ ์ธํฐํ์ด์ค
- ์ฌ์ฉ์ ๋ชจ๋๋ ์ปค๋ ๊ธฐ๋ฅ์ ์ง์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์์คํ
ํธ์ถ์ ํตํด ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์์
์ ์์ฒญํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, open ์์คํ ํธ์ถ์ ํตํด ํ์ผ์ ์ด ๋, ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์์คํ ํธ์ถ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋์ ์์ฒญ์ ๋ณด๋ ๋๋ค.
- ์ด์์ฒด์ ๋ ์ด ์์ฒญ์ ๋ฐ์ ์ปค๋ ๋ชจ๋์์ ํ์ผ์ ์ด๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๋ฐํํฉ๋๋ค.
2. ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ
- ๊ฐ ํ๋ก์ธ์ค๋ ์์ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ๋ชจ๋์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ์ด์์ฒด์ ๊ฐ ์ด๋ฅผ ๊ฐ์งํ๊ณ ํ์ด์ง ํดํธ ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค.
- ์ด๋ฌํ ๋ณดํธ ๋ฉ์ปค๋์ฆ ๋๋ถ์ ๊ฐ ํ๋ก์ธ์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ฉฐ, ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ์ ์ฒด ์์คํ ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
3. ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ
- ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด ์์คํ
์ ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋์์ ํค๋ณด๋๋ ๋คํธ์ํฌ์ ๊ฐ์ ์ธ๋ถ ์ฅ์น๋ก๋ถํฐ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด, ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๊ฐ ์คํ๋์ด ์ปค๋ ๋ชจ๋์์ ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋๋ฉด, ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ๋์์ ํ๋ก๊ทธ๋จ์ด ๊ณ์ ์คํ๋ ์ ์๋๋ก ํฉ๋๋ค.
์ฌ์ฉ์ ๋ชจ๋์์์ ์์ ์์ฒญ ํ๋ฆ ์์
- ํ์ผ ์ด๊ธฐ ์์ฒญ: ํ๋ก๊ทธ๋จ์ด ํ์ผ์ ์ด๊ธฐ ์ํด open ์์คํ ํธ์ถ์ ์์ฒญํฉ๋๋ค.
- ์์คํ ํธ์ถ ์ฒ๋ฆฌ: ์ด์์ฒด์ ๋ ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ํ์ผ์ ์ด๊ณ , ํด๋น ํ์ผ์ ๋ํ ํธ๋ค(ํ์ผ ๋์คํฌ๋ฆฝํฐ)์ ๋ฐํํฉ๋๋ค.
- ๊ฒฐ๊ณผ ๋ฐํ: ์ปค๋ ๋ชจ๋์์ ์์ ์ด ์๋ฃ๋๋ฉด, ์์คํ ์ ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ์ ํ๋์ด ํ๋ก๊ทธ๋จ์ด ํ์ผ์ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
Kernel Mode (์ปค๋ ๋ชจ๋)
- ์ญํ : ์ด์์ฒด์ ์์ ๊ฐ์ฅ ๋์ ๊ถํ์ ๊ฐ์ง ์คํ ๋ชจ๋๋ก, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํ๋ก์ธ์ค ๊ด๋ฆฌ, ํ์ผ ์์คํ ๊ด๋ฆฌ, ํ๋์จ์ด ์ ์ด ๋ฑ ์์คํ ์์์ ์ง์ ์ ์ดํ๊ณ ๊ด๋ฆฌํ๋ ์์ ์ ์ํํฉ๋๋ค.
์ปค๋ ๋ชจ๋์ ์ฃผ์ ๊ฐ๋
- ์ต๊ณ ๊ถํ ์์ค
- ์ปค๋ ๋ชจ๋๋ ์์คํ ์์์ ๋ํ ์ต๊ณ ๊ถํ์ ๊ฐ์ง๋๋ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ, CPU ์ ์ด, ํ๋์จ์ด ์ฅ์น ์ ์ด ๋ฑ ์์คํ ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
- CPU์ ๊ถํ ๋ ๋ฒจ ์ค ๊ฐ์ฅ ๋์ ๊ถํ(Ring 0)์ ์ฌ์ฉํ์ฌ, ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๋๋ฐ์ด์ค ์ ์ด ๋ฑ ์์คํ ์ ์ค์ํ ์์ ์ ์ํํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋์ ์ปค๋ ๋ชจ๋์ ๋ถ๋ฆฌ
- ์ปดํจํฐ ์์คํ ์ ์ฌ์ฉ์ ๋ชจ๋์ ์ปค๋ ๋ชจ๋๋ก ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ ๋ณด์๊ณผ ์์ ์ฑ์ ์ํด ํ์์ ์ ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋์์ ์คํ ์ค์ธ ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์คํ ์์์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ปค๋ ๋ชจ๋๋ฅผ ํตํด์๋ง ๊ฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก๊ทธ๋จ์ด ํ์ผ์ ์ด๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์์ฒญํ ๋๋ ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์์ ์ ์ํํฉ๋๋ค.
- ์์คํ
ํธ์ถ์ ํตํ ์ปค๋ ๋ชจ๋ ์ ๊ทผ
- ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ์ ํํ๋ ค๋ฉด ์์คํ ํธ์ถ(System Call)์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์์คํ ํธ์ถ์ ํตํด ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ํ์ํ ์์ ์ ์์ฒญํ๋ฉด CPU๊ฐ ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ํด๋น ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์์คํ ํธ์ถ์ ์ปค๋๊ณผ ์ฌ์ฉ์ ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํ์ฌ, ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์์ ํ๊ฒ ์์คํ ์์์ ์ฌ์ฉํ๊ฒ ํฉ๋๋ค.
- ์ธํฐ๋ฝํธ์ ์์ธ ์ฒ๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ์ธํฐ๋ฝํธ์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์์คํ ์ ์์ ์ฑ์ ์ ์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋คํธ์ํฌ ์นด๋๋ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ํตํด ์ปค๋ ๋ชจ๋๊ฐ ์ด๋ฅผ ์ธ์ํ๊ณ ํ์ํ ์์ ์ ์ํํฉ๋๋ค.
- ์์ธ ์ํฉ์ด ๋ฐ์ํ๋ฉด ์ปค๋ ๋ชจ๋๋ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ ์์ ํ๊ฒ ์ข ๋ฃํ๊ฑฐ๋ ์์ธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ปค๋ ๋ชจ๋์ ์ฃผ์ ๊ธฐ๋ฅ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ํ๋ก์ธ์ค ์์ฑ, ์ข ๋ฃ, ์ค์ผ์ค๋ง, ๋ฌธ๋งฅ ์ ํ ๋ฑ์ ๊ธฐ๋ฅ์ ๋ด๋นํ์ฌ CPU ์์์ ํจ์จ์ ์ผ๋ก ๋ฐฐ๋ถํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋์์ ์คํ๋๋ ๊ฐ ํ๋ก๊ทธ๋จ์ ์ปค๋ ๋ชจ๋์์ ์์ฑ๋๊ณ ๊ด๋ฆฌ๋ฉ๋๋ค. ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋ ๋, ์ปค๋ ๋ชจ๋๋ CPU ์๊ฐ์ ํ ๋นํ์ฌ ๋ค์ค ์์ ์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ์ฌ ํ๋ก๊ทธ๋จ์ด ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ ๋น๋ฐ์ ์ ์๊ฒ ํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ ๊ธฐ๋ฅ์ ํตํด ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ธ๋ถ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ์ฌ, ํ๋ก๊ทธ๋จ์ด ์๋ก์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ญํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ํ์ผ ์์คํ
๊ด๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ํ์ผ ์ ์ถ๋ ฅ, ํ์ผ ์ด๊ธฐ/๋ซ๊ธฐ, ํ์ผ ๊ถํ ๊ด๋ฆฌ ๋ฑ์ ํฌํจํ๋ ํ์ผ ์์คํ ๊ธฐ๋ฅ์ ๊ด๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ํ์ผ์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ปค๋ ๋ชจ๋๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ผ์ ์ด๊ธฐ ์ํด open ์์คํ ํธ์ถ์ ์ฌ์ฉํ์ฌ ์ปค๋ ๋ชจ๋์์ ํ์ผ์ ์ด๊ณ , ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ๋ฐํํฉ๋๋ค.
- ํ๋์จ์ด ์ ์ด ๋ฐ ์ฅ์น ๋๋ผ์ด๋ฒ
- ์ปค๋ ๋ชจ๋๋ ํ๋์จ์ด ์ฅ์น์์ ์ํธ์์ฉ์ ๊ด๋ฆฌํ๊ณ , ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ํ๋์จ์ด์ ์ง์ ์ ๊ทผํ์ง ์๋๋ก ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ํ๋์จ์ด๋ฅผ ์ ์ดํฉ๋๋ค.
- ๊ฐ ํ๋์จ์ด ์ฅ์น์ ์ ํฉํ ์ ์ด ์ฝ๋๋ฅผ ์ปค๋ ๋ชจ๋์์ ์คํํ์ฌ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ, ๋คํธ์ํฌ ์นด๋, ๊ทธ๋ํฝ ์นด๋ ๋ฑ์ ์ฅ์น๋ฅผ ์ ์ดํฉ๋๋ค.
- ๋คํธ์ํฌ ๊ด๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๊ณ , ํจํท์ ๋ผ์ฐํ ํ๋ฉฐ, ์์ผ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ์ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค.
- ๋คํธ์ํฌ ์นด๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ณ , ์ปค๋ ๋ชจ๋๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฌํฉ๋๋ค.
์ปค๋ ๋ชจ๋์ ๋์ ๊ณผ์ - ์์คํ ํธ์ถ
- ์์คํ
ํธ์ถ ์์ฒญ
- ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์ปค๋ ๊ธฐ๋ฅ์ ์์ฒญํ ๋ ์์คํ ํธ์ถ์ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ผ์ ์ด ๋ open ์์คํ ํธ์ถ์ ํตํด ํ์ผ ์ด๊ธฐ๋ฅผ ์์ฒญํฉ๋๋ค.
- ์ปค๋ ๋ชจ๋๋ก ์ ํ
- ์์คํ ํธ์ถ์ด ๋ฐ์ํ๋ฉด CPU๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค. ์ด ์ ํ์ ํตํด ์ปค๋์ด ์์คํ ์์์ ์ง์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ปค๋ ๋ชจ๋์์ ์์ฒญ ์ฒ๋ฆฌ
- ์ปค๋ ๋ชจ๋์์ ์์ฒญ์ ์ฒ๋ฆฌํ์ฌ ํ์ผ์ ์ด๊ณ , ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ์์ฑํ ํ ์ด๋ฅผ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋ฐํํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋๋ก ๋ณต๊ท
- ์์ ์ด ์๋ฃ๋๋ฉด CPU๋ ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ์ ํํ์ฌ ํ๋ก๊ทธ๋จ์ด ์คํ์ ๊ณ์ํ ์ ์๊ฒ ํฉ๋๋ค.
์ปค๋ ๋ชจ๋๊ฐ ์ค์ํ ์ด์
- ์์คํ
์์ ์ฑ๊ณผ ๋ณด์ ์ ์ง
- ์ปค๋ ๋ชจ๋๋ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์์คํ ์์์ ๋ฌด๋ถ๋ณํ๊ฒ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์์ ๋ณดํธ์ ๋ณด์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ปค๋ ๋ชจ๋๋ฅผ ํตํด์๋ง ์์์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ปค๋ ๋ชจ๋๋ ์์คํ ์์์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ฒ ์ ํ ๊ด๋ฆฌํ์ฌ ์์คํ ์ ์์ ์ฑ์ ์ ์งํฉ๋๋ค.
- ์ค์ํ ์์คํ
์์ ๊ด๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ CPU, ๋ฉ๋ชจ๋ฆฌ, ํ๋์จ์ด ์ฅ์น, ๋คํธ์ํฌ ๋ฑ ์์คํ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์์คํ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
- ๋ค์ค ์์ ์ ์ง์ํ๊ณ , ํ๋ก์ธ์ค ๊ฐ ์์ ์ถฉ๋์ ๋ฐฉ์งํ์ฌ ์ํํ ์์คํ ์๋์ ๋ณด์ฅํฉ๋๋ค.
- ์ค๋ฅ ๋ฐ ์์ธ ์ฒ๋ฆฌ
- ์ปค๋ ๋ชจ๋๋ ์์คํ ์ค๋ฅ์ ์์ธ ์ํฉ์ ๊ฐ์งํ๊ณ ์ ์ ํ๊ฒ ๋์ํ์ฌ ์์คํ ์ ์์ ์ ์ผ๋ก ์ ์งํฉ๋๋ค.
- ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด๋ ํ๋์จ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ์ปค๋ ๋ชจ๋๋ ์ด๋ฅผ ์ฒ๋ฆฌํ์ฌ, ์์คํ ์ด ์ ์ ์ํ๋ก ์ ์ง๋๋๋ก ํฉ๋๋ค.
User Mode์ Kernel Mode ๊ฐ์ ์ ํ
์ด์์ฒด์ ๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก์ ์ ํ์ ์์ ํ๊ฒ ์ ์ดํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค. ์ด ์ ํ์ ์ฃผ๋ก ์์คํ ํธ์ถ์ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๊ฐ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๋ชจ๋์์ ์์คํ
ํธ์ถ ์์ฒญ:
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์์คํ ์์(์: ํ์ผ, ๋ฉ๋ชจ๋ฆฌ, ํ๋ก์ธ์ค)์ ํ์๋ก ํ๋ฉด ์์คํ ํธ์ถ์ ํตํด ์ปค๋ ๋ชจ๋๋ก ์ ํ์ ์์ฒญํฉ๋๋ค.
- ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์์ฒญ ์ฒ๋ฆฌ:
- ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ ํ, ์ด์์ฒด์ ๋ ํด๋น ์์ฒญ(์: ํ์ผ ์ฝ๊ธฐ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฑ)์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋ ์ด์์ฒด์ ๋ ํ์ํ ์์์ ์ ๊ทผํ๊ฑฐ๋ ๋ณดํธ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ์ฒ๋ฆฌ ์๋ฃ ํ ์ฌ์ฉ์ ๋ชจ๋๋ก ๋ณต๊ท:
- ์์ฒญ์ด ์๋ฃ๋๋ฉด ์ด์์ฒด์ ๋ ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ์ ํํ์ฌ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ๊ณ์ ์คํ๋๋๋ก ํฉ๋๋ค.
์ฌ์ฉ์ ๋ชจ๋ —>> ์ปค๋ ๋ชจ๋
์์คํ ํธ์ถ(System Call)
- ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ์ ๊ทผํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ํธ์ถ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์์ ์ด์์ฒด์ ๊ธฐ๋ฅ(์: ํ์ผ ์ด๊ธฐ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฑ)์ ์์ฒญํ ๋ ์์คํ ํธ์ถ์ ํตํด ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค.
- ์์คํ ํธ์ถ์ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ปค๋ ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์ฃผ์ ์ธํฐํ์ด์ค์ ๋๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ(Hardware Interrupt)
- ํ๋์จ์ด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด CPU๋ ํ์ฌ ์์ ์ ์ผ์ ์ค์งํ๊ณ ์ปค๋ ๋ชจ๋๋ก ์ ํํ์ฌ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํค๋ณด๋ ์ ๋ ฅ์ด๋ ๋คํธ์ํฌ ๋ฐ์ดํฐ ์์ ๊ณผ ๊ฐ์ ํ๋์จ์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, CPU๋ ์ปค๋ ๋ชจ๋์์ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด(Interrupt Service Routine, ISR)์ ์คํํ์ฌ ํด๋น ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
์์ธ(Exceptions) ๋๋ ํธ๋ฉ(Trap)
- ํ๋ก๊ทธ๋จ ์คํ ์ค ์์ธ๋ ํธ๋ฉ์ด ๋ฐ์ํ๋ฉด CPU๋ ์๋์ผ๋ก ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ, 0์ผ๋ก ๋๋๊ธฐ์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ปค๋ ๋ชจ๋๋ก ์ ํ๋๊ณ , ์ปค๋์์ ํด๋น ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
CPU ์ด๊ธฐํ ๋๋ ์ปจํ ์คํธ ์ ํ(Context Switching)
- ์ปดํจํฐ๊ฐ ๋ถํ ๋ ๋ CPU๋ ์ฒ์๋ถํฐ ์ปค๋ ๋ชจ๋์์ ์คํ์ ์์ํฉ๋๋ค. ๋ํ ํ๋ก์ธ์ค ๊ฐ ์ปจํ ์คํธ ์ ํ์ด ๋ฐ์ํ ๋๋ ์ปค๋ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค.
- ์ปค๋ ๋ชจ๋์์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์ค๋นํ๊ณ ์ค์ผ์ค๋งํ๋ ์์ ์ด ์ํ๋ฉ๋๋ค.
User Mode(์ฌ์ฉ์ ๋ชจ๋) VS Kernel Mode(์ปค๋ ๋ชจ๋)
| ์ฌ์ฉ์ ๋ชจ๋ (User Mode) | ์ปค๋ ๋ชจ๋ (Kernel Mode) | |
| ์ฃผ์ ์ญํ | ์ผ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ ์ ๊ณต | ์ด์์ฒด์ ํต์ฌ ๊ธฐ๋ฅ ์คํ ๋ฐ ์์คํ ์์ ๊ด๋ฆฌ |
| ๊ถํ ์์ค | ์ ํ๋ ๊ถํ์ผ๋ก ์์ ์ ๊ทผ ๋ถ๊ฐ | ์์ ํ ๊ถํ์ผ๋ก ๋ชจ๋ ์์ ์ ๊ทผ ๊ฐ๋ฅ |
| ์์ ์ ๊ทผ ๋ฐฉ์ | ๊ฐ์ ์ ๊ทผ (์์คํ ์ฝ์ ํตํด ์์ฒญ) | ์ง์ ์ ๊ทผ (ํ๋์จ์ด ๋ฐ ์์คํ ์์์ ์ง์ ์ ์ด) |
| ์์ ์ฑ ๋ฐ ๋ณด์ | ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์ปค๋์ ์ํฅ์ ๋ฏธ์น์ง ์์ | ์ค๋ฅ ๋ฐ์ ์ ์์คํ ์ ์ฒด์ ์ํฅ์ ์ค ์ ์์ |
| ๋ชจ๋ ์ ํ ํ์์ฑ | ์ปค๋ ๋ชจ๋ ์ ํ ์ ์์คํ ํธ์ถ์ ํตํด ์์ฒญ | ์ฌ์ฉ์ ๋ชจ๋ ์ ํ ํ ๋ค์ ์์ ์ผ๋ก ๋ณต๊ท |
| ์์ธ ์ฒ๋ฆฌ | ์ ํ๋ ๊ถํ์ผ๋ก ์์ธ ๋ฐ์ ์ ์์ ํ๊ฒ ์ข ๋ฃ ๊ฐ๋ฅ | ์์ธ ๋ฐ์ ์ ์์คํ ์ ์ฒด ์์ ์ฑ์ ์ํฅ |
| ์์ | ํ ์คํธ ํธ์ง๊ธฐ, ์น ๋ธ๋ผ์ฐ์ , ๊ฒ์ ๋ฑ | ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์, ํ๋ก์ธ์ค ์ค์ผ์ค๋ฌ, ํ์ผ ์์คํ ๊ด๋ฆฌ์ |
'๐ซ Krafton Jungle > PintOS Project2 _ User Programs' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์์ ๋ฐ ๋ณด์ ํ์ - Atomic Operation (0) | 2024.11.28 |
|---|---|
| ์์ ๋ฐ ๋ณด์ ํ์ - File Descriptor (1) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | System Call (1) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | User Stack (0) | 2024.11.28 |
| [Pintos] Project02 _ User Programs | Keyword | Register VS Memory (0) | 2024.11.28 |