ํ๋ก์ธ์ค(Process) ์ด์ผ๊ธฐ
ํ๋ก๊ทธ๋จ(Program)๊ณผ ํ๋ก์ธ์ค(Process), ๋ ๋จ์ด์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น์?
์ด๋ฒ ์ฃผ์ ๋ ํ๋ก์ธ์ค์ ๋ํด ์์๋ณด๊ณ ์ ํฉ๋๋ค.
โป ๋ณธ๋ฌธ ๋ด์ฉ์ ์ดํดํ๊ธฐ ์ํด CPU์ ๊ดํ ๊ธ์ ์ฝ์ผ์๋ฉด ๋์์ด ๋ฉ๋๋ค. (๋งํฌ ํด๋ฆญ)
1. ํ๋ก์ธ์ค(Process)?
์ด ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด, ๋ฉ๋ชจ๋ฆฌ ์์์ ๋์ํ๋ ์์
์ ๋จ์๋ฅผ ํ๋ก์ธ์ค(Process) ๋๋ ์์
(Task)์ด๋ผ๊ณ ํฉ๋๋ค.
๋ค์ ๋งํ๋ฉด '์คํ ์ค์ธ ํ๋ก๊ทธ๋จ'์ ์๋ฏธํ๋ ๊ฒ์ ๋๋ค.
< ์๋์ฐ '์์ ๊ด๋ฆฌ์'์ ํ์๋๋ ํ๋ก์ธ์ค ๋ชฉ๋ก >
์๋์ฐ์ '์์
๊ด๋ฆฌ์'๋ฅผ ์คํํ๋ฉด, ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค์ ๋ชฉ๋ก๊ณผ ๊ฐ ํ๋ก์ธ์ค์ ์์ด๋(PID)๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ๋ง์ ํ๋ก์ธ์ค๋ค์ ๊ด๋ฆฌํ๋ ค๋ฉด ๊ฐ ํ๋ก์ธ์ค์ ์ ๋ณด๊ฐ ํ์ํ๊ฒ ์ฃ ?
์ด๋ฌํ ํ๋ก์ธ์ค์ ์ ๋ณด๋ PCB(Process Control Block)๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ๋๋ฉฐ, ์ด PCB๋ฅผ ์ด์ฉํ์ฌ ๋ค์์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
PCB์๋ ํ๋ก์ธ์ค ID, ๋ถ๋ชจ PID(Process ID), ํ๋ก์ธ์ค ์ํ, ํ๋ก์ธ์ค ๊ถํ ๋ฑ์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
(์์ธํ ๋ด์ฉ์ 'ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก' ๋๋ PCB', 'Process Control Block'์ ๊ฒ์ํด ๋ณด์ธ์.)
2. ํ๋ก์ธ์ค์ ์ํ
ํ๋ก์ธ์ค๋ ๋ค์์ ๋ค์ฏ ๊ฐ์ง ์ํ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
< ํ๋ก์ธ์ค ๋ค์ด์ด๊ทธ๋จ >
โ ์์ฑ(New, Create) :
ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๋ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค.
โก ์ค๋น(Ready) :
ํ๋ก์ธ์ค๊ฐ ์คํ์ด ๊ฐ๋ฅํ ์ค๋น ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ๋จ๊ณ๋ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ํ๊ฐ ์๋๋๋ค.
์ฑ๊ธ ์ฝ์ด CPU์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์์ ๋, ํ๋์ ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ(Running)๋ผ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ์ค๋น ์ํ(Ready)์ ์์ต๋๋ค.
์ค์ผ์ฅด๋ฌ๊ฐ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ฅผ ์ ํ(Dispatch)ํ์ฌ ๋์(Running)์ํต๋๋ค.
โข ์คํ(Running) :
์ค์ผ์ฅด๋ฌ์ ์ํด ์ ํ(Dispatch)๋ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ์ค์ธ ์ํ์ ๋๋ค.
์ฑ๊ธ ์ฝ์ด 1์ค๋ ๋ CPU๋ผ๋ฉด ์ค์ง ํ๋์ ํ๋ก์ธ์ค๋ง ๋์ ์ํ๊ฐ ๋ฉ๋๋ค. ๋์ผ ์ฝ์ด 4์ค๋ ๋๋ผ๋ฉด 4๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋์ ์ํ๊ฐ ๋ ์ ์์ต๋๋ค.
ํ๋ก์ธ์ค๊ฐ ๋์ํ๋ ์ค์ ์ธ๋ถ ์ ํธ์ธ ์ธํฐ๋ฝํธ(Interrupt)๋ฅผ ๋ฐ๊ฒ ๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ต์ฒด(Context Switching)๊ฐ ๋ฉ๋๋ค.
โฃ ๋๊ธฐ(Waiting) :
์ธ๋ถ I/O ์ค ํ๋์ธ HDD์ ํ์ผ์ ์ ๊ทผํ๋ ์์ ์ ๊ฒฝ์ฐ, HDD๋ CPU๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ HDD์ Event๋ฅผ ์ฃผ๊ณ ์ ํธ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
CPU๋ ํจ์จ์ ์ผ๋ก ์ด์๋์ด์ผ ํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ์ธ๋ถ I/O ์ ๊ทผ์ ๋ฐ์ํ๋ ์ง์ฐ ์๊ฐ ๋๋ฌธ์ ๋ง๋ฅ ๋๊ธฐํ๊ฒ ๋๋ค๋ฉด CPU ์์ ํจ์จ์ด ๋จ์ด์ง๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ์๋ฃ Event ์ ํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค๋ ๋๊ธฐ(Waiting)์ํ๋ก ๋ฐ๋๋ฉฐ ์คํ ์ํ(Running)๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์๋ณดํ๊ฒ ๋ฉ๋๋ค.
์๋ฃ Evnet๋ฅผ ๋ฐ๊ฒ ๋๋ฉด ๋ค์ ์ค๋น ์ํ(Ready)๋ก ๋์๊ฐ๋๋ค.
โค ์ข ๋ฃ(Terminated) :
ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค.
'Computer > ETC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
PCIe (PCI Express) Bus (0) | 2018.11.12 |
---|---|
PCI (Peripheral Component Interconnect) Bus (0) | 2018.11.01 |
CPU ์ด์ผ๊ธฐ (0) | 2018.09.28 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
PCIe (PCI Express) Bus
PCIe (PCI Express) Bus
2018.11.12 -
PCI (Peripheral Component Interconnect) Bus
PCI (Peripheral Component Interconnect) Bus
2018.11.01 -
CPU ์ด์ผ๊ธฐ
CPU ์ด์ผ๊ธฐ
2018.09.28