[Pintos] Project02 _ User Programs | Keyword | UserMode VS KernelMode

User Mode (์‚ฌ์šฉ์ž ๋ชจ๋“œ)

  • ์—ญํ• 
    • ์ผ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํ”„๋กœ์„ธ์Šค)์ด ์‹คํ–‰๋˜๋Š” ์ œํ•œ๋œ ๊ถŒํ•œ์˜ ์‹คํ–‰ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์‹œ์Šคํ…œ์˜ ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ ๋ชจ๋“œ์™€ ๊ตฌ๋ถ„๋œ ๊ณต๊ฐ„์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž ๋ชจ๋“œ์˜ ์ฃผ์š” ๊ฐœ๋…๊ณผ ํŠน์„ฑ

  1. ์ œํ•œ๋œ ๊ถŒํ•œ
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ๋Š” ์ง์ ‘์ ์ธ ์‹œ์Šคํ…œ ์ž์› ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ, ํ•˜๋“œ์›จ์–ด ์žฅ์น˜(๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ), CPU ์ œ์–ด ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์Šคํ…œ ์ž์›์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์šด์˜์ฒด์ œ์— ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๋Š” ์ด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•œ ๊ฐ„์ ‘ ์ ‘๊ทผ
    • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ์™€ ๊ฐ™์€ ์ž์›์„ ์ง์ ‘์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜๋ ค๋ฉด, ์šด์˜์ฒด์ œ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋Š” ์šด์˜์ฒด์ œ์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ž์›์˜ ์ง์ ‘์  ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜์—ฌ ์‹œ์Šคํ…œ ์•ˆ์ „์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  3. ๋ณดํ˜ธ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ํ”„๋กœ๊ทธ๋žจ์€ ์ž์‹ ์ด ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ๋‚ด์—์„œ๋งŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์šด์˜์ฒด์ œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฒฉ๋ฆฌํ•˜์—ฌ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ ์šด์˜์ฒด์ œ๋Š” ํŽ˜์ด์ง€ ํดํŠธ(page fault) ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•œ ์ปค๋„ ๋ชจ๋“œ ์ „ํ™˜
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ(system call)์„ ํ†ตํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ž‘์—…์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ฐ™์€ ์ž‘์—…์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋กœ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๊ณผ์ •์—์„œ๋Š” ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋œ ํ›„ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๋‹ค์‹œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค.
  5. ์•ˆ์ •์„ฑ ์œ ์ง€
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋Š” ๋ณดํ˜ธ๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์œผ๋กœ, ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์‹œ์Šคํ…œ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด๋‚˜ ๋ฌดํ•œ ๋ฃจํ”„ ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋งŒ ์ข…๋ฃŒ๋˜๊ณ  ์‹œ์Šคํ…œ์€ ์ •์ƒ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž ๋ชจ๋“œ์˜ ๋™์ž‘ ๋ฐฉ์‹

 

1. ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค

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

2. ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ

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

3. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ

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

