์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ํ์ด์
- Node.js ์ค์น
- 2017 Do it! Node.js ํ๋ก๊ทธ๋๋ฐ(๊ฐ์ ํ) #Node.js๊ฐ์ #Node.js
- IT ํนํ
- node.js
- ๊ฐ๋ฐํ๋ก์ ํธ ํนํ
- Today
- Total
Odds and Ends
์ด์์ฒด์ ๊ต์ Chap02 ์ปดํจํฐ ๊ตฌ์กฐ ๋ณธ๋ฌธ
๐ ํ๋์ ์ปดํจํฐ ์์คํ

๐ ํฐ๋ ธ์ด๋ง ์ปดํจํฐ
: ํ๋ ์ปดํจํฐ์ ์ผ๋ฐ์ ๋ชจํ
> ํ๋ก๊ทธ๋จ ์ ์ฅ ์ปดํจํฐ ๊ฐ๋ ์ ์ ์ํจ :
ํฐ ๋ ธ์ด๋ง ๊ตฌ์กฐ์์๋ ๋จผ์ ์ฐ์ฐ์ ์ํ๊ณผ ๊ด๋ จ๋ ๋ช ๋ น์ด์, ์ฐ์ฐ์ ํ์ํ๊ฑฐ๋ ๊ฒฐ๊ณผ๋ก ๋์จ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ์ฅ์น(๋ฉ๋ชจ๋ฆฌ)์ ๋ณด๊ดํ๊ฒ ๋๋ฉฐ, ์์ฐจ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์ฉ์ ๋์ง์ด๋ด ์ง์๋๋ก ์ฐ์ฐ ์ํํ๋ ๋ฐฉ์์ ๋๋ค.
1) ํ๋ ๋์คํฌ > 2) ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ ๋ก๋ > 3) ํ์ค์ฉ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ CPU์ ๊ฐ์ ธ๊ฐ ์คํ
๐ ํฐ ๋ ธ์ด๋ง ๋ช ๋ น์ด ์คํ ์ฌ์ดํด : 1. ๋ช ๋ น์ด ๊ฐ์ ธ์ค๊ธฐ 2. ๋ช ๋ น์ด ์คํํ๊ธฐ 3. ์ธํฐ๋ฝํธ ์ฒดํฌ
๐ ์ปดํจํฐ ํน์ง
- I/O ๋๋ฐ์ด์ค์ CPU ๋์ ์คํ ๊ฐ๋ฅ
- ์ฅ์น ์ปจํธ๋กค๋ฌ๋ ํน์ ์ฅ์น ์ ํ ๋ด๋น
- ๊ฐ ์ฅ์น ์ปจํธ๋กค๋ฌ์๋ ๋ก์ปฌ ๋ฒํผ ์กด์ฌ
- CPU๊ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๋ก์ปฌ ๋ฒํผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ด๋
- I/O๋ ์ฅ์น์์ ์ปจํธ๋กค๋ฌ์ ๋ก์ปฌ ๋ฒํผ๋ก ์ด๋
- ๋๋ฐ์ด์ค ์ปจํธ๋กค๋ฌ๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์ ์์ ์ ์๋ฃํ์์ ์๋ฆผ โ โ
- ์ธํฐ๋ฝํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ์๋น์ค ๋ฃจํด์ ์ฃผ์๋ฅผ ํฌํจํ๋ '์ธํฐ๋ฝํธ ๋ฒกํฐ'๋ฅผ ํตํด ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ผ๋ก ์ ์ด๋ฅผ ์ ์ก
- ์ธํฐ๋ฝํธ ์ํคํ ์ฒ๋ ์ธํฐ๋ฝํธ๋ ๋ช ๋ น์ ์ฃผ์๋ฅผ ์ ์ฅํด์ผํ๋ค.
- ์์ ๋ ์ธํฐ๋ฝํธ๊ฐ ์์ค๋์ง ์๋๋ก, ๋ค๋ฅธ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋๋ ๋์ ์์ ์ธํฐ๋ฝํธ ๋นํ์ฑํ
- 'ํธ๋ฉ'์ ์ค๋ฅ or ์ฌ์ฉ์ ์์ฒญ์ ์ํด ๋ฐ์ํ๋ ์ํํธ์จ์ด ์์ฑ '์ธํฐ๋ฝํธ'์ด๋ค.
- OS๋ ์ธํฐ๋ฝํธ ์ค์ฌ์ด๋ค.
๐ CPU๊ฐ ์ฌ๊ฑด ๋ฐ์์ ์ธ์งํ๋ ๋ฐฉ๋ฒ 2๊ฐ์ง
1) ํด๋ง: ํน์ ์ฃผ๊ธฐ๋ง๋ค ์ค๋ ๋๋ฅผ ๋๋ฉฐ ์ ํธ๊ฐ ์๋์ง ํ์ธ (์ํํธ์จ์ด์ )
> ๊ณ์ ํ์ธํด์ ๋ฆฌ์์ค ๋ง์ด ๋จน๊ณ , ํน์ ์ฃผ๊ธฐ๋ง๋ค ํ์ธํด ์ ํํ ํ์ด๋ฐ์ ์๊ทธ๋์ ํ์ธํ์ง ๋ชปํด ์ฃผ๊ธฐ์ ๋ฐ๋ฅธ ์ค์ฐจ ์์.
> ์ฅ์ : ๊ตฌํ ์ฝ๊ณ ์ฐ์ ์์ ๋ณ๊ฒฝ ์ฉ์ด
2) ์ธํฐ๋ฝํธ: ์ ํธ ์ฌ์ฉ. ์ธํฐ๋ฝํธ ๋ฐ์ ์ CPU์ ์ ํธ๋ฅผ ๋ณด๋ด ์๋ ค์ค (ํ๋์จ์ด์ )
> ์ธํฐ๋ฝํธ ๋ฐ์ ์์๋ง ์ฒ๋ฆฌํ์ฌ ์์คํ ๋ถํ ์ ์.
> ๊ตฌํ ๋ณต์ก, but ์ ํํ ํ์ด๋ฐ ์์ ๋ฐ์ ์๊ฐ ๋น ๋ฆ
โ ์ธํฐ๋ฝํธ ์ํ์ค
: ํ๋ก๊ทธ๋จ ์คํ > ์ธํฐ๋ฝํธ ์์ฒญ > ํ๋ก๊ทธ๋จ ์ค๋จ(์ํ์ค์ธ ๋ช ๋ น ์๋ฃํ๊ณ PC,SR ์ ์ฅ) > ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด ์ฒ๋ฆฌ (์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฃผ์ ์ ๊ทผ) > ํ๋ก๊ทธ๋จ ์ฌ์์ (ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ฅผ ํตํ์ฌ ์ ๊ทผ)

