did_story

[์šด์˜์ฒด์ œ] Chapter 1. Introduction (Interrupt) ๋ณธ๋ฌธ

ComputerScienc๐Ÿ“š/OS

[์šด์˜์ฒด์ œ] Chapter 1. Introduction (Interrupt)

์–ด์ œ์‹œ์ž‘ 2025. 3. 10. 17:39

Operating System์— ๊ด€ํ•œ ์ˆ˜์—…์„ ์ €์˜ ์‹์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ OS ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ปด๋ทฐํ„ฐ ๊ตฌ์กฐ์— ๊ด€ํ•ด ์ •ํ™•ํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

1. Von Neuman Architecture

→ ํฐ๋…ธ์ด๋งŒ์ด ์ œ์•ˆํ•œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ์ปด๋ทฐํ„ฐ๊ฐ€ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ์ด๋‹ค.

  • ๋ฐฉ์‹
    • Input Device์—์„œ ๋ฐ์ดํƒ€๋ฅผ ๋ฐ›๊ณ 
    • Memory Unit์— ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ์ด ๋˜์–ด์ง„๋‹ค.
    • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์–ด๋ฅผ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•˜๊ณ , ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์—ฐ์ƒ ๊ฒฐ๊ณผ๋ฅผ Memory Unit์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ Output Device๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ˆœ์„œ!
  • Programing Translation.

  • ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ C ์ฝ”๋“œ → ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด Assembler code ๋กœ ๋ณ€ํ™˜(CPU์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง) → Object Code๋กœ ๋ณ€ํ™˜ → Linker : ์—ฌ๋กœ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์‹คํ–‰ํŒŒ์ผ๋กœ ๋งŒ๋“ฌ (ex. hello.out) → Loader ๊ฐ€ ์‹คํ–‰ํŒŒ์ผ์„ RAM(๋ฉ”๋ชจ๋ฆฌ)๋ฅผ ๋กœ๋“œํ•˜๊ณ  CPU๊ฐ€ ์‹คํ–‰ → ๊ทธ๋Ÿผ ๋ณด์—ฌ์ฃผ๊ฒŸ์ง€?(Output Device)
  • Vertual Memory → why? : Main memory๋Š” multiprogramming/multiprocessing System์˜ ๋ชจ๋“  processes ๋ฅผ ์ž‘์—…ํ•˜๋Š”๋ฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค. ๊ทธ๋ž˜์„œ ์ƒ๊ฒจ๋‚ฌ๋‹ค.
  • Memory Hierarchy

   → ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ž‘๊ณ  ๋น„์‹ธ๋ฉฐ, ๋А๋ฆฐ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ณ  ์ €๋ ดํ•˜๋‹ค! ๋Š” ํŠน์ง•์ด๋กœ ๋น ๋ฅด๋ฉด์„œ๋„ ํฐ ๋ฉ”๋ชจ๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฐœ๋…์ด๋‹ค!(illution)

  • ์ƒ์œ„ ๊ณ„์ธต(Cash)์ผ ์ˆ˜๋ก CPU ๊ฐ€๊นŒ์ด์—์„œ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ ํ•˜์œ„๊ณ„์ธต(SSD)์€ ๋Œ€์šฉ๋ž‘ ์ €์žฅ ์šฉ๋„๋กœ ์‚ฌ์šฉ!
  • Locality Principle(์ง€์—ญ์„ฑ ์›๋ฆฌ)
    1. Temporal locality: ์ตœ๊ทผ์— ์ ‘๊ทผํ•œ๊ฑด ๋‹ค์‹œ ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค
    2. → ์บ์‹œ ํ™œ์šฉ: ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Level 1 ์— ์œ ์ง€ํ•˜๋ฉด ์„ฑ๋Šฅ ํ–ฅ์ƒ
    3. Spatial locality: ์ตœ๊ทผ ์ ‘๊ทผํ•œ ๋ฐ์ดํ„ฐ ๊ทผ์ฒ˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋„ ๊ณง ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
    4. → ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ฃผ๋ณ€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ•œ๊บผ๋ฒˆ์— ๊ฐ€์ ธ์™€ ์ €์žฅํ•˜๋ฉด ์บ์‹œ ์ ์ค‘๋ฅ (cache hit rate)์ด ์˜ฌ๋ผ๊ฐ

