๐งช Computer Science/Operating System(5)
-
[์ด์์ฒด์ ] ํ๋ก์ธ์ค ๋๊ธฐํ
์๊ณ์์ญ(Critical Section) ๋ฉํฐ ์ค๋ ๋ฉ์ ๋ฌธ์ ์ ์์ ๋์ค๋ฏ, ๋์ผํ ์์์ ๋์์ ์ ๊ทผํ๋ ์์ ์ ์คํํ๋ ์ฝ๋ ์์ญ์ ์๊ณ์์ญ(Critical Section)์ด๋ผ ํ๋ค. ์๊ณ์์ญ ๋ฌธ์ (Critical Section Problem) ํ๋ก์ธ์ค๋ค์ด Critical Section์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ํ๋กํ ์ฝ์ ์ค๊ณํ๋ ๊ฒ์ด๋ค. ํด๊ฒฐ์ ์ํ ๊ธฐ๋ณธ ์กฐ๊ฑด(Requirements) ์ํธ ๋ฐฐ์ (Mutual Exclusion) ํ๋ก์ธ์ค A๊ฐ Critical Section์์ ์คํ ์ค์ด๋ผ๋ฉด, ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ๊ทธ๋ค์ด ๊ฐ์ง Critical Section์์ ์คํ๋ ์ ์๋ค. ์งํ(Progress) Critical Section์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์๊ณ , ๋ณ๋์ ๋์์ด ์๋ ํ๋ก์ธ์ค๋ค๋ง Critical..
-
[์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ฌ(CPU Scheduler)
์ค์ผ์ค๋ง ๋์์ Ready Queue์ ์๋ ํ๋ก์ธ์ค๋ค์ด๋ค. ๋น์ ์ ํ(Non-Preemptive) ์ค์ผ์ค๋ง ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๋ค๋ฉด I/O๋ ์ธํฐ๋ฝํธ ๋ฐ์ ๋๋ ํ๋ก์ธ์ค ์ข ๋ฃ๊น์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ์ง ๋ชปํ๋ ๊ฒ FCFS(First Come First Served) ํน์ง ํ๋ก์ธ์ค์ ๋์ฐฉ ์์๋๋ก CPU๋ฅผ ํ ๋น ๋ฌธ์ ์ convoy effect ์์์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๊ฐ ๋จผ์ ๋๋ฌํ์ฌ ํจ์จ์ฑ์ ๋ฎ์ถ๋ ํ์์ด ๋ฐ์ํ๋ค. SJF(Shortest Job First) ํน์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ๋์ฐฉํ์ด๋ CPU ์์ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค์ ๋จผ์ CPU๋ฅผ ํ ๋น ๋ฌธ์ ์ starvation ์ฌ์ฉ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๋ ๊ฑฐ์ ์์ํ CPU๋ฅผ ํ ๋น๋ฐ์ ์ ์๋ค. ์ ์ ํ(Preemptive) ์ค์ผ์ค๋ง ํ๋ก์ธ์ค..
-
[์ด์์ฒด์ ] ๋ฉํฐ ํ๋ก์ธ์ค vs ๋ฉํฐ ์ฐ๋ ๋
๋ฉํฐ ํ๋ก์ธ์ค ํ๋์ ํ๋ก๊ฐ๋ฆ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ํ๋ก์ธ์ค๊ฐ 1๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ ํน์ง ์ฅ์ 1๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ์์ ํ๋ก์ธ์ค ์ด์ธ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ๊ณ์ ์คํ๋๋ค. ๋จ์ Context Switching์ ์ํ ์ค๋ฒํค๋(์บ์ ์ด๊ธฐํ, ์ธํฐ๋ฝํธ ๋ฑ)๊ฐ ๋ฐ์ํ๋ค. ํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์๊ธฐ ๋๋ฌธ์ ํต์ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค. ๋ฉํฐ ์ฐ๋ ๋ ํ๋์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ์ฐ๋ ๋๊ฐ 1๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ ํน์ง ์ฅ์ ํ๋ก์ธ์ค๋ฅผ ์ํด ์์์ ํ ๋นํ๋ ์์คํ ์ฝ์ด๋ Context Switching์ ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์๋ค. ์ฐ๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์, ํต์ ์ด ์ฝ๊ณ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋จ์ ํ๋์ ์ฐ๋ ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด..
-
[์ด์์ฒด์ ] ํ๋ก์ธ์ค vs ์ฐ๋ ๋
๋ฉ๋ชจ๋ฆฌ๋? ๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ์์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฒ๋ฆฌ ๋์์ด๋ ๊ฒฐ๊ณผ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ์ ๋ณด๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์ฒ๋ฆฌ๋๋ค. ํ๋ก์ธ์ค์ ์ฐ๋ ๋์ ์ฐจ์ด ํ๋ก์ธ์ค(Process) ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค ํน์ง ์ด์์ฒด์ ๋ก๋ถํฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ๋๋ค.(๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์์ ์ ๊ทผ X) ํ๋ก์ธ์ค๋ค์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํต์ ํ๊ธฐ ์ํด IPC๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ํ๋ก์ธ์ค๋ ์ต์ 1๊ฐ์ ์ฐ๋ ๋(๋ฉ์ธ ์ฐ๋ ๋)๋ฅผ ๊ฐ์ง๊ณ ์๋ค. PCB(Process Control Block, ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก) PCB๋ ํน์ ํ๋ก์ธ์ค์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ ์ด์์ฒด์ ์ ์๋ฃ๊ตฌ์กฐ๋ค. ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด, ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ๋์์ ๊ณ ์ ํ PCB๋ฅผ ..
-
[์ด์์ฒด์ ] ์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ?
์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ? ์ด์์ฒด์ ๋? ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๊ณ์ธต ์ข์ ์๋ฏธ์ ์ด์์ฒด์ : ์ปค๋, ์ด์์ฒด์ ์ ํต์ฌ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ ๋์ ์๋ฏธ์ ์ด์์ฒด์ : ์ปค๋ + ์์คํ ์ ํธ๋ฆฌํฐ ์ด์์ฒด์ ์ ๋ชฉ์ ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ ์ ๊ณต ๋์ ์ฌ์ฉ์/ํ๋ก๊ทธ๋จ๋ค์ด ๊ฐ๊ฐ ๋ ์์ ์ปดํจํฐ์์ ์ํ๋๋ ๊ฒ ๊ฐ์ ํ์ ์ ๊ณต ํ๋์จ์ด๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ณต์กํ ๋ถ๋ถ์ ์ด์์ฒด์ ๊ฐ ๋ํ ์ปดํจํฐ ์์คํ ์ ์์(CPU, Memory, I/O device)์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ์ฌ์ฉ์ ๊ฐ์ ํํ์ฑ ์๋ ์์ ๋ถ๋ฐฐ(์ฃผ์ด์ง ์์์ผ๋ก ์ต๋ํ์ ์ฑ๋ฅ์ ๋ด๋๋ก) ์ฌ์ฉ์์ ์ด์์ฒด์ ์์ ์ ๋ณดํธ ํ๋ก์ธ์ค, ํ์ผ, ๋ฉ์์ง ๋ฑ์ ๊ด๋ฆฌ ์ด์์ฒด์ ์ ๋ถ๋ฅ ๋์ ์์ ๊ฐ..