
Computer Science/๐ Operating System

[์ด์์ฒด์ ] ์บ์ ๋ฉ๋ชจ๋ฆฌ(Cache Memory)์ ์ง์ญ์ฑ(Locality), ์บ์ฑ ๋ผ์ธ(Caching Line)
์บ์ ๋ฉ๋ชจ๋ฆฌ(Cache Memory) ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(์ฃผ๊ธฐ์ต์ฅ์น)์์ ์์ฃผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅํด ๋ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ ์๋๊ฐ ๋น ๋ฅธ ์ฅ์น(CPU ์ฐ์ฐ)์ ๋๋ฆฐ ์ฅ์น(๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ) ๊ฐ์ ์๋ ์ฐจ์ ๋ฐ๋ฅธ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ธฐ ์ํ ๋ฒ์ฉ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์์น ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ํ์๊ฐ ์ค์ด ์ปดํจํฐ ์ฒ๋ฆฌ ์๋ ํฅ์ ์บ์๊ฐ ํจ์จ์ ์ผ๋ก ๋์ํ๊ธฐ ์ํด์๋ CPU๊ฐ ์ฐธ์กฐํ ์ ๋ณด์ ๋ํด ์ ์์ธกํด์ผ ํจ ์บ์ ์ ์ค๋ฅ (Hit Rate)๋ฅผ ๊ทน๋ํ ์บ์์ ์ง์ญ์ฑ(Locality) ๊ณ ๋ ค ์บ์ ์ง์ญ์ฑ(Locality) ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ์ด ์๊ฐ์ /๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๊น๊ฒ ๋ฐ์ํ๋ ๊ฒ ๊ธฐ์ต์ฅ์น ๋ด์ ์ ๋ณด๋ฅผ ๊ท ๋ฑํ๊ฒ ์์ธ์คํ๋ ๊ฒ์ด ์๋ ์ด๋ ํ ์๊ฐ์ ํน์ ๋ถ๋ถ์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ํน์ฑ ์บ์ ์ ์ค..

[์ด์์ฒด์ ] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ - FIFO, OPT, LRU, NRU, LFU, MFU
ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ํ์ํ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๋ ํ์ด์ง ๋ถ์ฌ(page fault)๊ฐ ๋ฐ์ํ๋ฉด ์์ฒญ๋ ํ์ด์ง๋ฅผ ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์์ผ ํ๋ค. ์ด๋, ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋น ํ๋ ์์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ๋ฌผ๋ฆฌ ๋งค๋ชจ๋ฆฌ ๋ด ํ์ด์ง ์ค ํ๋๋ฅผ ์ ํํด์ ๋์คํฌ์ ์ค์ ์์ญ์ ๋ณด๋ด์ผ ํ๋ค.(Swapping) ์ด๋ฅผ ํ์ด์ง ๊ต์ฒด๋ผ๊ณ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ด ํ์ด์ง ๋ถ์ฌ์จ์ ์ต์ํํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋์คํฌ์ ์ค์ ์์ญ์ผ๋ก ๋ณด๋ผ ํ์ด์ง๋ฅผ ๊ฒฐ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค. FIFO(First In First Out) ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ์ด์ง๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋ด๋ณด๋ด๋ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ด ๊ฐ๋จํ์ง๋ง ํ์ด์ง์ ํฅํ ์ฐธ์กฐ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ง ์๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ธ ์ํฉ์ด ๋ฐ์ํ ์ ์์ ๋ค์ด์จ ์๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ฌ๋ผ..

