์ธํฐ๋ฝํธ
โข
CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ ๋, ์
์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
โข
์
์ถ๋ ฅ ์ฐ์ฐ ๋๋ ๋๊ธฐ ์ํ์ ์ฐ๋ ๋๋ ์ธํฐ๋ฝํธ๊ฐ ํ์ํ๋ค.
์ธํฐ๋ฝํธ ์ข ๋ฅ
โข
์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ํ๋์จ์ด/์ํํธ์จ์ด๋ CPU ๋ด์ ์๋ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ
ํด์ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํจ๋ค.
โข
CPU ๋ ๋งค๋ฒ ๋ช
๋ น์ ์ํํ๊ธฐ ์ ์ ์ธํฐ๋ฝํธ ๋ผ์ธ์ด ์ธํ
๋์ด ์๋์ง ํ์ธ
ํ๋์จ์ด ์ธํฐ๋ฝํธ
โข
CPU ๊ฐ ์๋ ๋ค๋ฅธ ํ๋์จ์ด ์ฅ์น๊ฐ CPU ์ ์ด๋ค ์ฌ์ค์ ์๋ ค์ฃผ๊ฑฐ๋ CPU ์๋น์ค๋ฅผ ์์ฒญํด์ผ ํ๋ ๊ฒฝ์ฐ
์ํํธ์จ์ด ์ธํฐ๋ฝํธ
โข
์ํํธ์จ์ด(์ฌ์ฉ์ ํ๋ก๊ทธ๋จ)๊ฐ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ
. ex) ์์คํ
์ฝ, ์์ธ ์ํฉ
์ธํฐ๋ฝํธ ๊ณผ์
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ํ๋ฆ ์์
I/O ์์
์์์ ์ธํฐ๋ฝํธ
์ค๋ ๋ A๊ฐ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ผ๋ ค๊ณ ์์ฒญ.
์ค๋ ๋ A๋ ๋์คํฌ ์ปจํธ๋กค๋ฌ์ ์์ฒญ์ ๋ณด๋ธ ํ, **๋๊ธฐ ์ํ(blocked)**๋ก ์ ํ.
CPU๋ ๋ค๋ฅธ ์์
(์ค๋ ๋ B ๋ฑ)์ ์ํ.
๋์คํฌ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ํ, ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ CPU๋ก ์ ์ก.
CPU๋ ํ์ฌ ์์
์ ๋ฉ์ถ๊ณ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๋ฅผ ์คํ.
๋์คํฌ ์์
์๋ฃ ์ฌ์ค์ ์ด์์ฒด์ ์ ์๋ฆผ.
์ด์์ฒด์ ๋ ์ค๋ ๋ A๋ฅผ **๋๊ธฐ ์ํ์์ ์ค๋น ์ํ(ready)**๋ก ์ ํ.
CPU๊ฐ ๋ค์ ์ค๋ ๋ A๋ฅผ ์ค์ผ์ค๋งํ๊ณ , ๋์คํฌ์์ ๋ฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ.
Plain Text
๋ณต์ฌ
process A๋ system call์ ํตํด ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํจ๋ค.
CPU๋ ํ์ฌ ์งํ ์ค์ธ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ์๋ฃํ๋ค.
ํ์ฌ๊น์ง ์ํ์ค์ด์๋ ์ํ๋ฅผ ํด๋น process์ PCB(Process Control Block)์ ์ ์ฅํ๋ค. (์ํ์ค์ด๋ MEMORY์ฃผ์, ๋ ์ง์คํฐ ๊ฐ, ํ๋์จ์ด ์ํ ๋ฑ...)
PC(Program Counter, IP)์ ๋ค์์ ์คํํ ๋ช
๋ น์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค.
์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ์ฝ๊ณ ISR ์ฃผ์๊ฐ์ ์ป์ด ISR(Interrupt Service Routine)๋ก ์ ํํ์ฌ ๋ฃจํด์ ์คํํ๋ค.
ํด๋น ์ฝ๋๋ฅผ ์คํํ๋ค.
ํด๋น ์ผ์ ๋ค ์ฒ๋ฆฌํ๋ฉด, ๋ํผ์ํจ ๋ ์ง์คํฐ๋ฅผ ๋ณต์ํ๋ค.
ISR์ ๋์ IRET ๋ช
๋ น์ด์ ์ํด ์ธํฐ๋ฝํธ๊ฐ ํด์ ๋๋ค.
IRET ๋ช
๋ น์ด๊ฐ ์คํ๋๋ฉด, ๋ํผ์ํจ PC ๊ฐ์ ๋ณต์ํ์ฌ ์ด์ ์คํ ์์น๋ก ๋ณต์ํ๋ค.
Plain Text
๋ณต์ฌ
์ธํฐ๋ฝํธ์ ํน๊ถ ๋ช ๋ น
CPU ๋ช ๋ น์ด์ ์ข ๋ฅ
โข
์ผ๋ฐ ๋ช
๋ น - ๋ฉ๋ชจ๋ฆฌ์์ ์๋ฃ๋ฅผ ์ฝ์ด์ค๊ณ CPU ์์ ๊ณ์ฐํ๋ ๋ฑ์ ๋ช
๋ น, ๋ชจ๋ ํ๋ก๊ทธ๋จ์์ ๋ช
๋ น ๊ฐ๋ฅ
โข
ํน๊ถ ๋ช
๋ น - ๋ณด์์ด ํ์ํ ๋ช
๋ น, ์
์ถ๋ ฅ ์ฅ์น, ๋ณด์กฐ ์ฅ์น ๋ฑ์ ์ ๊ทผํ๋ ๋ช
๋ น, ์ด์์ฒด์ ๋ง์ด ์ํ ๊ฐ๋ฅ
kernel mode vs user mode
โข
์ด์ ์ฒด์ ๋ ํ๋์จ์ด ๋ณด์์ ์งํค๊ธฐ ์ํด ๋๊ฐ์ง operation ์ง์
โข
kernel mode: ์ด์์ฒด์ ๊ฐ CPU ์ ์ด๊ถ์ ๊ฐ์ง๊ณ ๋ช
๋ น์ ์ํํ๋ ๋ชจ๋. ์ผ๋ฐ, ํน๊ถ ๋ช
๋ น ๋ชจ๋ ๊ฐ๋ฅ
โข
user mode: ์ผ๋ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด CPU ์ ์ด๊ถ์ ๊ฐ์ง๊ณ ์ํํ๋ ๋ชจ๋๋ผ์ ์ผ๋ฐ ๋ช
๋ น๋ง ๊ฐ๋ฅ