- ํ๋ก์ธ์ค๊ฐ ์ปดํจํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ ์ธ ์ด์์ฒด์ ์๊ฒ ์ด๋ค ๊ธฐ๋ฅ(์๋น์ค)๋ฅผ ์ฌ์ฉ ์์ฒญ -> ์ปค๋๊ณผ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ด์ด์ฃผ๋ ์ธํฐํ์ด์ค ์ญํ
- ์ด์์ฒด์ ๋ ์ปดํจํฐ๋ฅผ ์คํ ๋ฐ ์ฌ์ฉํ๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด ์์คํ ์ฝ์ ํ๋ก์ธ์ค๊ฐ ์ด์์ฒด์ ์๊ฒ ์ด์์ฒด์ ๊ธฐ๋ฅ์ ์์ฒญํ๋ ๊ฒ
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ์ ์ฝ๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ด์์ฒด์ ์ ์ญํ ์ด๊ณ ํ๋ก์ธ์ค๋ ๊ด๋ฆฌ์๋ ์ด์์ฒด์ ์๊ฒ ํ๋ฝ์ ์์ฒญ๋ฐ๊ธฐ ์ํด ์์คํ ์ฝ๋ก ํ์ฌ๊ธ ํ๋ฝ์ ์์ฒญํ๋ค
- ํ์ผ ๋ฟ ์๋๋ผ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ๋ชจ๋ ์์(๋คํธ์ํฌ, ๋์คํฌ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ)์ด ํ์ํ ๋ ํ๋ก์ธ์ค๋ ์์คํ ์ฝ์ ์ฌ์ฉํด์ผ ํจ -> User mode์์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ Protected Instruction์ ์ฌ์ฉํ๊ธฐ ์ํด OS๊ฐ ์ ๊ณตํ๋ system call์ ์ด์ฉํ์ฌ ์ปค๋๋ชจ๋๋ก switch ํ ๋ ์ฌ์ฉ(์์คํ ์ฝ์ ํธ์ถํ๋ฉด User mode์์ Kernel mode๋ก Context Switch๊ฐ ๋ฐ์)
- ์์คํ ์ฝ์ ์ปค๋ ์์ญ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ๋ชจ๋๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ๋๋ก ํ๋ก์ธ์ค๊ฐ ํ๋์จ์ด์ ์ง์ ์ ๊ทผํด์ ํ์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ผ๋ก ๋์ ๊ณผ์ ์ ๊ธฐ์ ํ์์
- ๋๋ด๊ธฐ(exit), ์ค์ง(abort)
- ์ ์ฌ(load), ์คํ(execute)
- ํ๋ก์ธ์ค ์์ฑ(create process) - fork
- ํ๋ก์ธ์ค ์์ฑ ํ๋๊ณผ ์ค์ (get process attribute and set process attribute)
- ์๊ฐ ๋๊ธฐ(wait time)
- ์ฌ๊ฑด ๋๊ธฐ(wait event)
- ์ฌ๊ฑด์ ์๋ฆผ(signal event)
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํด์ (malloc, free)
- ํ์ผ ์์ฑ(create file), ํ์ผ ์ญ์ (delete file)
- ์ด๊ธฐ(open), ๋ซ๊ธฐ(close)
- ์ฝ๊ธฐ(read), ์ฐ๊ธฐ(write), ์์น ๋ณ๊ฒฝ(reposition)
- ํ์ผ ์์ฑ ํ๋ ๋ฐ ์ค์ (get attribute and set file attribute)
- ํ๋์จ์ด์ ์ ์ด์ ์ํ ์ ๋ณด๋ฅผ ์ป์(ioctl (Input/Output control์ ์ฝ์))
- ์ฅ์น๋ฅผ ์๊ตฌ(request devices), ์ฅ์น๋ฅผ ๋ฐฉ์ถ(release device)
- ์ฝ๊ธฐ(read), ์ฐ๊ธฐ(write), ์์น ๋ณ๊ฒฝ
- ์ฅ์น ์์ฑ ํ๋, ์ฅ์น ์์ฑ ์ค์
- ์ฅ์น์ ๋ ผ๋ฆฌ์ ๋ถ์ฐฉ(attach) ๋๋ ๋ถ๋ฆฌ(detach)
- getpid(), alarm(), sleep()
- ์๊ฐ๊ณผ ๋ ์ง์ ์ค์ ๊ณผ ํ๋(time)
- ์์คํ ๋ฐ์ดํฐ์ ์ค์ ๊ณผ ํ๋(date)
- ํ๋ก์ธ์ค ํ์ผ, ์ฅ์น ์์ฑ์ ํ๋ ๋ฐ ์ค์
- pipe(), shm_open(), mmap()
- ํต์ ์ฐ๊ฒฐ์ ์์ฑ, ์ ๊ฑฐ
- ๋ฉ์์ง์ ์ก์ , ์์
- ์ํ ์ ๋ณด ์ ๋ฌ
- ์๊ฒฉ ์ฅ์น์ ๋ถํ ๋ฐ ๋ถ๋ฆฌ
- chmod()
- umask()
- chown()
- ๋๋ถ๋ถ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ค์ API์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์ค๊ณ -> ๋ณดํต ์์คํ ์ฝ์ ์ฌ์ฉํ๊ธฐ ๋ณด๋ค๋ ํด๋น ์์คํ ์ฝ์ ์ฌ์ฉํด์ ๋ง๋ ๊ฐ ์ธ์ด๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(API)๋ฅผ ์ฌ์ฉํจ
- ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฅ ํํ API 3๊ฐ์ง๋ Windows APU, POSIX API, Java API ์กด์ฌ
- ์ต์ข ์ ์ผ๋ก API๋ฅผ ๊ตฌ์ฑํ๋ ํจ์๋ค์ ํต์ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋จธ๋ฅผ ๋์ ํ์ฌ ์ค์ ์์คํ ์ฝ์ ํธ์ถํจ
- ์์คํ ์ฝ์ ์ฒ๋ฆฌํ๋ ์ค์ํ ๋ค๋ฅธ ์์๋ ์คํ ์๊ฐ ํ๊ฒฝ(๋ฐํ์ธ ํ๊ฒฝ, RTE)์ผ๋ก RTE๋ ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ ์์คํ ์ฝ์ ๋ํ ์ฐ๊ฒฐ๊ณ ๋ฆฌ ์ญํ ์ ํ๋ ์์คํ ์ฝ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณต. ์ด ์์คํ ์ธํฐํ์ด์ค๋ API ํจ์์ ํธ์ถ์ interceptํด์ ํ์ํ ์ด์์ฒด์ ์์คํ ์ฝ์ ๋ถ๋ฆ
- ์ด์์ฒด์ ์ธํฐํ์ด์ค์ ๋ํ ๋๋ถ๋ถ์ ์์ธํ ๋ด์ฉ์ API์ ์ํด ํ๋ก๊ทธ๋๋จธ๋ก๋ถํฐ ์จ๊ฒจ์ง๊ณ RTE์ ์ํด ๊ด๋ฆฌ๋จ
- ์์คํ ์ฝ ํธ์ถ์ ์ํด์๋ ์ด์์ฒด์ ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํด์ผ๋ง ํ๋๋ฐ ํด๋น ๋ด์ฉ์ ์๋ ๊ธฐ์
-
์ด์์ฒด์ ์ค ํญ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋ ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ
-
์ปค๋์ ์ธํฐํ์ด์ค๋ก์จ ์์ฉ ํ๋ก๊ทธ๋จ ์ํ์ ํ์ํ ์ฌ๋ฌ๊ฐ์ง ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์ฌ๋ฌ๊ฐ์ง ํ๋์จ์ด ๋ฑ์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ
-
์ปค๋์ ์ ์ ๋ชจ๋์ ์ปค๋๋ชจ๋๊ฐ ์กด์ฌ
- ์ปค๋๋ชจ๋๋ I/O devices๋ฅผ ํฌํจํด ๋ชจ๋ ์ฃผ์ ์์ญ ์ ๊ทผ ๊ฐ๋ฅ
- ์ ์ ๋ชจ๋๋ ๋ช ๋ น์ด์ ์ผ๋ถ์ HW feature์ ์ผ๋ถ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
๋ณดํธ ๋ช
๋ น( Protected Instruction )
- ํ๋ก์ธ์ค์ ์คํ, ์ข
๋ฃ๋ I/O ์์
๋ฑ์ ์ฌ์ฉ์๊ฐ ํจ๋ถ๋ก ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ ๋งํ ๋ช
๋ น๋ค
- OS์ ์ปค๋๋ชจ๋์ ์ ์ ๋ชจ๋ ์ค ์ปค๋ ๋ชจ๋์์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅ
- ์ด์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํด์ ์ ์ ๋ชจ๋์์ ์ปค๋๋ชจ๋๋ก trapํ๋ system call์ ์ฌ์ฉ
- ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ํ๋ก๊ทธ๋จ์ด ์ ์ ๋ชจ๋์์ ์คํ
- ํ๋ก๊ทธ๋จ ์คํ ์ค์ ์ธํฐ๋ฝํธ(interrupt)๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์์คํ ์ฝ(system call)์ ํธ์ถํ๊ฒ ๋๋ฉด ์ปค๋ ๋ชจ๋๋ก ์ ํ (read)
- ์ปค๋ ๋ชจ๋์์ ํ๋ก๊ทธ๋จ์ ํ์ฌ CPU ์ํ๋ฅผ ์ ์ฅ. ํ์ผ์ ์ฝ์ ์ค๋น (waiting)
- ์ปค๋์ด ์ง์ ํด๋น ์ธํฐ๋ฝํธ ํน์ ์์คํ ์ฝ ์คํ/์ฒ๋ฆฌ (running)
- ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋๋ฉด ์ค๋จ ๋ฌ๋ ํ๋ก๊ทธ๋จ์ CPU ์ํ ๋ณต์
- ๋ค์ ํต์ ๊ถ์ ํ๋ก๊ทธ๋จ์๊ฒ ๋ฐํํด ์ปค๋๋ชจ๋์์ ์ ์ ๋ชจ๋๋ก ๋ค์ ๋ณ๊ฒฝ๋จ
- ํ์ํ ๊ธฐ๋ฅ์ด๋ ์์คํ ํ๊ฒฝ์ ๋ฐ๋ผ System Call์ด ๋ฐ์ํ ๋ ์ข ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํ ์ ์์
- ๊ทธ๋ฌํ ์ ๋ณด๊ฐ ๋ด๊ธด ๋งค๊ฐ๋ณ์๋ฅผ ์ด์์ฒด์ ์ ์ ๋ฌํ๊ธฐ ์ํด์๋ ๋๋ต 3๊ฐ์ง ์ ๋์ ๋ฐฉ๋ฒ์ด ์กด์ฌ
- ๋ ์ง์คํฐ๋ฅผ ํตํ ์ ์ก : ๋งค๊ฐ๋ณ์๋ฅผ CPU ๋ ์ง์คํฐ ๋ด์ ์ ๋ฌ. ์ด ๊ฒฝ์ฐ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์๊ฐ CPU ๋ด์ ์ด ๋ ์ง์คํฐ ๊ฐ์๋ณด๋ค ๋ง์ ์ ์์. ๋งค๊ฐ๋ณ์๊ฐ ๋ ์ง์คํฐ๋ก ์ง์ ์ ๋ฌ๋๋ ๋ ์ง์คํฐ ํฌ๊ธฐ๋ณด๋ค ๋ ๋ง์ ๋งค๊ฐ๋ณ์๊ฐ ์กด์ฌํ๋ฏ๋ก ์ข์ง ์์ ๋ฐฉ๋ฒ
- ๋ธ๋ก ํน์ ํ ์ด๋ธ์ ํตํ ์ ์ก : ๋งค๊ฐ๋ณ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๋ธ๋ก์ด๋ ํ ์ด๋ธ์ ์ ์ฅํ๊ณ ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ ๋ ์ง์คํฐ์ ์ ๋ฌ
- ์คํ์ ํตํ ์ ์ก : ๋งค๊ฐ๋ณ์๋ ํ๋ก๊ทธ๋จ์ ์ํด ์คํ(stack)์ผ๋ก ์ ๋ฌ(push) ๋ ์๋ ์์. ๋งค๊ฐ๋ณ์๋ ํ๋ก๊ทธ๋จ์ ์ํด ์คํ์ ๋ฃ์ด์ง๊ณ ์ด์์ฒด์ ์ ์ํด ๊บผ๋ด์ง
22-08-23


