ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ค. ์ฆ, ๋ ๋ฆฝ ๋์ด์๋ค๋ ๊ฒ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ํฅ์ ๋ฐ์ง ์๋๋ค๊ณ ๋งํ ์ ์๋ค. (์ค๋ ๋๋ ํ๋ก์ธ์ค ์์์ ์์์ ๊ณต์ ํ๋ฏ๋ก ์ํฅ์ ๋ฐ๋๋ค)
์ด๋ฐ ๋ ๋ฆฝ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค ๊ฐ์ ํต์ ์ ํด์ผ ํ๋ ์ํฉ์ด ์์ ๊ฒ์ด๋ค. ์ด๋ฅผ ๊ฐ๋ฅํ๋๋ก ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก IPC ํต์ ์ด๋ค.
ํ๋ก์ธ์ค๋ ์ปค๋์ด ์ ๊ณตํ๋ IPC ์ค๋น๋ฅผ ์ด์ฉํด ํ๋ก์ธ์ค๊ฐ ํต์ ์ ํ ์ ์๊ฒ ๋๋ค.
์ปค๋์ด๋?
์ด์์ฒด์ ์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ผ๋ก, ๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ถ์ ์ฌ๋ฌ ๊ธฐ๋ณธ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํด์ค
ํ์ดํ๋ ๋ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฐ๊ฒฐํ๋๋ฐ ํ๋์ ํ๋ก์ธ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ๋ง ํ๊ณ , ๋ค๋ฅธ ํ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ๋ง ํ ์ ์๋ค.
ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ํต์ ์ด ๊ฐ๋ฅํ ๋ฐ์ด์ค ํต์ ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ฐ๋ผ์ ์์ชฝ์ผ๋ก ๋ชจ๋ ์ก/์์ ์ ํ๊ณ ์ถ์ผ๋ฉด 2๊ฐ์ ํ์ดํ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ ์ฅ์ ์ด ์๊ณ , ๋จ์ํ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ง ๋ ํ์ดํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค. ๋จ์ ์ผ๋ก๋ ์ ์ด์ค ํต์ ์ ์ํด 2๊ฐ๋ฅผ ๋ง๋ค์ด์ผ ํ ๋๋ ๊ตฌํ์ด ๋ณต์กํด์ง๊ฒ ๋๋ค.
์ต๋ช ํ์ดํ๋ ํต์ ํ ํ๋ก์ธ์ค๋ฅผ ๋ช ํํ ์ ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. (๋ถ๋ชจ-์์ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ฒ๋ผ)
Named ํ์ดํ๋ ์ ํ ๋ชจ๋ฅด๋ ์ํ์ ํ๋ก์ธ์ค๋ค ์ฌ์ด ํต์ ์ ์ฌ์ฉํ๋ค.
์ฆ, ์ต๋ช ํ์ดํ์ ํ์ฅ๋ ์ํ๋ก ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋ฌด๊ดํ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ํต์ ์ด ๊ฐ๋ฅํ ๊ฒ (ํต์ ์ ์ํด ์ด๋ฆ์๋ ํ์ผ์ ์ฌ์ฉ)
ํ์ง๋ง, Named ํ์ดํ ์ญ์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋์์ ๋ถ๊ฐ๋ฅํจ. ๋ฐ๋ผ์ ์ ์ด์ค ํต์ ์ ์ํด์๋ ์ต๋ช ํ์ดํ์ฒ๋ผ 2๊ฐ๋ฅผ ๋ง๋ค์ด์ผ ๊ฐ๋ฅ
์ ์ถ๋ ฅ ๋ฐฉ์์ Named ํ์ดํ์ ๋์ผํจ
๋ค๋ฅธ์ ์ ๋ฉ์์ง ํ๋ ํ์ดํ์ฒ๋ผ ๋ฐ์ดํฐ์ ํ๋ฆ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.
์ฌ์ฉํ ๋ฐ์ดํฐ์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ฉด์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.
ํ์ดํ, ๋ฉ์์ง ํ๊ฐ ํต์ ์ ์ด์ฉํ ์ค๋น๋ผ๋ฉด, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๊ณต์ ํ๋๋ก ์ง์ํ๋ ์ค๋น๋ค.
ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๋ฉฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ๋ฐ๋์ ๋ณดํธ๋์ผํ๋ค. ํ์ง๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ํด์ผํ๋ ์ํฉ๋ ํ์ํ ๊ฒ์ด๋ค. ํ์ดํ๋ฅผ ์ด์ฉํด ํต์ ์ ํตํด ๋ฐ์ดํฐ ์ ๋ฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ค๋ ๋์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋๋ก ํด์ค๋ค๋ฉด ๋์ฑ ํธํ ๊ฒ์ด๋ค.
๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํด์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํด์ค๋ค.
ํ๋ก์ธ์ค๊ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ปค๋์ ์์ฒญํ๋ฉด, ์ปค๋์ ํด๋น ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ฃผ๊ณ ์ดํ ๋ชจ๋ ํ๋ก์ธ์ค๋ ํด๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.
์ค๊ฐ์ ์์ด ๊ณง๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ด์ IPC ์ค์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์๋ํจ
๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํด์ค๋ค. ๋ฉ๋ชจ๋ฆฌ ๋งต์ ์ด๋ฆฐ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋งตํ์์ผ์ ๊ณต์ ํ๋ ๋ฐฉ์์ด๋ค. (์ฆ ๊ณต์ ๋งค๊ฐ์ฒด๊ฐ ํ์ผ+๋ฉ๋ชจ๋ฆฌ)
์ฃผ๋ก ํ์ผ๋ก ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.
๋คํธ์ํฌ ์์ผ ํต์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ผ์ ํตํด์ ํต์ ํ๋ ๊ตฌ์กฐ๋ก, ์๊ฒฉ์์ ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ฌ์ฉํ๋ค.
์๋ฒ(bind, listen, accept), ํด๋ผ์ด์ธํธ(connect)
์ด์์ฒด์ ๊ฒ๊ฐ ํ๋ก์ธ์ค๋ค์๊ฒ CPU๋ฅผ ํจ์จ์ ์ผ๋ก ํ ๋นํ๊ธฐ ์ํ ์ ์ฑ
๊ณผ ์ ์ฐจ.
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋ ๋, ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ CPU ์์
์ ๊ณต์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์กฐ์ ํ๋ ์ ์ฐจ
CPU๋ฅผ ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅด ์ ๋ฐฐ์ ํ๊ธฐ
Batch System : ๊ฐ๋ฅํ๋ฉด ๋ง์ ์ผ์ ์ํ. ์๊ฐ๋ณด๋จ ์ฒ๋ฆฌ๋์ผ ์ค์Interative System : ๋น ๋ฅธ ์๋ต ์๊ฐ, ์ ์ ๋๊ธฐ ์๊ฐReal-time System : ๊ธฐํ ๋ง์ถ๊ธฐ
Interrupt, I/O or Completion, I/O or Event Wait, ExitI/O or Event Wait, Exitโ๏ธ ์น์ธ(Admitted) : ํ๋ก์ธ์ค ์์ฑ์ด ๊ฐ๋ฅํ์ฌ ์น์ธ๋จ.
โ๏ธ ์ค์ผ์ค๋ฌ ๋์คํจ์น(Scheduler Dispatch) : ์ค๋น ์ํ์ ์๋ ํ๋ก์ธ์ค ์ค ํ๋๋ฅผ ์คํ์ํด
โ๏ธ ์ธํฐ๋ฝํธ(Interrupt) : ์์ธ, ์
์ถ๋ ฅ, ์ด๋ฒคํธ ๋ฑ์ด ๋ฐ์ํ์ฌ ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋น ์ํ๋ก ๋ฐ๊พธ๊ณ , ํด๋น ์์
์ ๋จผ์ฒ ์ฒ๋ฆฌํ๋ ๊ฒ.
โ๏ธ ์
์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ๋๊ธฐ(I/O or Event wait) : ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์
์ถ๋ ฅ์ด๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ, ์
์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋ชจ๋ ๋๋ ๋๊น์ง ๋๊ธฐ ์ํ๋ก ๋ง๋๋ ๊ฒ.
โ๏ธ ์
์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ์๋ฃ(I/O or Event Completion) : ์
์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋น์ํ๋ก ์ ํํ์ฌ ์ค์ผ์ค๋ฌ์ ์ํด ์ ํ๋ ์ ์๋๋ก ๋ง๋๋ ๊ฒ.
์ธํฐ๋ฝํธ, I/O or wait ์ฐจ์ด
์ธํฐ๋ฝํธ๋ ์ด์ ์ฒด์ ๊ฐ ์ฆ์ ์ฒ๋ฆฌํด์ผ ํ๋ ์์ธ์ ์ธ ์ํฉ์ด๋ฉฐ, I/O or wait์ ํ๋ก์ธ์ค๊ฐ ์ ์์ ์ธ ํ๋ฆ ์ค ํ์ฉํ ์์์ ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์์ ๋ฐ์ํจ.
๋น์ ์ ์ค์ผ์ค๋ง
FCFS(First Come First Served)
SJF(Shortest Job First)
HRN(Hightest Response-ratio Next)
์ ์ ์ค์ผ์ค๋ง
Priority Scheduling
Round Robin
Time Quantum)์ด ํฌ๋ฉด FCFS์ ๊ฐ๊ฒ ๋๊ณ , ์์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ(Context Switching) ์ฆ์์ ธ ์ค๋ฒํด๋ ์ฆ๊ฐ.Multilevel-Quete(๋ค๋จ๊ณ ํ)
Time Quantum์ ์ค์ ํด์ฃผ๋ ๋ฐฉ์ ์ฌ์ฉTIme Quantum ํ ๋น. ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ ํฐ Tiem Quantum ํ ๋นMultilevel-Feedback-Quete(๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ)
Tune Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ๊ณ ์์ ์ Time Qyantum์ ๋ค ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ์๋ ํ ๊ทธ๋๋ก๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์๋ก ์์์ ์ป์ง ๋ชปํด์ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ
๋ฌดํํ ๋ค์ ์์์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ ์ํ.
์์คํ ์ ์ผ๋ก ํ์ ๋ ์์์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์.
ex) ์ธ๋๋ฌด ๋ค๋ฆฌ์์ ์๋ก๊ฐ ๋น์ผ์ฃผ๊ธธ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒฝ์ฐ
โ๋ฐ๋๋ฝ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ
ํ๋ก์ธ์ค 1๊ณผ 2๊ฐ ์์ 1, 2๋ฅผ ๋ชจ๋ ์ป์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
t1 : ํ๋ก์ธ์ค 1์ด ์์ 1์ ์ป์ / ํ๋ก์ธ์ค 2๊ฐ ์์ 2๋ฅผ ์ป์
t2 : ํ๋ก์ธ์ค 1์ ์์ 2๋ฅผ ๊ธฐ๋ค๋ฆผ / ํ๋ก์ธ์ค 2๋ ์์ 1์ ๊ธฐ๋ค๋ฆผ
โก๏ธ ํ์ฌ ์๋ก ์ํ๋ ์์์ด ์๋๋ฐฉ์ ํ ๋น๋์ด ์์ด์ ๋ ํ๋ก์ธ์ค๋ ๋ฌดํ์ wait ์ํ์ ๋น ์ง.
์ด๊ฒ์ด ๋ฐ๋ก DeadLock
โ๏ธ ์ฃผ๋ก ๋ฐ์ํ๋ ๊ฒฝ์ฐ
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ํ์ ๋ ์์์ ์ป๊ธฐ ์ํด ์๋ก ๊ฒฝ์ํ๋ ์ํฉ ๋ฐ์
ํ ํ๋ก์ธ์ค๊ฐ ์์์ ์์ฒญํ์ ๋, ๋์์ ๊ทธ ์์์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์. ์ด๋ ํ๋ก์ธ์ค๋ ๋๊ธฐ ์ํ์ ๋๋ ๊ฐ
๋๊ธฐ ์ํ๋ก ๋ค์ด๊ฐ ํ๋ก์ธ์ค๋ค์ด ์คํ ์ํ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ฅผ ๋ '๊ต์ฐฉ ์ํ' ๋ฐ์
๋ฐ๋๋ฝ(DeadLock) ๋ฐ์ ์กฐ๊ฑด
"4๊ฐ์ง๋ชจ๋ ์ฑ๋ฆฝ๋์ผ ๋ฐ๋๋ฝ ๋ฐ์"
์ํธ ๋ฐฐ์ (Mutual exclusion)
์ ์ ๋๊ธฐ(Hold and wait)
๋น์ ์ (No Preemption)
์ํ๋๊ธฐ(Circular wait)
๋ฐ๋๋ฝ ์ฒ๋ฆฌ
"๊ต์ฐฉ ์ํ๋ฅผ ์๋ฐฉ ๋ฐ ํํผ"
์๋ฐฉ : ๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ๊ฑฐํ๋ฉด์ ํด๊ฒฐํ๋ค (์์๋ญ๋น ์ฌํจ)
- ์ํธ๋ฐฐ์ ๋ถ์ : ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์ ์ฌ์ฉ
- ์ ์ ๋๊ธฐ ๋ถ์ : ํ๋ก์ธ์ค ์คํ ์ ๋ชจ๋ ์์์ ํ ๋น
- ๋น์ ์ ๋ถ์ : ์ ์ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ๊ฐ์ง ์์ ๋ฐ๋ฉ
- ์ํ๋๊ธฐ ๋ถ์ : ์์์ ๊ณ ์ ๋ฒํธ ํ ๋น ํ ์์๋๋ก ์์ ์๊ตฌ
ํํผ : ๊ต์ฐฉ ์ํ ๋ฐ์ ์ ํผํด๋๊ฐ๋ ๋ฐฉ๋ฒ
์ํ์ ์๊ณ ๋ฆฌ์ฆ
- ์ํ์์ ๋ชจ๋ ๊ณ ๊ฐ์ ์๊ตฌ๊ฐ ์ถฉ์กฑ๋๋๋ก ํ๊ธ์ ํ ๋นํ๋๋ฐ์ ์ ๋ํจ
- ํ๋ก์ธ์ค๊ฐ ์์์ ์๊ตฌํ ๋, ์์คํ ์ ์์์ ํ ๋นํ ํ์๋ ์์ ์ํ๋ก ๋จ์์๊ฒ ๋๋์ง ์ฌ์ ์ ๊ฒ์ฌํ์ฌ ๊ต์ฐฉ ์ํ ํํผ
- ์์ ์ํ๋ฉด ์์ ํ ๋น, ์๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์ ํด์ง๊น์ง ๋๊ธฐ
"๊ต์ฐฉ ์ํ๋ฅผ ํ์ง ๋ฐ ํ๋ณตํผ"
๊ต์ฐฉ ์ํ๊ฐ ๋๋๋ก ํ์ฉํ ๋ค์ ํ๋ณต์ํค๋ ๋ฐฉ๋ฒ
ํ๋ก์ธ์ค ์ข ๋ฃ ๋ฐฉ๋ฒ
์์ ์ ์ ๋ฐฉ๋ฒ