728x90
๐์ธํฐ๋ฝํธ๋?
- CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ ๋, ์์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ๋๋ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ์ CPU์ ์๋ ค์ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ด๋ค.
- ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ์ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ก ๋๋๋ค.
- ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด๊ฐ ๋ฐ์์ํค๋ ์ธํฐ๋ฝํธ๋ก, CPU๊ฐ ์๋ ๋ค๋ฅธ ํ๋์จ์ด ์ฅ์น๊ฐ CPU์ ์ด๋ค ์ฌ์ค์ ์๋ ค์ฃผ๊ฑฐ๋ CPU ์๋น์ค๋ฅผ ์์ฒญํด์ผ ํ ๊ฒฝ์ฐ ๋ฐ์์ํจ๋ค.
- ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ ์ฃผ๋ก ์ ์ ์ด์, ๊ธฐ๊ณ ๋ฌธ์ ,ํค๋ณด๋๋ฑ IO ๊ด๋ จ ์ด๋ฒคํธ ๋ฑ์ด ์๋ค.
- ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ ์ํํธ์จ์ด๊ฐ ๋ฐ์์ํค๋ ์ธํฐ๋ฝํธ์ด๋ค. ์ํํธ์จ์ด(์ฌ์ฉ์ ํ๋ก๊ทธ๋จ)๊ฐ ์ค์ค๋ก ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๋ค.(์ข ๋ฅ: ์์ธ ์ํฉ,System Call)
- ์ํํธ์จ์ด ์ธํฐ๋ฝํธ์ ์๋ก๋ ์ฌ์ฉ์ ๋ชจ๋์์ ํ์ฉ๋์ง ์์ ๋ช ๋ น ๋๋ ๊ณต๊ฐ์ ์ ๊ทผ์ ํ๊ฑฐ๋, ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ Overflow/Underflow๊ฐ ๋ฐ์ ํ ๋ ๋ฑ์ด ์๋ค.
- ์ธํฐ๋ฝํธ๋ ์ผ์ข ์ ์ด๋ฒคํธ๋ก ๋ถ๋ฆฐ๋ค. ์ด๋ฒคํธ์ ๋ง๊ฒ ์ด์์ฒด์ ๊ฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
๐์ธํฐ๋ฝํธ๊ฐ ํ์ํ ์ด์
1. ์ ์ ํ ์ค์ผ์ฅด๋ฌ ๊ตฌํ
- ํ๋ก์ธ์ค running์ค์ ์ค์ผ์ฅด๋ฌ๊ฐ ์ด๋ฅผ ์ค๋จ ์ํค๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๊ต์ฒดํ๊ธฐ ์ํด, ํ์ฌ ํ๋ก์ธ์ค ์คํ์ ์ค๋จ ์ํจ๋ค.
- ํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์ค๋จ ์ํฌ๋ ค๋ฉด, ์ค์ผ์ฅด๋ฌ ์ฝ๋๊ฐ ์คํ์ด ๋์ ํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์ค์ง ์์ผ์ผํ๋ค
2. I/O Device์์ ์ปค๋ฎค๋์ผ์ด์
- ์ ์ฅ๋งค์ฒด์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ฃ์, ํ๋ก์ธ์ค๋ฅผ ๊นจ์์ผ ํ๋ค.(Block state -> Ready state)
3. ์์ธ ์ํฉ ํธ๋ค๋ง
- CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ ๋, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ๋๋ ์์ธ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, CPU๊ฐ ํด๋น ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋๋ก CPU์ ์๋ ค์ค์ผํ๋ค.
๐์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์
1.CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ ๋, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น ์ด์ ๋ฐ์
- ํ์ผ ์ฒ๋ฆฌ๊ฐ ๋๋ฌ๋ค๋ ๊ฒ์ ์ด์์ฒด์ ์ ์๋ ค์ค๋ค.
- ์ด์์ฒด์ ๋ ํด๋น ํ๋ก์ธ์ค๋ฅผ Block State์์ ์คํ ๋๊ธฐ(ready) ์ํ๋ก ํ๋ก์ธ์ค ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ค.
2.๋๋ ์์ธ ์ํฉ์ด ๋ฐ์
- 0์ผ๋ก ๋๋๋ ๊ณ์ฐ์ด ๋ฐ์ํด์, ์์ธ ๋ฐ์์ ์ด์์ฒด์ ์ ์๋ ค์ค๋ค.
- ์ด์์ฒด์ ๊ฐ ํด๋น ํ๋ก์ธ์ค ์คํ ์ค์ง/์๋ฌ ํ์๋ฅผ ํ๋ค.
728x90
'Dev > ComputerScience' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS]์ค๋ ๋(Thread)๋? (0) | 2021.06.15 |
---|---|
[CS]Context Switching(์ปจํ์คํธ ์ค์์นญ) (0) | 2021.06.13 |