์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ์˜ ์ž์› ์š”์ฒญ ํ๋ฆ„ ์˜ˆ์‹œ

  1. ํŒŒ์ผ ์—ด๊ธฐ ์š”์ฒญ: ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ์„ ์—ด๊ธฐ ์œ„ํ•ด open ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  2. ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ฒ˜๋ฆฌ: ์šด์˜์ฒด์ œ๋Š” ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ํŒŒ์ผ์„ ์—ด๊ณ , ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ํ•ธ๋“ค(ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜: ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด, ์‹œ์Šคํ…œ์€ ๋‹ค์‹œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Kernel Mode (์ปค๋„ ๋ชจ๋“œ)

  • ์—ญํ• : ์šด์˜์ฒด์ œ์—์„œ ๊ฐ€์žฅ ๋†’์€ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‹คํ–‰ ๋ชจ๋“œ๋กœ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ, ํ•˜๋“œ์›จ์–ด ์ œ์–ด ๋“ฑ ์‹œ์Šคํ…œ ์ž์›์„ ์ง์ ‘ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ปค๋„ ๋ชจ๋“œ์˜ ์ฃผ์š” ๊ฐœ๋…

  1. ์ตœ๊ณ  ๊ถŒํ•œ ์ˆ˜์ค€
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•œ ์ตœ๊ณ  ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ, CPU ์ œ์–ด, ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ์ œ์–ด ๋“ฑ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง์ ‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • CPU์˜ ๊ถŒํ•œ ๋ ˆ๋ฒจ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๊ถŒํ•œ(Ring 0)์„ ์‚ฌ์šฉํ•˜์—ฌ, ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ๋””๋ฐ”์ด์Šค ์ œ์–ด ๋“ฑ ์‹œ์Šคํ…œ์— ์ค‘์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž ๋ชจ๋“œ์™€ ์ปค๋„ ๋ชจ๋“œ์˜ ๋ถ„๋ฆฌ
    • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์™€ ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ผ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹œ์Šคํ…œ ์ž์›์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ปค๋„ ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๊ฐ„์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์š”์ฒญํ•  ๋•Œ๋Š” ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•œ ์ปค๋„ ๋ชจ๋“œ ์ ‘๊ทผ
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•œ ์ž‘์—…์„ ์š”์ฒญํ•˜๋ฉด CPU๊ฐ€ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ•ด๋‹น ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๋ชจ๋“œ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜์—ฌ, ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์ด ์•ˆ์ „ํ•˜๊ฒŒ ์‹œ์Šคํ…œ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ธํ„ฐ๋ŸฝํŠธ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ์™€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„คํŠธ์›Œํฌ ์นด๋“œ๋‚˜ ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์ปค๋„ ๋ชจ๋“œ๊ฐ€ ์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ปค๋„ ๋ชจ๋“œ๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์˜ˆ์™ธ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

์ปค๋„ ๋ชจ๋“œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  1. ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ, ์ข…๋ฃŒ, ์Šค์ผ€์ค„๋ง, ๋ฌธ๋งฅ ์ „ํ™˜ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜์—ฌ CPU ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๋ฐฐ๋ถ„ํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ, ์ปค๋„ ๋ชจ๋“œ๋Š” CPU ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜์—ฌ ๋‹ค์ค‘ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์™ธ๋ถ€์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜์—ฌ, ํ”„๋กœ๊ทธ๋žจ์ด ์„œ๋กœ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ„์„ญํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  3. ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ํŒŒ์ผ ์—ด๊ธฐ/๋‹ซ๊ธฐ, ํŒŒ์ผ ๊ถŒํ•œ ๊ด€๋ฆฌ ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ปค๋„ ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์„ ์—ด๊ธฐ ์œ„ํ•ด open ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋ชจ๋“œ์—์„œ ํŒŒ์ผ์„ ์—ด๊ณ , ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•˜๋“œ์›จ์–ด ์ œ์–ด ๋ฐ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๊ณ , ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๋„๋ก ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์— ์ ํ•ฉํ•œ ์ œ์–ด ์ฝ”๋“œ๋ฅผ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์‹คํ–‰ํ•˜์—ฌ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ์นด๋“œ, ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ ๋“ฑ์˜ ์žฅ์น˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  5. ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ
    • ์ปค๋„ ๋ชจ๋“œ๋Š” ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๊ณ , ํŒจํ‚ท์„ ๋ผ์šฐํŒ…ํ•˜๋ฉฐ, ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋„คํŠธ์›Œํฌ ์นด๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , ์ปค๋„ ๋ชจ๋“œ๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

์ปค๋„ ๋ชจ๋“œ์˜ ๋™์ž‘ ๊ณผ์ • - ์‹œ์Šคํ…œ ํ˜ธ์ถœ

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

 

์ปค๋„ ๋ชจ๋“œ๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ 

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

User Mode์™€ Kernel Mode ๊ฐ„์˜ ์ „ํ™˜

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

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

 

์‚ฌ์šฉ์ž ๋ชจ๋“œ  —>>  ์ปค๋„ ๋ชจ๋“œ

์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call)

  • ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ ‘๊ทผํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์šด์˜์ฒด์ œ ๊ธฐ๋Šฅ(์˜ˆ: ํŒŒ์ผ ์—ด๊ธฐ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋“ฑ)์„ ์š”์ฒญํ•  ๋•Œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ ๊ธฐ๋Šฅ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(Hardware Interrupt)

  • ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” ํ˜„์žฌ ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ  ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด๋‚˜ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ๊ณผ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, CPU๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(Interrupt Service Routine, ISR)์„ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๋‹น ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์™ธ(Exceptions) ๋˜๋Š” ํŠธ๋žฉ(Trap)

  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์˜ˆ์™ธ๋‚˜ ํŠธ๋žฉ์ด ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” ์ž๋™์œผ๋กœ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ, 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜๊ณ , ์ปค๋„์—์„œ ํ•ด๋‹น ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

CPU ์ดˆ๊ธฐํ™” ๋˜๋Š” ์ปจํ…์ŠคํŠธ ์ „ํ™˜(Context Switching)

  • ์ปดํ“จํ„ฐ๊ฐ€ ๋ถ€ํŒ…๋  ๋•Œ CPU๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์‹คํ–‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ปจํ…์ŠคํŠธ ์ „ํ™˜์ด ๋ฐœ์ƒํ•  ๋•Œ๋„ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์Šค์ผ€์ค„๋งํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

User Mode(์‚ฌ์šฉ์ž ๋ชจ๋“œ) VS Kernel Mode(์ปค๋„ ๋ชจ๋“œ)

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