os_basic - KimTaebin-ai/study_posts GitHub Wiki

What Operating System Do

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์šด์˜์ฒด์ œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์— ๋Œ€ํ•ด์„œ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ๋Œ€๊ฐœ ๋„ค ๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ ํ•˜๋“œ์›จ์–ด, ์šด์˜์ฒด์ œ, ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๋ฐ ์‚ฌ์šฉ์ž๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Œ

ํ•˜๋“œ์›จ์–ด๋Š” ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU), ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ž…์ถœ๋ ฅ(I/O) ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๊ณ„์‚ฐ์šฉ ์ž์›์„ ์ œ๊ณต

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž์˜ ๊ณ„์‚ฐ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž์›์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋ ์ง€๋ฅผ ์ •์˜

์šด์˜์ฒด์ œ๋Š” ์‘์šฉํ”„๋กœ๊ทธ๋žจ๊ฐ„์˜ ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ์„ ์กฐ์ •ํ•˜๊ณ  ์ œ์–ดํ•œ๋‹ค.

๋˜ํ•œ ์ปดํ“จํ„ฐ์‹œ์Šคํ…œ์€ ํ•˜๋“œ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ

์šด์˜์ฒด์ œ๋Š” ์ด๋“ค ์ž์›์„ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต

User view ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ๊ด€์ ์€ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง

์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์€ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์„ ๋…์ ํ•˜๋„๋ก ์„ค๊ณ„, ๋ชฉํ‘œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ตœ๋Œ€ํ™” ํ•˜๋Š” ๊ฒƒ

-> ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์šด์˜์ฒด์ œ๋Š” ๋Œ€๋ถ€๋ถ„ "์‚ฌ์šฉ์˜ ์šฉ์ด์„ฑ"์„ ์œ„ํ•ด ์„ค๊ณ„๋˜๊ณ  ์„ฑ๋Šฅ์— ์‹ ๊ฒฝ (ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ์ž์›์ด ์–ด๋–ป๊ฒŒ ๊ณต์œ ๋˜๋Š”์ง€ "์ž์›์˜ ์ด์šฉ" ์—๋Š” ์ „ํ˜€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์Œ)

์ผ๋ถ€ ์ปดํ“จํ„ฐ๋Š” ์‚ฌ์šฉ์ž ๊ด€์ ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋งค์šฐ ์ž‘์€ ์˜ˆ๋„ ์žˆ์Œ (ex ๊ฐ€์ „์ œํ’ˆ, ์ž๋™์ฐจ ๋‚ด ๋‚ด์žฅํ˜• ์ปดํ“จํ„ฐ ๋“ฑ)

System view

์ปดํ“จํ„ฐ์˜ ๊ด€์ ์—์„œ ์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ด์™€ ๊ฐ€์žฅ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋จ -> ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์šด์˜์ฒด์ œ๋ฅผ "์ž์› ํ• ๋‹น์ž(resource allocator)"๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ž์›์ด ์žˆ๋Š”๋ฐ, ์šด์˜์ฒด์ œ๋Š” ์ด๋“ค ์ž์›์˜ ๊ด€๋ฆฌ์ž๋กœ์„œ ๋™์ž‘.

์ž์›์— ๋Œ€ํ•ด์„œ ์„œ๋กœ ์ƒ์ถฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ์š”์ฒญ์ด ์žˆ์œผ๋ฏ€๋กœ, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํšจ์œจ์ ์ด๊ณ  ๊ณต์ •ํ•˜๊ฒŒ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ด๋Š ์ž์›์„ ํ• ๋‹นํ• ์ง€ ๊ฒฝ์ •ํ•ด์•ผ ํ•จ

๋˜ํ•œ ๋‹ค์†Œ ๋‹ค๋ฅธ ๊ด€์ ์€ ์—ฌ๋Ÿฌ ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ดํ•  ํ•„์š”์„ฑ์„ ๊ฐ•์กฐ. ์šด์˜์ฒด์ œ๋Š” "์ œ์–ด ํ”„๋กœ๊ทธ๋žจ(control program)"์ด๋‹ค.

Define Operating System

์šด์˜์ฒด์ œ์˜ ๋‹ค์–‘์„ฑ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํ“จํ„ฐ์˜ ์—ญ์‚ฌ๋ฅผ ์ž ์‹œ ์‚ดํŽด๋ณด์ž

