๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/์šด์˜์ฒด์ œ

6. ์ปค๋„ (Kernal)

by ๐Ÿณ Laboon 2024. 4. 21.
์ปค๋„์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

 

์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ด๋‹ค.

1. ์šด์˜์ฒด์ œ๋ž€? ์—์„œ๋„ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด OS๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์ธ ์‹คํ–‰์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. ์ด ๋•Œ, ์ปค๋„ ์ฝ”๋“œ์™€ GUI, ์ž‘์—… ์Šค์ผ€์ฅด๋Ÿฌ์— ์˜ํ•œ ์ตœ์ดˆ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ๋‹ค.

 

๊ทธ ์ค‘ ์šฐ๋ฆฌ๋Š” ์šด์˜์ฒด์ œ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์— ๋Œ€ํ•ด์„œ๋งŒ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค.

 

์ปค๋„์—๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call)๊ณผ ์ธํ„ฐ๋ŸฝํŠธ(Interrupt)๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค. ์•ž์„œ, ์„ค๋ช…ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๋Š” HW์™€ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

 

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

 

์ปค๋„์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

 

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

 

๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„๊ณผ ์ปค๋„ ๊ณต๊ฐ„์œผ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์ž์›์˜ ๋ชจ๋“  ์ ‘๊ทผ์€ ์ปค๋„์—๋งŒ ๋ถ€์—ฌํ•œ๋‹ค. ์ปค๋„์€ ์ปค๋„ ๊ณต๊ฐ„์—๋งŒ ์ ์žฌํ•˜๊ณ  ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—๋งŒ ์ ์žฌํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ปค๋„ ๊ณต๊ฐ„์˜ ์ปค๋„ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋„๋ก ํ–ˆ๋‹ค. OS๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋„์— ๊ฐ•์ œ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๋„๋ก ํ•˜๋Š” ์—ญํ• ๋„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

์‚ฌ์šฉ์ž ๊ณต๊ฐ„๊ณผ ์ปค๋„ ๊ณต๊ฐ„

 

์‚ฌ์šฉ์ž ๊ณต๊ฐ„์€ ๋ชจ๋“  ์‘์šฉํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ ์žฌ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋‹น ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ์˜์—ญ + ๋ฐ์ดํ„ฐ ์˜์—ญ + Heap ์˜์—ญ + ์Šคํƒ ์˜์—ญ์„ ํ•ฉ์นœ ํฌ๊ธฐ๋กœ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์ ์žฌ๋œ๋‹ค. ๋งŒ์•ฝ ํ”„๋กœ๊ทธ๋žจ ํฌ๊ธฐ๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒ ์ฃผ์†Œ๋ผ๋Š” ๊ฐœ๋…์ด ๋‚˜์˜ค๋Š”๋ฐ ํ›„์— ๋‹ค๋ฃฐ ๋‚ด์šฉ์ด๋‹ค. 

 

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

 

์ปค๋„ ๊ณต๊ฐ„์˜ ์ฒ˜๋ฆฌ

 

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