ํจ์คํธ์บ ํผ์ค ์ด์์ฒด์ ๊ฐ์์ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ๊ต์ฌ์ ๋ํ TIL์ ๋๋ค.
์์คํ ํธ์ถ(System Call)
์์คํ
ํธ์ถ์ ์ปค๋์ด ์์ ์ ๋ณดํธํ๊ธฐ ์ํด ๋ง๋ ์ธํฐํ์ด์ค๋ค. ์ปค๋์ ์ปดํจํฐ ์์์ ๋ณดํธํ๊ธฐ ์ํด ์ฌ์ฉ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ ์ฐจ๋จํ๋ค. ๋ฐ๋ผ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์์ ์ด์ฉํ๋ ค๋ฉด ์์คํ
ํธ์ถ์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ์ฌ ์ ๊ทผํด์ผ ํ๋ค. ๋ณดํต ์์คํ
ํธ์ถ์ ์ง์ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋, ํด๋น ์์คํ
ํธ์ถ์ ์ฌ์ฉํด์ ๋ง๋ ๊ฐ ์ธ์ด๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(API)๋ฅผ ์ฌ์ฉํ๋ค.
์ ๊ทธ๋ฆผ์ C์ธ์ด๋ก ๋ง๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์์คํ
ํธ์ถ์ ์ฌ์ฉํ๋ ์์ ์ด๋ค. ์ด๋, sys_open()์ด๋ผ๋ ์์คํ
ํธ์ถ์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ C์ธ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํด ์ฃผ๋ open()์ ์ฌ์ฉํ๋ค.
์ปค๋์ ์ญํ ๊ณผ ์ข ๋ฅ
์ปค๋์ ์ญํ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ: ํ๋ก์ธ์ค์ CPU๋ฅผ ๋ฐฐ๋ถํ๊ณ ์์ ์ ํ์ํ ์ ๋ฐ ํ๊ฒฝ ์ ๊ณต
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ: ํ๋ก์ธ์ค์ ์์ ๊ณต๊ฐ์ ๋ฐฐ์นํ๊ณ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ๊ฐ์๊ณต๊ฐ์ ์ ๊ณต
- ํ์ผ ์์คํ ๊ด๋ฆฌ: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ๊ทผํ ์ ์๋ ์ธํฐํ์ด์ค ์ ๊ณต
- ์ ์ถ๋ ฅ ๊ด๋ฆฌ: ํ์ํ ์ ์ถ๋ ฅ ์๋น์ค ์ ๊ณต
- ํ๋ก์ธ์ค ๊ฐ ํต์ ๊ด๋ฆฌ: ๊ณต๋ ์์ ์ ์ํ ๊ฐ ํ๋ก์ธ์ค ๊ฐ ํต์ ํ๊ฒฝ ์ ๊ณต
์ปค๋์ ๊ตฌ์กฐ
๋จ์ผํ ๊ตฌ์กฐ ์ปค๋: ์ด์ฐฝ๊ธฐ ์ด์์ฒด์ ์ ๊ตฌ์กฐ๋ก, ์ปค๋์ ํต์ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ชจ๋์ด ๊ตฌ๋ถ ์์ด ํ๋๋ก ๊ตฌ์ฑ
- ๋ชจ๋ ๊ฐ์ ํต์ ๋น์ฉ์ด ์ค์ด๋ค์ด ํจ์จ์ ์ธ ์ด์์ด ๊ฐ๋ฅํ์ง๋ง ๋์ ์ํธ ์์กด์ฑ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ค์ด ๋ง์ด ๋ฐ์
๊ณ์ธตํ ๊ตฌ์กฐ ์ปค๋: ๋น์ทํ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ชจ๋์ ๋ฌถ์ด์ ํ๋์ ๊ณ์ธต์ผ๋ก ๋ง๋ค๊ณ ๊ณ์ธต ๊ฐ์ ํต์ ์ ํตํด ์ด์์ฒด์ ๊ตฌํ
- ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ์ ์ฒด ์ปค๋์ ๊ณ ์น๋ ๊ฒ์ด ์๋๋ผ ํด๋น ๊ณ์ธต๋ง ๋ฐ๋ก ์์ ํ ์ ์๋ค.
- ์๋์ฐ OS๋ฅผ ๋น๋กฏํด ์ค๋๋ ์ ์ด์์ฒด์ ๋๋ถ๋ถ์ด ์ด ๊ตฌ์กฐ๋ก ๋์ด ์๋ค.
๋ง์ดํฌ๋ก ๊ตฌ์กฐ ์ปค๋: ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํ๋ก์ธ์ค ๊ฐ ํต์ ๊ด๋ฆฌ ๋ฑ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ์ ์ ์ธํ๊ณ ๋๋จธ์ง๋ ์ฌ์ฉ์ ์์ญ์ ๊ตฌํ
- ๊ณ์ธตํ ๊ตฌ์กฐ ์ปค๋์ ๊ฒฝ์ฐ ๋ค์ํ ํ๋์จ์ด์ ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์์ฉํ๊ธฐ ์ํด ๋ ๋ง์ ๊ณ์ธต๊ณผ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ํํ๊ฐ ๋์๋ค. ์ด๋ก ์ธํด ์ปค๋์ ํฌ๊ธฐ๊ฐ ๊ณ์ ์ปค์ง๊ณ ํ์ํ ํ๋์จ์ด์ ์ฉ๋๋ ๋์ด๋ฌ์ผ๋ฉฐ, ์ปค๋ ์์ค๊ฐ ๋ฐฉ๋ํด์ง์ ๋ฐ๋ผ ์ค๋ฅ๋ฅผ ์ก๊ธฐ๋ ์ด๋ ค์์ก๋ค.
- ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ค๋ง ์ปค๋ ์์ญ์ ๊ตฌํํ๊ณ ๋๋จธ์ง๋ ์ฌ์ฉ์ ์์ญ์ ๊ตฌํํ๋ค.
- ์ ํ์ PC ์ด์์ฒด์ ์ธ OS X์ ๋ชจ๋ฐ์ผ ์ด์์ฒด์ ์ธ iOS๊ฐ ํด๋น ์ปค๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
๐ก ์ฌ์ฉ์ ์์ญ? ์ฌ์ฉ์ ๋ชจ๋? ์ปค๋ ์์ญ? ์ปค๋ ๋ชจ๋?
์ปค๋ ์์ญ๊ณผ ์ฌ์ฉ์ ์์ญ
- ์ปค๋ ์์ญ์ด๋ ์ปค๋์ด ์์ ํ๋ ์์ญ์ผ๋ก CPU ์์ ์ค์ผ์ค์ด๋ ํ๋์จ์ด๋ฅผ ์ ์ดํ๋ ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ๋ค์ ์ํํ๋ค.
- ์ฌ์ฉ์ ์์ญ์ ์ผ๋ฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ์์ญ์ด๋ค. ์ปค๋์ด ์์ ํด์ผํ๋ ์ผ์ ์์ฒญํ๊ธฐ ์ํด์๋ ์์คํ ํธ์ถ์ ์ฌ์ฉํด์ผ ํ๋ค.
CPU Protection Rings
CPU๋ ๊ถํ ๋ชจ๋๋ผ๋ ๊ฒ์ ๊ฐ์ง๊ณ ์๋ค.
- ์ฌ์ฉ์ ๋ชจ๋: ์ฌ์ฉ์ ์์ญ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ๋ชจ๋์ด๋ค.
- ์ปค๋ ๋ชจ๋: ์ปค๋ ์์ญ์ OS๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋์ด๋ค. ํน๊ถ ๋ช ๋ น์ด ์คํ๊ณผ ์ํ๋ ์์ ์ํ์ ์ํ ์์ ์ ๊ทผ์ ๊ฐ๋ฅ์ผ ํ๋ค.
์ ๊ฐ๋
๋ค์ ๊ด์ ์ผ๋ก ๋ณธ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ฌ์ฉ์ ๋ชจ๋์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ค.
2. ์ด์์ฒด์ ๊ธฐ๋ฅ์ด ํ์ํ API๋ฅผ ํธ์ถํ๋ค.
3. ํด๋น API์์ ์กด์ฌํ๋ ์์คํ ์ฝ ํจ์๊ฐ ํธ์ถ๋์ด์ ์ปค๋ ๋ชจ๋๋ก ๋ณ๊ฒฝ๋๋ค.
4. ์ปค๋ ์์ญ์ OS ๋ด๋ถ์์ ํด๋น ๋ช ๋ น์ด ์คํ๋๋ค.
5. ์คํ์ด ์๋ฃ๋์์ผ๋ฉด ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ์ ํ๋๊ณ API ํธ์ถ ์ดํ์ ์์ ์ ๊ณ์ํด์ ์คํํ๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ์ค๋ ๋ (0) | 2023.04.14 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (0) | 2023.04.13 |
[์ด์์ฒด์ ] ์ปดํจํฐ์ ๊ตฌ์กฐ์ ์ฑ๋ฅ ํฅ์ (0) | 2023.04.12 |
[์ด์์ฒด์ ] ์ด์์ฒด์ ์ ์ญ์ฌ (0) | 2023.04.09 |
[์ด์์ฒด์ ] ์ด์์ฒด์ ๋? (0) | 2023.04.08 |
๋๊ธ