๐Ÿ“Œ ์šด์˜์ฒด์ œ

4 minute read

์„œ๋ฒ„์šฉ, PC์šฉ, ์Šค๋งˆํŠธ๋””๋ฐ”์ด์Šค์šฉ ์šด์˜์ฒด์ œ ์ข…๋ฅ˜

๋ฆฌ๋ˆ…์Šค: ์˜คํ”ˆ์†Œ์Šค

  • ์™œ ๊ณต๊ฐœ ํ–ˆ์„๊นŒ?
    • ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐœ๋ฐœ์— ์ธ๊ฑด๋น„, ์ดํ›„ ํŒ๋งค์—๋Š” ์ถ”๊ฐ€์ ์ธ ์žฌ๋ฃŒ๋Š” ๋งŽ์ด ๋“ค์ง€ ์•Š์Œ
    • ํŠน์ • ์ œํ’ˆ์ด ์‹œ์žฅ์„ ์žฅ์•…ํ•ด๋ฒ„๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ฃฝ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—
    • ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๊ณต๊ฐœํ•˜์ž๋Š” ์˜๋ฏธ์ž„
    • ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœํ•œ ์ข‹์€ ์†Œ์Šค์ฝ”๋“œ๋Š” ์‹œ์žฅ์—์„œ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์Œ

window, macOS, IOS, Android: ๋น„๊ณต๊ฐœ

๐Ÿ” ์šด์˜์ฒด์ œ๋ž€?

์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜์–ด ์‚ฌ์šฉ์ž ๋ฐ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต์ด๋‹ค.

์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด โ†’ ์šด์˜์ฒด์ œ โ†’ ๊ฐ์ข… ์†Œํ”„ํŠธ์›จ์–ด + ์‚ฌ์šฉ์ž โ†’ ์‚ฌ์šฉ์ž

ํ˜‘์˜์˜ ์šด์˜์ฒด์ œ(์ปค๋„)

  • ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„

๊ด‘์˜์˜ ์šด์˜์ฒด์ œ

  • ์ปค๋„ ๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ์ข… ์ฃผ๋ณ€ ์‹œ์Šคํ…œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จํ•œ ๊ฐœ๋…

๐Ÿ“Œ ์šด์˜์ฒด์ œ์˜ ๋ชฉ์ 

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต

  • ์šด์˜์ฒด์ œ๋Š” ๋™์‹œ ์‚ฌ์šฉ์ž/ํ”„๋ก๋žจ๋“ค์ด ๊ฐ๊ฐ ๋…์ž๊ฑฐ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ ๊ฐ™์€ ํ™˜์ƒ์„ ์ œ๊ณต
  • ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋Š” ๋ณต์žกํ•œ ๋ถ€๋ถ„์„ ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ€ํ–‰

IDEA โ†’ Program โ†’ Abstract Machine โ†’ Physical Machine โ†’ Result

์šด์˜์ฒด์ œ๋Š” ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ

  • ํ”„๋กœ๋ ˆ์„œ, ๊ธฐ์–ต์žฅ์น˜, ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๋“ฑ์˜ ํšจ์œจ์  ๊ด€๋ฆฌ
    • ์‚ฌ์šฉ์ž๊ฐ„์˜ ํ˜•ํ‰์„ฑ ์žˆ๋Š” ์ž์› ๋ถ„๋ฐฐ
    • ์ฃผ์–ด์ง„ ์ž์›์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ์„ฑ๋Šฅ์˜ ๋‚ด๋„๋ก
  • ์‚ฌ์šฉ์ž ๋ฐ ์šด์˜์ฒด์ œ ์ž์‹ ์„ ๋ณดํ˜ธ
  • ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ, ๋ฉ”์„ธ์ง€ ๋“ฑ์„ ๊ด€๋ฆฌ

IDEA โ†’ Program โ†’ Abstract Machine โ†’ OS Resource Sharing โ†’ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์—๊ฒŒ ์งง์€ ์‹œ๊ฐ„์”ฉ CPU๋ฅผ ๋ฒˆ๊ฐˆ์•„ ํ• ๋‹น or ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์— ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ์ ˆํžˆ ๋ถ„๋ฐฐ

