Process thread task
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, Memory Architecture
- ์ด์์ฒด์ OS
- ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํจ.
- ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ
- ์ปดํจํฐ์ ์ฅ์ฐฉ๋ RAM(Random Access Memory)
- ์์ ์์น์์ ๋์ผํ ์๊ฐ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๋ค.
- ํ์ฌ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ ์ ์ฅ์ ์ฉ์ดํจ.
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
- RAM์ ๋ถ์กฑ์ ํด๊ฒฐํ๊ธฐ ์ํด OS์ ์ํด RAM์ฒ๋ผ ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ.
- ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ Pasing๋์ด ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ด๋ํจ.
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ณต๊ฐ
- ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๋ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ
- 32bit ํ๋ก์ธ์ค: 4GB, 64bit ํ๋ก์ธ์ค: 16E
- ์ฝ๋ ์์ญ, ๋ฐ์ดํฐ ์์ญ, ํ, ์คํ
- ์ฝ๋ ์์ญ: ๊ธฐ๊ณ์ด ์ฝ๋๊ฐ ์์นํจ.
- ๋ฐ์ดํฐ ์์ญ: ์ ์ญ ๋ณ์์ ์ ์ ๋ณ์๊ฐ ์์นํจ.
- ํ(Heap): ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํด ์ฌ์ฉ๋จ
- ์คํ(Stack): ์ง์ญ๋ณ์์ ํจ์ ํธ์ถ ์ ๋ณด๋ฅผ ์ ์ฅํจ.
-
Commit ์์ญ
-
Reserve ์์ญ
-
Free ์์ญ
-
Pasing ๋ฉ๋ชจ๋ฆฌ
C# (.NET) ํ์
ํ์ ๊ตฌ๋ถ | ๋ด์ฅ ํ์ | ์ ์ ํ์ |
---|---|---|
๊ฐ ํ์ | char , int , long , float , double โฆ |
enum , struct |
์ฐธ์กฐ ํ์ | object , string |
class , delegate , interface |
struct ๊ฐ ํ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ
์ฌ์ฉ์ ์ง์ struct ๊ตฌ์กฐ์ฒด์, intํ์์ ๊ฐํ์ ์ด๋ค.
class ์ฐธ์กฐ ํ์ ์ ๋ฐ์ดํฐ๊ตฌ์กฐ
class๋ new ์ฐ์ฐ์๋ฅผ ํตํด ์์ฑ๋๊ณ , ์ฐธ์กฐ๋ณ์๊ฐ ํฌ์ธํฐ ์ญํ ์ ํ๋ค.
Blocking
Non-blocking
System.Threading:
- System.Threading ๋ค์์คํ์ด์ค๋ ์ฃผ๋ก ์ค๋ ๋ ๋ฐ ๋๊ธฐํ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ ๊ณตํจ.
-
์ค๋ ๋๋ฅผ ์ง์ ๊ด๋ฆฌํ๊ณ , ๋ฝ, ๋ฎคํ ์ค, ์ด๋ฒคํธ ๋ฑ์ ์ด์ฉํ์ฌ ์ฌ๋ฌ ์ค๋ ๋ ๊ฐ์ ๋๊ธฐํ๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ์ฃผ์ ํด๋์ค
- Thread: ์ง์ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค.
- Mutex, Semaphore, AutoResetEvent, ManualResetEvent: ์ค๋ ๋ ๋๊ธฐํ์ ๊ด๋ จ๋ ํด๋์ค์ ๋๋ค.
- Timer: ์ผ์ ์๊ฐ๋ง๋ค ์ฝ๋ฐฑ์ ์คํํ ์ ์๋ ํ์ด๋จธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
System.Threading.Tasks:
- System.Threading.Tasks ๋ค์์คํ์ด์ค๋ ์ฃผ๋ก ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐ ๋ณ๋ ฌ ์์ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋จ.
- ์์ (Task)์ ํตํด ๋น๋๊ธฐ ๋ฐ ๋ณ๋ ฌ ์์ ์ ์ํํ๋ค.
-
Task ๊ธฐ๋ฐ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ .NET์ async/await ํค์๋๋ฅผ ์ฌ์ฉํจ
- ์ฃผ์ ํด๋์ค:
- Task: ์์ ๋จ์๋ก ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- Task
: ํน์ ํ์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋น๋๊ธฐ ์์ ์ ์ํํ ์ ์์ต๋๋ค. - TaskFactory, TaskScheduler: ์์ ์ ์ค์ผ์ค๋งํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- โป
๋ ์ ๋ค๋ฆญ ํ์ Generic Type์ ์ ์ํ ๋ ์ฌ์ฉํ๋ ํ์ ๋งค๊ฐ๋ณ์๋ค. Type์ ์ฝ์