[Pintos] Project02 _ User Programs | Keyword | User Stack

User Stack(์‚ฌ์šฉ์ž ์Šคํƒ)

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

 

User Stack์˜ ์ฃผ์š” ํŠน์ง•๊ณผ ์—ญํ• 

  1. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ด€๋ฆฌ
    • User Stack์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋กœ, ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜ ์ธ์ž, ๋กœ์ปฌ ๋ณ€์ˆ˜, ๋ณต๊ท€ ์ฃผ์†Œ(Return Address) ๋“ฑ์ด ์Šคํƒ์— ์Œ“์ž…๋‹ˆ๋‹ค.
    • ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰์„ ๋งˆ์น˜๊ณ  ๋ฐ˜ํ™˜๋  ๋•Œ๋Š” ์ด ์Šคํƒ์— ์Œ“์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค.
  2. LIFO(Last-In, First-Out) ๊ตฌ์กฐ
    • User Stack์€ LIFO(ํ›„์ž…์„ ์ถœ) ๊ตฌ์กฐ๋กœ, ๋งˆ์ง€๋ง‰์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋ฐ˜ํ™˜์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์Šคํƒ์— ์ €์žฅ๋œ ์ด์ „ ํ•จ์ˆ˜์˜ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
  3. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ํ• ๋‹น๊ณผ ํ•ด์ œ
    • User Stack์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋™์ ์œผ๋กœ ํ™•์žฅ ๋ฐ ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.
    • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜์–ด ์Šคํƒ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์ด๊ณ , ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋  ๋•Œ ํ•ด๋‹น ์Šคํƒ ํ”„๋ ˆ์ž„์ด ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.
  4. ํ”„๋กœ์„ธ์Šค๋ณ„ ๋…๋ฆฝ๋œ ์Šคํƒ
    • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ User Stack์„ ๊ฐ€์ง€๋ฏ€๋กœ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์Šคํƒ์„ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ์™€ ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

User Stack์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ

  1. ํ•จ์ˆ˜ ์ธ์ž: ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž๋“ค์ด ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  2. ๋ณต๊ท€ ์ฃผ์†Œ: ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋œ ํ›„ ๋Œ์•„๊ฐ€์•ผ ํ•  ์ฃผ์†Œ(๋ณต๊ท€ ์ฃผ์†Œ)๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  3. ๋กœ์ปฌ ๋ณ€์ˆ˜: ํ•จ์ˆ˜ ๋‚ด์—์„œ ์„ ์–ธ๋œ ๋กœ์ปฌ ๋ณ€์ˆ˜๋“ค์ด ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  4. ์ค‘๊ฐ„ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ: ์ผ๋ถ€ ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋„ ์ž„์‹œ๋กœ ์Šคํƒ์— ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

User Stack์˜ ์ค‘์š”์„ฑ

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

Extra 1