์˜ˆ๋กœ ๋ˆ„๊ตฌํ•œํ…Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋จผ์ € ์ค„๊นŒ? ์–ผ๋งˆ๋‚˜ ์ค„๊นŒ? ์ด๋Ÿฐ ๋ถ€๋ถ„์— ์žˆ์–ด ์šด์˜์ฒด์ œ๋Š” ์ธ๊ฐ„์˜ ๋‡Œ์™€ ๋น„์Šทํ•œ ๋А๋‚Œ์„ ์ฃผ๊ธฐ๋„ ํ•œ๋‹ค. (ํ•„์š”ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ์ฃผ๊ฒŒ ๋จ)

๐Ÿ“š ์šด์˜์ฒด์ œ์˜ ๋ถ„๋ฅ˜

  • ๋™์‹œ ์ž‘์—… ๊ฐ€๋Šฅ ์—ฌ๋ถ€

    • ๋‹จ์ผ ์ž‘์—…(Single Tasking)

      ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌ

      ex) MS-DOS ํ”„๋กฌํ”„ํŠธ ์ƒ์—์„œ๋Š” ํ•œ ๋ช…๋ น์˜ ์ˆ˜ํ–‰์„ ๋๋‚ด๊ธฐ ์ „์— ๋‹ค๋ฅธ ๋ช…๋ น์„ ์ˆ˜ํ–‰์‹œํ‚ฌ ์ˆ˜ ์—†์Œ.

    • ๋‹ค์ค‘ ์ž‘์—…(Multi tasking)

      ๋™์‹œ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ž‘์—… ์ฒ˜๋ฆฌ

      ex) UNIX, MS Windows ๋“ฑ์—์„œ๋Š” ํ•œ ๋ช…๋ น์˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ๋ช…๋ น์ด๋‚˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.

  • ์‚ฌ์šฉ์ž์˜ ์ˆ˜

    • ๋‹จ์ผ ์‚ฌ์šฉ์ž(Single user)

      ex) MS-DOS, MS Windows

    • ๋‹ค์ค‘ ์‚ฌ์šฉ์ž(Multi user)

      ex) UNIX, NT server

  • ์ฒ˜๋ฆฌ ๋ฐฉ์‹

    • ์ผ๊ด„ ์ฒ˜๋ฆฌ(batch processing)

      • ์ž‘์—… ์š”์ฒญ์˜ ์ผ์ •๋Ÿ‰ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌ

      • ์ž‘์—…์ด ์™„์ „ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•จ

        ex) ์ดˆ๊ธฐ Punch Card ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ

    • ์‹œ๋ถ„ํ• (Time Sharing)

      • ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ปดํ“จํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์‚ฌ์šฉ

      • ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ์งง์€ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ฐ€์ง

        ex) UNIX

      • Interactiveํ•œ ๋ฐฉ์‹

    • ์‹ค์‹œ๊ฐ„(Realtime OS)

      • ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ์–ด๋– ํ•œ ์ผ์ด ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋จ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ OS

        Ex) ์›์ž๋กœ/๊ณต์žฅ ์ œ์–ด, ๋ฏธ์‚ฌ์ผ ์ œ์–ด, ๋ฐ˜๋„์ฒด ์žฅ๋น„, ๋กœ๋ณดํŠธ ์ œ์–ด

      • ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋… ํ™•์žฅ

        • Hard Realtime System (๊ฒฝ์„ฑ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ)
        • Soft Realtime System(์—ฐ์„ฑ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ) ๋™์˜์ƒ ๊ฐ™์€ ๊ฒƒ
  • ๋ช‡๊ฐ€์ง€ ์šฉ์–ด

    • MultiTaking
    • MultiProgramming
    • Time Sharing
    • MultiProcess
    • ๊ตฌ๋ถ„
      • ์œ„์˜ ์šฉ์–ด๋“ค์€ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋œปํ•จ.
      • MultiProgramming์€ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์Œ์„ ๊ฐ•์กฐ
      • Time Sharing์€ CPI์˜ ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ ๋‚˜๋ˆ„์–ด ์“ด๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ•์กฐ
    • Multiprocessor
      • ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ CP(processor)๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ๋ถ™์–ด ์žˆ์Œ์„ ์˜๋ฏธ

