λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
운영체제

Context Switching(λ¬Έλ§₯ κ΅ν™˜)

by μ„œμ•„λž‘πŸ˜ 2023. 8. 28.

 

 

 

 

Context Switching(λ¬Έλ§₯ κ΅ν™˜) μ΄λž€?

λ¬Έλ§₯κ΅ν™˜(Context Switching)은 μ»΄ν“¨ν„° μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ μž‘μ—…(ν˜Ήμ€ ν”„λ‘œμ„ΈμŠ€ λ˜λŠ” μŠ€λ ˆλ“œ)이 λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²½μš°, ν•œ μž‘μ—…μ—μ„œ λ‹€λ₯Έ μž‘μ—…μœΌλ‘œ μ „ν™˜ν•˜λŠ” κ³Όμ •μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŠ” λ‹€μ€‘ μž‘μ—…(multitasking) ν™˜κ²½μ—μ„œ λ°œμƒν•˜λŠ” μ€‘μš”ν•œ κ°œλ…μœΌλ‘œ, μš΄μ˜μ²΄μ œκ°€ κ° μž‘업에 CPU μ‹œκ°„을 ν• λ‹Ήν•˜κ³  λ²ˆκ°ˆμ•„κ°€λ©° μ‹€ν–‰λ˜λ„둝 κ΄€λ¦¬ν•˜λŠ” κ²ƒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.


λ¬Έλ§₯κ΅ν™˜μ΄ λ°œμƒν•˜λŠ” 상황은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1. μΈν„°λŸ½νŠΈ(Interrupts): ν•˜λ“œμ›¨μ–΄λ‚˜ μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈκ°€ λ°œμƒν•˜μ—¬ ν˜„μž¬ μ‹€ν–‰ μ€‘인 μž‘업을 λ©ˆμΆ”κ³  λ‹€λ₯Έ μž‘업을 μ‹€ν–‰ν•΄μ•Ό ν•  λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄, μž…μΆœλ ₯ μž‘업이 μ™„λ£Œλ˜μ—ˆμ„ λ•Œ ν•˜λ“œμ›¨μ–΄κ°€ CPU에 μ•Œλ¦¬λŠ” κ²½μš°κ°€ μ΄μ— ν•΄λ‹Ήν•©λ‹ˆλ‹€.

2. μŠ€μΌ€μ€„링: μš΄μ˜μ²΄μ œλŠ” CPU μ‹œκ°„을 μ—¬λŸ¬ μž‘업에 λ‚˜λˆ„μ–΄ μ£Όμ–΄μ•Ό ν•˜λ―€λ‘œ, κ° μž‘μ—…μ—κ²Œ ν• λ‹Ήλœ μ‹œκ°„이 μ§€λ‚˜λ©΄ λ‹€μŒ μž‘μ—…μœΌλ‘œ μ „ν™˜ν•©λ‹ˆλ‹€. μ΄λ₯Ό μŠ€μΌ€μ€„링이라고 ν•˜λ©°, μž‘μ—… κ°„μ˜ λ¬Έλ§₯κ΅ν™˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

 


λ¬Έλ§₯κ΅ν™˜ 과정은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1. ν˜„μž¬ μž‘μ—…μ˜ μƒνƒœ μ €μž₯: μ‹€ν–‰ μ€‘인 μž‘μ—…μ˜ μƒνƒœ(λ ˆμ§€μŠ€ν„° κ°’, ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„° λ“±)κ°€ μ €μž₯λ©λ‹ˆλ‹€. μ΄ μƒνƒœλŠ” λ‚˜μ€‘에 ν•΄λ‹Ή μž‘업을 λ‹€μ‹œ μ‹€ν–‰ν•  λ•Œ ν•„μš”ν•©λ‹ˆλ‹€.

2. λ‹€μŒ μž‘μ—…μ˜ μƒνƒœ λ³΅μ›: μ‹€ν–‰ν•  λ‹€μŒ μž‘μ—…μ˜ μƒνƒœκ°€ μ΄μ „에 μ €μž₯된 μƒνƒœμ—μ„œ λ³΅μ›λ©λ‹ˆλ‹€. μ΄λ‘œμ¨ λ‹€μŒ μž‘업은 μ€‘λ‹¨λ˜μ—ˆλ˜ μ§€μ λΆ€ν„° μ‹€ν–‰λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

λ¬Έλ§₯κ΅ν™˜μ€ μ‹œμŠ€ν…œ μ„±λŠ₯에 μ˜ν–₯을 λ―ΈμΉ  μˆ˜ μžˆλŠ”데, λ¬Έλ§₯κ΅ν™˜μ΄ λΉˆλ²ˆν•˜κ²Œ λ°œμƒν•˜λ©΄ μ˜€λ²„ν—€λ“œ(overhead)κ°€ λ°œμƒν•˜μ—¬ μ‹œμŠ€ν…œ μ„±λŠ₯이 μ €ν•˜λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ νš¨μœ¨μ μΈ μŠ€μΌ€μ€„링 μ•Œκ³ λ¦¬μ¦˜κ³Ό κ΄€λ¦¬κ°€ ν•„μš”ν•©λ‹ˆλ‹€. λ˜ν•œ, λ¬Έλ§₯κ΅ν™˜μ€ λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œ κ³΅μœ  μžμ›μ— λŒ€ν•œ λ™κΈ°ν™” λ¬Έμ œλ₯Ό μ•ΌκΈ°ν•  μˆ˜ μžˆκΈ° λ•Œλ¬Έμ— μ΄λŸ¬ν•œ λΆ€λΆ„도 κ³ λ €λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

