ํฐ์คํ ๋ฆฌ ๋ทฐ
[์ด์์ฒด์ ] ๋ฌธ๋งฅ ๊ตํ(Context Switching)์ด๋?
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 23. 14:00๋ฌธ๋งฅ ๊ตํ์ด๋?
๋ฌธ๋งฅ ๊ตํ์ ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉ ์ค์ธ ์ํ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ธฐ ์ํด, ์ด์ ์ ํ๋ก์ธ์ค์ ์ํ(๋ฌธ๋งฅ)์ ๋ณด๊ดํ๊ณ ์๋ก์ด ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ ์ฌํ๋ ์์ ์ ๋งํฉ๋๋ค.
์ด๋ ํ ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ์ ๊ทธ ํ๋ก์ธ์ค์ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)์ ๊ธฐ๋ก๋์ด ์์ต๋๋ค.
PCB(Process Control Block)๋?
์ด์์ฒด์ ๊ฐ ์์คํ ๋ด์ ํ๋ก์ธ์ค๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ง๋ค ์ ์งํ๋ ์ ๋ณด๋ค์ ๋ด๋ ์ปค๋ ๋ด ์๋ฃ๊ตฌ์กฐ๋ก ์ปค๋ ์ฃผ์ ๊ณต๊ฐ์ data ์์ญ์ ์กด์ฌํฉ๋๋ค.
PCB์ ์ ์ฅ๋๋ ๋ด์ฉ๋ค
- Process ์ํ : CPU๋ฅผ ํ ๋นํด๋ ๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์
- PC๊ฐ : ๋ค์์ ์ํํ ๋ช ๋ น์ด์ ์์น๋ฅผ ๊ฐ๋ฅดํด
- CPU Register : CPU ์ฐ์ฐ์ ์ํด ํ ์์ ์ ๋ ์ง์คํฐ์ ์ด๋ค ๊ฐ์ ์ ์ฅํ๊ณ ์๋์ง ๋ํ๋
- CPU ์ค์ผ์ค๋ง ์ ๋ณด
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด
- ์์ ์ฌ์ฉ ์ ๋ณด
- ์ ์ถ๋ ฅ ์ํ ์ ๋ณด
์ด๋ฌํ Context์ ๋ณด๋ฅผ ์ฌ์ฉํด CPU๋ฅผ ์ ์ ํ๊ณ ์๋ ํ๋ก์ธ์ค๋ ํ๋ก์ธ์ค ๋ฌธ๋งฅ์ PCB์ ์ ์ฅํ๊ฒ ๋๊ณ , ์๋กญ๊ฒ CPU๋ฅผ ํ ๋น๋ฐ์ ํ๋ก์ธ์ค๋ PCB๋ก๋ถํฐ ์์ ์ ์ ์ฅํ๋ ์์ ์ ๋ฌธ๋งฅ์ ์ค์ ํ๋์จ์ด๋ก ๋ณต์ํ๋ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
๋ฌธ๋งฅ ๊ตํ์ ์์
๋ฉํฐ ํ์คํน
- ๋ค์์ ํ๋ก์ธ์ค๊ฐ ํ๋์ CPU์์์ ๋๋์ด ์ฌ์ฉํ๋ ๊ฒ
- ์คํ ๊ฐ๋ฅํ ํ๋ก์ธ์ค๋ค์ด ์ด์์ฒด์ ์ ์ค์ผ์ค๋ฌ์ ์ํด ์กฐ๊ธ์ฉ ๋ฒ๊ฐ์ ์ํ๋จ
- CPU๋ฅผ ํ ๋น๋ฐ์ ๋ ๋ฌธ๋งฅ ๊ตํ์ด ์ผ์ด๋จ
- ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋์์ ์ฒ๋ฆฌ๋๋ ๊ฒ์ฒ๋ผ ๋๋
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ
- ์ธํฐ๋ฝํธ๋ ์ปดํจํฐ ์์คํ ์์ ์์ธ ์ํฉ์ด ๋ฐ์ํ์ ๋ CPU์๊ฒ ์๋ ค ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ๊ฒ
- ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ๋ ๋ฌธ๋งฅ ๊ตํ์ด ์ผ์ด๋จ
- I/O request : ์ ์ถ๋ ฅ ์์ฒญ
- time slice expried : CPU ์ฌ์ฉ์๊ฐ ๋ง๋ฃ
- fork a child : ์์ ํ๋ก์ธ์ค ์์ฑ
- wait for an interrupt : ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋๊ธฐ
์ฌ์ฉ์ ๋ฐ ์ปค๋ ๋ชจ๋ ์ ํ
- ์ด์ ์ฒด์ ์์ ์ฌ์ฉ์ ๋ชจ๋์ ์ปค๋ ๋ชจ๋ ์ฌ์ด์ ์ ํ์ด ํ์ํ ๋ ํ์๋ ์๋์ง๋ง ์ด์์ฒด์ ์ ๋ฐ๋ผ ๋ฌธ๋งฅ ๊ตํ์ด ๋ฐ์
๋ฌธ๋งฅ ๊ตํ์ด ์ผ์ด๋๋ ๊ณผ์
- ์์ฒญ ๋ฐ์ : ์ธํฐ๋ฝํธ ๋๋ ํธ๋ฉ์ ์ํ ์์ฒญ์ด ๋ฐ์ (ํธ๋ฉ์ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ)
- PCB์ ์ ์ฅ : ์ด์์ฒด์ ๋ ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค(P0)์ ์ ๋ณด๋ฅผ PCB์ ์ ์ฅ
- CPU ํ ๋น : ์ด์์ฒด์ ๋ ๋ค์ ํ๋ก์ธ์ค(P1)์ ์ ๋ณด๋ฅผ PCB์์ ๊ฐ์ ธ์ CPU๋ฅผ ํ ๋น
[์ฐธ๊ณ ]
https://ko.wikipedia.org/wiki/%EB%AC%B8%EB%A7%A5_%EA%B5%90%ED%99%98
https://velog.io/@adam2/2020-01-08-2301-%EC%9E%91%EC%84%B1%EB%90%A8-huk55f3cic
https://yoongrammer.tistory.com/53
https://spurdev.tistory.com/13
'CS > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ๋๊ธฐ์ ๋น๋๊ธฐ, Blocking๊ณผ Non-Blocking (0) | 2022.10.19 |
---|---|
[์ด์์ฒด์ ] Unix์ Linux๋? + (Shell Script๋?) (1) | 2022.10.18 |
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ์ค๋ ๋ (1) | 2022.09.25 |
[์ด์์ฒด์ ] ํ์ด์ง๊ณผ ์ธ๊ทธ๋จผํ ์ด์ (0) | 2022.07.20 |
[์ด์์ฒด์ ] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋? (VM์ด๋?) (0) | 2022.07.19 |
- Total
- Today
- Yesterday
- Baekjoon
- map
- ๋ฐฑ์ค node.js
- ๋ฐฑ์ค javascript
- TDD
- ํ๋ก๊ทธ๋๋จธ์ค
- http
- ํ๋กํ ์ฝ
- fp
- ํฌํฌ์ธํฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์ค
- ์ด๋ถํ์
- JavaScript
- ํ๋กํผํฐ
- ์๋ฐ
- ์ด์์ฒด์
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋คํธ์ํฌ
- ์นด์นด์ค ์ธํด
- ๋ ์์ปฌ ํ๊ฒฝ
- ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- git
- ์ ์ญ ๋ณ์
- ๋์์ธ ํจํด
- ์ฝ๋ฉํ ์คํธ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |