did_story
[์ด์์ฒด์ ] Chapter 1. Introduction (Interrupt) ๋ณธ๋ฌธ
[์ด์์ฒด์ ] Chapter 1. Introduction (Interrupt)
์ด์ ์์ 2025. 3. 10. 17:39Operating 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(์ง์ญ์ฑ ์๋ฆฌ)
- Temporal locality: ์ต๊ทผ์ ์ ๊ทผํ๊ฑด ๋ค์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค
- → ์บ์ ํ์ฉ: ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ Level 1 ์ ์ ์งํ๋ฉด ์ฑ๋ฅ ํฅ์
- Spatial locality: ์ต๊ทผ ์ ๊ทผํ ๋ฐ์ดํฐ ๊ทผ์ฒ์ ์๋ ๋ฐ์ดํฐ๋ ๊ณง ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- → ํ ๋ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฃผ๋ณ ๋ฐ์ดํฐ๊น์ง ํ๊บผ๋ฒ์ ๊ฐ์ ธ์ ์ ์ฅํ๋ฉด ์บ์ ์ ์ค๋ฅ (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!
- Computer System Organization

→ 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
- ์ด๋ค interrupt๊ฐ ๋ค์ด ์จ๋ค๋ฉด, OS๋ CPU์ register๊ณผ PC์ ํ์ ์ํ๋ฅผ ์ ์ฅํ๋ค.
- interrupt๋ ๋์ ๋๋ handler๋ฅผ ๋ค๋ฃจ๊ณ ,
- CPU๋ ์ด์ ์ ์ ์ฅํ ๊ฒ์ ๋ณต์ํ๋ฉฐ, interrupt๊ฐ ๋ฐ์ํ๊ธฐ ์ ์คํํ๋ ํ๋ก๊ทธ๋จ์ผ๋ก ๋์๊ฐ๋ค

4. 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 ์๋ ๋ฐฉ์!
- ์ด์ ์ฒด์ ๊ฐ DMA ์ปจํธ๋กค๋ฌ์ ์ ์ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
- DMA ์ปจํธ๋กค๋ฌ๋ CPU์ ๊ฐ์ ์์ด ๋ฐ์ดํฐ ์ ์ก์ ์ํํฉ๋๋ค.
- ์ ์ก์ด ์๋ฃ๋๋ฉด DMA ์ปจํธ๋กค๋ฌ๊ฐ CPU์ ์ธํฐ๋ฝํธ๋ฅผ ๋ณด๋ ๋๋ค.
## ๊ทธ๋ฌ๋ฉด ์ฌ๊ธฐ๊น์ง.. ์๋
~'ComputerScienc๐ > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ด์์ฒด์ ] ์์คํ ์ฝ(System Call) ์์ ์ ๋ฆฌ (0) | 2025.09.01 |
|---|