๐ ์ธํฐ๋ฝํธ์ ์ข ๋ฅ
- ํ๋์จ์ด ์ธํฐ๋ฝํธ(์ธ๋ถ) : ์ผ๋ฐ์ ์ผ๋ก ๋งํ๋ ์ธํฐ๋ฝํธ, ๋น๋๊ธฐ์
- ์ํํธ์จ์ด ์ธํฐ๋ฝํธ(๋ด๋ถ) : ํธ๋ฉ์ด๋ผ๊ณ ๋ํ๋ฉฐ, ์์ธ์ ์์คํ ์ฝ์ด ์๋ค.
โ ์์ธ : ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ์ค๋ฅ, 0์ผ๋ก ๋๋๊ธฐ, Overflow, Underflow ๋ฑ์์ ๋ฐ์ํ๋ ์ธํฐ๋ฝํธ
โ ์์คํ ์ฝ : ์ฌ์ฉ์๊ฐ ์๋์ ์ผ๋ก ์ผ์ผํจ ์ธํฐ๋ฝํธ
์ ์ถ๋ ฅ ๊ตฌ์กฐ
๐ ์ ์ถ๋ ฅ ๊ณผ์
- CPU๊ฐ ์ฅ์น ์ ์ด๊ธฐ์ ๋ ์ง์คํฐ์ ์ํ๋ ๋ช ๋ น์ด ์ ์ฌ
- ์ฅ์น ์ ์ด๊ธฐ๊ฐ ๋์ ๊ฒฐ์
- ์ฅ์น ์ ์ด๊ธฐ ์๋ฃ ์ ์ก : ์ฅ์น > ๋ก์ปฌ๋ฒํผ (read ๊ฒฝ์ฐ)
- read ์๋ฃ ํต๋ณด (์ธํฐ๋ฝํธ!)
- CPU๊ฐ ์๋ฃ๋ฅผ ์ฅ์น์ ์ด๊ธฐ์ ๋ก์ปฌ๋ฒํผ๋ก๋ถํฐ ๊ฐ์ ธ์ด
๐ Synchronous(๋๊ธฐ, ์ฐจ๋ก๋ก) VS Asynchronous(๋น๋๊ธฐ, ๋๊ธฐ)
* Synchronous
: ์ ์ถ๋ ฅ์ด ๋ค ๋๋์ผ control ๋์์ด
- ๋ค์ ์ธํฐ๋ฝํธ ๋ฐ์๊น์ง CPU ์ ํด ์ํ
* Asynchronous
: ์ ์ถ๋ ฅ ๋๋๊ธธ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ control์ด ๋์์ด
- ์ํ ํ ์ด๋ธ์ ๊ฐ ์ ์ถ๋ ฅ ์ฅ์น ์ ํ/์ฃผ์/์ํ๋ฅผ ๋ํ๋ด๋ ํญ๋ชฉ ์์
- I/O ์ฅ์น ํ ์ด๋ธ์ ์ธ๋ฑ์ฑํ์ฌ ์ฅ์น ์ํ๋ฅผ ํ์ธํ๊ณ , ์ธํฐ๋ฝํธ๋ฅผ ํฌํจํ๋๋ก ํ ์ด๋ธ ํญ๋ชฉ ์์

