์๋ฃ๊ตฌ์กฐ(Data Structure)๋ ์ปดํจํฐ ๊ณผํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ค ์ค ํ๋๋ก, ์ฐ๋ฆฌ๊ฐ ๋ค์ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๋ค๋ฃฐ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฐ๋ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ปดํจํฐ์ ์ ์ฅํ๋ ๊ฒ์ ์ผ์์ ์ธ ๊ณผ์ ์ค ํ๋์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋๋์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ, ํจ์จ์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๋ฑ์ด ํฌ๊ฒ ์ํฅ์ ๋ฐ์ต๋๋ค. ์ด๋ ์๋ฃ๊ตฌ์กฐ๋ ๋ง์น ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌ์ ๋ํ๋ ๋๊ตฌ ๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
๊ฐ๋จํ ๋น์ ๋ก ์ค๋ช ํ์๋ฉด, ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์์๋ ์ ๋ฆฌ๋ ์ฒด๊ณ๋ก ์๊ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฑ ์ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ฑ ์ฅ์ ๋ฐฐ์ดํ ์๋ ์๊ณ , ์คํ์ฒ๋ผ ์์๋ ์๋ ์์ต๋๋ค.
์ด๋ฐ ์ ๋ฆฌ ๋ฐฉ์์ ๋ฐ๋ผ ์ฑ
์ ์ฐพ๊ฑฐ๋ ์ถ๊ฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ ํจ์จ์ฑ์ด ๋ฌ๋ผ์ง๋๋ค. ์ฆ, ์ฑ
์ ์ด๋ป๊ฒ ์ ๋ฆฌํ ๊ฒ์ธ๊ฐ์ ๋ํ ๊ฒ์ ์๋ฃ๊ตฌ์กฐ๋ผ ๋งํ ์ ์๊ณ ์ฑ
์ ํจ์จ์ ์ผ๋ก ์ ์ํ๊ฒ ์ฐพ๋ '๋ฐฉ๋ฒ'์ ๊ดํ ๊ฒ์ด ๋ฐ๋ก ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์ด๋ ๊ฒ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธด๋ฐํ ๊ด๊ณ๋ฅผ ์ด๋ฃจ๊ณ ์์ต๋๋ค.
์๋ฃ๊ตฌ์กฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ์๋ก ๊น๊ฒ ์ฐ๊ด๋์ด ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ์ ๊ทผํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋๋๊ฐ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ๋ ์ฝ๋๋ ์ปดํจํฐ์ ํ๋๋์คํฌ์ ์ ์ฅ์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ ๋, ํ๋๋์คํฌ์์ ๋จ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ด์ฌ์ฌ๋ '๋จ์์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฌ ๋ฐ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ'์ ์์ต๋๋ค. ๋ง์ฝ ๋นํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ์ด ๋๋ฉด ์ปดํจํฐ์ ์ฑ๋ฅ์ด ๊ธ๊ฒฉํ๊ฒ ์ ํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
RAM(๋๋ค ์ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ)์์๋ ์ ๊ธฐ ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ์ ์ ํธ๋์ง์คํฐ์ ์ปคํจ์ํฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ํธ๋์ง์คํฐ (Transistor): ํธ๋์ง์คํฐ๋ ์ ๊ธฐ ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ์ ์๋ ๋ฐ๋์ฒด ๋๋ฐ์ด์ค์ ๋๋ค. ํ๋์ ํธ๋์ง์คํฐ๋ ์ค์ง 0๊ณผ 1๋ง ์ธ์ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ํธ๋์ง์คํฐ ํ๋๋ฅผ '1 bit'๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
- ์ปคํจ์ํฐ (Capacitor): ์ปคํจ์ํฐ๋ ์ ํ๋ฅผ ์ ์ฅํ๋ ๋๋ฐ์ด์ค๋ก, ํธ๋์ง์คํฐ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค. ํธ๋์ง์คํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋นํธ๋ฅผ ์ ์งํ๊ฑฐ๋ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ปคํจ์ํฐ๋ ์ ํ๋ฅผ ์ถ์ ํ๊ฑฐ๋ ๋ฐฉ์ถํฉ๋๋ค.
์ ์์ด ๊บผ์ง๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ค๋๊ธฐ ๋๋ฌธ์ RAM์ ์ผ์์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ, ์ปดํจํฐ๊ฐ ๊บผ์ง๊ฑฐ๋ ๋ค์ ์์๋๋ฉด RAM์ ์ ์ฅ๋ ๋ด์ฉ์ ์ด๊ธฐํ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์
๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ์ปดํจํฐ์ ์ฃผ๊ธฐ์ต์ฅ์น(๋ฉ๋ชจ๋ฆฌ)์์ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์์นํ ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์๋ฅผ ๋ํ๋ ๋๋ค. ์ด ์ฃผ์๋ฅผ ํตํด ํ๋ก์ธ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์กฐ์ํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ณดํต 16์ง์๋ก ํํ๋๋ฉฐ ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
1) ๋
ผ๋ฆฌ ์ฃผ์(Logical Address): ํ๋ก์ธ์ค๊ฐ ์ค์ ๋ก ์ฌ์ฉํ๋ ์ฃผ์. ํ๋ก์ธ์ค๋ ์ด ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ง๋ง, ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฌผ๋ฆฌ ์ฃผ์์๋ ๋ค๋ฅผ ์ ์์ต๋๋ค.
2) ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address): ์ค์ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋์ด๋ ์นฉ์์ ํด๋น ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ฅผ ๋ํ๋ด๋ ์ฃผ์. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น(Memory Management Unit, MMU)๋ ๋
ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ์ฌ ์ค์ ๋ฐ์ดํฐ์ ์ ๊ทผํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก 32๋นํธ ๋๋ 64๋นํธ ์ํคํ
์ฒ์ ์ปดํจํฐ์์๋ 32๋นํธ ๋๋ 64๋นํธ ๊ธธ์ด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. 32๋นํธ ์ํคํ
์ฒ์์๋ 2^32 (์ฝ 4GB) ๊ฐ์ ์ฃผ์๋ฅผ ๋ํ๋ผ ์ ์๊ณ , 64๋นํธ ์ํคํ
์ฒ์์๋ 2^64 ๊ฐ์ ์ฃผ์๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ปดํจํฐ ์์คํ ์์ ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ๊ทธ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ด์์ฒด์ ์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ, ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ํด ์ฌ๋ฌ ์ ๋ต๊ณผ ์๊ณ ๋ฆฌ์ฆ์ด ์ ์ฉ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ธ ๊ฐ์ง ๋ฐฉ์
- ์ ์ ํ ๋น(Static Allocation): ์ปดํ์ผ ํ์์ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๊ฒฐ์ ๋๊ณ , ์ด์ ๋ฐ๋ผ ๊ณ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น
- ๋์ ํ ๋น(Dynamic Allocation): ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ ํด์ ํฉ๋๋ค.
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Virtual Memory Allocation): ํ๋ก์ธ์ค๋ ์์ ๋ง์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์๋ ๋ถ๋ฆฌ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ ํ๋ก์ธ์ค๋ ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ต๋๋ค.
์ด์์ฒด์ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋งคํํ๋ฉฐ, ํ์์ ๋ฐ๋ผ ํ์ด์ง ๊ต์ฒด ๋ฑ์ ํตํด ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ๋ต์ ์ฌ์ฉํ์ฌ ์ต์ ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, First Fit, Best Fit, Worst Fit๊ณผ ๊ฐ์ ํ ๋น ์๊ณ ๋ฆฌ์ฆ์ด ์์ผ๋ฉฐ, ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์์๋ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ๋ต์ ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ฑ, ๊ณต๊ฐ ํ์ฉ, ์๋ต ์๊ฐ ๋ฑ์ ์ต์ ํํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฐ์์๋ Collections Framework๋ผ๋ ์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ ํ์คํ๋ ํด๋์ค์ ์ธํฐํ์ด์ค๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
[์ถ์ฒ] Youtube, ๊ฐ๋ฐ๋จ๋
ธ์จ, ๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ | ์๋ฃ๊ตฌ์กฐ 2๊ฐ, https://youtu.be/JHxY08iENxs?si=xEFHTZuF8eaYjiqc
'Programming > C language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4 Constant (1) | 2024.01.23 |
---|---|
3 Variable (0) | 2024.01.22 |
2 Hello world (0) | 2024.01.22 |
1 C language - Why do we learn it (0) | 2024.01.22 |
[Algorithm] Time complexity (์๊ฐ๋ณต์ก๋) (0) | 2024.01.21 |
๋๊ธ