๐Ÿ–ฅ ์šด์˜์ฒด์ œ์˜ ์˜ˆ

  • ์œ ๋‹‰์Šค(UNIX)
    • ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์„ C์–ธ์–ด๋กœ ์ž‘์„ฑ
    • ๋†’์€ ์ด์‹์„ฑ
    • ์ตœ์†Œํ•œ์˜ ์ปค๋„ ๊ตฌ์กฐ
    • ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์— ๋งž๊ฒŒ ํ™•์žฅ ์šฉ์ด
    • ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ
    • ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์šฉ์ด
    • ๋‹ค์–‘ํ•œ ๋ฒ„์ „
      • System V, FreeBSD, SunOS, Solaris
      • Linux (๊ณ„์† ์—…๊ทธ๋ ˆ์ด๋“œ ๋จ)
  • DOS(Disk Operating System)
    • MS์‚ฌ์—์„œ 1981๋…„ IBM-PC๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ
    • ๋‹จ์ผ ์‚ฌ์šฉ์ž์šฉ ์šด์˜์ฒด์ œ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋Šฅ๋ ฅ์˜ ํ•œ๊ณ„(์ฃผ ๊ธฐ์–ต ์žฅ์น˜: 640KB)
  • MS Windows
    • MS์‚ฌ์˜ ๋‹ค์ค‘ ์ž‘์—…์šฉ GUI ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ
    • Plug and Play, ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ ๊ฐ•ํ™”
    • DOS์šฉ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ˜ธํ™˜์„ฑ ์ œ๊ณต
    • ํ’๋ถ€ํ•œ ์ง€์› ์†Œํ”„ํŠธ์›จ์–ด
  • Handheld device๋ฅผ ์œ„ํ•œ OS
    • PalmOS, Pocket PC(winCE), Tiny OS

๐Ÿ” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

CPU โ†’ DMA โ†’ timer โ†’ Disk

โ€‹ โ†“. โ†“ โ†’ machine

โ€‹ memory โ†“ โ†’ machine

โ€‹ โ€ฆ โ€ฆ

Mode bit

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

Mode Bit์„ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ์˜ operation ์ง€์›

1(mode bit) ์‚ฌ์šฉ์ž๋ชจ๋“œ: ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰

0(mode bit) ๋ชจ๋‹ˆํ„ฐ ๋ชจ๋“œ: OS ์ฝ”๋“œ ์ˆ˜ํ–‰

  • ๋ณด์•ˆ์„ ํ•ด์น  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๋ช…๋ น์–ด๋Š” ๋ชจ๋‹ˆํ„ฐ ๋ชจ๋“œ์—์„œ๋งŒ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ โ€˜ํŠน๊ถŒ๋ช…๋ นโ€™์œผ๋กœ ๊ทœ์ •

  • Interrupt๋‚˜ Exception ๋ฐœ์ƒ์‹œ ํ•˜๋“œ์›จ์–ด๊ฐ€ mode bit์„ 0์œผ๋กœ ๋ฐ”๊ฟˆ

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์—์„œ CPU๋ฅผ ๋„˜๊ธฐ๊ธฐ ์ „์— mode bit์„ 1๋กœ ์„ธํŒ…

  • ๋ชจ๋‹ˆํ„ฐ ๋ชจ๋“œ: ์ปค๋„ ๋ชจ๋“œ, ์‹œ์Šคํ…œ ๋ชจ๋“œ๋กœ ๋‚˜๋ˆ ์ง

    โ€‹ interrupt/Exception (๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•๋“ค์ž„)

Monitor(kernel) mode โ†โ†’ user mode