[์ด์์ฒด์ ] ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ํ์ด์ง(Paging)๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ (Segmentation)
๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์ ๋ฉ๋ชจ๋ฆฌ ์์น, ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ ํ ๋น ์ฐ์ ํ ๋น๊ณผ ๋ถ์ฐ์ ํ ๋น์ผ๋ก ๋๋จ 1. ์ฐ์ ํ ๋น ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ๊ณต๊ฐ ํ ๋น ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค์์ ๊ณต๊ฐ์ผ๋ก ๋ถํ ํ์ฌ ํ๋์ ๋ถํ ๊ณต๊ฐ์ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋๋๋ก ํจ ๊ณ ์ ๋ถํ ๋ฐฉ์๊ณผ ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์ผ๋ก ๋๋จ 1-1) ๊ณ ์ ๋ถํ ๋ฐฉ์(Fixed Partition Allocation) ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ๋ถํ ํ์ฌ ๊ณ ์ ๋ ํฌ๊ธฐ๋ก ๋๋์ด ๊ด๋ฆฌํ๋ ๋ฐฉ์ ๋ถํ ํฌ๊ธฐ๋ ๋ชจ๋ ๋์ผํ ์๋ ์๊ณ ๋ค๋ฅผ ์๋ ์์ ๋ถํ ๋ ๊ณต๊ฐ์ ์๊ตฌ์ ์ผ๋ก ๊ณ ์ ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ์ ์๋ ํ๋ก๊ทธ๋จ์ ์ ๋ฐ ํฌ๊ธฐ๊ฐ ์ ํ์ ์ด๊ณ ์ตํต์ฑ์ด ๋จ์ด์ง ๋ด๋ถ ๋จํธํ(๋ด๋ถ ์กฐ๊ฐ)์ ์ธ๋ถ ๋จํธํ(์ธ๋ถ ์กฐ๊ฐ) ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ 1-2) ๊ฐ๋ณ ๋ถํ ๋ฐฉ์(Va..

[์ด์์ฒด์ ] ๋ด๋ถ ๋จํธํ(Internal Fragmentation)์ ์ธ๋ถ ๋จํธํ(External Fragmentation)
๐ก๋จํธํ(Fragmentation)๋? ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ถ๋ถ์ผ๋ก ๋๋์ด์ ์ถฉ๋ถํ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋จ์์์ง๋ง, ํ๋ก์ธ์ค ํ ๋น์ด ๋ถ๊ฐ๋ฅํ ์ํ ๋ด๋ถ ๋จํธํ(Internal Fragmentation) ํ๋ก์ธ์ค๊ฐ ํ์ํ ์๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ญ๋น ๋ฐ์ ํ๋ก์ธ์ค๋ ์ค์ ๋ก ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ์ง๊ณ ์๊ฒ ๋จ Ex) 100MB์ ๋ฉ๋ชจ๋ฆฌ์ 80MB ํฌ๊ธฐ์ ํ๋ก์ธ์ค ์ ์ฌ ๋ค์๊ณผ ๊ฐ์ 20MB์ ๋ด๋ถ ๋จํธํ ๋ฐ์ (ํด๋น ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๋ถ๊ฐ) ์ธ๋ถ ๋จํธํ(External Fragmentation) ๋จ์์๋ ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ๋ก์ธ์ค๊ฐ ์์ฒญํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ณด๋ค ํฌ์ง๋ง, ๋จ์์๋ ๊ณต๊ฐ์ด ์ฐ์์ ์ด์ง ์์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ชผ๊ฐ์ง ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๋ฐ์ ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ..

[์ด์์ฒด์ ] ๋ฎคํ ์ค(Mutex)์ ์ธ๋งํฌ์ด(Semaphore) - ๋๊ธฐํ
๊ต์ฐฉ ์ํ: https://zu-techlog.tistory.com/128 [์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ (Dead Lock, ๋ฐ๋๋ฝ) ๊ต์ฐฉ ์ํ(Dead Lock, ๋ฐ๋๋ฝ) ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ค์ด ์๋ก๊ฐ ๊ฐ์ง ์์์ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฉ์ถ์ด ์๋ ์ํ ํ๋ก์ธ์ค A๋ ์์ 1์ ๊ฐ์ง๊ณ ์ ์์ 2๋ฅผ ์๊ตฌ, ํ๋ก์ธ์ค B๋ ์์ 2๋ฅผ ๊ฐ์ง๋ฉด์ ์ zu-techlog.tistory.com ์๊ณ ์์ญ๊ณผ ๊ฒฝ์ ์ํ: https://zu-techlog.tistory.com/129 [์ด์์ฒด์ ] ์๊ณ ์์ญ(Critical Section)๊ณผ ๊ฒฝ์ ์ํ(Race Condition) ์๊ณ ์์ญ(Critical Section) ๋ ์ด์์ ํ๋ก์ธ์ค ๋๋ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ์ ๊ทผํ ๋ ์์ ๋ฑ์ ์ด์ ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ ์ฝ๋ ์..