๐ DMA Structure
- ๋ฉ๋ชจ๋ฆฌ ์๋์ ๊ฐ๊น์ด ์๋๋ก ์ ๋ณด๋ฅผ ์ ์กํ ์ ์๋ ๊ณ ์ ์ ์ถ๋ ฅ ์ฅ์น์ ์ฌ์ฉ๋จ
- ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ๋ฒํผ ์ ์ฅ์์ ๋ฐ์ดํฐ ๋ธ๋ก์ CPU ์์ด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก ์ง์ ์ ์กํ๋ค.
โ DMA(์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ) : ๋ก์ปฌ ๋ฒํผ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์ค๋ ์์ ์ CPU ์์ด ํ๋ ๊ฒ
๐ Cycle Stealing
- DMA ์ ์ก์๊ฐ ์ค์ CPU์ Memory๋ ๋ฐ์ดํฐ๋ฅผ ์ํธ ์ ์กํ ์ ์์ผ๋ฏ๋ก, CPU์ ๋ฒ์ค๋ HOLD ์ํ์ ์๊ฒ๋จ
- CPU ๋์ ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๊ณ ์๋ cycle์๋ง DMA ์ํ
๐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ
- CPU๊ฐ ์ง์ ์ก์ธ์คํ ์ ์๋ ๋์ฉ๋ ์ ์ฅ ๋ฏธ๋์ด๋ง ํด๋น
- memory- mapped I/O : CPU์ ์ ์ถ๋ ฅ ์ฅ์น ์ ๊ทผ ์, ์ ์ถ๋ ฅ๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ๊ณต๊ฐ์ ๋ถ๋ฆฌํ์ง ์๊ณ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ทจ๊ธํ์ฌ ๋ฐฐ์นํ๋ ๋ฐฉ์, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ผ์ ๋ฒ์๋ฅผ ์ฅ์น ๋ ์ง์คํฐ๋ก ์ฐ๊ณ์ํด
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ CPU ๊ฐ์ ํฐ ์๋ ์ฐจ > CPU stall > ๋ ์ฌ์ด์ ๊ณ ์์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ์ฌ์ฉ (Cache)
๐ Secondary Storage
โ ๋์ฉ๋ ๋นํ๋ฐ์ฑ ์ ์ฅ ์ฉ๋์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฅ
โ ์๊ธฐ ๋์คํฌ
โข ์๊ธฐ ๊ธฐ๋ก ์ฌ๋ฃ๋ก ๋ฎ์ธ ๋จ๋จํ ๊ธ์ ๋๋ ์ ๋ฆฌ ํ๋ํฐ
โข ์ค๋ฆฐ๋,ํธ๋, ์นํฐ, ์ธก๋ฉด->50ํ์ด๋
โข ํธ์คํธ ์ปจํธ๋กค๋ฌ(์ปดํจํฐ), ๋์คํฌ ์ปจํธ๋กค๋ฌ(ํ๋๋์คํฌ)
โ ์๊ธฐ ํ
์ดํ

๐ Disk Access Time
: ์ํ๋ ์นํฐ๊น์ง ๊ฐ๋ ์๊ฐ
โ Access Time
= Seek Time(์ค๋ฆฐ๋์ ํค๋ ์์น์ํค๋ ์๊ฐ) + Rotatioinal Latency(ํ์ ์ง์ฐ ์๊ฐ) + Transfer Time(์นํฐ์์ ์ฝ๋ ์๊ฐ)
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์์ฒด์ 6์ฅ CPU ์ค์ผ์ค๋ง (0) | 2022.10.28 |
---|---|
์ด์์ฒด์ ๊ต์ Chap 05 ์ค๋ ๋ (0) | 2022.10.26 |
์ด์์ฒด์ ๊ต์ : Chap 04 Process (0) | 2022.10.22 |
์ด์์ฒด์ ๊ต์ : Chap03 ์ด์์ฒด์ ๊ตฌ์กฐ (0) | 2022.10.18 |
์ด์์ฒด์ ๊ต์ Chap01 (0) | 2022.09.26 |