1960๋…„๋Œ€ "๋ฌด์–ด์˜ ๋ฒ•์น™"์ด ์ง‘์ ํšŒ๋กœ์˜ ํŠธ๋žœ์ง€์Šคํ„ฐ ์ˆ˜๊ฐ€ 18๊ฐœ์›”๋งˆ๋‹ค ๋ฐฐ๊ฐ€ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ธก ์‹ค์ œ๋กœ ์ด ๋ฒ•์น™์€ ์ง€์ผœ์ ธ ์™”๊ณ , ์ปดํ“จํ„ฐ๋Š” ๊ธฐ๋Šฅ์ด ํ™•๋Œ€๋˜๊ณ  ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ณ , ์šฉ๋„๊ฐ€ ๋‹ค์–‘ํ•ด์ง€๊ณ  ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๊ฐ€ ๋“ฑ์žฅํ•จ

์‚ฌ์‹ค ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ ํ•ฉํ•œ ์ •์˜๋Š” ์—†์Œ

์šด์˜์ฒด์ œ๋Š” ์œ ์šฉํ•œ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กด์žฌํ•จ

๊ธฐ๋ณธ ๋ชฉํ‘œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰, ์‚ฌ์šฉ์ž ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ.

์šด์˜์ฒด์ œ์— ํฌํ•จ๋˜๋Š” ์š”์†Œ์—๋„ ๋ณดํŽธ์ ์ธ ์ •์˜๋Š” ์—†์Œ

์™œ ์šด์˜์ฒด์ œ๋ฅผ ๊ณต๋ถ€ํ•˜๋Š”๊ฐ€?

๋‹จ์ˆœํ•˜๊ฒŒ ๊ฑฐ์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ์šด์˜์ฒด์ œ ์œ„์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์šด์˜์ฒด์ œ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ง€์‹์€ ์ ์ ˆํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ํšจ๊ณผ์ ์ด๋ฉฐ ์•ˆ์ „ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ

์šด์˜์ฒด์ œ์˜ ๊ธฐ๋ณธ ์ง€์‹, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๊ตฌ๋™ ๋ฐฉ์‹ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ œ๊ณตํ•˜๋Š” ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•จ

Computer system Organization

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ cpu์™€ ๊ตฌ์„ฑ์š”์†Œ์™€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์˜ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณตํ†ต ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ตฌ์„ฑ๋จ

์ผ๋ฐ˜์ ์œผ๋กœ ์šด์˜์ฒด์ œ์—๋Š” ๊ฐ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋งˆ๋‹ค "์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„"๊ฐ€ ์žˆ์Œ

์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ž‘๋™์„ ์ž˜ ์•Œ๊ณ  ์žˆ๊ณ  ๋‚˜๋จธ์ง€ ์šด์˜์ฒด์ œ์— ์žฅ์น˜์— ๋Œ€ํ•œ ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ

cpu์™€ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ดํด์„ ๋‚ด๋†“๊ณ  ๊ฒฝ์Ÿํ•จ

Interrupts

์ปจํŠธ๋กค๋Ÿฌ๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„์—๊ฒŒ ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ "์ธํ„ฐ๋ŸฝํŠธ"๋ฅผ ํ†ตํ•ด ์•Œ๋ฆฐ๋‹ค

ํ•˜๋“œ์›จ์–ด๋Š” ์–ด๋Š ์ˆœ๊ฐ„์ด๋“  ์‹œ์Šคํ…œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด CPU์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ

cpu๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ๋˜๋ฉด, cpu๊ฐ€ ํ•˜๋˜ ์ผ์„ ์ค‘๋‹จํ•˜๊ณ  ์ฆ‰์‹œ ๊ณ ์ •๋œ ์œ„์น˜๋กœ ์‹คํ–‰์„ ์˜ฎ๊น€. ์ด๋Ÿฌํ•œ ๊ณ ์ •๋œ ์œ„์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค ๋ฃจํ‹ด์ด ์œ„์น˜ํ•œ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ์ดํ›„ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด ์‹คํ–‰ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋˜์—ˆ๋˜ ์—ฐ์‚ฐ์„ ์žฌ๊ฐœํ•จ.