[์ด์์ฒด์ ] ์๊ณ ์์ญ(Critical Section)๊ณผ ๊ฒฝ์ ์ํ(Race Condition)
์๊ณ ์์ญ(Critical Section) ๋ ์ด์์ ํ๋ก์ธ์ค ๋๋ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ์ ๊ทผํ ๋ ์์ ๋ฑ์ ์ด์ ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ ์ฝ๋ ์์ญ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ง ์ ๊ทผํ ์ ์๋ ์ฝ๋ ์์ญ ํ ํ๋ก์ธ์ค๊ฐ critical section์ ์ ๊ทผํ๊ณ ์ ํ์ง๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ด๋ฏธ ํด๋น ์์ญ์์ ์์ ์ ํ๊ณ ์๋ค๋ฉด entry section์์ ๋๊ธฐํ๊ณ ์๋ค๊ฐ exit section์ผ๋ก๋ถํฐ ์์ ์ข ๋ฃ ์ ํธ๋ฅผ ๋ฐ์ผ๋ฉด critical section์ ์ง์ ํ๋๋ก ๋๊ธฐํ ํ์ ์ํธ ๋ฐฐ์ (Mutual Exclusion): ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์์ ์์ ์ค์ด๋ผ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํต์ ๊ฐ ํ์ํจ ์งํ(Progress): ์๋ฌด๋ ์๊ณ ์์ญ์ ์ง์ ํ์ง ๋ชปํ๋ฉด ์๋๋ฉฐ ์๋ฌด๋ ์๊ณ์์ญ์ ..

[์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ (Dead Lock, ๋ฐ๋๋ฝ)
๊ต์ฐฉ ์ํ(Dead Lock, ๋ฐ๋๋ฝ) ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ค์ด ์๋ก๊ฐ ๊ฐ์ง ์์์ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฉ์ถ์ด ์๋ ์ํ ํ๋ก์ธ์ค A๋ ์์ 1์ ๊ฐ์ง๊ณ ์ ์์ 2๋ฅผ ์๊ตฌ, ํ๋ก์ธ์ค B๋ ์์ 2๋ฅผ ๊ฐ์ง๋ฉด์ ์์ 1์ ์๊ตฌ ๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด ์ํธ ๋ฐฐ์ (Mutual Exclusion) ํ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง์ด ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์์ด์ผ ํจ ์ ์ ์ ๋๊ธฐ(Hold and Wait) ๋ชจ๋ ํ๋ก์ธ์ค๋ ์ต์ ํ๋์ ์์์ ์ ์ ํ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ด์ผ ํจ ๋น์ ์ (Non Preemption) ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์ ์๊ฒ ํ ๋น๋ ์์์ ๋ชจ๋ ์ฌ์ฉํด ๋ฐํํ ๋๊น์ง ๊ฐ์ ๋ก ๋บ์ด์ฌ ์ ์์ด์ผ ํจ ํํ ๋๊ธฐ(Circular Wait) ๊ณต์ ์์๊ณผ ํด๋น ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค..

[์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ - ๋น์ ์ ํ, ์ ์ ํ
๐ก CPU ์ค์ผ์ค๋ง ์ฒ๋ 1. CPU ์ด์ฉ๋ฅ (CPU utilization): ์๊ฐ๋น CPU๋ฅผ ์ฌ์ฉํ ์๊ฐ์ ๋น์จ 2. ์ฒ๋ฆฌ์จ(Throughput): ์๊ฐ๋น ์ฒ๋ฆฌํ ์์ ์ ๋น์จ 3. ๋ฐํ์๊ฐ(Turnaround Time): ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ํ ์ข ๋ฃ๋์ด ์ฌ์ฉํ๋ ์์์ ๋ชจ๋ ๋ฐํํ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ 4. ๋๊ธฐ์๊ฐ(Waiting Time): ๋๊ธฐ์ด์ ๋ค์ด์ CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆฐ ์๊ฐ 5. ๋ฐ์์๊ฐ(Response Time): ๋๊ธฐ์ด์์ ์ฒ์์ผ๋ก CPU๋ฅผ ์ป์ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ -> CPU ์ด์ฉ๋ฅ ๊ณผ ์ฒ๋ฆฌ์จ์ ๊ทน๋ํํ๋ ๊ฒ์ด ์ข๊ณ ๋ฐํ์๊ฐ, ๋๊ธฐ์๊ฐ, ๋ฐ์์๊ฐ์ ์ค์ด๋ ๊ฒ์ด ์ข๋ค 1. CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ - ๋น์ ์ ํ ๋น์ ์ ํ ๋ฐฉ์(non-preemptive)์ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU ์์ ๊ถ์ ..