โžก ์ฆ‰, ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ณ  ๋น„์šฉ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ํ•„์š”ํ•œ ๊ฐœ๋…์ด๋‹ค!


2. What is Operating System?!

โžก๏ธ ์ปด๋ทฐํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ ์›จ์–ด๋ฅผ ์šด์˜ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ ์›จ์–ด๋ฅผ OS๋ผ๊ณ  ํ•œ๋‹ค!

โœจ ์‚ฌ์šฉ์ž์™€ H/W t์‚ฌ์ด์˜ ์ค‘์ œ์ž!

  • OS provider environment!
    • OS ๋งŒ ์“ด๋‹ค๋ฉด ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ์ง€๋งŒ,
    • OS๊ฐ€ ์ œ๊ณต๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ• ๋–„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค! (ex. window์—์„œ intelij ์“ฐ๊ธฐ)
  • OS manages system resources
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ(ํฌ๋กฌ, ์ธํ…”๋ฆฌ์ œ์ด, Youtube musice …)์„ ํ•œ๋ฒˆ์— ๋Œ๋ฆด๋•Œ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, ๋„คํŠธ์›Œํฌ ๋“ฑ์˜ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค!
  • OS transforms it into a virtual form of itself.
    • ๋ฌผ๋ฆฌ์ ์ธ ์ž์›(๋ฆฌ์†Œ์Šค)์„ ๊ฐ€์ƒํ™”ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค!
    • ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ CPU๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ CPU์˜ ์ฝ”์–ด์ˆ˜๋Š” ์ œํ•œ์ ์ด๊ธฐ์— ์–ด๋ ค๊ฐœ์˜ ๊ฐ€์ƒ CPU๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“ฌ → memory, disk, network ๋“ฑ๋“ฑ ๋‹ค ๊ฐ€๋Šฅ.

โžก๏ธ So, OS is in charge of making sure the system operates correctly and efficiently.


3. Interupt-Driven Program!

  1. Computer System Organization

bus : ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์— ์†Œํ†ต ์ฐฝ๊ตฌ?(Communication Channels between H/W)

→ Interpreter ๊ณต๋ถ€ํ•  ๋•Œ ํ•„์š”!

  

   2.  Interrupt : H/W ๋˜๋Š” S/W ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋น„๋™๊ธฐ ์‹ ํ˜ธ๋กœ, ์‹œ์Šคํ…œ์ด ํŠน์ • ์ž‘์—…์„ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ์—ญํ• !

  • Interrupt Handler: Interrupt๊ฐ€ ๋ฐœ์ƒ ํ–‡์„๋–„ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜ ํ˜น์€ ๋ฃจํ‹ด
  • Interrupt Vector: Table of interrupt handler

๊ทธ๋ ค๋ณธ ๋ชจ์‹๋„

  • H/W interrupt - CPU๋กœ ๋ณด๋‚ด๋Š” ์‹œ๊ทธ๋„๋“ค.
  • S/W interrupt
    • System Call : ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ€ํ„ฐ ์š”์ฒญ๋˜๋Š” ๊ฒƒ → I/O access, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น …
    • Exception

 3. Interrupt Handling

  1. ์–ด๋–ค interrupt๊ฐ€ ๋“ค์–ด ์˜จ๋‹ค๋ฉด, OS๋Š” CPU์˜ register๊ณผ PC์˜ ํ˜„์ œ ์ƒํƒœ๋ฅผ ์ €์žฅํ•œ๋‹ค.
  2. interrupt๋Š” ๋Œ€์‘ ๋˜๋Š” handler๋ฅผ ๋‹ค๋ฃจ๊ณ ,
  3. CPU๋Š” ์ด์ „์— ์ €์žฅํ•œ ๊ฒƒ์„ ๋ณต์›ํ•˜๋ฉฐ, interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „ ์‹คํ–‰ํ•˜๋˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค

Interrupt Handling

 4. Storage Hierarchy (์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต ๊ตฌ์กฐ.)

โžก๏ธ ์ปดํ“จํ„ฐ์˜ ๋‹ค์–‘ํ•œ ์ €์žฅ ์žฅ์น˜๋“ค์„ ์†๋„์™€ ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋…

Storage Hierarchy

  • Caching: ๋А๋ฆฐ ์ €์žฅ ์žฅ์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋น ๋ฅธ ์ €์žฅ ์žฅ์น˜์— ๋ณต์‚ฌํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•.
    • ex. RAM์€ HDD๋ณด๋‹ค ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, OS๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ RAM์— ์บ์‹ฑํ•จ.
  • CPU ์บ์‹œ, RAM, SSD, HDD, ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์†๋„์™€ ๋น„์šฉ์ด ๋ฐ˜๋น„๋ก€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง.
  • ์šด์˜ ์ฒด์ œ๋Š” ์บ์‹ฑ ๊ธฐ๋ฒ•๊ณผ ํŽ˜์ด์ง€ ๊ต์ฒด, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ๋“ฑ์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌ.

 5. Interrupt Driven Data Transfer

 

   1) I/O Interrupt ๋ฐœ์ƒ

  • ํ˜„์žฌ **์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ(User Program)**์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ. (์˜ˆ: add, sub, and, or ๋ช…๋ น์–ด ์‹คํ–‰ ์ค‘)
  • ํ•˜๋“œ์›จ์–ด(์˜ˆ: ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ๋””์Šคํฌ I/O)๊ฐ€ ์ธํ„ฐ๋ŸฝํŠธ ์‹ ํ˜ธ๋ฅผ CPU์— ๋ณด๋ƒ„.

  2) ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ PC ์ €์žฅ (Save PC)

  • CPU๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด์˜ Program Counter(PC) ๊ฐ’์„ ์ €์žฅ.

  3) ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๋ฃจํ‹ด(Interrupt Service Routine, ISR)์œผ๋กœ ์ ํ”„

  • Interrupt Vector Table์„ ์ฐธ์กฐํ•˜์—ฌ ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋Ÿฌ(Interrupt Handler)์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ด.
  • CPU๋Š” ์ €์žฅ๋œ ์ฃผ์†Œ๋กœ ์ ํ”„(Jump) ํ•˜์—ฌ interrupt Service routine(IRS)์„ ์‹คํ–‰.

  4) ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ์ˆ˜ํ–‰ ํ›„ ์›๋ž˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณต๊ท€

  • ISR์ด I/O ์ž‘์—… ์ˆ˜ํ–‰ ํ›„ ์ข…๋ฃŒ๋˜๋ฉด, CPU๋Š” ์ €์žฅ๋œ PC ๊ฐ’์„ ๋ณต์›ํ•˜์—ฌ ์›๋ž˜ ์‹คํ–‰ ์ค‘์ด๋˜ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋Œ์•„๊ฐ.
  • ์ฆ‰, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ ํ›„ ์ค‘๋‹จ๋œ ๋ช…๋ น์–ด ์ดํ›„์˜ ์‹คํ–‰์„ ๊ฐœํ•จ.

6. DMS(Direct Memory Access)

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

## ๊ทธ๋Ÿฌ๋ฉด ์—ฌ๊ธฐ๊นŒ์ง€.. ์•ˆ๋…•~

'ComputerScienc๐Ÿ“š > OS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์šด์˜์ฒด์ œ] ์‹œ์Šคํ…œ ์ฝœ(System Call) ์™„์ „ ์ •๋ฆฌ  (0) 2025.09.01