Search

๋ฆฌ์•กํ‹ฐ๋ธŒ ๊ณต๋ถ€

์ธํ„ฐ๋ŸฝํŠธ

โ€ข
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 ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง€๊ณ  ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“œ๋ผ์„œ ์ผ๋ฐ˜ ๋ช…๋ น๋งŒ ๊ฐ€๋Šฅ