ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ ๋ฉด์ ‘์„ ์œ„ํ•œ cs ์ „๊ณต์ง€์‹ ๋…ธํŠธ ์ •๋ฆฌ ] 3.์šด์˜์ฒด์ œ : ์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ
    Book 2024. 4. 16. 16:17
    ๋ฐ˜์‘ํ˜•
    (์ถœ์ฒ˜ :  https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95)

     

    ์šด์˜์ฒด์ œ(OS, Operating System)๋ž€?


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

    ์šด์˜์ฒด์ œ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ ?


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

    3.1 ์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ

    3.1.1 ์šด์˜์ฒด์ œ์˜ ์—ญํ• ๊ณผ ๊ตฌ์กฐ
    3.1.2 ์ปดํ“จํ„ฐ์˜ ์š”์†Œ

    3.1 ์šด์˜์ฒด์ œ์™€ ์ปดํ“จํ„ฐ

    3.1.1 ์šด์˜์ฒด์ œ์˜ ์—ญํ• ๊ณผ ๊ตฌ์กฐ

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

    * ์ปค๋„(kernel)?
    ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ์„œ๋น„์Šค๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ๋งˆ์น˜ ์‚ฌ๋žŒ์˜ ์‹ฌ์žฅ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.
    (์šด์˜์ฒด์ œ์—๋Š” ์†ํ•˜์ง€๋งŒ ์ปค๋„์—๋Š” ์†ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ : GUI/CUI ( ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ ๊ฐ„์˜ ํ†ต๋กœ์ผ ๋ฟ ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ(์ปค๋„)์€ ์•„๋‹˜)

    * ์ด์ค‘๋ชจ๋“œ์™€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ
    ์ž์›์˜ ์•ˆ์ „์„ ์œ„ํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ์ž์› ์ ‘๊ทผ์„ ๋Œ€ํ–‰ํ•˜๋Š”๋ฐ ์ด ๋ง์ธ ์ฆ‰์Šจ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ž์›์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์šด์˜์ฒด์ œ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

    ์ด์ค‘๋ชจ๋“œ๋ž€ CPU๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ์ž๋ชจ๋“œ์™€ ์ปค๋„๋ชจ๋“œ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    ์‹œ์Šคํ…œ ํ˜ธ์ถœ์‹œ์—๋Š” > ์ปค๋„๋ชจ๋“œ๋กœ ๋ณ€ํ™˜๋จ(์ผ์ข…์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ! ์ด๋ฏธ ๋‚ด๋ถ€์— ์šด์˜์ฒด์ œ๋งˆ๋‹ค ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ช…๋ น์–ด์™€ ์—ญํ• ์ด ์ •ํ•ด์ ธ ์žˆ์Œ)

    * ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ์„œ๋น„์Šค

    1. ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
    ๋™์‹œ๋‹ค๋ฐœ์ ์œผ๋กœ ์‹คํ–‰/์ƒ์„ฑ/์‚ญ์ œ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ๋ชฉ์š”์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌ 
    - ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ, ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”, ๊ต์ฐฉ์ƒํƒœ ํ•ด๊ฒฐ

    2. ์ž์› ์ ‘๊ทผ ๋ฐ ํ• ๋‹น
    1) CPU 
    - CPU ์Šค์ผ€์ค„๋ง ( ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ €, ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ์‹คํ–‰ํ• ๊นŒ?)
    2) ๋ฉ”๋ชจ๋ฆฌ
    - ํŽ˜์ด์ง•, ์Šค์™€ํ•‘..
    3) ์ž…์ถœ๋ ฅ์žฅ์น˜

    3.ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ
    ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํŒŒ์ผ์ด๋ผ๋Š” ๋‹จ์œ„๋กœ ์ €์žฅ ์žฅ์น˜์— ๋ณด๊ด€
    ํŒŒ์ผ๋“ค์„ ๋ฌถ์–ด ํด๋”(๋””๋ ‰ํ† ๋ฆฌ ๋‹จ์œ„๋กœ ์ €์žฅ ์žฅ์น˜์— ๋ณด๊ด€

     

    • ์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ

      GUI/CUI, ์‹œ์Šคํ…œ์ฝœ, ์ปค๋„, ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์šด์˜์ฒด์ œ๋ผ๊ณ  ํ•œ๋‹ค.

      * GUI(Graphical User Interface, ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค)
      ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ž์žฅ์น˜์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ˜•ํƒœ๋กœ ๋ช…๋ น์–ด ์ฐฝ์ด ์•„๋‹Œ ์•„์ด์ฝ˜์„ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•˜๋Š” ๋™์ž‘์œผ๋กœ ์ปดํ“จํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

      * CUI(Character User Interface, ๋ฌธ์ž(์ฝ˜์†”) ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค)
      ๊ทธ๋ž˜ํ”ฝ์ด ์•„๋‹Œ ๋ช…๋ น์–ด๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋œปํ•œ๋‹ค.

      * ๋“œ๋ผ์ด๋ฒ„
      ํ•˜๋“œ์›จ์–ด๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋œปํ•œ๋‹ค.
    • ์‹œ์Šคํ…œ์ฝœ
      ์šด์˜์ฒด์ œ๊ฐ€ ์ปค๋„์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์“ด๋‹ค.
      ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์ด I/O ์š”์ฒญ์œผ๋กœ ํŠธ๋žฉ(trap)์„ ๋ฐœ๋™ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ I/O ์š”์ฒญ์ธ์ง€ ํ™•์ธํ•œ ํ›„ ์œ ์ € ๋ชจ๋“œ๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ†ตํ•ด ์ปค๋„ ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋œ๋‹ค.

      ์˜ˆ๋ฅผ๋“ค์–ด I/O ์š”์ฒญ์ธ fs.readFile()์ด๋ผ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ์„ ์ฝ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฐœ๋™ํ–ˆ๋‹ค๋ฉด ์œ ์ € ๋ชจ๋“œ์—์„œ ํŒŒ์ผ์„ ์ฝ์ง€ ์•Š๊ณ  ์ปค๋„ ๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐ€ ํŒŒ์ผ์„ ์ฝ๊ณ  ๋‹ค์‹œ ์œ ์ € ๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ€ ๊ทธ ๋’ค์— ์žˆ๋Š” ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์˜ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ์ปดํ“จํ„ฐ ์ž์›์— ๋Œ€ํ•œ ์ง์ ‘ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค.

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


      * modebit
      1 ๋˜๋Š” 0์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ”Œ๋ž˜๊ทธ ๋ณ€์ˆ˜๋กœ, ์‹œ์Šคํ…œ์ฝœ์ด ์ž‘๋™๋  ๋•Œ modebit์„ ์ฐธ๊ณ ํ•ด์„œ ์œ ์ € ๋ชจ๋“œ(1, ์œ ์ €๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์„ ์ œํ•œ์ ์œผ๋กœ ๋‘๋ฉฐ ์ปดํ“จํ„ฐ ์ž์›์— ํ•จ๋ถ€๋กœ ์นจ๋ฒ”ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ชจ๋“œ)์™€ ์ปค๋„ ๋ชจ๋“œ(0, ๋ชจ๋“  ์ปดํ“จํ„ฐ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“œ)๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

     

    3.1.2 ์ปดํ“จํ„ฐ์˜ ์š”์†Œ
     

    • CPU(Central Processing Unit)
      ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ ์žฅ์น˜๋ฅผ ๋งํ•˜๋ฉฐ ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋‹จ์ˆœํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ์ผ๊พผ์ด๋‹ค.
      ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ํ•˜๋Š” ์šด์˜์ฒด์ œ์˜ ์ปค๋„์ด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ํ”„๋กœ์„ธ์Šค๋กœ ๋งŒ๋“ค๋ฉด ์ผ๊พผ์ธ CPU๊ฐ€ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

    • ์ œ์–ด์žฅ์น˜(CU, Control Unit)
      ํ”„๋กœ์„ธ์Šค ์กฐ์ž‘์„ ์ง€์‹œํ•˜๋Š” CPU์˜ ํ•œ ๋ถ€ํ’ˆ์ด๋‹ค.
      ์ž…์ถœ๋ ฅ์žฅ์น˜ ๊ฐ„ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๊ณ  ๋ช…๋ น์–ด๋“ค์„ ์ฝ๊ณ  ํ•ด์„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

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

    • ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(ALU, Arithmetic Logic Unit)
      ๋ง์…ˆ, ๋บ„์…ˆ ๊ฐ™์€ ๋‘ ์ˆซ์ž์˜ ์‚ฐ์ˆ  ์—ฐ์‚ฐ๊ณผ ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ, ๋…ผ๋ฆฌ๊ณฑ ๊ฐ™์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ์ด๋‹ค.

      * CPU์˜ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ
      โžŠ ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์‚ฐํ•  ๊ฐ’์„ ๋กœ๋“œํ•˜๊ณ  ๋ ˆ์ง€์Šคํ„ฐ์—๋„ ๋กœ๋“œํ•œ๋‹ค.
      โž‹ ์ œ์–ด์žฅ์น˜๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ผ๊ณ  ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜์— ๋ช…๋ นํ•œ๋‹ค.
      โžŒ ์ œ์–ด์žฅ์น˜๊ฐ€ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋‹ค์‹œ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

    • ์ธํ„ฐ๋ŸฝํŠธ
      ์–ด๋–ค ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ CPU๋ฅผ ์ž ๊น ์ •์ง€์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
      ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค ๋“ฑ IO ๋””๋ฐ”์ด์Šค๋กœ ์ธํ•œ ์ธํ„ฐ๋ŸฝํŠธ, 0์œผ๋กœ ์ˆซ์ž๋ฅผ ๋‚˜๋ˆ„๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์—์„œ์˜ ์ธํ„ฐ๋ŸฝํŠธ, ํ”„๋กœ์„ธ์Šค ์˜ค๋ฅ˜ ๋“ฑ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.
      ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜(์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜, ์ปค๋„ ๋‚ด๋ถ€์˜ IRQ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋ฉฐ request_irq()๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Œ)๊ฐ€ ๋ชจ์—ฌ ์žˆ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋กœ ๊ฐ€์„œ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ๊ฐ„์—๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์‹คํ–‰๋˜๋ฉฐ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์™€ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

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

      * ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ
      ํŠธ๋žฉ(trap)์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ํ”„๋กœ์„ธ์Šค ์˜ค๋ฅ˜ ๋“ฑ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์ฝœ์„ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐœ๋™ํ•œ๋‹ค.

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

    • ๋ฉ”๋ชจ๋ฆฌ
      ์ „์žํšŒ๋กœ์—์„œ ๋ฐ์ดํ„ฐ๋‚˜ ์ƒํƒœ, ๋ช…๋ น์–ด ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋งํ•˜๋ฉฐ ๋ณดํ†ต RAM(Random Access Memory)๋ฅผ ์ผ์ปฌ์–ด ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ ๋„ ํ•œ๋‹ค. CPU๋Š” ๊ณ„์‚ฐ์„ ๋‹ด๋‹นํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ธฐ์–ต์„ ๋‹ด๋‹นํ•œ๋‹ค.

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

    • ๋””๋ฐ”์ด์Šค ์ปจํŠธ๋กค๋Ÿฌ
      ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” IO ๋””๋ฐ”์ด์Šค๋“ค์˜ ์ž‘์€ CPU๋ฅผ ๋งํ•œ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.