โ€‹ OS sets to user mode

์šด์˜์ฒด์ œ๋Š” CPU๋ฅผ ๋„˜๊ฒจ์ค„ ์ˆ˜ ๋Š” ์žˆ์ง€๋งŒ ๋บ์–ด์˜ฌ ์ˆ˜๋Š” ์—†์Œ -> ๊ทธ๊ฒŒ๋ฐ”๋กœ timer์ž„ ๊ทธ๊ฒŒ ๋ฐ”๋กœ timer interrupt๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด ๊ทธ๋ž˜์„œ ํƒ€์ด๋จธ์— ์ œํ•œ ์‹œ๊ฐ„์„ ๊ฑธ์–ด๋‘ .

์ฆ‰ timer๋Š” CPU์˜ ๋…์ ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ.

๋ชจ๋“  IO๋Š” ํŠน๊ถŒ๋ช…๋ น์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— CPU๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜๊ฐ€ ์—†์œผ๋‹ˆ ์‹œ์Šคํ…œ ์ฝœ์„ ์‚ฌ์šฉ

์‹œ์Šคํ…œ์ฝœ: ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ œ์ฒด์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ

ํ˜„๋Œ€์˜ ์šด์˜์ฒด์ œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๊ตฌ๋™๋จ

โšก๏ธ ์ธํ„ฐ๋ŸฝํŠธ

  • ์ธํ„ฐ๋ŸฝํŠธ ๋‹นํ•œ ์‹œ์ ์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ program counter๋ฅผ saveํ•œ ํ›„ CPU์˜ ์ œ์–ด๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์— ๋„˜๊ธด๋‹ค.

  • Interrup(๋„“์€ ์˜๋ฏธ)

    • Interrupt(ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ): ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ์ธํ„ฐ๋ŸฝํŠธ
    • Trap(์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ)
      • Exception: ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•œ ๊ฒฝ์šฐ
      • System call: ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ธํ„ฐ๋ŸฝํŠธ ๊ด€๋ จ ์šฉ์–ด

    • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ

      โ†’ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

    • ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด(=interrupt Service Routine, ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ)

      โ†’ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปค๋„ ํ•จ์ˆ˜

โšก๏ธDevice Controller

  • I/O device controller
    • ํ•ด๋‹น I/O ์žฅ์น˜์œ ํ˜•์„ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ข…์˜ ์ž‘์€ CPU
    • ์ œ์–ด ์ •๋ณด๋ฅผ ์œ„ํ•ด Control register, status register๋ฅผ ๊ฐ€์ง
    • local buffer๋ฅผ ๊ฐ€์ง(์ผ์ข…์˜ data register)
  • I/O๋Š” ์‹ค์ œ device์™€ local buffer ์‚ฌ์ด์—์„œ ์ผ์–ด๋‚จ
  • Device controller๋Š” I/O๊ฐ€ ๋๋‚ฌ์„ ๊ฒฝ์šฐ interrupt๋กœ CPU์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ฆผ

Device driver(์žฅ์น˜๊ตฌ๋™๊ธฐ) : OS ์ฝ”๋“œ ์ค‘ ๊ฐ ์žฅ์น˜๋ณ„ ์ฒ˜๋ฆฌ๋ฃจํ‹ด โ†’ Software

  • CPU๊ฐ€ device controller์—๊ฒŒ ๋ถ€ํƒํ•˜๋Š” ์–ธ์–ด์ž„(CPU๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ์ž„)
  • device์— ๋‚ด์žฅ๋œ ์ฝ”๋“œ๋Š” ํŽŒ์›จ์–ด๋ผ๊ณ  ํ•จ.

Device controller(์žฅ์น˜์ œ์–ด๊ธฐ): ๊ฐ ์žฅ์น˜๋ฅผ ํ†ต์ œํ•˜๋Š” ์ผ์ข…์˜ ์ž‘์€ CPU โ†’ Hardware

์‹ค์ œ I/O ์ž‘์—…์€ device controller๊ฐ€ ์ง์ ‘ํ•จ