좜처: https://www.crocus.co.kr/1364

 

 

 

Context Switching μž₯단점

λ¬Έλ§₯κ΅ν™˜μ€ λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œ μž‘μ—…λ“€ κ°„에 CPU μ‹œκ°„을 λ‚˜λˆ„μ–΄ μ£ΌκΈ° μœ„ν•΄ ν•„μš”ν•œ ν”„λ‘œμ„ΈμŠ€μ΄μ§€λ§Œ, μ΄μ—λŠ” μž₯단점이 μžˆμŠ΅λ‹ˆλ‹€.


μž₯점

1. κ³΅μ •ν•œ μžμ› ν• λ‹Ή: λ¬Έλ§₯κ΅ν™˜μ„ 톡해 μ—¬λŸ¬ μž‘μ—…μ—κ²Œ CPU μ‹œκ°„μ„ κ³΅μ •ν•˜κ²Œ λ‚˜λˆ„μ–΄ 쀄 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 닀쀑 μž‘μ—… μ‹œμŠ€ν…œμ—μ„œ 각 μž‘μ—…μ΄ μ μ ˆν•œ μ‹œκ°„μ„ λ°›μ•„ μžμ›μ„ κ³΅ν‰ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

2. μ‘λ‹΅μ„± ν–₯상: λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œ μ—¬λŸ¬ μž‘업이 λ™μ‹œμ— μ‹€ν–‰λ˜λ―€λ‘œ, ν•œ μž‘업이 μž…μΆœλ ₯ μž‘μ—… λ“±μ˜ λŒ€κΈ° μƒνƒœμ— λ“€μ–΄κ°€λ”라도 λ‹€λ₯Έ μž‘업이 μ‹€ν–‰λ˜λ©΄μ„œ μ‹œμŠ€ν…œ μ „체적인 μ‘닡성이 ν–₯상될 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.


단점

1. μ˜€λ²„ν—€λ“œ: λ¬Έλ§₯κ΅ν™˜μ€ μž‘μ—… 간에 μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  λ³΅μ›ν•˜λŠ” κ³Όμ •μ΄λ―€λ‘œ μ˜€λ²„ν—€λ“œκ°€ λ°œμƒν•©λ‹ˆλ‹€. CPU μ‹œκ°„μ„ μ†Œλͺ¨ν•˜λŠ” 이 과정은 μž‘μ—… κ°„μ˜ μ „ν™˜μ„ 느리게 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

2. μžμ› μ†Œλͺ¨: λ¬Έλ§₯κ΅ν™˜μ€ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€λ₯Ό μ†Œλͺ¨ν•˜λŠ”데, μ΄λŠ” CPU μ‹œκ°„κ³Ό λ©”λͺ¨λ¦¬ λ“±μ˜ μžμ›μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. λΉˆλ²ˆν•œ λ¬Έλ§₯κ΅ν™˜μ΄ μΌμ–΄λ‚  κ²½μš° μ‹œμŠ€ν…œ μ„±λŠ₯ μ €ν•˜λ₯Ό μ΄ˆλž˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

3. λ™κΈ°ν™” λ¬Έμ œ: λ¬Έλ§₯κ΅ν™˜μ€ λ‹€μ€‘ μž‘μ—… μ‹œμŠ€ν…œμ—μ„œ κ³΅μœ  μžμ›μ„ μ‚¬μš©ν•˜λŠ” μž‘μ—…λ“€ κ°„에 λ™κΈ°ν™” λ¬Έμ œλ₯Ό μ•ΌκΈ°ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. λ™μ‹œμ— μ—¬λŸ¬ μž‘업이 κ³΅μœ  μžμ›μ„ μ ‘κ·Όν•˜λ €κ³  ν•  λ•Œ, μ˜¬λ°”λ₯Έ λ™κΈ°ν™” λ©”μ»€λ‹ˆμ¦˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

4. μΊμ‹œ νš¨μœ¨ μ €ν•˜: λ¬Έλ§₯κ΅ν™˜μ€ μž‘μ—…μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  λ³΅μ›ν•˜λŠ” κ³Όμ •μ—μ„œ μΊμ‹œ λ©”λͺ¨λ¦¬μ˜ νš¨μœ¨μ„±μ„ κ°μ†Œμ‹œν‚¬ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ‘œ μΈν•΄ CPU μΊμ‹œμ˜ λ―ΈμŠ€(miss)κ°€ λŠ˜μ–΄λ‚˜ μ„±λŠ₯이 μ €ν•˜λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.


λ¬Έλ§₯κ΅ν™˜μ€ λ‹€μ€‘ μž‘μ—… μ‹œμŠ€ν…œμ—μ„œ ν•„μˆ˜μ μΈ λ™μž‘μ΄μ§€λ§Œ, μ˜€λ²„ν—€λ“œμ™€ μ„±λŠ₯ μ €ν•˜ λ“±μ˜ λ‹¨μ λ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ νš¨μœ¨μ μΈ μŠ€μΌ€μ€„링 μ•Œκ³ λ¦¬μ¦˜κ³Ό λ¦¬μ†ŒμŠ€ κ΄€λ¦¬ λ°©λ²•μ„ μ‚¬μš©ν•˜μ—¬ λ¬Έλ§₯κ΅ν™˜μ˜ λΆ€μ •μ μΈ μ˜ν–₯을 μ΅œμ†Œν™”ν•˜λŠ” κ²ƒμ΄ μ€‘μš”ν•©λ‹ˆλ‹€.

 

 

λŒ“κΈ€