View
๐ก ์ด์์ฒด์ ๋ ?
์ด์ ์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด๊ฐ ์ปดํจํฐ ์ํํธ์จ์ด์ ํต์ ํ๊ณ ์๋ํ๋๋กํ๋ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ด๋ค.
๐ก์ด์์ฒด์ ์ ์ฃผ์ ๋ชฉ์ ์?
์ด์ ์ฒด์ ์๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ชฉ์ ์ด ์๋ค.1. ์ปดํจํฐ ์์คํ ์ ๊ณ์ฐ ํ๋์ ๊ด๋ฆฌํ์ฌ ์ปดํจํฐ ์์คํ ์ด ์ ๋๋ก ์๋ํ๋๋ก ํ๋ค.2. ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐ ์คํ์ ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
๐ก ํ๋ก์ธ์ค์ ์ค๋ ๋๋?
ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋งํ๋ฉฐ, ์๋ฒฝํ ๋
๋ฆฝ์
์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ(Code, Data, Heap, Stack)์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ํ์ง ์์ต๋๋ค. ํ๋ก์ธ์ค๋ ์ต์ 1๊ฐ์ ์ฐ๋ ๋(๋ฉ์ธ ์ฐ๋ ๋)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฐ๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ Stack๋ง ๋ฐ๋ก ํ ๋น ๋ฐ๊ณ , ๊ทธ ์ด์ธ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ(Code, Data, Heap)์์ญ์ ๊ณต์
ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฐ๋ ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฐ๋ ๋๋ ํ๋ก์ธ์ค ๋ด์ ์กด์ฌํ๋ฉฐ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ์ฌ ์คํ๋๋ค.
๐ก ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก์ ์ญํ ์?
ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ์ํ ํ๋ก์ธ์ค ์์๋ค์ ์๋ฃ๊ตฌ์กฐ
- ํ๋ก์ธ์ค ์๋ณ์(Process ID)
- ํ๋ก์ธ์ค ์ํ(Process State) ๋ฑ..
๐ก ๋ฉํฐ ํ๋ก์ธ์ค์ ๋ฉํฐ ์ค๋ ๋์ ํน์ง
๋ฉํฐ ํ๋ก์ธ์ค๋ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ผ์น์ง ์๊ณ
๊ณ์ ์คํ๋๋ค๋ ์ฅ์ ์ด ์์ง๋ง ๋ฉํฐ ์ฐ๋ ๋๋ณด๋ค ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ CPU ์๊ฐ์ ์ฐจ์งํ๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฉํฐ ์ฐ๋ ๋๋ ๋ฉํฐ ํ๋ก์ธ์ค๋ณด๋ค ์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๋ฌธ๋งฅ ์ ํ์ด ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ง๋งํ๋์ ์ฐ๋ ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ ์ฒด ์ฐ๋ ๋๊ฐ ์ํฅ
์ ๋ฐ์ผ๋ฉฐ ๋๊ธฐํ ๋ฌธ์ ๋ ์๋ค๋ ๋จ์ ์ด ์๋ค.
๐ก ๋ฉํฐ ํ๋ก์ธ์ค ๋์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋?
๐ก ์๋ฐ ์ค๋ ๋๋?
๐ก ๋ฉํฐ ์ค๋ ๋์ ๋์์ฑ๊ณผ ๋ณ๋ ฌ์ฑ ์ค๋ช
๐ก ๋๊ธฐ์ ๋น๋๊ธฐ
๋๊ธฐ๋ ์์ฐจ์ , ์ง๋ ฌ์ ์ผ๋ก ํ ์คํฌ๋ฅผ ์ํํ๊ณ ,๋น๋๊ธฐ๋ ๋ณ๋ ฌ์ ์ผ๋ก ํ ์คํฌ๋ฅผ ์ํํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํ๋ฉด์ ํ์ํ๋ ์์ ์ ์ํํ ๋,๋๊ธฐ๋ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๋ฐ์ดํฐ๊ฐ ์๋ต๋ ๋๊น์ง ์ดํ ํ ์คํฌ๋ค์ ๋ธ๋กํน(Blocking, ์์ ์ค๋จ)๋ฉ๋๋ค.๋น๋๊ธฐ๋ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ์ดํ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๊ฐ ์๋ต๋ ๋๊น์ง ๋๊ธฐํ์ง ์๊ณ (Non-Blocking) ์ฆ์ ๋ค์ ํ ์คํฌ๋ฅผ ๊ณ์ํด ์ํํฉ๋๋ค.
๐ก ๋ธ๋ญํน๊ณผ ๋ ผ๋ธ๋ญํน
- ๋ธ๋กํน
์ A ํจ์๊ฐ B ํจ์๋ฅผ ํธ์ถํ๋ฉด, ์ ์ด๊ถ์ A๊ฐ ํธ์ถํ B ํจ์์ ๋๊ฒจ์ค๋ค. - ๋ ผ๋ธ๋กํน์ Aํจ์๊ฐ Bํจ์๋ฅผ ํธ์ถํด๋ ์ ์ด๊ถ์ ๊ทธ๋๋ก ์์ ์ด ๊ฐ์ง๊ณ ์๋๋ค.
๐ก ์ปจํ์คํธ ์ค์์นญ์ด๋?
๋ฉํฐํ๋ก์ธ์ค ํ๊ฒฝ์์ CPU๊ฐ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ค ์ธํฐ๋ฝํธ์ ์ํด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํด์ผ ํ ๋ ํ์ฌ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๋ ์ง์คํฐ ๋ฑ์ ์ ์ฅํ๊ณ ์คํํด์ผํ ์๋ก์ด ํ๋ก์ธ์ค ์ ๋ณด๋ก ๋ณ๊ฒฝํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ์ปจํ ์คํธ ์ค์์นญ์ด๋ผ๊ณ ํฉ๋๋ค
์ด๋ ์ปจํ์คํธ๋ค์ ์ ์ฅํ๊ณ ์๋ ๊ฒ๋ค์ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก PCB๋ผ๊ณ ํ๋ค.
- PCB๋ ๋ค์์ ์ ๋ณด๋ค์ ์ ์ฅํ๋ค.
- ํ๋ก์ธ์ค ์ํ : ์์ฑ, ์ค๋น, ์ํ, ๋๊ธฐ, ์ค์ง
- ํ๋ก์ค๋จ ์นด์ดํฐ
- ๋ ์์คํฐ
- ํ๋ก์ธ์ค ๋ฒํธ
- ์ค์์นญ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ
- I/O interrupt
- CPU ์ฌ์ฉ์๊ฐ ๋ง๋ฃ
- ์์ ํ๋ก์ธ์ค Fork
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆด ๋
- ์ค๋ ๋์ ๊ฒฝ์ฐ, ๊ณต์ (๋ฐ์ดํฐ) ์์ญ์ด ๋ง์ → ์ปจํ ์คํธ ์ค์์นญ์ด ๋น ๋ฆ
- ํ๋ก์ธ์ค์ ๊ฒฝ์ฐ, ๊ณต์ ๋ฐ์ดํฐ๊ฐ ์์ → ์๋ก์ด ์บ์ ์ ๋ณด๋ฅผ ์์์ผํ๋๋ฐ ๋ถ๋ด๋๋ ์์
๐ก ์ธํฐ๋ฝํธ๋ ๋ฌด์์ธ๊ฐ?
์ธํฐ๋ฝํธ๋ CPU๊ฐ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋์ค์ ๊ธํ๊ฒ ๋ค๋ฅธ ์ผ์ ์ฒ๋ฆฌํ๊ณ ์ ํ ๋ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.
CPU์ ์ธํฐ๋ฝํธ๊ฐ ๊ฑธ๋ฆฌ๋ฉด CPU๋ ํ์ฌ ์ํํ๋ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ ํ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด(ISR)์ ์ํํ๋ค.
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ๋ง์น๋ฉด ์ด์ ์ ์ํํ๋ ์์ ์ ์งํํ๋ค.
์ธํฐ๋ฝํธ๋ ํฌ๊ฒ ๋๊ฐ๋ก ๋๋๋ค.
1) ์ธ๋ถ ์ธํฐ๋ฝํธ : ์ ์ถ๋ ฅ ์ฅ์น, ํ์ด๋ฐ ์ฅ์น, ์ ์ ๋ฑ์ ์ธ๋ถ์ ์ธ ์์ธ์ ์ํด์ ๋ฐ์
2) ๋ด๋ถ ์ธํฐ๋ฝํธ : ์๋ชป๋ ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ์ธํฐ๋ฝํธ
๐ก ์ธํฐ๋ฝํธ๊ฐ ํ์ํ ์ด์ ๋?
์ ์ ํ ์ค์ผ์ค๋ฌ
๋ฅผ ์๋ก ๋ค๋ฉด ํ๋ก์ธ์ค๊ฐ Running ์ค์ ์ค์ผ์ค๋ฌ์ ์ํด ์ค๋จ๋๊ฒ ๋๋ค.
→ ์ด์ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๊ต์ฒดํ๊ธฐ ์ํจ์ธ๋ฐ, ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก ์ค๋จํ ์ ์๋ค. ๋ฐ๋ผ์ ์ค์ผ์ค๋ฌ๋ฅผ ๊ฐ์ ๋ก ์ค๋จ์ํฌ ์ ์๋ ๊ฒ์ด ์ธํฐ๋ฝํธ์ด๋ค.
๐ก์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๊ณผ์ ์?
๐ก ์์คํ ์ฝ์ด๋?
์ด์์ฒด์ ์ ์ปค๋์ด ์ ๊ณตํ๋ ์๋น์ค์ ๋ํด, ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฒญ์ ๋ฐ๋ผ ์ปค๋์ ์ ๊ทผํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๋ค.
ํด๋น ๊ธฐ๋ฅ์ผ๋ก๋ ํ๋ก์ธ์ค ์์ฑ, ๊ด๋ฆฌ, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํ์ผ ๊ด๋ฆฌ ๋ฑ์ด ์๋ค.
๐ก ๊ต์ฐฉ์ํ๋?
๊ต์ฐฉ ์ํ๋ ์์์ ์์ ํ ์ค๋ ๋ ์ฌ์ด์์, ๊ฐ ์ค๋ ๋๊ฐ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์์ ํ ์์์ ์์ฒญํ์ฌ ๋ชจ๋ ์ค๋ ๋๊ฐ ๋ฌดํ์ ๋๊ธฐํ๋ ํ์์ ๋งํ๋ค.๊ต์ฐฉ์ํ์ 4๊ฐ์ง ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ต์ฐฉ์ํ 4๊ฐ์ง ์กฐ๊ฑด
์ํธ๋ฐฐ์ : ๋งค ์๊ฐ ํ๋์ ํ๋ก์ธ์ค๋ง ์์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
์ ์ ๋๊ธฐ : ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์์์ ๊ฐ์ง ์ํ์์ ๋ค๋ฅธ ์์ ๊ธฐ๋ค๋ฆผ
๋น์ ์ : ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์์์ ์ฌ์ฉ์ ๋๋ ๋๊น์ง ๊ทธ ์์์ ๋บ์ ์ ์์
์ํ๋๊ธฐ : ๊ฐ ํ๋ก์ธ์ค๋ ์ํ์ ์ผ๋ก ๋ค์ ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ์์์ ๊ฐ๊ณ ์์
→ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ ์์์ ๊ฐ๊ณ ๊ธฐ๋ค๋ฆฌ๋๊น ์งํ๋์ง ์์
- ๋ฐ๋๋ฝ์ ๋ง๋ ๋ฐฉ๋ฒ
- ๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์๋๋ก
์๋ฐฉ
(prevention) ํ๊ธฐ - ๋ฐ๋๋ฝ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ธ์ ํ๋ฉด์๋ ์ ์ ํ๊ฒ
ํํผ
(avoidance) ํ๊ธฐ - ๋ฐ๋๋ฝ ๋ฐ์์ ํ์ฉํ์ง๋ง ๋ฐ๋๋ฝ์
ํ์ง
(detection)ํ์ฌ, ๋ฐ๋๋ฝ์์ ํ๋ณตํ๊ธฐ
๐ก ๊ฒฝ์์ํ๋?
๊ณต์ ์์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํด์ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ํด์น ์ ์๋ ์ํ๋ฅผ ์๋ฏธํ๋ค
๊ฒฝ์ ์ํ๋ ๊ต์ฐฉ ์ํ์ ์ข ๋ฅ ์ค ํ๋์ด๋ค.
- ๋ฐ์ํ๋ ๊ฒฝ์ฐ
- ์ปค๋๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ์์ ์ ํ๋ ๋์ค ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ ์ ์๋ค. → ์ปค๋๋ชจ๋์์ ์์ ์ ์ํํ๋ ๋์ ์ธํฐ๋ฝํธ๋ฅผ disable ์์ผ๋์ผ๋ฉด ๋จ
๐ก ํ๋ก์ธ์ค ์ค์ผ์ค๋ง
CPU๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ทธ์ ๋ง๊ฒ ์ฒ๋ฆฌํ๋ ์ผ์ ์๋ฏธ ํ๋ค
์ด๋ฌํ ์ค์ผ์ค๋ง์ ํฌ๊ฒ ์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ ์ธ ๊ผญ์ง๋ก ๋๋๋ค
- ์ฅ๊ธฐ ์ค์ผ์ค๋ง
- ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฐจ์งํ ์ ์๋์ง ๊ฒฐ์ ํด์ Ready Queue์ ๋ณด๋ด๋ ์์
์ ๋ปํ๋ค. ๊ฐ๋จํ๊ฒ
์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ปค๋์ ๋ฑ๋ก
ํ ๊ฒ์ธ์ง ์ ํ๋ ์์ ์ด๋ค - ์ค๊ธฐ ์ค์ผ์ค๋ง
์ด๋ค
ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ์ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ์์ (์ด๋ฌํ ํ๋ก์ธ์ค๊ฐ ๋ง์ ๊ฒฝ์ฐ ๊ณผ๋ถํ ๋ฐฉ์ง๋ฅผ ์ํด์ ํ๋ก์ธ์ค๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ง์ํค๋ฉด์ ๊ด๋ฆฌํจ )- ๋จ๊ธฐ ์ค์ผ์ค๋ง
์ธ์
cpu๋ฅผ ํ ๋นํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ์์ .
๐ก ์ค์ผ์ค๋ง ๋ฐ์ ์์
- running → waiting : ๋ณดํต I/O ์์ฒญ์ด ์ผ์ด๋๊ฑฐ๋ ์์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ๋๊ธฐ ํ ๋ → ๋น์ ์ ํ
- running→ ready : ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์๋์ ๋ → ์ ์ ํ
- waiting → ready: I/O๊ฐ ์๋ฃ ๋์์ ๋ → ์ ์ ํ
- running → terminate: ํ๋ก์ธ์ค๊ฐ ์์ ํ ์ข ๋ฃ ๋์์ ๋ → ๋น์ ์ ํ
๐ก์ ์ ํ๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ์ฐจ์ด์
- ์ ์ ํ
- ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU ๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๊ณ ์๋ ์ค์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด ์ธ์ ๋ ์ ์ ๋ฅผ ๋บ๊ธธ ์ ์์
- ๋ฌธ๋งฅ๊ตํ ์ค๋ฒํค๋๊ฐ ํฌ๋ฉฐ
- ๋ํํ ์์คํ , ๋ฆฌ์ผํ์ ์์คํ ์ ์ ํฉ
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ค๋ง ๋ค์ด์ค๋ ๊ฒฝ์ฐ, ์ค๋ฒํค๋ ๋ฐ์
- ๋น์ ์ ํ
- ๋ฌธ๋งฅ๊ตํ ์ค๋ฒํค๋๊ฐ ์ ์ผ๋ฉฐ
- ์ผ๊ด์ฒ๋ฆฌ ์์คํ ์ ์ ํฉ
- ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ค๋ซ๋์ CPU๋ฅผ ์ก๋๊ฒฝ์ฐ๋ ์์ด์ ์ฒ๋ฆฌ์จ์ด ๋ฎ์์ง
- ์ ์ ํ๊ณผ ๋ฐ๋๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ๋ CPU๋ฅผ ๋บ์ ์ ์์
๐ก ์ธ๋งํฌ์ด์ ๋ฎคํ ์ค(์ํธ๋ฐฐ์ )์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์
: ์ํธ๋ฐฐ์ ์กฐ๊ฑด์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ธ ๋ฎคํ ์ค์ ์ธ๋งํฌ์ด
์๊ณ๊ตฌ์ญ์ ๋ํ ์ ๊ทผ์ ๋ง๊ธฐ ์ํด Locking ๋ฉ์ปค๋์ฆ์ด ํ์ํ๋ฐ
- ๊ณตํต์
- ๋ณํ ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค ๋๊ธฐํ ๊ธฐ๋ฒ
- ์ฐจ์ด์
- ์ธ๋งํฌ์ด๋ ๋ฎคํ ์ค๊ฐ ๋ ์ ์์ง๋ง ๋ฎคํ ์ค๋ ์ธ๋งํฌ์ด๊ฐ ๋ ์ ์๋ค
- ์ธ๋งํฌ์ด๋ ์์ ํ ์ ์๋ ๋ฐ๋ฉด, ๋ฎคํ ์ค๋ ์์ ๊ฐ ๊ฐ๋ฅํ๋ค
- ๋ฎคํ ์ค๋ ์๊ณ๊ตฌ์ญ์ ํ๋์ ์ค๋ ๋๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ์ธ๋งํฌ์ด๋ ์๊ณ๊ตฌ์ญ์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์ ๊ทผ ๊ฐ๋ฅ
- ์ธ๋งํฌ์ด๋ ์นด์ดํฐ๋ฅผ ๋์ด์ ๋์์ ์์์ ์ ๊ทผํ ์ ์๋๋ก ์ค๋ ๋ ์๋ฅผ ์ ์ดํจ
๐ก ๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋?
๋ฉ๋ชจ๋ฆฌ ๋จํธํ๋, ๋ฉ๋ชจ๋ฆฌ(RAM)์ ๊ณต๊ฐ์ด ์ฌ๋ฌ ์์ ๊ณต๊ฐ์ผ๋ก ๋๋์ด์ ธ ์ฌ์ฉ๋๋ ๋ฐ๋์ ์ ์ฒด๋ก ๋ดค์ ๋ ์ถฉ๋ถํ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ํ ๋น์ ๋ชปํ๋ ์ํ
๐ก ์ธ๋ถ ๋จํธํ์ ๋ด๋ถ ๋จํธํ๋ ๋ฌด์์ธ๊ฐ
- ๋ด๋ถ ๋จํธํ
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ์ต์ ๋ธ๋ก์ ํฌ๊ธฐ์ ๋นํด ์์ ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ์ ์์ด ์์ ๊ฒฝ์ฐ,๋จ์ ๊ณต๊ฐ
์ด ์๊ฒจ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ๊ฒ ๋๋ ์ํฉ - ์ธ๋ถ ๋จํธํ
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น / ํด์ ์์ ์ด ๊ณ์ ์งํ๋ ๋, ์ค๊ฐ์ค๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ด ๋ง์ด ์กด์ฌํด์ ์ ์ฒด์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ถฉ๋ถํ๋ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์๋ ์ํ
๐ก ํ์ด์ง์ด๋?
์ธ๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฒ์ผ๋ก
ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ํ์ด์ง(page)๋ ๋จ์์ ๊ณ ์ ๋ ์ฌ์ด์ฆ
๋ก ๋๋์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ผ๋ก ์ ์ฅ
ํ๋ ๋ฐฉ์ → ๋์ ํ ๋น์ ํํ
๐ก ์ธ๊ทธ๋ฉํ ์ด์ ์ด๋?
๋ด๋ถ ๋จํธํ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฒ์ผ๋ก
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ธ๊ทธ๋ฉํธ(Segment)๋ฅผ ๋ ผ๋ฆฌ์ ๋จ์๋ก ๋ถํ ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฒ
→ ํฌ๊ธฐ๊ฐ ์ผ์ ํ์ง ์๊ณ ๋ค์ํ๊ธฐ ๋๋ฌธ์ hole์ด ๋ฐ์ํด์ ์ธ๋ถ ๋จํธํ๊ฐ ๋ฐ์ → ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น
๐ก ์บ์๋?
์ฐ์ฐ์ ํ์ํ ๋ฐ์ดํฐ, ๊ฐ์ ๋ฏธ๋ฆฌ ๊ฐ๋ค๋๋ ์์ ๋ฉ๋ชจ๋ฆฌ. CPU์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ๊น์ง ๋๋ฌํ๋๋ฐ์ cost๊ฐ ์ปค์ cpu ๋ฐ๋ก ์์ ๋ฑ ๋ฌ๋ผ๋ถ์ด์๊ธฐ ๋๋ฌธ์ cpu์์ ์ ๊ทผ ์ฝ์คํธ๊ฐ ๋งค์ฐ ์ ์ด์ ์ฑ๋ฅ ํฅ์์ ์ข์. ํ
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS]๋์์ธ ํจํด (0) | 2023.06.23 |
---|---|
HTTP Method (GET, POST, DELETE, PUT) (0) | 2022.09.19 |
[OS] ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ (0) | 2022.08.30 |
[OS] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ (0) | 2022.08.30 |
[OS] ์์คํ ํธ์ถ(System calls) (0) | 2022.08.30 |