Process2 - hochan222/Everything-in-JavaScript GitHub Wiki
Thread
- A thread (or lightweight process) is a basic unit of CPU utilization
- ํ๋ก์ธ์ค ๋ด๋ถ์ CPU ์ํ ๋จ์๊ฐ ์ฌ๋ฌ๊ฐ ์๋๊ฒ
- PCB์์ Program Count๋ฅผ ์ฌ๋ฌ๊ฐ๋
- Thread์ ๊ตฌ์ฑ
- program counter
- register set
- stack space
- Thread๊ฐ ๋๋ฃ thread์ ๊ณต์ ํ๋ ๋ถ๋ถ(=task)
- code section
- data section
- OS resources
์ ํต์ ์ธ ๊ฐ๋ ์ heavyweight process๋ ํ๋์ thread๋ฅผ ๊ฐ์ง๊ณ ์๋ task๋ก ๋ณผ ์ ์๋ค.
- ๋ค์ค ์ค๋ ๋๋ก ๊ตฌ์ฑ๋ ํ์คํฌ ๊ตฌ์กฐ์์๋ ํ๋์ ์๋ฒ ์ค๋ ๋๊ฐ blocked(waiting) ์ํ์ธ ๋์์๋ ๋์ผํ ํ์คํฌ ๋ด์ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์คํ(running) ๋์ด ๋น ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
- ๋์ผํ ์ผ์ ์ํํ๋ ๋ค์ค ์ค๋ ๋๊ฐ ํ๋ ฅํ์ฌ ๋์ ์ฒ๋ฆฌ์จ(throughput)๊ณผ ์ฑ๋ฅ ํฅ์์ ์ป์ ์ ์๋ค.
- ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๋ ฌ์ฑ์ ๋์ผ ์ ์๋ค.
Benefits of Threads
- Responsiveness (์๋ต์ฑ)
- eg) multi-threaded Web (์น๋ธ๋ผ์ฐ์ ) - if one thread is blocked(eg network) another thread continues(eg display)
- Resource Sharing
- Economy
- creating & CPU switching thread (rather than a process)
- solaris์ ๊ฒฝ์ฐ ์ ๋๊ฐ์ง overhead๊ฐ ๊ฐ๊ฐ 30๋ฐฐ 5๋ฐฐ
- Utilization of MP(multi processor) Architectures