๊ฐ ์ปดํ“จํ„ฐ ์„ค๊ณ„๋Š” ์ž์‹ ์˜ ์ธํ„ฐ๋ŸฝํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ๊ณตํ†ต์ ์ž„ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ ์ ˆํ•œ ์„œ๋น„์Šค ๋ฃจํ‹ด์œผ๋กœ ์ œ์–ด๋ฅผ ์ „๋‹ฌํ•จ. ์ด๋Ÿฌํ•œ ์ „๋‹ฌ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ง์„ ์ ์ธ ๋ฐฉ๋ฒ•์€ ์ธํ„ฐ๋ŸฝํŠธ ์ •๋ณด๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ž„. ์ด ๋ฃจํ‹ด์€ ์ด์–ด ์ธํ„ฐ๋ŸฝํŠธ ๊ณ ์œ ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•จ. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ ๋˜์–ด์•ผ ํ•จ ํ•„์š”ํ•œ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋“ค์˜ ํ…Œ์ด๋ธ”์„ ๋Œ€์‹  ์ด์šฉํ•  ์ˆ˜ ์žˆ์Œ ์ด ๊ฒฝ์šฐ ์ค‘๊ฐ„ ๋ฃจํ‹ด์„ ๋‘˜ ํ•„์š” ์—†์ด, ํ…Œ์ด๋ธ”์„ ํ†ตํ•˜์—ฌ ๊ฐ„์ ‘์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์ด ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Œ.

์ผ๋ฐ˜์ ์œผ๋กœ ํฌ์ธํ„ฐ๋“ค์˜ ํ…Œ์ด๋ธ”์€ ํ•˜์œ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋จ ์ด๋“ค ์œ„์น˜์—๋Š” ์—ฌ๋Ÿฌ ์žฅ์น˜์— ๋Œ€ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์žˆ์Œ. ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์š”์ฒญ๋˜๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์œ ๋ฐœํ•œ ์žฅ์น˜๋ฅผ ์œ„ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด์˜ ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด ์ฃผ์†Œ์˜ ๋ฐฐ์—ด ์ฆ‰, "์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ" ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ฃผ์–ด์ง„ ๊ณ ์œ ์˜ ์œ ์ผํ•œ ์žฅ์น˜ ๋ฒˆํ˜ธ๋กœ ์ƒ‰์ธ๋จ

์ธํ„ฐ๋ŸฝํŠธ ๊ตฌ์กฐ๋Š” ๋˜ํ•œ ์ธํ„ฐ๋ŸฝํŠธ๋œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ์ด ์ •๋ณด๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Œ.

๋งŒ์•ฝ ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์ด ์ฒ˜๋ฆฌ๊ธฐ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด์€ ๋ฐ˜๋“œ์‹œ ๋ช…์‹œ์ ์œผ๋กœ ํ˜„์žฌ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผํ•˜๋ฉฐ, ๋ณต๊ท€ํ•˜๊ธฐ ์ „์— ์ƒํƒœ๋ฅผ ๋ณต์›ํ•ด์•ผ ํ•จ.

์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์„œ๋น„์Šคํ•œ ํ›„, ์ €์žฅ๋˜์–ด์žˆ๋˜ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์— ์ ์žฌํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ์ค‘๋‹จ๋˜์—ˆ๋˜ ์—ฐ์‚ฐ์ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค์‹œ ์‹œ์ž‘๋จ.

Implementation

CPU ํ•˜๋“œ์›จ์–ด์—๋Š” "์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ" ์ด๋ผ๋Š” ์„ ์ด ์žˆ๋Š”๋ฐ, ์ด๋Š” ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด์˜ ์‹คํ–‰์„ ์™„๋ฃŒํ•  ๋•Œ๋งˆ๋‹ค CPU๊ฐ€ ์ด ์„ ์„ ๊ฐ์ง€ํ•จ. CPU๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ ๋ผ์ธ์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ฝ๊ณ  ์ด ๋ฒˆํ˜ธ๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ "์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฃจํ‹ด"์œผ๋กœ ์ ํ”„ํ•จ ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ์ฃผ์†Œ์—์„œ ์‹คํ–‰์„ ์‹œ์ž‘.

์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋Š” ์ž‘์—… ์ค‘์— ๋ณ€๊ฒฝ๋  ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ธํ„ฐ๋ŸฝํŠธ ์›์ธ์„ ํ™•์ธํ•˜๊ณ , ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ƒํƒœ ๋ณต์›์„ ์ˆ˜ํ–‰ํ•˜๊ณ , return from interrupt ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ CPU๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ์ „ ์‹คํ–‰์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค. ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ๋ผ์ธ์— ์‹ ํ˜ธ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ(raise) ์‹œํ‚ค๊ณ  CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํฌ์ฐฉ(catch)ํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋””์ŠคํŒจ์น˜(dispatch)ํ•˜๊ณ  ํ•ธ๋“ค๋Ÿฌ๋Š” ์žฅ์น˜๋ฅผ ์„œ๋น„์Šคํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ง€์šด๋‹ค(clear).

์ด ๊ธฐ๋ฒ•์€ ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์„œ๋น„์Šคํ•  ์ค€๋น„๊ฐ€ ๋  ๋•Œ์™€ ๊ฐ™์€ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ์— CPU๊ฐ€ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. (์ตœ์‹  ์šด์˜์ฒด์ œ๋Š” ๋”์šฑ ์ •๊ตํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ํ•„์š”)

  1. ์ค‘์š”ํ•œ ์ฒ˜๋ฆฌ ์ค‘์— ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์—ฐ๊ธฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ.
  2. ์žฅ์น˜์˜ ์ ์ ˆํ•œ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ํšจ์œจ์ ์œผ๋กœ ๋””์ŠคํŒจ์น˜ ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•จ
  3. ์šด์˜์ฒด์ œ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ์™€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ ์ ˆํ•œ ๊ธด๊ธ‰๋„๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค๋‹จ๊ณ„ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ํ•„์š”ํ•จ.

์ตœ์‹  ํ•˜๋“œ์›จ์–ด์—์„œ ์œ„ 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ CPU ๋ฐ "์ธํ„ฐ๋ŸฝํŠธ ์ปจํŠธ๋กค๋Ÿฌ ํ•˜๋“œ์›จ์–ด"์— ์˜ํ•ด ์ œ๊ณต๋จ

๋Œ€๋ถ€๋ถ„์˜ CPU์—๋Š” 2๊ฐœ์˜ ์ธํ„ฐ๋ŸฝํŠธ ์š”์ฒญ๋ผ์ธ์ด ์žˆ์Œ.

ํ•˜๋‚˜๋Š” ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ "๋งˆ์Šคํฌ ๋ถˆ๊ฐ€๋Šฅ ์ธํ„ฐ๋ŸฝํŠธ (nonmaskable interrupt)" ๋‘ ๋ฒˆ์งธ ์ธํ„ฐ๋ŸฝํŠธ ๋ผ์ธ์€ "๋งˆ์Šคํ‚น ๊ฐ€๋Šฅ(maskable)" ์ด๋‹ค.

๋ฒกํ„ฐ ๋ฐฉ์‹ ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฒ•์˜ ๋ชฉ์ ์€ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•œ ์žฅ์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ธํ„ฐ๋ŸฝํŠธ ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ํ•„์š”๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์ปดํ“จํ„ฐ์—๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ์ฃผ์†Œ ๊ฐœ์ˆ˜๋ณด๋‹ค ๋งŽ์€ ์žฅ์น˜๊ฐ€ ์žˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "์ธํ„ฐ๋ŸฝํŠธ ์ฒด์ธ"์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ๊ฐ ์›์†Œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฆฌ์ŠคํŠธ์˜ ํ—ค๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ธํ„ฐ๋Ÿฝ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋ฐœ๊ฒฌ๋  ๋Œ€๊นŒ์ง€ ์ƒ์šฉํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํ•˜๋‚˜์”ฉ ํ˜ธ์ถœ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ํฐ ํฌ๊ธฐ์˜ ์ธํ„ฐ๋ŸฝํŠธ ํ…Œ์ด๋ธ”์˜ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ํ•˜๋‚˜์˜ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋””์ŠคํŒจ์น˜ ํ•˜๋Š” ๋น„ํšจ์œจ์„ฑ์˜ ์ ˆ์ถฉ์•ˆ์ด๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฒ•์€ ๋˜ํ•œ "์ธํ„ฐ๋ŸฝํŠธ ์šฐ์„ ์ˆœ์œ„ ๋ ˆ๋ฒจ"์„ ๊ตฌํ˜„ํ•จ. ์ด๋Ÿฌํ•œ ๋ ˆ๋ฒจ์„ ํ†ตํ•ด CPU๋Š” ๋ชจ๋“  ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋งˆ์Šคํ‚นํ•˜์ง€ ์•Š๊ณ ๋„ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์—ฐ๊ธฐํ•  ์ˆ˜ ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์‹คํ–‰์„ ์„ ์ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ๋Š” ์ตœ์‹  ์šด์˜์ฒด์ œ์—์„œ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ. ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ. ๊ฐ€์žฅ ๊ธด๊ธ‰ํ•œ ์ž‘์—…์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋ŸฝํŠธ ์šฐ์„ ์ˆœ์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•จ. ๊ฐ€์žฅ ๋ฏผ๊ฐํ•œ ์ฒ˜๋ฆฌ์— ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ์ข‹๊ฒŒ ํ•˜๋ ค๋ฉด ํšจ์œจ์ ์ธ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ.