[OS] System Structure & Program Execution

Euiyeon Parkยท2025๋…„ 2์›” 5์ผ

Operating System

๋ชฉ๋ก ๋ณด๊ธฐ
2/4
post-thumbnail

๐Ÿซง System Structure

์ด๋ฏธ์ง€ ์ถœ์ฒ˜

๐Ÿฉต CPU(Central Processing Unit)

  • ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ ์—ญํ• ์„ ํ•˜๋Š” ์žฅ์น˜
  • ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ•  - fetch-Decode-Execute-Store
  • CPU๋Š” ํด๋Ÿญ ์‚ฌ์ดํด๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜์”ฉ ์ฝ์–ด์„œ ์ˆ˜ํ–‰
  • ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ๊ณผ ์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰

๐Ÿค Register

  • CPU ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ์ดˆ๊ณ ์† ์ž„์‹œ ๊ธฐ์–ต ์žฅ์น˜
  • ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• 

๐Ÿค Mode Bit

  • ์šด์˜์ฒด์ œ์™€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์˜ ๊ถŒํ•œ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๋น„ํŠธ
  • CPU์˜ ์‹คํ–‰ ๋ชจ๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• 

1. ์ปค๋„ ๋ชจ๋“œ(Kernel Mode, Supervisor Mode, Monitor Mode)

  • 0
  • ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“œ
  • ๋ชจ๋“  ๋ช…๋ น์–ด์™€ ์ž์›์— ์ ‘๊ทผ ๊ฐ€๋Šฅ(ํŠน๊ถŒ ๋ช…๋ น ์‹คํ–‰ ๊ฐ€๋Šฅ)

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

  • 1
  • ์ผ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋ชจ๋“œ
  • ์ œํ•œ๋œ ๋ช…๋ น์–ด๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ

Mode Bit์˜ ์‚ฌ์šฉ ๋ชฉ์ 

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์˜ ์ค‘์š”ํ•œ ์ž์›์„ ๋ฌด๋‹จ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์˜ ์ž˜๋ชป๋œ ์ˆ˜ํ–‰์œผ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์šด์˜์ฒด์ œ๊ฐ€ ํ”ผํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋„๋ก ๋ณดํ˜ธ

๐Ÿค Interrupt Line

  • CPU์™€ ์™ธ๋ถ€ ์žฅ์น˜๊ฐ„์— ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ํšŒ์„ 
  • CPU๊ฐ€ ํŠน์ • ์ด๋ฒคํŠธ(์ž…์ถœ๋ ฅ ์™„๋ฃŒ, ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๋“ฑ)๋ฅผ ์ธ์‹ํ•˜๋„๋ก ํ•จ

๐Ÿฉต Timer

  • ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ๋…์ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์‹œ๊ฐ„์„ ์ œํ•œํ•˜๊ณ ,
    ์ผ์ • ์ฃผ๊ธฐ๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์žฅ์น˜
  • ์šด์˜์ฒด์ œ๋Š” ํƒ€์ด๋จธ๋ฅผ ํ™œ์šฉํ•ด CPU ์Šค์ผ€์ค„๋ง ๋ฐ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์„ ๊ด€๋ฆฌ
  • Time Sharing(์‹œ๋ถ„ํ• )์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

๐Ÿค Timer ๋™์ž‘ ๊ณผ์ •

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

๐Ÿฉต DMA Controller

  • DMA(Direct Memory Access, ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ)์€ CPU๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ 
    ์ฃผ๋ณ€ ์žฅ์น˜(๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ์นด๋“œ, ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ ๋“ฑ)๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ
  • DMA๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ DMA Controller๋‹ค.
  • DMA Controller๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜๋‹ค.

๐Ÿค DMA Controller์˜ ์—ญํ• 

  • ์šด์˜์ฒด์ œ๋Š” CPU๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์ž์›์„ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• 
  • ์ž…์ถœ๋ ฅ(I/O) ์ž‘์—…์€ CPU๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
    DMA Controller๋ฅผ ์ด์šฉํ•ด CPU์˜ ๋ถ€๋‹ด์„ ์ค„์ธ๋‹ค.
    • DMA๋ฅผ ์‚ฌ์šฉํ•ด I/O์žฅ์น˜์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ CPU ๊ฐœ์ž…์—†์ด ๊ฐ€๋Šฅ
    • DMA Controller๋Š” I/O์žฅ์น˜(๋กœ์ปฌ ๋ฒ„ํผ)์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ด๋™ํ•œ๋‹ค.
    • DMA๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ธ”๋Ÿญ ๋‹จ์œ„๋กœ ์ „์†กํ•˜๊ณ ,
      ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค(์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ๋นˆ๋„ ์ €ํ•˜)

๐Ÿค DMA Controller์˜ ๋™์ž‘ ๊ณผ์ •

  1. CPU๊ฐ€ DMA Contorller์—๊ฒŒ ์š”์ฒญ: I/O ์žฅ์น˜์—์„œ ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์š”์ฒญ
  2. DMA Controller๊ฐ€ ์ „์†ก ์ˆ˜ํ–‰: CPU์˜ ๊ฐœ์ž…์—†์ด I/O ์žฅ์น˜์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ด๋™
  3. ์ „์†ก ์™„๋ฃŒ ํ›„ CPU์—๊ฒŒ ์•Œ๋ฆผ: DMA ์™„๋ฃŒ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์—๊ฒŒ ์•Œ๋ฆผ
  4. CPU๊ฐ€ ํ›„์† ์ž‘์—…์„ ์ˆ˜ํ–‰

๐Ÿฉต Memory Controller

  • CPU์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(RAM)๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜
  • ์šด์˜์ฒด์ œ์™€ CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ , Memory Controller๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๊ตฌ์กฐ

๐Ÿค ๊ทผ๋ฐ CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ ?

  • ๊ณผ๊ฑฐ์—๋Š” Memory Controller๊ฐ€ CPU ์™ธ๋ถ€์— ์กด์žฌํ–ˆ์ง€๋งŒ,
    ํ˜„๋Œ€ CPU๋Š” Memory Controller๋ฅผ CPU ๋‚ด๋ถ€์— ํฌํ•จ
  • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ง์ ‘ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์–ด ์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง

๐Ÿค Memory Controller์˜ ๋˜ ๋‹ค๋ฅธ ์—ญํ• 

  • CPU์™€ DMA๊ฐ€ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ์ ‘๊ทผ ์ˆœ์„œ๋ฅผ ์กฐ์ •ํ•ด ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์—ญํ• 

๐Ÿฉต Device Controller

โœ… CPU๋Š” ๋ฐ”์˜๋‹ค! ๊ทธ๋ฆฌ๊ณ  I/O์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๋Š”๋‹ค.
โœ… CPU ์‹คํ–‰ ์ค‘์— I/O์˜ ์ž‘์—… ์ƒํƒœ ๋ณด๊ณ , ์ž‘์—… ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด Device Controller์—๊ฒŒ ์œ„์ž„ํ•œ๋‹ค.

  • CPU์™€ I/O ์žฅ์น˜ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์žฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด
  • ์šด์˜์ฒด์ œ๊ฐ€ ์žฅ์น˜๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๋Œ€์‹ , Device Controller๊ฐ€ ๋Œ€์‹  ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ์–ด
  • I/O์žฅ์น˜ ๋‚ด๋ถ€๋ฅผ ํ†ต์ œํ•˜๋Š” ์ž‘์€ CPU์—ญํ• 
  • CPU์™€์˜ ์†๋„ ์ฐจ์ด๋กœ ์ธํ•ด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋‘ 

๐Ÿค Device Controller์˜ ์—ญํ• 

  • I/O ์žฅ์น˜์˜ ์ œ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก
  • CPU์™€ I/O ์žฅ์น˜ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜
  • ๋ฒ„ํผ๋ง(Buffering) ๋ฐ ์บ์‹ฑ(Caching):
    I/O ์†๋„๋Š” CPU๋ณด๋‹ค ๋А๋ฆฌ๋ฏ€๋กœ, ๋ฒ„ํผ(Buffer)๋ฅผ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•˜๊ณ  ์ „์†ก
  • ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
  • DMA ์ง€์›:
    CPU ๊ฐœ์ž… ์—†์ด Device Controller๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ง์ ‘ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ

๐Ÿค Device Controller์˜ ๋™์ž‘ ๊ณผ์ •

  1. CPU๊ฐ€ I/O ์ž‘์—… ์š”์ฒญ
  2. Device Controller๊ฐ€ ํ•ด๋‹น ์žฅ์น˜์— ๋ช…๋ น ์ „์†ก
  3. Device๊ฐ€ ์ž‘์—… ์ˆ˜ํ–‰
  4. ์ž‘์—… ์™„๋ฃŒ ํ›„ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
  5. CPU๊ฐ€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง„ํ–‰

๐Ÿฉต Local Buffer

  • I/O ์žฅ์น˜ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(Device Controller์˜ ์ž‘์—… ๊ณต๊ฐ„)
  • ๋ฐ์ดํ„ฐ๊ฐ€ CPU ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ „์†ก๋˜๊ธฐ ์ „์— ์ž„์‹œ๋กœ ์ €์žฅ๋˜๋Š” ๋ฒ„ํผ
    • CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์žฅ์น˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Local Buffer์— ๋จผ์ € ์ €์žฅ
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฒ„ํผ์— ๋ชจ์•„์„œ ์ „์†กํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • CPU์™€ I/O ์žฅ์น˜ ๊ฐ„ ์†๋„ ์ฐจ์ด๋ฅผ ์™„ํ™”ํ•˜๋Š” ์—ญํ• 
    • ๋ฒ„ํผ๋ง(๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉ)์„ ํ†ตํ•ด CPU๊ฐ€ I/O ์žฅ์น˜๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๊ณ„์† ์‹คํ–‰ ๊ฐ€๋Šฅ

๐Ÿค Device Controller์™€ Local Buffer

๋””์Šคํฌ์—์„œ ํŒŒ์ผ์„ ์ฝ๋Š” ๊ณผ์ •
CPU โ†” Device Controller โ†” Local Buffer โ†” Disk

  1. CPU๊ฐ€ ๋””์Šคํฌ์—์„œ ํŒŒ์ผ ์ฝ๊ธฐ ์š”์ฒญ - Device Controller๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์Œ
  2. Device Controller๊ฐ€ ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด Local Buffer์— ์ €์žฅ
  3. Local Buffer๊ฐ€ ๊ฐ€๋“์ฐจ๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ „์†ก
  4. ์ „์†ก์ด ์™„๋ฃŒ๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์— ์•Œ๋ฆผ

โœจ ๋””์Šคํฌ๋Š” ์†๋„๊ฐ€ ๋А๋ฆฌ๋ฏ€๋กœ, Local Buffer๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ตœ์ ํ™”


๐Ÿซง Program Execution

1. ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ ๋ฐ ์‹คํ–‰ ์ค€๋น„

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

2. CPU ๋ช…๋ น ์‹คํ–‰

  • CPU๋Š” ๋ช…๋ น์–ด ์‚ฌ์ดํด(Fetch, Decode, Execute)์„ ๋ฐ˜๋ณตํ•˜์—ฌ
    ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์„ ์ฝ์–ด์™€ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰

3. I/O ์ž‘์—… ์š”์ฒญ ๋ฐœ์ƒ

  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ I/O ์ž‘์—…์ด ํ•„์š”ํ•  ๋•Œ, CPU๋Š” Device์™€์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์š”์ฒญ
  • ์ด ๊ณผ์ •์—์„œ CPU๋Š” Device Controller์™€ DMA Controller๋ฅผ ํ†ตํ•ด I/O ์ž‘์—…์„ ์ฒ˜๋ฆฌ

4. DMA Controller๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก

(1) CPU์˜ ์š”์ฒญ

  • ์ „์†กํ•  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ, ์ „์†กํ•  ๋ฐ์ดํ„ฐ ํฌ๊ธฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  I/O ๋””๋ฐ”์ด์Šค ์ •๋ณด
  • CPU๋Š” ์œ„์˜ ์ •๋ณด๋ฅผ DMA Controller์—๊ฒŒ ์ „๋‹ฌ
  • ์ดํ›„ DMA Controller๊ฐ€ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ œ์–ด๊ถŒ์„ ๋„˜๊น€

(2) DMA Controller์™€ Device Controller์˜ ํ˜‘๋ ฅ

  • Device Controller๋Š” ์—ฐ๊ฒฐ๋œ I/O ์žฅ์น˜์™€์˜ ์„ธ๋ถ€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ,
    ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„ํผ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํผ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด์˜ด
  • DMA Controller๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ Device Controller ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ CPU ๊ฐœ์ž…์—†์ด ์ง์ ‘ ์ˆ˜ํ–‰

(3) ์ž‘์—… ์™„๋ฃŒ ์•Œ๋ฆผ

  • ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜๋ฉด DMA Controller๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ CPU์—๊ฒŒ ์ž‘์—… ์™„๋ฃŒ๋ฅผ ์•Œ๋ฆผ

5. CPU์˜ ํ›„์† ์ž‘์—…

  • CPU๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  I/O ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธ
  • ์ดํ›„, ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ๊ณ„์†ํ•ด์„œ ์ž‘์—…์„ ์ง„ํ–‰

6. Timer์˜ ์—ญํ• 

  • ์šด์˜์ฒด์ œ๊ฐ€ CPU ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด
  • Timer๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ๋…์ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์กฐ์ •

7. ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

  • ํ”„๋กœ๊ทธ๋žจ์ด ๋ชจ๋“  ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๊ฒŒ ๋˜๋ฉด
    • CPU๋Š” ์ œ์–ด๊ถŒ์„ ์šด์˜์ฒด์ œ์— ๋ฐ˜ํ™˜
    • ์šด์˜์ฒด์ œ๋Š” ์‚ฌ์šฉํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ, ๋””๋ฐ”์ด์Šค ๋“ฑ์„ ์ž์›์„ ์ •๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ค€๋น„
profile
"๊ฐœ๋ฐœ์ž๋Š” ํ•ด๊ฒฐ์‚ฌ์ด์ž ๋ฐœ๊ฒฌ์ž์ด๋‹คโœจ" - Michael C. Feathers

0๊ฐœ์˜ ๋Œ“๊ธ€