StackFrame์„ ํ•™์Šตํ•˜๋ฉด UserStack๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์—์„œ ๋„์›€์ด ๋ ๊ฑฐ ๊ฐ™์•„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์Šคํƒ ํ”„๋ ˆ์ž„ (Stack Frame)

  • ์Šคํƒ ํ”„๋ ˆ์ž„์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ(๋งค๊ฐœ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜, ๋ฆฌํ„ด ์ฃผ์†Œ ๋“ฑ)๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์Šคํƒ์—์„œ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ์›๋ž˜ ํ˜ธ์ถœ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ ํ”„๋ ˆ์ž„์˜ ๊ตฌ์กฐ

  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:
    1. ๋ฆฌํ„ด ์ฃผ์†Œ (Return Address)
      • ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„, ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๋กœ ๋Œ์•„๊ฐˆ ์ฃผ์†Œ.
      • ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜์˜ ๋ช…๋ น์–ด ํฌ์ธํ„ฐ(Instruction Pointer, EIP)๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    2. ๋งค๊ฐœ๋ณ€์ˆ˜ (Arguments/Parameters)
      • ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋Š” ์ธ์ž.
      • ํ˜ธ์ถœ ๊ทœ์•ฝ(Calling Convention)์— ๋”ฐ๋ผ ์Šคํƒ์— ์ €์žฅ๋˜๊ฑฐ๋‚˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
    3. ์ €์žฅ๋œ ๋ ˆ์ง€์Šคํ„ฐ (Saved Registers)
      • ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰ ์ค‘ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ถœ์ž/ํ”ผํ˜ธ์ถœ์ž ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ์ €์žฅ.
      • ์˜ˆ: EBP, ESP, EIP ๋“ฑ์˜ ๋ ˆ์ง€์Šคํ„ฐ.
    4. ์ง€์—ญ ๋ณ€์ˆ˜ (Local Variables)
      • ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
      • ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ด ๊ณต๊ฐ„์€ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.
    5. ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ (Frame Pointer, EBP)
      • ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ํฌ์ธํ„ฐ.
      • ์ด์ „ ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์Šคํƒ ํ”„๋ ˆ์ž„ ํ•ด์ œ ๊ณผ์ •

  • ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์Šคํƒ ํ”„๋ ˆ์ž„์ด ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
    1. ์ง€์—ญ ๋ณ€์ˆ˜ ๊ณต๊ฐ„ ํ•ด์ œ
      • ์Šคํƒ ํฌ์ธํ„ฐ(ESP)๋ฅผ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ(EBP) ์œ„์น˜๋กœ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.
    2. ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๋ณต์›
      • ์ด์ „ ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ๊ธฐ์ค€(EBP)์„ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ฆฌํ„ด ์ฃผ์†Œ ๋ณต์›
      • ์Šคํƒ์— ์ €์žฅ๋œ ๋ฆฌํ„ด ์ฃผ์†Œ๋ฅผ EIP์— ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

 

์Šคํƒ ํ”„๋ ˆ์ž„์˜ ์‹œ๊ฐํ™”

์ฃผ์†Œ ๋‚ด์šฉ
๋†’์€ ์ฃผ์†Œ ...
๋ฆฌํ„ด ์ฃผ์†Œ main ํ•จ์ˆ˜์—์„œ ํ˜ธ์ถœํ•œ ์œ„์น˜ ์ €์žฅ
์ €์žฅ๋œ EBP ์ด์ „ ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ์‹œ์ž‘ ์ฃผ์†Œ ์ €์žฅ
๋งค๊ฐœ๋ณ€์ˆ˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋œ ์ธ์ž
์ง€์—ญ ๋ณ€์ˆ˜ ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜
๋‚ฎ์€ ์ฃผ์†Œ ...

 

์Šคํƒ ํ”„๋ ˆ์ž„์˜ ์ค‘์š”์„ฑ

  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ฐ„ ๋…๋ฆฝ์„ฑ ๋ณด์žฅ: ๊ฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋งˆ๋‹ค ๋…๋ฆฝ๋œ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜๋ฏ€๋กœ ํ•จ์ˆ˜ ๊ฐ„ ๊ฐ„์„ญ ์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์žฌ๊ท€ ํ•จ์ˆ˜ ์ง€์›: ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ์žฌ๊ท€ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ํ•จ์ˆ˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋””๋ฒ„๊น…: ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ(EBP)๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด ํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


Extra 2

์œ ์ €๋ชจ๋“œ ์ปค๋„๋ชจ๋“œ๊ฐ€ ์žˆ๋“ฏ์ด ์œ ์ €์Šคํƒ ์ปค๋„์Šคํƒ์ด ์กด์žฌํ•œ๋‹ค. ์ปค๋„์Šคํƒ์— ๋Œ€ํ•ด ์ถ”๊ฐ€ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

์ปค๋„ ์Šคํƒ(Kernel Stack)

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

 

์ปค๋„ ์Šคํƒ์˜ ํŠน์ง•

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

 

์ปค๋„ ์Šคํƒ์˜ ๊ตฌ์„ฑ

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

 

์ปค๋„ ์Šคํƒ์˜ ๋™์ž‘

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

 

์‚ฌ์šฉ์ž ์Šคํƒ vs ์ปค๋„ ์Šคํƒ ๋น„๊ต

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