Process, Processor, Thread
2024-04-27. 20:19 : ๊ธ ๊ณ์น.
2023-11-10-Process-Processor: ๐ Process, Processor
๐ซ Q
- ํ๋ก์ธ์ค, ํ๋ก์ธ์, ์ค๋ ๋์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
- ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
๐ซ Processor | ํ๋ก์ธ์
๋จ์ง โํ๋ก์ธ์โ ๋ผ๋ ์ฉ์ด๋ง ์ฌ์ฉํ์์ ๋, ์ผ๋ฐ์ ์ผ๋ก CPU.
RAM์ ์ ์ฅ๋ ํ๋ก๊ทธ๋จ-๊ธฐ๊ณ ๋ช
๋ น์ด๋ฅผ ํด์/์ฒ๋ฆฌํ๋ ์ปดํจํฐ์ ํ ๋ถ๋ถ.
์ฒ๋ฆฌ๊ธฐ๋ก ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
GPU, DMA์ ๊ฐ์ด ์ ํ๋ ๊ธฐ๋ฅ๋ง์ ์ํํ๋ ํ๋ก์ธ์๋ ์๋ค.
๐ซ Process | ํ๋ก์ธ์ค
- ๋ฒํผ Buffer
- ์์ ๋ณด๊ด ์ฅ์
- ~= Cache ์ข ๋ณต์ฌ๊ฐ ๋น ๋ฅธ ๊ณณ์ ๋๋ ์์ ๋ณด๊ด ์ฅ์
ํ๋ก์ธ์ค ๋ฐ ์ค๋ ๋ ๊ด๋ฆฌ
- ํ๋ก์ธ์ค
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ด, ๋ชฉ์ ์ฝ๋๋ก (๊ธฐ๊ณ์ด ์ฝ๋)๋ก ๋ฒ์ญ๋์ด ๋์คํฌ์ ์ ์ฅ๋ ํ ์ด์์ฒด์ ์ ๋์์ผ๋ก ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋์ด ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ
- ํ ๋ง๋๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์คํ ์ค์ ์๋ ํ๋ก๊ทธ๋จ
- ํ๋ก์ธ์ค ์์ฑ
- ๊ณ ์ ๋ฒํธ PID Process Identification Number
- ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด
- ์ํ Status
- ์งํ์ง์ Counter
- ๋ฌธ๋งฅ Context
- ์ฐ์ ์์ Priority
- ์์๋ชฉ๋ก Process Resource
- ํ๊ณ์ ๋ณด Accounting Information
- ๊ธฐํ
- LDA x
- ADD y
- STA z
โ z = x + y;
- ์ค๊ฐ์ด ํ์์์์ด ๋๋ฉด ๊ทธ ์์ ์ ์ค๋ ์ท์ ์ ์ฅํ๊ณ
- ๋ค์ ๋์์์ ๋ ๋ถ๋ฌ์ ์คํ, ์ฐ์์ฑ
์ ์ฅํ๋ CPU์ ๋ด์ฉ = ๋ฌธ๋งฅ Context
- ํ๋ก์ธ์ค ๊ด๋ฆฌ ๋ธ๋ก PCB
- ํ๋ก์ธ์ค๋ OS์ ๊ด๋ฆฌ ๋์
- ํ๋ก์ธ์ค๊ฐ ํ๋์ ๊ฐ์ฒด๋ก ๋ฑ๋ก๋จ
- ํ๋ก์ธ์ค์ ๊ดํ ๋ชจ๋ ์ ๋ณด๊ฐ PCb์ ๊ธฐ๋ก๋์ด ๊ด๋ฆฌ๋จ
- PCB์ ์ด ๊ฐ์๊ฐ ๊ณง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ต๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์๋ฏธํจ
- ํ๋ก์ธ์ค๋ OS์ ๊ด๋ฆฌ ๋์
- ํ๋ก์ธ์ค ๊ด๋ฆฌ (์ํ ์ฒ์ด)
- ์ด์์ ์ฒด๋ ํ๋ก์ธ์ค์ ์ฒ๋ฆฌ๊ณผ์ ์์ ํ๋ก์ธ์ค์ ํ๋์ ๋ฐ๋ผ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ ์ ํ ์ํ๋ก ์ฒ์ด ์ํจ๋ค
- @ ์คํ ์ํ๊ฐ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค๋ ํด๋น ์ํ์ ๋๊ธฐ์ด์ ๊ด๋ฆฌ๋๋ค
- ํ๋ก์ธ์ค ์ํ
- ์ค๋น Ready ์ํ
- ์คํ Running ์ํ
- ๋๊ธฐ Blocked ์ํ
- ๋ณด๋ฅ Suspended ์ํ
- ๋๊ธฐ-๋ณด๋ฅ Block-Suspended ์ํ
- ์ข ๋ฃ Terminated ์ํ (Dispatch ๋ฐฐ๊ธํ๋ค)
- ์ค๋ ๋ Thread (์ค)
- ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ํ๋ฆ ์ค๊ธฐ
- ๋ณดํต ํ๋ก์ธ์ค๋ ํ๋์ ์คํ ์ค๊ธฐ ์ฆ, ํ๋์ ์ค๋ ๋๋ฅผ ๊ฐ์ง (๋จ์ผ ์ค๋ ๋ ํ๋ก์ธ์ค)
- I.E. C ํ๋ก๊ทธ๋จ์ main() ํจ์์์๋ถํฐ ์์ํ๋ ์คํ์ค๊ธฐ
- ๋ค์ค ์ค๋ ๋ ํ๋ก์ธ์ค Multi Thread Process
- ๋ค์ค ์ค๋ ๋ ํ๋ก์ธ์ค ๊ฐ๋
- ํ๋ก์ธ์ค๋ ํ๋์ด์ง๋ง, ์ฌ๋ฌ ๊ฐ์ ์คํ ์ค๊ธฐ(์ค๋ ๋)๋ฅผ ๊ฐ์ง
- OS๋ ์ค๋ ๋ ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ ์ํ ์ฒ์ด๋ฅผ ๊ด๋ฆฌํจ
- ์ฆ, ์ค๋ ๋ ๋ณ๋ก ~
- ๋ค์ค ์ค๋ ๋ ํ๋ก์ธ์ค ๊ฐ๋
~
- CPU๊ฐ ๋ฐ๋์ ์ฌ๋ฌ ๊ฐ์ผ ํ์๋ ์์
- CPU๊ฐ ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ๋ ์ค๋ ๋๋ค์ด ๋ณ๋ ฌ์ฒ๋ฆฌ๋จ
CPU๊ฐ ํ๋์ผ ๊ฒฝ์ฐ๋ ์ค๋ ๋๋ค์ด ๋ณํ์ฒ๋ฆฌ๋จ
LDA 100 ์ฃผ์ 100
LDA_S 100 - ์ฃผ์ 100 + Stack Pointer
์๋์ฃผ์๊ธฐ๋ฒ
์ค๋ ๋ ์์ฑ ๋ฐ ์ ๊ฑฐ
- ํ๋ก์ธ์ค ์์ฑ ๋ฐ ์ ๊ฑฐ
- ํ๋ก์ธ์ค ์์ฑ
- ์๋ก์ด ํ๋ก์ธ์ค๋ ์ด๋ฏธ ์คํ ์ค์ธ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ OS์ ์ค์ฒญํจ์ผ๋ก์จ ํ์
- ์ด๋ค์ ๋ถ๋ชจ ํ๋ก์ธ์ค Parent Process์ ์์ ํ๋ก์ธ์ค Child Process ๊ด๊ณ๊ฐ ๋จ
- ๋จ๋ง๊ธฐ (ํค๋ณด๋) ์ฌ์ฉ์๋ค์ ์คํํ๊ณ ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์ด๋ฆ์ ์ (๋ช ๋ น์ด ํด์๊ธฐ)์ ์ ๋ฌํ์ฌ ์๋ก ํ์ฌ๊ธ ํ๋ก๊ทธ๋จ ์์ฑ์ OS์๊ฒ ์์ฒญํ๋๋ก ํจ
- ๋์คํฌ ํ๋ก๊ทธ๋๋ฐ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฌํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ OS๋ถ๋ถ์ ๋ก๋ Loader ๋ผํจ
- ํ๋ก์ธ์ค ์์ฑ
- ํ๋ก์ธ์ค ์ ๊ฑฐ
- ์ ์์ ์ธ ํ๋ก์ธ์ค ์ ๊ฑฐ๋ ํด๋น ํ๋ก์ธ์ค ์ค์ค๋ก๊ฐ ์ด์์ฒด์ ์๊ฒ ์์ฒญํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง
- ํ๋ก์ธ์ค ๊ฐ ํต์ IPC InterProcess Communication
- ์ผ๋ฐ์ ์ธ ํ๋ก์ธ์ค๋ค์ ์์ ํ ๋ ๋ฆฝ๋์ด ๋ค๋ฅธ ํ๋ก์ธ์๋ค๊ณผ ๊ฒฉ๋ฆฌ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ ์ ์์
- ๊ฑฐ๋ํ ํ๋ก๊ทธ๋จ์ ์๊ฒ ๋ถ๋ฆฌํ ๊ฒฝ์ฐ, ์ด๋ฅผ ํ๋ก์ธ์ค ๊ฐ์ ํต์ ์๋จ์ด ์๊ตฌ๋จ
- ํด๋ผ์ด์ธํธ Client โ ์๋ฒ ๋ชจ๋ธ
- ๋ํ์ ์ธ ํต์ ์๋จ์ ํ์ดํ, ๋ฉ์์ง, ํ, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ, ์ธ๋งํฌ, ์์ผ(์ธํฐ๋ท)์ ๋ค ์ ์์
- ํต์ ๊ฒฝ๋ก๋ ์ด์์ฒด์ ์ ์ํด ์ ๊ณต๋๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ ํต์ ์๋จ๋ง๋ค ๊ณ ์ ์ ์ ์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ์ผ ํจ
- ํ๋ก์ธ์ค ํต์
- ์คํ์ค์ธ ํ๋ก์ธ์ค์ ๋ํ ์ด๋ค ์กฐ์น๋ฅผ ์ทจํ๋์ผ
- ํ๋ก์ธ์ค ํต์ ์๋จ
- OS๊ฐ ์ ๊ณตํ๋ ์๋น์ค (์์คํ ์ฝ)์ ์ด์ฉ
- ์ ๋์ค/๋ฆฌ๋ ์ค์ ๊ฒฝ์ฐ kill() ์์คํ ์ฝ
- ํ๋ก์ธ์ค ํต์ ์ ํ
- ๊ฐ์ ์ข
๋ฃ :
- ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ด ์ค์ค๋ก ์ข ๋ฃํ๊ธฐ ์ ์ ๋ฌด์กฐ๊ฑด ๊ฐ์ ๋ก ์ข ๋ฃํ๋๋ก ํ๋ค
- ์ผ์ ์ ์ง :
- ์์ ํ ์ข ๋ฃํ๋๋ก ํ๋ ๊ฒ์ ์๋๊ณ , ์์๋ก CPU์ ํ ๋น์ ๋ฐ์ง ๋ชปํ์ฌ ๋ ์ด์์ ์คํ์ด ์ด๋ฃจ์ด์ง์ง ์๋๋ก ํ๋ค
- ์คํ ์ ๊ฐ :
- ์ผ์ ์ค์ง ์ํ์ ์๋ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น ๋ฐ์์ ๊ณ์ ์ํํ ์ ์๋๋ก ํ๋ค.
- ์ฐ์ ์์์ ๋ฐ๋ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณตํํ๊ฒ CPU๋ฅผ ํ ๋น๋ฐ๋๋ค
- ์ฝ์ ์ฒ๋ฆฌ :
- ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋ ์ฝ์ํ๋ ์ฒ๋ฆฌ ๋ถ๋ถ๋ค์ ์ค์๊ฐ์ผ๋ก ์ง์ํ๋ค
- ์ฐ์ ์์ ๋ณ๊ฒฝ :
- ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ฐ์ ์์๋ฅผ ์ฌ๋ฆฌ๊ฑฐ๋ ๋ด๋ฆฐ๋ค.
- ์ผ๋ฐ ์ฌ์ฉ์๋ ๋ด๋ฆฌ๊ธฐ๋ง ๊ฐ๋ฅํ๊ณ ,๊ด๋ฆฌ์๋ ์์ชฝ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ ์ข
๋ฃ :
๐ซ Thread | ์ค๋ ๋
์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์ ์ ๋จ์๋ก, CPU ์์์ ํ ๋น๋ฐ์ ์คํ๋จ.
๐ซง ๋ฐฐ๊ฒฝ
- Windows 95 ์ด์ , Windows OS๋ ์ฑ๊ธ ์ค๋ ๋
- ํ๋ก๊ทธ๋จ ํ๋๊ฐ ๋ฌดํ๋ฃจํ์ ๋น ์ง๋ฉด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ ๋ฉ์ถค
- ํ ํ๋ก๊ทธ๋จ์ด ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ฉด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๋ ์ํฅ
CPU๋ฅผ ๋๋ ์จ์ผ ํ๋๋ฐ ํ๋ ๋ฐ์ ์์ด์ ๊ทธ๋ฌ์ง ๋ชปํจ
- ๊ทธ๋์ CPU ๊ฐ์ํ
- ์ด์ CPU๋ฅผ ์ฐ์ง ๋ง๊ณ , ์ค๋ ๋๋ฅผ CPU์ฒ๋ผ ์จ
- ํ๋ก์ธ์ค์๊ฒ ์ค๋ ๋๋ฅผ ๋๋ ์ฃผ๊ณ
- ๊ทธ ์ค๋ ๋๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฅ์์๋ ๋ง์น CPU ์ฒ๋ผ ์ฌ์ฉ
- ์ด์ ์ฌ๋ฌ ๊ฐ๋๊น, ํ ์ค๋ ๋๊ฐ ๋ฌดํ๋ฃจํ์ ๋น ์ ธ๋ ๋ค๋ฅธ ์ค๋ ๋๋ ๋ฉ์ถ์ง ์์
๋ค๋ฅธ ์ค๋ ๋๋ ์์ ์๊ฒ ์ฃผ์ด์ง ์ค๋ ๋๋ฅผ ์ฌ์ฉ