[OS] ํ๋ก์ธ์ค Process (1) - ํ๋ก์ธ์ค ๊ฐ๋ , ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค vs ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค, ps ๋ช ๋ น์ด
ํ๋ก๊ทธ๋จ (Program)
ํ๋ก๊ทธ๋จ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ง์ด ์ฐ๋ฏ ๊ทธ์ ํ๋์ ์ฑ?์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค. ์ฑ์ด๋ผ๋ ์ฉ์ด๊ฐ ์ฌ์ค ์ฌ๊ธฐ์ ์ ํํ์ง ์์ง๋ง ๋น์ ๊ณต์๋ถ๋คํํ ๋ ์ด๋ ๊ฒ ์ค๋ช ํ๋ฉด ์ฌ์ธ ๊ฒ ๊ฐ๋ค. ์๋ฅผ ๋ค์ด ํฌ๋กฌ์ด๋ ๋ ธ์ , ์๋ ๊ฐ์ ๊ฒ๋ค์ด ๋ค ํ๋ก๊ทธ๋จ์ด๋ค. (exe๊ฐ์ ๊ฑฐ ๋ถ์ฌ์ง ์ ๋ค!! exe๋ง๊ณ ๋ค๋ฅธ ํ์ฅ์๋ ๊ฐ๋ฅ~)
์ด๋ฌํ ํ๋ก๊ทธ๋จ์ ์ค๊ณํ ๋๋ ๋ณดํต C์ธ์ด์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ด๋ ํ ํ ์คํฌ๋ฅผ ์ํํ ์ ์๋ ๊ทธ์ ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ผ๊ณ ๋ณด๋ฉด ํธํ๋ค.
๊ทธ๋ ๋ค๋ฉด ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?
ํ๋ก์ธ์ค (Process)
์ด๋ ํ๋ก์ธ์ค๋ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ํ๋ก๊ทธ๋จ์ ์์ง ์คํ๋์ง ์์ ์ ์ ์ธ ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ผ๋ฉด, ํ๋ก์ธ์ค๋ ์คํ๋๊ณ ์๋ ๋์ ์ธ ์์ด๋ผ๊ณ ๋ณด๋ฉด ํธํ๊ฒ ๋ค!! ์ฌ์ค ํ๋ก์ธ์ค๋ ์ ํํ ๋งํ์๋ฉด ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๊ฐ์๊ธฐ ์ธ์คํด์คํ๋ ํท๊ฐ๋ฆด ์๋ ์๊ฒ ๋๋ฐ ์๋ฅผ๋ค์ด ํฌ๋กฌ์ฐฝ์ ๋๊ฐ ๋ ๋์๋ค๋ฉด, ํฌ๋กฌ์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ด ์๊ณ , 2๊ฐ์ ํฌ๋กฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ์ฆ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ด ์คํ๊ฐ๋ฅํ ์ํ๊ฐ ๋๋ฉด ์ด๋ฅผ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ ๊ฒ์ด๋ค.
์ ๋ฆฌํ์๋ฉด, ํ๋ก์ธ์ค๋ ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ๋๋ค.
ํ๋ก๊ทธ๋จ์ด ๋จ์ ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ผ๋ฉด, ํ๋ก์ธ์ค๋ ์ฝ๋ ์ ๋ณด ๋ฟ๋ง์๋๋ผ ์คํ, ํ ๋ฑ ์คํ์ ํ์ํ ๋ฐ์ดํฐ๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ค. (์์ธํ :
[๐ฅ๏ธ Computer Science/System] - [System] ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ / ๋ ์ด์์ )
ํํธ OS๋ ํ๋ก์ธ์ค๋ฅผ ํ๋ก์ธ์ค ์์ด๋(PID), ์ฆ ๊ณ ์ ํ ๋ฒํธ๋ฅผ ๋ถ์ฌ ๊ด๋ฆฌํ๋ค.
์๋ฅผ๋ค์ด ๋ฆฌ๋ ์ค์์๋ ๊ฐ์ฅ ๋จผ์ ์์๋๋ ํ๋ก์ธ์ค๋ก systemd์ด ์๋๋ฐ, ์ด ํ๋ก์ธ์ค์ PID๋ ํญ์ 1์ด๋ค. (์์ ์๋ init ํ๋ก์ธ์ค๊ฐ PID 1์ด์์ง๋ง ์์ฆ์ ์ฑ๋ฅ์ด ํจ์ฌ ์ข์ systemd๊ฐ ์ฌ์ฉ๋๊ณ ์๋ค. systemd์ ๊ดํด์๋ ๋ค๋ฅธ ํฌ์คํธ์์ ํฌ์คํธํ๊ฒ ๋ค)
์ด๋ ๊ฒ ํฌ๋กฌ ํ๋ก๊ทธ๋จ(์๋ฅผ๋ค์ด exe๋ก ๋๊ฒ๋ค์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ์๊ฐํ๋ฉด๋๋ค)์ด ์๊ณ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋ ์๋ ๊ฑธ ๋ณผ ์์๋ค. ๊ฐ์ ํ๋ก๊ทธ๋จ์ด์ด๋ ํ๋ก์ธ์ค ์์ด๋(PID)๋ ๋ชจ๋ ๋ค๋ฅธ ๊ฑธ ํ์ธ ํ ์ ์๋ค. (ํฌ๋กฌ์ฐฝ์ข ๊บผ์ผ๊ฒ ๋ค.. ๋ญ์ ๋ฆฌ ๋ง๋)
์ด์ฒ๋ผ ํ๋ก์ธ์ค ์์ด๋(PID)๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ์๋ณ์๋ผ๊ณ ๋ณผ ์ ์๋ค. (ํ๋ก๊ทธ๋จ ๊ฐ์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฉด PID ๋ค๋ฅด๋ค๋ ๊ฒ ์ ์!)
ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค vs ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค
ํ๋ก์ธ์ค๋ ๋ณดํต ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ฉด์ ์คํ๋๊ณ ๋์ ๋ณด์ด๋ ํ๋ก์ธ์ค(Foreground Process)์ ์ฌ์ฉ์ ์ ๋ ฅ๊ณผ ์๊ด ์์ด ๋ท๋จ์์ ์์ฉํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค(Background Process)๊ฐ ์๋ค.
์์ ๊ด๋ฆฌ์ ํญ์ ๋ณด๋ฉด ์๋์ ๊ฐ์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ํญ์ด ๋ฐ๋ก ๋๋์ด์ ธ์๋ค.
ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค | ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค |
์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ํ๋ก์ธ์ค | ํ๋ก์ธ์ค๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ์ง ์๊ณ ์์คํ ์์ ์คํ๋๋ ํ๋ก์ธ์ค |
์ต์ํ๋ฅผ ํ๋๋ผ๋ ๋์ ๋ณด์ด๋ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค | ๋์ ๋ณด์ด์ง ์์ง๋ง ๋ค์์ ์ผ์ ํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค |
์ธํฐ๋ท, ์นด์นด์คํก, ๋ฉ๋ชจ์ฅ, ๊ทธ๋ฆผํ ๋ฑ ๋์ ๋ณด์ด๋ ํ๋ก๊ทธ๋จ | ๋ฐฑ์ ํ๋ก๊ทธ๋จ, ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ, ๋ง์ดํฌ ๋๋ผ์ด๋ฒ ๋ฑ ๋์ ๋ณด์ด์ง ์๋ ํ๋ก๊ทธ๋จ |
์๊ฐ ํฌ๊ทธ๋ผ์ด๋, ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ ํฌ๊ด์ ์ธ ๊ตฌ๋ถ์ด์๋ค๋ฉด, ์ด์ ๋ฆฌ๋ ์ค์์ ํฌ๊ทธ๋ผ์ด๋, ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ๋ํ๋๋์ง ์ดํด๋ณด์.
Linux์์์ ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค vs ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค
Linux์์ ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ค์ ๋ณดํต ํฐ๋ฏธ๋์์ ์ฐ๋ฆฌ๊ฐ ๋ช ๋ น์ด๋ฅผ ์น๊ณ ๋์๊ฐ๋ ํ๋ก์ธ์ค๋ค์ ๋งํ๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ํด๋น ํ๋ก์ธ์ค์ ์ํ์ด ์ข ๋ฃ๋ ๋๊น์ง ํฐ๋ฏธ๋์ ๊ณ์ ์ ์ ํ๊ณ ์๋ค.
ํ์ง๋ง ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ ์ด ํ๋ก์ธ์ค๋ค์ ์ ์ดํ๋ ํฐ๋ฏธ๋์ด ์๋ค.
์ ๋ ๊ธ์ ์์ ์ค... ๊ณ์ ๋ง์ด๋ฌ๋ผ์ง ใ ใ
ํํธ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋์๊ฐ๋ ํ๋ก์ธ์ค๋ค์ ์๋์ฐ์์๋ ๋ณดํต '์๋น์ค'๋ก, ์ ๋์ค ๊ณํต OS์์๋ '๋ฐ๋ชฌ'์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค
๊ทธ๋ฐ๋ฐ ๋ฐ๋ชฌ์ด ๋ง์ด์ฐ์ฌ์ ์๋์ฐ์์๋ ๋ง์ด ๋ฐ๋ชฌ์ด๋ผ๊ณ ์ด๋ค๊ณ ํ๋ค.
ํ ....
์๋น์ค๋ ๋คํธ์ํฌ, ํ์ผ ๊ณต์ , ์น ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ด ์์
์ฌ์ฉ์ ์์ฒญ์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฐ๋ชฌ์ ํ์ฉ
๋ฐ๋ชฌ์ ์ฃผ๋ก ์์คํ ๋ถํ ์ ์๋์ผ๋ก ์์๋๋ฉฐ, ์ง์์ ์ผ๋ก ์คํ๋๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค
ps ๋ช ๋ น์ด
๋ฆฌ๋ ์ค์์ ํ๋ก์ธ์ค ๊ด๋ จ ์ ๋ณด๋ฅผ ์กฐํํ๊ธฐ ์ํ๋ค๋ฉด ps ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
man ps๋ฅผ ํด์ description์ ํ์ธํด ๋ณด์๋๋ ์๋์ ๊ฐ์๋ค.
ps displays information about a selection of the active processes.
์ฌ์ฉ๋ฒ
ps [option(s)]
์ ๊ทธ๋ฆผ์ฒ๋ผ ์๋ฌด ์ต์ ๋ ์ฃผ์ง ์์ผ๋ฉด ํ์ฌ ํฐ๋ฏธ๋์์ ์คํ๋๊ณ ์๋ ํ๋ก์ธ์ค๋ค์ ์ถ๋ ฅํด์ค๋ค.
-a : ์์คํ ์ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ์ฉ์์ ํ๋ก์ธ์ค ์ถ๋ ฅ
-u : ํ๋ก์ธ์ค ์์ ์์ ๋ํ ์ ๋ณด ์ถ๋ ฅ
-l : ํ๋ก์ธ์ค ๊ด๋ จ ์์ธ ์ ๋ณด ์ถ๋ ฅ
-x :ํฐ๋ฏธ๋์ ๋ก๊ทธ์ธํ ํ ์คํํ ํ๋ก์ธ์ค๊ฐ ์๋ ํ๋ก์ธ์ค๋ค๋ ์ถ๋ ฅํจ. ๋ณธ๋ ps ๋ช ๋ น์ ํ์ฌ shell์์ ์คํํ ํ๋ก์ธ์ค๋ค๋ง๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์ด ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
-e : ํด๋น ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ํ๊ฒฝ ๋ณ์ ์ ๋ณด๋ ํจ๊ป ์ถ๋ ฅ
-f : ํ๋ก์ธ์ค ๊ฐ ๊ด๊ณ ์ ๋ณด๋ ์ถ๋ ฅ
๋ณดํต ps -aux ์ ํด์ ๋ง์ด ์ฌ์ฉํ๋ค.
๋ํ pidof ๋ช ๋ น์ด๋ pgrep ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ํ๋ก์ธ์ค ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด ํด๋น ํ๋ก์ธ์ค์ PID๋ ์ ์ ์๋ค.
$ pidof [process_name]
50353
$ pgrep [process_name]
50353
์ ๋ฆฌ
- ํ๋ก๊ทธ๋จ์ด ๋จ์ ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ผ๋ฉด ํ๋ก์ธ์ค๋ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค!
- ํ๋ก์ธ์ค๋ PID๋ก ๊ตฌ๋ถ๋๊ณ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํํด๋ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅด๋ฉด PID๋ ๋ค๋ฆ
- ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉด ์คํ, ํ ๋ฑ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ๋ก๋๋จ
- ps ๋ช ๋ น์ด๋ฅผ ํตํด ํ๋ก์ธ์ค ์ ๋ณด ์ถ๋ ฅ ๊ฐ๋ฅ
Reference