CS 곡뢀

context switching의 κ³Όμ • (λ¬Έλ§₯ κ΅ν™˜)

은진 2021. 10. 4. 20:13

context switching μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­

μΈν„°λŸ½νŠΈλ‚˜ μ‹œμŠ€ν…œ 호좜 λ“±μœΌλ‘œ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ μ œμ–΄λ₯Ό λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— λ„˜κ²¨ μ‹€ν–‰ μƒνƒœκ°€ λ˜λ„λ‘ ν•˜λŠ” 것을 ν”„λ‘œμ„ΈμŠ€ μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­ (λ¬Έλ§₯ κ΅ν™˜)이라고 ν•œλ‹€. 

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ΄ μΌμ–΄λ‚˜λ©΄ ν”„λ‘œμ„Έμ„œμ˜ λ ˆμ§€μŠ€ν„°μ— 있던 λ‚΄μš©μ„ λ‚˜μ€‘μ— μ‚¬μš©ν•  수 μžˆλ„λ‘ μ €μž₯ν•œλ‹€.

 

"μ€€λΉ„ -> μ‹€ν–‰" μƒνƒœ, "μ‹€ν–‰ -> μ€€λΉ„" μƒνƒœ, "μ‹€ν–‰ -> λŒ€κΈ°" μƒνƒœλ‘œ λ°”λ€” λ•Œ λ°œμƒν•œλ‹€.

이전 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ λ ˆμ§€μŠ€ν„° λ‚΄μš©μ„ λ³΄κ΄€ν•˜κ³ , λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ λ ˆμ§€μŠ€ν„°λ₯Ό μ μž¬ν•˜μ—¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅ν™˜ν•œλ‹€.

 

 

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ˜ 단점

ν”„λ‘œμ„ΈμŠ€ P1이 "μ‹€ν–‰ -> 유휴 (μ€€λΉ„ or λŒ€κΈ°μƒνƒœλ₯Ό 말함)" μƒνƒœκ°€ 될 λ•Œ P1이 λ°”λ‘œ μ‹€ν–‰λ˜μ§€ μ•Šκ³ , 유휴 μƒνƒœλ₯Ό μ’€ 더 μœ μ§€ν•˜λ‹€κ°€ μ‹€ν–‰ μƒνƒœκ°€ λœλ‹€.

μ™œλƒν•˜λ©΄ P1 μƒνƒœλ₯Ό PCB1에 μ €μž₯ν•˜κ³ , PCB2μ—μ„œ P2 μƒνƒœλ₯Ό μ μž¬ν•΄μ™€μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

이λ₯Ό dispatcher latency라고 ν•œλ‹€.

(dispatcher : context switchλ₯Ό ν•˜λŠ” λͺ¨λ“ˆ, ν”„λ‘œμ„ΈμŠ€μ—κ²Œ cpuλ₯Ό ν• λ‹Ήν•΄μ£ΌλŠ” λͺ¨λ“ˆ)

 

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ΄ λ„ˆλ¬΄ 잦으면 μ˜€λ²„ν—€λ“œκ°€ λ°œμƒν•˜μ—¬(λΉ„μš©μ΄ λ†’μ•„) μ„±λŠ₯이 떨어진닀. 

 

 


 

ν”„λ‘œμ„ΈμŠ€

  • 운영체제 μœ„μ—μ„œ "μ‹€ν–‰ 쀑"인 ν”„λ‘œκ·Έλž¨μ΄λ‹€.
  • "μ‹€ν–‰ 쀑" = λ””μŠ€ν¬μ— 있던 ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— μ μž¬ν•˜μ—¬ 운영체제의 μ œμ–΄λ₯Ό λ°›λŠ” μƒνƒœκ°€ 된 것을 μ˜λ―Έν•œλ‹€.
  • λ©”λͺ¨λ¦¬ ꡬ쑰λ₯Ό 이루고, ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°λ‚˜ λ ˆμ§€μŠ€ν„°μ²˜λŸΌ ν˜„μž¬ μ–΄λ–€ μžμ›μ„ μ‚¬μš©ν•˜λŠ”μ§€ 정보가 λ“€μ–΄ μžˆλŠ” λ™μ κ°œμ²΄μ΄λ‹€.

 

ν”„λ‘œμ„ΈμŠ€μ˜ 생성

μš΄μ˜μ²΄μ œλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ μš”μ²­μ„ λ°›μ•„ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λ©΄, μš΄μ˜μ²΄μ œλŠ” ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝을 λ§Œλ“€μ–΄ μ£Όμ†Œ 곡간을 ν• λ‹Ήν•œλ‹€.

 

 

PCB (Process Control Block)

  • PCBλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜λ €κ³  μœ μ§€ν•˜λŠ” λ°μ΄ν„° 블둝 λ˜λŠ” λ ˆμ½”λ“œμ˜ 데이터 ꡬ쑰이닀.
  • μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ–΄λ””κΉŒμ§€ μž‘μ—…ν–ˆλŠ”μ§€ μ•Œ 수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • λ”°λΌμ„œ ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œ, ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ” PCB λΈ”λŸ­μ΄ ν•¨κ»˜ μƒμ„±λœλ‹€.
  • PCBλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ œμ–΄ν•˜κΈ° μœ„ν•œ 정보 λͺ¨μŒμ§‘이닀.

 

 

ν”„λ‘œμ„ΈμŠ€ μƒνƒœ λ³€ν™”

 

 

좜처

Crocus, https://www.crocus.co.kr/1364

DR Kim, https://dar0m.tistory.com/m/197?category=976685