ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด์์ฒด์ : ํ๋ฒ์ ์ ๋ฆฌํ๊ธฐ
dirmathfl 2020. 9. 9. 20:25Operating System
์ด์์ฒด์ ๋ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๊ณ , ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ํ๋์จ์ด ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ค. ๋ํ ํ๋ก๊ทธ๋จ์ด ์์คํ ์์์ ์ ๊ทผํ๊ณ ์ ํ ๋ ๊ถํ์ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ํ์ ํ๋ค.
ํ๋ก์ธ์ค์ ์ค๋ ๋
ํ๋ก์ธ์ค : ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์์ ์์ผ๋ฉฐ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค.
์ค๋ ๋ : ํ๋์ ํ๋ก์ธ์ค์ ์์์ ๊ณต์ ํ๋ฉฐ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋ ์ ์๋ ์์ ๋จ์์ด๋ค.
ํ๋ก์ธ์ค๋ ํ๋ก์ธ์ค ๋ณ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ผ๋ฉดCode, Data, Heap, Stack์ผ๋ก ๊ตฌ๋ถ ๋๋ค.
-
Code : ํจ์, ์ ์ด๋ฌธ, ์์ ๋ฑ์ ํ ๋นํ๋ ์์ญ.
-
Data : Global Variable, Static Variable, Array๊ฐ ํ ๋น๋๋ ์์ญ.
-
Heap : ๋์ ํ ๋น๋ ๋ณ์๊ฐ ํ ๋น๋๋ ์์ญ.
-
Stack : Local Variable, Parameter, Retrun value์ ๊ฐ์ ์์๋ก ์ฌ์ฉ๋๋ ๊ฐ์ด ํ ๋น๋จ
์ด์ ๋ฌ๋ฆฌ ์ค๋ ๋๋ Stack๋ง ํ ๋น๋ฐ๊ณ , ๋๋จธ์ง ๋ถ๋ถ์ ํ๋ก์ธ์ค์ ๊ณต์ ํ๋ค.
๋ฉํฐ ํ๋ก์ธ์ค์ ๋ฉํฐ ์ค๋ ๋
๋ฉํฐ ํ๋ก์ธ์ค, ์ค๋ ๋๋ ๋์์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์คํํ๋ ๊ฒ์ ๊ฐ๋ค. ํ์ง๋ง ๋ ๋ฐฉ์์ ์ฐจ์ด์ ์ ๊ฐ์ง๊ณ ์๋ค.
๋ฉํฐ ํ๋ก์ธ์ค : ๋์์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์คํํ๊ธฐ ์ํด, ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ฌ `IPC(Inter Process Communication)`๋ฅผ ํตํด, ์์ ๊ณผ์ ์ ๊ณต์ ํ ์ ์๋ค.
๋ฉํฐ ์ค๋ ๋ : ํ๋์ ํ๋ก์ธ์ค์์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ์์ฑํด ๋์์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์คํํ ์ ์๋ค.
๋ฉํฐ ํ๋ก์ธ์ค์ ๋ฉํฐ ์ค๋ ๋์ ์ฐจ์ด
ํ๋ก์ธ์ค ๋ณ๋ก `PCB(Process Control Block)`์ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ ์ค์ธ CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํ์ฌ PCB์ ์ํ๋ฅผ ์ ์ฅํ๊ณ , ๋ค์์ ์์ ํ๊ธฐ ์ํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ `Context Switching`์ด ํ์ํ๋ค.
์ด์ ๋ฌ๋ฆฌ ์ค๋ ๋์ ๊ฒฝ์ฐ Stack์ ์ ์ธํ ํ๋ก์ธ์ค์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์, ํด๋น ํ๋ก์ธ์ค์ ์ ๊ทผ์ ํ๊ธฐ ์ํด PCB ์ํ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋ ์ผ๋ จ์ ๊ณผ์ (Context Switching)์ด ํ์ ์๋ค.
๋ฐ๋ผ์ ๋ฉํฐ ์ค๋ ๋์ ๊ฒฝ์ฐ ๊ณต์ ์์์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์์ค์ํฌ ์ ์๋ `Race Condition`์ด ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๊ณ ๊ตฌ์ญ(Critical Section)์ ์ง์ ํ์ฌ, ํด๋น ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
IPC
์์ ๋ค๋ฃฌ ๋ด์ฉ์ผ๋ก ์ ์ ์๋ฏ์ด, ํ๋ก์ธ์ค๋ ์ค๋ ๋์ ๋ฌ๋ฆฌ ์ํธ ๋ ๋ฆฝ์ ์ด๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค ๋ณ๋ก ์์์ ๊ณต์ ํ๊ธฐ ์ํด์๋ ํต์ ๊ณผ์ ์ด ํ์ํ๋ฉฐ, ์ด๋ฅผ `IPC(Inter Process Communication)`๋ผ๊ณ ๋ถ๋ฅธ๋ค.
-
Anonymous pipe
-
๋ถ๋ชจ-์์ ํ๋ก์ธ์ค ๊ด๊ณ์ฒ๋ผ ํ๋ก์ธ์ค๋ฅผ ๋ช ํํ ์ ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
-
ํ๋์ ํ๋ก์ธ์ค๋ ์ฐ๊ธฐ, ํ๋์ ํ๋ก์ธ์ค๋ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๋ฏ๋ก ๋ฐ์ด์ค ํต์ ์ด๋ผ๊ณ ํ๋ค.
-
๋ง์ฝ ๋ ํ๋ก์ธ์ค ๋ชจ๋ ์ฝ๊ธฐ/์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ๋ ค๋ฉด 2๊ฐ์ ํ์ดํ๋ฅผ ์ฐ๊ฒฐํ์ฌ์ผ ํ๋ค.
-
-
Named pipe
-
Anonymous piple์ ๋ฌ๋ฆฌ, ๋ถ๋ชจ-์์ ํ๋ก์ธ์ค ๊ด๊ณ๊ฐ ์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํต์ ์ ํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ฉฐ ๋๋จธ์ง๋ ๋์ผํ๋ค.
-
-
Message Queue
-
์ ์ถ๋ ฅ ๋ฐฉ์์ pipe์ ์ ์ฌํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ผ๋ ์ฐจ์ด์ ์ด ์๋ค.
-
-
Shared Memory
-
์์ ๋ฐฉ์๋ค๊ณผ ๊ฐ์ด, ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ์์ด๋ค.
-
ํ๋ก์ธ์ค ๋ณ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ง์ ํ์ฌ, ํด๋น ์์ญ์ ์ก์ธ์คํจ์ผ๋ก์จ ๋น ๋ฅด๊ฒ ๋์ํ๋ค.
-
์ค๋ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก Critical Section์ ๋ํ ์์ธ๋ค์ ์ฒ๋ฆฌํด ์ฃผ์ด์ผ ํ๋ค.
-
-
Memory map
-
๊ณต์ ํ ๊ณ ์๋ ๋งค์ฒด๊ฐ ํ์ผ์ผ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
-
-
Socket
-
ํด๋ผ์ด์ธํธ ์๋ฒ๊ฐ ์์ผ์ ํตํด์ ํต์ ํ๋ ๊ตฌ์กฐ์ด๋ค.
-
์๊ฒฉ์์ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
-
DeadLock
๋ฉํฐ ์ค๋ ๋ ๋๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(Shared memory)์ ๊ฐ์ด ๊ณต์ ์์์ ์ ๊ทผํ๋ ๋ฐ ์์ด, ๋ฐ๋๋ฝ์ด ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋๋ฝ์ ํน์ ์กฐ๊ฑด์ผ๋ก ์ธํด, ๋ชจ๋ ๊ณต์ ์์์ ์ ๊ทผํ ์ ์์ด ์์ ์ด ์งํ๋์ง ์๋ ์ํฉ์ ๋งํ๋ค.
-
Mutual exclusion
-
ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์๋ค.
-
-
Hold and Wait
-
์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์, ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์๋ ์์์ ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์๋ค.
-
-
Non-Preemptive
-
๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ์ ์ ํ ์ ์๋ค.
-
-
Circular wait
-
ํ๋ก์ธ์ค๋ค ์ค์์ ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํ๋ค.
-
์์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ค๋ฉด, ํ๋ก์ธ์ค๋ค์ ๋ฐ๋๋ฝ์ ๋น ์ง๊ฒ ๋๋ค. ๋ฐ๋๋ฝ์ ๋ฐ์์ํค์ง ์๊ธฐ ์ํด์๋ Prevention, Avoidance, Detection, Recovery์ ๊ฐ์ ๋ฐฉ์์ ํตํด ํด๊ฒฐํ ์ ์๋ค.
-
Prevention
-
๋ฐ๋๋ฝ์ ๋ฐ์์ํค๋ 4๊ฐ์ง์ ์กฐ๊ฑด์ด ๋ฐ์ํ์ง ์๋๋ก ์ฌ์ ์ ๋ฐฉ์งํ๋ ๊ฒ์ด๋ค.
-
๋ชจ๋ ์กฐ๊ฑด์ ๋ถ์ ํจ์ผ๋ก์จ ์ฌ์ ์ ๋ฐฉ์งํ ์ ์๋ค.
-
-
-
Avoidance
-
๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ฉด, ์ด๋ฅผ ํํผํ๋ ๋ฐฉ๋ฒ์ด๋ค.
-
Banker's Algorithm
-
ํ๋ก์ธ์ค๊ฐ ์์ ํ ๋น์ ์๊ตฌํ ๋, ๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์๋ ์์ ์ํ์ธ์ง ํ์ธํ ํ ์์์ ํ ๋นํ๋ค.
-
์์ ์ํ๊ฐ ์๋๋ผ๋ฉด, ์์ ์ํ๊ฐ ๋ ๋๊น์ง ๋๊ธฐํ์๋ค๊ฐ ์์์ ํ ๋นํ์ฌ ๋ฐ๋๋ฝ์ ํํผํ๋ค.
-
-
-
Detection
-
์์ ํ ๋น ๊ทธ๋ํ๋ฅผ ํตํด ๊ต์ฐฉ ์ํ๋ฅผ ํ์งํ๋ค.
-
์์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด, ํ์ง ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ฏ๋ก ์ด์ ๋ํ ์ค๋ฒํค๋๊ฐ ์๋ค.
-
-
Recovery
-
๋ฐ๋๋ฝ์ ๋ฐ์์ํจ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ฑฐ๋, ํ ๋น๋ ์์์ ์ ์ ํ์ฌ ๋ณต๊ตฌ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.
-
๋ฐ๋๋ฝ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ฑฐ๋, ๋ฐ๋๋ฝ์ด ํด์๋ ๋๊น์ง ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๋ฐฉ์์ผ๋ก ๋๋๋ค.
-
์์ ์ ์ ์ ํตํ ๋ณต๊ตฌ ๋ฐฉ๋ฒ์ ๊ณต์ ์์์ ์ ์ ํ์ฌ, ์ฐ์ ์์์ ๋ฐ๋ผ ์ฌํ ๋นํ๋ค.
-
CPU Scheduling
ํน์ ํ๋ก์ธ์ค์๋ง CPU๊ฐ ํ ๋น๋์ง ์๊ณ , ํ๋ก์ธ์ค ๋ณ๋ก ๊ท ๋ฑํ๊ฒ CPU๋ฅผ ํ ๋นํ๊ธฐ ์ํด ํ์ํ๋ค. ์ ์ ํ CPU ์ค์ผ์ค๋ง์ ์ค์ผ์ค๋ง์ ์์ ์ ์ํ CPU ์ฌ์ฉ๋ฅ ์ ์ค์ฌ, ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๋ CPU ์ฌ์ฉ๋ฅ ์ ๋์ด๊ณ ๊ธฐ์ ํ์์ ์ค์ด๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์, CPU ์ค์ผ์ค๋ง์ ํจ์จ์ฑ์ ํ๋จํ๊ธฐ ์ํด์๋ `Response Time`: ์์ ์ด ์คํ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ., `Turnaround Time`: ์์ ์ด ์๋ฃ๋๋๋ฐ ๊น์ง, ์คํ ์๊ฐ, ๋๊ธฐ ์๊ฐ์ ํฉ์ฐํ ์๊ฐ. ์ ํตํด ํ๋จํ๋ค.
Preemptive / Non-preemptive
CPU ์ค์ผ์ค๋ง ๋ฐฉ์์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋๋ค. ์ฒซ ๋ฒ์งธ๋ ํน์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ ์ ์์์๋ ํ์์ ๋ฐ๋ผ ๊ฐ์ ๋ก ์ฌ์ฉ ๊ถํ์ ๋ฐํํ๋ ์ ์ (Preemptive) ๋ฐฉ์์ด๋ค. ๋ ๋ฒ์งธ๋ ํน์ ํ๋ก๋ ์ค๊ฐ ์์ฒด์ ์ผ๋ก CPU ์์์ ๋ฐ๋ฉํ์ฌ์ผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ ์ ์๋ ๋น์ ์ (Non-preemptive) ๋ฐฉ์์ด๋ค.
Preemptive Scheduling
-
FCFS(First Come First Served)
-
ํ์ ๋์ฐฉํ ์์๋๋ก CPU๋ฅผ ํ ๋นํ๋ ๋ฐฉ์์ด๋ค.
-
์์ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ ์์ ์ ์คํ์๊ฐ์ด ๊ธธ๋ค๋ฉด, ๋ค์ ์์ ๋ค์ ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๋ค.
-
-
SJF (Shortest Job First)
-
์ํ ์๊ฐ์ด ๊ฐ์ฅ ์งง๋ค๊ณ ํ๋จ๋๋ ์์ ๋ถํฐ ์ฐ์ ์ ์ผ๋ก CPU๋ฅผ ํ ๋นํ๋ค.
-
FSFS ๋ณด๋ค๋ ํ๊ท ๋๊ธฐ์๊ฐ์ด ์งง์ง๋ง, ํ์ค์ ์ผ๋ก ํด๋น ๋ฐฉ์์ ๋ถ๊ฐ๋ฅํ๋ค.
-
์ด๋ค ์์ ์ด ์งง๊ฒ ๋๋ ์ง ํ๋จํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
-
-
Non-preemptive Scheduling
-
Priority
-
์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ฌ, ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ ๋จผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
-
์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ Starvation์ ๋น ์ง ์ ์๋ค.
-
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Wating์ด ๊ธธ์ด์ง๋ฉด, ์ฐ์ ์์๋ฅผ ๋์ด๋ Aging์ ์ฌ์ฉํ๋ค.
-
-
-
RR (Round Robin)
-
๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๋์ผํ ์์ ์๊ฐ(Time Slice)์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
-
ํ ๋น ์๊ฐ์ด ํฌ๋ฉด FCFS์ ๊ฐ์ผ๋ฉฐ, ํ ๋น ์๊ฐ์ด ์งง๋ค๋ฉด ๋น๋ฒํ Context Switching์ด ๋ฐ์ํ์ฌ ์ฑ๋ฅ ์ ํ๊ฐ ๋ ์ ์๋ค.
-
-
Multi-level Queue
-
ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๋ค๋ฅธ ํ์ ๋ฐฐ์นํ๋ ๋ฐฉ์์ด๋ค.
-
ํ๋ค์ ์ฐ์ ์์์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ Time Slice๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฐ์ ์์๊ฐ ๋์์๋ก ํ ๋น๋๋ Time Slice์ ํฌ๊ธฐ๊ฐ ํฌ๋ค.
-
Paging
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํตํด ๋ฉ๋ชจ๋ฆฌ ๋จํธํ(์ธ๋ถ ๋จํธํ)๊ฐ ๋ฐ์ํ๋ฉฐ, ๋ฐ๋ณต๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์ ํจ์จ์ฑ์ ์ ํดํ๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค๋ฅผ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ํ ๋นํ์ง ์๊ณ , ํ๋ก์ธ์ค๋ฅผ ์์ ํฌ๊ธฐ๋ก ๋๋ ์ฌ๋ฌ ๋ถ๋ถ์ ํ ๋นํจ์ผ๋ก์จ, ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ๋ ๊ฒ์ ํ์ด์ง(Paging)์ด๋ผ๊ณ ํ๋ค.
Address Translation
ํ๋ก์ธ์ค๋ Physical memory์์๋ ๋ถ๋ฆฌ๋ ๊ณต๊ฐ์ ํ ๋น๋์ง๋ง, CPU๋ ์ฐ์๋ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๊ด๋ฆฌํ๋ค. ์ด๋ MMU(Memory Management Unit)์ ํตํด ๋ ผ๋ฆฌ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๋๋์๊ธฐ์ ๊ฐ๋ฅํ๋ค.
์ฆ ํ๋ก์ธ์ค๋ ์ฐ์๋ ๋ ผ๋ฆฌ ์ฃผ์(Logical Address)๋ฅผ ๊ฐ์ง์ง๋ง, ๋ถ๋ฆฌ๋ ๋ฌผ๋ฆฌ ์ฃผ์(Physical Address)๋ฅผ ๊ฐ์ง๋ฉฐ ํ์ด์ง ํ ์ด๋ธ์ ํตํด ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํ์ฌ, Memory์ ์ ๊ทผํ๋ค.
Page Table
ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ ๋๋ CPU์ ์์ฃผ(์ปดํจํฐ ๋ถํ ํ ๊ณ์ํด์ ์ ์งํจ.) ์ํฌ ์ ์๋ค. CPU์ ํ์ด์ง ํ ์ด๋ธ์ ์ ์งํ ๊ฒฝ์ฐ ๋น ๋ฅธ ์๋๋ก ํ์ด์ง ํ ์ด๋ธ์ ์ ๊ทผํ ์ ์์ง๋ง, ํ์ ๋ CPU ๋ ์ง์คํฐ๋ก ์ธํด ์ด์ ๊ฐ์ ์์ ์ ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์ด์ ๋ฌ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํ ์ด๋ธ์ ์ ์งํ ๊ฒฝ์ฐ, CPU์ ๋ฌ๋ฆฌ ์๋๋ ๋๋ฆฌ์ง๋ง ์๋์ ์ผ๋ก ๋ง์ ํ์ด์ง ํ ์ด๋ธ์ ํ ๋นํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ฐ๋ผ์, ํ์ฌ ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ค.
TLB
CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ `TLB(Translation Look-aside Buffer)`๋ฅผ ๋์ด, ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ํ ์ด๋ธ์ ์ ์งํ๋๋ผ๋ ํจ์จ์ฑ์ ๋์ธ๋ค. `EMAT(Effective Memory Access Time)`์ ๊ณ์ฐํ์ฌ TLB์ ํจ์จ์ฑ์ ์ ์ ์๋ค.
Segmentation
์ธ๊ทธ๋จผํ ์ด์ ์ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ด์ง๊ณผ ๊ฐ์ด ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋๋ ๊ฒ์ด ์๋, ์ฉ๋์ ๋ง๊ฒ ๊ฐ๋ณ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค. ๋ฐ๋ผ์ ๊ฐ๋ณ์ ์ธ ํฌ๊ธฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ํ๋ํ๊ธฐ ์ํด ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์ ์ ์งํ์ฌ์ผ ํ๋ค. ์ธ๊ทธ๋จผํ ์ด์ ์ ํ์ด์ง์ ์ฌ์ฉํ์ง ์์ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ํฌ๊ธฐ์ ๋จํธํ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์ด์ง ๊ธฐ๋ฒ์ ๋ง์ด ์ฌ์ฉํ๋ค.
Virtual memory
๋ถ์กฑํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ์ฌ, ์๋์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฐ์ด ํฐ ๋ณด์กฐ ์ ์ฅ์ฅ์น(SSD, HDD)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ํ ๋ฒ์ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ๋ถ๋ถ์ ์ ์ฌํ๋ ๊ฒ์ด ์๋, ํ์ฌ ์์ ์ฒ๋ฆฌ์ ํ์ํ ๋ถ๋ถ๋ง ์ ์ฌํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ ์ค์ด์ง ์๋ ๋ถ๋ถ์ ๋ณด์กฐ ์ ์ฅ์ฅ์น๋ก ๋ณด๋ด์ด ๊ณต๊ฐ์ ํ๋ณดํ๋ค.
Page Fault
ํ๋ก์ธ์ค์ ์๊ตฌ์ ๋ฐ๋ผ ํ์ด์ง ํ ์ด๋ธ์ ์ ๊ทผํ์์ ๋ ํด๋น ํ์ด์ง๊ฐ invalid ์ํ(๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ง ์์ ์ํ)๋ผ๋ฉด ํด๋น ํ์ด์ง๋ฅผ ๋ถ๋ฌ๋ค์ด๋ ์์ ์ด ํ์ํ๋ค. ์ด์ ๊ฐ์ด ์ ๊ทผํ๊ณ ์ ํ๋ ํ์ด์ง๊ฐ invalid์ธ ๊ฒฝ์ฐ๋ฅผ Page Fault๋ผ๊ณ ํ๋ค.
Page Fault๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋์ํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
-
ํ์ด์ง ํ ์ด๋ธ์ valid-bit๋ฅผ ํตํด ์ ๊ทผํ๊ณ ์ ํ๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋์ง ํ์ธํ๋ค.
-
valid-bit๊ฐ 0์ด๋ผ๋ฉด trap์ ํตํด ์ปค๋๋ก ์ง์ ํ๋ค.
-
์ปค๋์ ํด๋นํ๋ ํ์ด์ง๋ฅผ ๋ณด์กฐ ์ ์ฅ์ฅ์น์์ ํ์ํ๋ค.
-
๋ฉ๋ชจ๋ฆฌ์ ํด๋น ํ์ด์ง๋ฅผ ํ ๋นํ๋ค.
-
ํ ๋น๋ ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ํ์ด์ง ํ ์ด๋ธ์ ๊ฐฑ์ ํ๋ค.
-
Page Fault๋ฅผ ๋ฐ์์ํจ ๋ช ๋ น์ด๋ฅผ ์ํํ๋ค.
Page Replacement
ํ์ฌ ํ ๋น๋ ํ์ด์ง ์ค์ victim page(๊ต์ฒดํ ๋์)์ ์ ์ ํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
-
FIFO
-
๊ฐ์ฅ ๋จผ์ ํ ๋น๋ ํ์ด์ง๋ฅผ ํ ๋น ํด์ ํ๋ ๋ฐฉ์์ด๋ค.
-
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก ์ด๊ธฐํ ๊ณผ์ ์ ์ฝ๋๋ ๋ ์ด์ ๋ถํ์ํ ๊ฒ์ด๋ผ๋ ์์ด๋์ด์์ ์ค๊ณ๋์๋ค.
-
๋จ์ํ ํ ๋น๋ ์์์ ๋ฐ๋ผ victim์ผ๋ก ์ ์ ํ๊ฒ ๋๋ฉด ์คํ๋ ค ํ์ด์ง ๊ต์ฒด๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค.
-
Belady's Anomaly
-
ํ์ด์ง๋ฅผ ํ ๋นํ ์ ์๋ ๊ณต๊ฐ์ ๋๋ ธ์์๋ ๋ถ๊ตฌํ๊ณ , FIFO๋ฅผ ํตํด ํ์ด์ง๋ฅผ ๊ต์ฒดํ ๊ฒฝ์ฐ ์ฌ์ ํ page fault ๋น๋๊ฐ ์ฆ๊ฐํ๋ ํ์์ ๋งํ๋ค.
-
-
-
OPT
-
๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒด ๋์์ผ๋ก ์ ์ ํ๋ ๋ฐฉ์์ด๋ค.
-
ํฅํ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ง ์ ์ ์๊ธฐ์ ์ค์ ๋ก๋ ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ ๋ฐฉ์์ด๋ค.
-
-
LRU (Least Recently Used)
-
๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋์๋ค๋ฉด, ํฅํ์๋ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค๊ณ ํ๋จํ์ฌ ์ต๊ทผ์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒด ๋์์ผ๋ก ์ ์ ํ๋ ๋ฐฉ์์ด๋ค.
-
์ค์ ๋ก ๊ตฌํํ๊ณ ์ฌ์ฉํ ์ ์๋ ํ์ด์ง ๊ต์ฒด ๋ฐฉ์ ์ค ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ค.
-
Disk Scheduling
-
FCFS (First-Come First-Served)
-
๊ฐ์ฅ ๋จผ์ ์์ฒญ๋ ์์ ์ ๋จผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์.
-
-
SSTF (Shortest Seek Time First)
-
์์ฒญ๋ ์์ ์ค ํค๋์ ์์ง์์ด ๊ฐ์ฅ ์งง๊ฒ ์์ง์ด๋ ์์ ๋ถํฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
-
-
SCAN
-
์๋ฆฌ๋ฒ ์ดํฐ์ฒ๋ผ ํ ๋ฐฉํฅ์ผ๋ก ํ์์ ํ๊ณ , ๋ค์ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ํ์์ ํ๋ ๋ฐฉ์
-
-
C-SCAN
-
SCAN ์๊ณ ๋ฆฌ์ฆ์์ ํ ๋ฐฉํฅ์ผ๋ก ํ์์ด ๋๋๋ฉด ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ด ์๋, ์ฆ์ ์์ ์์น๋ฅผ ๋ฐ๋๋ก ์ฎ๊ฒจ์ ํ์์ ์งํํ๋ ๋ฐฉ์
-
-
C-LOOK
-
0๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์๋๋ผ๋, ํ์์ ์ง์ํ๋ Scan์ ๋จ์ ์ ๋ณด์ํ ๋ฐฉ์
-
'๐๏ธโโ๏ธ ๊ธฐ๋ฐ ๋ค์ง๊ธฐ > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์์ฒด์ : ๋์คํฌ ์ค์ผ์ค๋ง (0) | 2020.06.23 |
---|---|
์ด์์ฒด์ : ํ๋ ์ ํ ๋น (0) | 2020.06.23 |
์ด์์ฒด์ : ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ (0) | 2020.06.22 |
์ด์์ฒด์ : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ (0) | 2020.06.22 |
์ด์์ฒด์ : ์ธ๊ทธ๋จผํ ์ด์ (0) | 2020.06.22 |