ํ๋ก์ธ์ค ๊ฐ์
ํ๋ก์ธ์ค(Process)
- ํ๋ก์ธ์ค(Process)๋? ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ
- ํ๋ก๊ทธ๋จ: ๋์์ ํ์ง ์๋ ์ ์ , ์๋์ ๊ฐ์ฒด
- ํ๋ก์ธ์ค: ๋์์ ํ๋ ๋ฅ๋์ ๊ฐ์ฒด
- ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ๋์
- ์์: CPU, ๋ฉ๋ชจ๋ฆฌ, ์ ์ถ๋ ฅ ์ฅ์น, ํ์ผ ๋ฑ
- ๋์: CPU๊ฐ ํ๋ก์ธ์ค์ ๋ช ๋ น์ ์คํ
ํ๋ก์ธ์ค(Process)์ ์ด์์ฒด์ (Operating System)
- ํ๋ก์ธ์ค ๊ด๋ฆฌ์์ ์ญํ
- ํ๋ก์ธ์ค๋ฅผ ์์ฑ ๋ฐ ์ญ์
- ํ๋ก์ธ์ค ์คํ(CPU ํ ๋น)์ ์ํ ์ค์ผ์ค ๊ฒฐ์
- ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ํ ์ ์ด๋ฅผ ์ฒ๋ฆฌ
ํ๋ก์ธ์ค์ ์ํ
- ์ํ ๋ชจ๋ธ
- ์์ฑ: ์ฒ์ ์์ ์ด ์์คํ ์ ์ฃผ์ด์ง ์ํ
- ์ค๋น: ์คํ ์ค๋น๊ฐ ๋์ด CPU ํ ๋น์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- ์คํ: ํ๋ก์ธ์ค๊ฐ ์ฒ๋ฆฌ๋๋ ์ํ
- ์ข ๋ฃ: ๋ชจ๋ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ด ์ฌ์ฉ์์๊ฒ ๋ฐํ๋๋ ์ํ
- ๋๊ธฐ: ํ๋ก์ธ์ค๊ฐ ํน์ ์์์ ํ ๋น๋ฐ์ ๋๊น์ง ๋๋ ์ ์ถ๋ ฅ(I/O, Input/Output) ์์ ์ด ๋๋ ๋๊น์ง ์์ ์ด ๋ณด๋ฅ๋๋ ์ํ
- ๋์คํจ์น(Dispatch): ์ค๋น๋จ๊ณ์์ ์คํ๋จ๊ณ๋ก ๊ฐ๋ ๊ณผ์
ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB, Process Control Block)
- ํ๋ก์ธ์ค์ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชฉ์
- ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๋ณด๊ด
- ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ์กด์ฌ
- ํ๋ก์ธ์ค๊ฐ ์งํํจ์ ๋ฐ๋ผ ๋ด์ฉ ๋ณ๊ฒฝ
ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ์ข ๋ฃ
- ํ๋ก์ธ์ค ์์ฑ ์์
- ํ๋ก์ธ์ค์ ์ด๋ฆ(๋ฒํธ, PID) ๊ฒฐ์
- ์ค๋น ํ์ ์ฝ์
- ์ด๊ธฐ ์ฐ์ ์์ ๋ถ์ฌ
- ํ๋ก์ธ์ค ์ ์ด(PCB) ์์ฑ ๋ฑ
- ํ๋ก์ธ์ค ์์ฑ ๋ฐฉ๋ฒ: ์์คํ ํธ์ถ
- ํ๋ก์ธ์ค ์์ฑ ์์คํ
ํธ์ถ
- ํ๋์ ํ๋ก์ธ์ค๊ฐ ํ๋ก์ธ์ค ์์ฑ ์์คํ ํธ์ถ์ ํตํด ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑ
- ํธ์ถํ๋ ํ๋ก์ธ์ค: ๋ถ๋ชจ ํ๋ก์ธ์ค
- ์์ฑ๋๋ ํ๋ก์ธ์ค: ์์ ํ๋ก์ธ์ค
- ์์คํ ํ๋ก์ธ์ค์ ์ฌ์ฉ์ ํ๋ก์ธ์ค ๋ชจ๋ ๋ถ๋ชจ ํ๋ก์ธ์ค ๊ฐ๋ฅ
- ์์ฑ๋๋ ํ๋ก์ธ์ค์ ์์
- ์ด์์ฒด์ ๋ก๋ถํฐ ์ง์ ์ป๋ ๊ฒฝ์ฐ
- ๋ถ๋ชจ ํ๋ก์ธ์ค ์์์ ์ผ๋ถ๋ฅผ ์ป๋ ๊ฒฝ์ฐ
- ์์ ํ๋ก์ธ์ค ์์์ ๊ฒฝ์ฐ ์์คํ ๊ณผ๋ถํ ๋ฐฉ์ง๋ฅผ ์ํด ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์์์ผ๋ก ์ ํ๋จ
- ํ๋ก์ธ์ค ์ข
๋ฃ ์์
- ํ๋ก์ธ์ค์ ๋ง์ง๋ง ๋ช ๋ น์ด ์คํ์ ๋ง์น๋ ๊ฒฝ์ฐ
- ํ๋ก์ธ์ค ์ข ๋ฃ ์์คํ ํธ์ถ์ ํตํ๋ ๊ฒฝ์ฐ
- ํ๋ก์ธ์ค ์ข ๋ฃ ํ ๋ถ๋ชจ ํ๋ก์ธ์ค์๊ฒ ์คํ๊ฒฐ๊ณผ๋ฅผ ๋๋๋ ค ์ค
- ํ๋ก์ธ์ค ์ข
๋ฃ ์์คํ
ํธ์ถ
- ๋ถ๋ชจ์ ์ํด์๋ง ํธ์ถ
- ์์ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์์์ ์ฌ์ฉ์ ์ด๊ณผํ ๋ ํน์ ๋ ์ด์ ํ์์น ์์ ๋
ํ๋ก์ธ์ค ๊ฐ์ ๊ด๊ณ
- ๋
๋ฆฝ์ ํ๋ก์ธ์ค
- ์๋ฏธ: ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ฐ์ง ์๊ณ ์ฃผ์ง๋ ์์
- ํ๋ก์ธ์ค ์ํ: ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ํ์ง ์์
- ์คํ
- ๊ฒฐ์ ์ : ์คํ๊ฒฐ๊ณผ๋ ์ ๋ ฅ ์ํ์ ์ํด์๋ง ๊ฒฐ์
- ์ฌ์ ๊ฐ๋ฅ: ์คํ๊ฒฐ๊ณผ๋ ๊ฐ์ ์ ๋ ฅ์ ๋ํ์ฌ ํญ์ ๋์ผ
- ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฌด๊ดํ๊ฒ ์ค๋จ ๋ฐ ์ฌ์์ ๊ฐ๋ฅ
- ์ ๊ธฐ์ ํ๋ก์ธ์ค
- ์๋ฏธ: ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ์ฃผ๊ณ ๋ฐ์
- ํ๋ก์ธ์ค ์ํ: ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ํจ
- ์คํ
- ๋น๊ฒฐ์ ์ : ์คํ๊ฒฐ๊ณผ๋ ์คํ ์์์ ์ข์ฐ๋๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ์์ธกํ ์ ์์
- ์ฌ์ ๋ถ๊ฐ๋ฅ: ์คํ๊ฒฐ๊ณผ๋ ๋์ผํ ์ ๋ ฅ์ ๋ํ์ฌ ํญ์ ๋์ผ์น ์์. ๋งค๋ฒ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ถ
์ค๋ ๋(Thread)
- ์ ํต์ ์ธ ํ๋ก์ธ์ค
- ์ฒ๋ฆฌ์ ๊ธฐ๋ณธ ๋จ์
- ์์ ์์ ์ ๋จ์(ํ๋์ ์ฃผ์ ๊ณต๊ฐ) ๋ฐ ๋์คํจ์นญ์ ๋จ์(ํ๋์ ์ ์ด ํ๋ฆ)
- ๋จ์ผ ํ๋ก์ธ์ค ๋ด์์ ๋์์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ. ์ฆ, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ -> ์ค๋ ๋ ๋ฑ์ฅ
- ์ค๋ ๋(Thread)
- ํ๋ก์ธ์ค ๋ด์์์ ๋ค์ค์ฒ๋ฆฌ๋ฅผ ์ํด ์ ์๋ ๊ฐ๋
- ํ๋์ ํ๋ก์ธ์ค ๋ด์๋ ํ๋ ์ด์์ ์ค๋ ๋๊ฐ ์กด์ฌ
- ํ๋์ ์ค๋ ๋ ๋ด์์๋ ํ๋์ ์คํ์ ๋ง ์กด์ฌ(๋์คํจ์นญ์ ๋จ์)
- ์คํ์ ํ์ํ ์ต์ํ์ ์ ๋ณด๋ง์ ๊ฐ์ง๋ฉฐ, ์์ ์ด ์ํด ์๋ ํ๋ก์ธ์ค์ ์คํํ๊ฒฝ์ ๊ณต์
- ์ผ์ชฝ ๊ทธ๋ฆผ์ ๋จ์ผ ์ค๋ ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก์ธ์ค
- ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ 3๊ฐ์ ์ค๋ ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก์ธ์ค
- ๋ค์ค ์ค๋ ๋์ ์ฅ์
- ๋ฉํฐ CPU ํน์ ๋ฉํฐ์ฝ์ด ์์คํ ์์๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์ฒ๋ฆฌ ์๋ ๋ณ๋ก ์ค๋ ๋๊ฐ ๋๋ ์ง ๊ฒฝ์ฐ ํจ์จ์ ์ธ ์ฒ๋ฆฌ ๊ฐ๋ฅ
์ค์ผ์ค๋ง(Scheduling)
์ค์ผ์ค๋ง ๋จ๊ณ
์ค์ผ์ค๋ง์ด๋? ์ฌ๋ฌ ๊ฐ์ง ์์ ๋ค์ ์ฒ๋ฆฌ ์์๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ
- ์ค์ผ์ค๋ง ๊ธฐ๋ณธ ๋ชฉํ
- ๊ณต์ ์ฑ: ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ ์ ์์ค์์ CPU ์์ ์ ํ ์ ์๊ฒ ํจ
- ๊ท ํ: ์์คํ ์ ์์๋ค์ด ์ถฉ๋ถํ ํ์ฉ๋ ์ ์๊ฒ ํจ
- ์์๋จ๊ณ ์ค์ผ์ค๋ง
- ์์คํ ์ ๋ค์ด์ค๋ ์์ ๋ค์ ์ ํํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ํ ํ๋ก์ธ์ค ์ค๋น ํ์ ์ ๋ฌ
- ์ ํ ๊ธฐ์ค: ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ์ด์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ
- ์ ์ถ๋ ฅ(I/O) ์ค์ฌ ์์ ๊ณผ ์ฐ์ฐ ์ค์ฌ ์์ ์ ๊ท ํ ์๊ฒ ์ ํ
- ์ค๊ฐ๋จ๊ณ ์ค์ผ์ค๋ง
- ํ๋ก์ธ์ค๋ฅผ ์ผ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐํ์ฌ ์ค์ง์ํค๊ฑฐ๋ ๋ค์ ํ์ฑํ์ํด
- ์์คํ ์ ๋ํ ๋จ๊ธฐ์ ์ธ ๋ถํ๋ฅผ ์กฐ์
- ํ์ ๋จ๊ณ ์ค์ผ์ค๋ง
- ์ฌ์ฉ ๊ฐ๋ฅํ CPU๋ฅผ ์ค๋น์ํ์ ์ด๋ ํ๋ก์ธ์ค์๊ฒ ๋ฐฐ๋นํ ์ง๋ฅผ ๊ฒฐ์
- CPU๋ฅผ ๋ฐฐ๋น๋ฐ์ ํ๋ก์ธ์ค๋ ๊ฒฐ๊ตญ ์คํ์ํ๊ฐ ๋์ด ํ๋ก์ธ์ค๊ฐ ์ฒ๋ฆฌ๋จ
- ์ํ ์ฃผ์ฒด: ๋์คํจ์ฒ(Dispatcher)
- ์ ์ (Preemptive) ์ค์ผ์ค๋ง ์ ์ฑ
- ์งํ ์ค์ธ ํ๋ก์ธ์ค์ ์ธํฐ๋ฝํธ(Interrupt)๋ฅผ ๊ฑธ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ๋ ์ค์ผ์ค๋ง ์ ๋ต
- ๋์ ์ฐ์ ์์์ ํ๋ก์ธ๋ฅผ ๊ธด๊ธํ๊ฒ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ์ ์ฉ
- ๋ํ์ ์๋ถํ ์์คํ ์์ ๋น ๋ฅธ ์๋ต ์๊ฐ์ ์ ์งํ๋๋ฐ ์ ์ฉ
- ๋ฌธ๋งฅ ๊ตํ์ ๋ฐ๋ฅธ ์ค๋ฒํค๋ ๋ฐ์
- ์ค๋ฒํค๋(Overhead): ์ค๋ฒํค๋๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์์ ๋ํ๋๋ ํ์์ค ํ๋. ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ ๋์ค์ ๋๋จ์ด์ง ์์น์ ์ฝ๋๋ฅผ ์คํ์์ผ์ผ ํ ๋, ์ถ๊ฐ์ ์ผ๋ก ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, ์์์ด ์ฌ์ฉ๋๋ ํ์.
์ฆ, ์ค๋ฒํค๋๋ ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ๋ค์ด๊ฐ๋ ๊ฐ์ ์ ์ธ ์ฒ๋ฆฌ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, ์์ ๋ฑ์ ๋งํจ
- ์ค๋ฒํค๋(Overhead): ์ค๋ฒํค๋๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์์ ๋ํ๋๋ ํ์์ค ํ๋. ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ ๋์ค์ ๋๋จ์ด์ง ์์น์ ์ฝ๋๋ฅผ ์คํ์์ผ์ผ ํ ๋, ์ถ๊ฐ์ ์ผ๋ก ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, ์์์ด ์ฌ์ฉ๋๋ ํ์.
- ๋น์ ์ (Non-Preemptive) ์ค์ผ์ค๋ง ์ ์ฑ
- ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ์ด ์์๋๋ฉด ์์ ์์ฒด๊ฐ I/O ์ธํฐ๋ฝํธ(Interrupt)๋ฅผ ๊ฑธ๊ฑฐ๋ ์์ ์ ์ข ๋ฃํ ๋๊น์ง ์คํ์ํ์ ์๊ฒ ๋จ
- ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๊ฒ ์์์ ๋ฐ๋ผ ์คํ๋จ -> ์ ๋ต ์๊ฐ ์์ธก ๊ฐ๋ฅ
- ์งง์ ํ๋ก์ธ์ค๊ฐ ๊ธด ํ๋ก์ธ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ ์ ์์
๋ณธ ๊ธ์ ํ๊ตญ๋ฐฉ์กํต์ ๋ํ๊ต ๊ฐ์๋ฅผ ์ฐธ๊ณ ํด ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
'๐ฅ CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ (0) | 2022.04.04 |
---|---|
[OS] ์ด์์ฒด์ ๊ฐ์ (0) | 2022.04.02 |