λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Computer Science/Operating System

13 Paging 2 - Thrashing (μŠ€λž˜μ‹±)

by Dowon Kang 2024. 1. 7.

μŠ€λž˜μ‹±μ€ κ°€μƒ λ©”λͺ¨λ¦¬ μ‹œμŠ€ν…œμ—μ„œ νŽ˜μ΄μ§€ λΆ€μž¬(Page Fault)κ°€ μ§€λ‚˜μΉ˜κ²Œ μžμ£Ό λ°œμƒν•˜μ—¬ λŒ€λΆ€λΆ„μ˜ μ‹œκ°„을 νŽ˜μ΄μ§€ λΆ€μž¬ μ²˜λ¦¬μ— μ‚¬μš©ν•˜λŠ” ν˜„상을 λ§ν•©λ‹ˆλ‹€. μŠ€ν”„λž˜μ‹±μ΄ λ°œμƒν•˜λ©΄ μ‹€μ œλ‘œλŠ” μ•„λ¬΄λŸ° μœ μš©ν•œ μž‘업을 μˆ˜ν–‰ν•˜μ§€ λͺ»ν•˜κ³  νŽ˜μ΄μ§€ κ΅μ²΄μ—λ§Œ μ‹œμŠ€ν…œ μžμ›μ΄ μ†ŒλΉ„λ˜λŠ” μƒνƒœκ°€ λ©λ‹ˆλ‹€.


μŠ€λž˜μ‹±μ΄ λ°œμƒν•˜λŠ” μ΄μœ λŠ” 주둜 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€

  1. νŽ˜μ΄μ§€ λΆ€μž¬μœ¨(Paging Rate)이 λ†’μŒ: ν”„λ‘œμ„ΈμŠ€κ°€ ν•„μš”ν•œ νŽ˜μ΄μ§€λ₯Ό λ©”λͺ¨λ¦¬μ—μ„œ μ°Ύμ§€ λͺ»ν•˜κ³  κ³„μ†ν•΄μ„œ λ””μŠ€ν¬μ—μ„œ νŽ˜μ΄μ§€λ₯Ό κ°€μ Έμ˜€λŠ” κ²½μš°, νŽ˜μ΄μ§€ λΆ€μž¬μœ¨μ΄ λ†’μ•„μ§€λ©΄μ„œ μŠ€ν”„λž˜μ‹±μ΄ λ°œμƒν•  κ°€λŠ₯성이 λ†’μ•„μ§‘λ‹ˆλ‹€.
  2. μ μ ˆν•˜μ§€ μ•Šμ€ ν”„λ ˆμž„ ν• λ‹Ή: λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλœ ν”„λ ˆμž„ μˆ˜κ°€ λ„ˆλ¬΄ μ μ–΄μ„œ νŽ˜μ΄μ§€ ꡐ체가 μ§€λ‚˜μΉ˜κ²Œ λΉˆλ²ˆν•˜κ²Œ λ°œμƒν•˜λŠ” κ²½μš°μ—λ„ μŠ€ν”„λž˜μ‹±μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μŠ€λž˜μ‹±μ΄ λ°œμƒν•˜λ©΄ μ‹œμŠ€ν…œ μ„±λŠ₯이 κΈ‰κ²©ν•˜κ²Œ μ €ν•˜λ˜λ―€λ‘œ, μ΄λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ μ ˆν•œ ν”„λ ˆμž„ ν• λ‹Ή λ° νŽ˜μ΄μ§€ κ΅μ²΄ μ•Œκ³ λ¦¬μ¦˜μ„ μ„ νƒν•˜λŠ” κ²ƒμ΄ μ€‘μš”ν•©λ‹ˆλ‹€.

 

 


ν”„λ ˆμž„ ν• λ‹Ή(Frame Allocation)

ν”„λ ˆμž„ 할당은 물리 λ©”λͺ¨λ¦¬μ—μ„œ 각 ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλ˜λŠ” ν”„λ ˆμž„(λ˜λŠ” νŽ˜μ΄μ§€ ν”„λ ˆμž„)의 수 및 μœ„μΉ˜λ₯Ό κ²°μ •ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. ν”„λ ˆμž„ 할당은 가상 λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ—μ„œ μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

ν”„λ ˆμž„ 할당은 λ‹€μŒκ³Ό 같은 μš”μ†Œλ₯Ό κ³ λ €ν•˜μ—¬ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€

  1. ν”„λ‘œμ„ΈμŠ€μ˜ 크기: ν”„λ‘œμ„ΈμŠ€κ°€ ν•„μš”λ‘œ ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간에 따라 ν• λ‹Ήλ˜λŠ” ν”„λ ˆμž„μ˜ 크기 및 μˆ˜κ°€ κ²°μ •λ©λ‹ˆλ‹€.
  2. 물리 λ©”λͺ¨λ¦¬μ˜ 크기: μ‹œμŠ€ν…œμ΄ 가지고 μžˆλŠ” 물리 λ©”λͺ¨λ¦¬ 크기에 따라 각 ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήν•  수 μžˆλŠ” ν”„λ ˆμž„μ˜ μˆ˜κ°€ μ œν•œλ©λ‹ˆλ‹€.
  3. νŽ˜μ΄μ§€ ꡐ체 μ•Œκ³ λ¦¬μ¦˜: νŽ˜μ΄μ§€ ꡐ체 μ•Œκ³ λ¦¬μ¦˜μ— 따라 ν”„λ ˆμž„μ΄ κ΅μ²΄λ˜λŠ” 방식이 λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

κ· λ“± ν• λ‹Ή (Equal Allocation)
κ· λ“± 할당은 μ‚¬μš© κ°€λŠ₯ν•œ μžμ›μ„ μ—¬λŸ¬ λŒ€μƒ 간에 λ™λ“±ν•˜κ²Œ λΆ„λ°°ν•˜λŠ” 방식을 μ˜λ―Έν•©λ‹ˆλ‹€. μ—¬λŸ¬ λŒ€μƒμ΄λ‚˜ ν”„λ‘œμ„ΈμŠ€μ— λ™μΌν•œ μ–‘μ˜ μžμ›μ„ ν• λ‹Ήν•˜μ—¬ κ³΅ν‰ν•˜κ²Œ μžμ›μ„ μ΄μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€. μ΄λŠ” μžμ›μ΄ 각 λŒ€μƒμ—κ²Œ λ™μΌν•œ λΉ„μœ¨λ‘œ λΆ„λ°°λ˜λŠ” λ°©μ‹μœΌλ‘œ, κ³΅μ •ν•œ μžμ› 곡유λ₯Ό 지ν–₯ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€μ— κ· λ“±ν•˜κ²Œ CPU μ‹œκ°„을 ν• λ‹Ήν•˜λŠ” κ²ƒμ΄ κ· λ“± ν• λ‹Ήμ˜ μΌλ‘€μž…λ‹ˆλ‹€. κ° ν”„λ‘œμ„ΈμŠ€λŠ” λ™μΌν•œ μ–‘μ˜ CPU μ‹œκ°„을 μ–»μ–΄ κ³΅ν‰ν•˜κ²Œ μ‹€ν–‰λ©λ‹ˆλ‹€.

 

 

λΉ„λ‘€ ν• λ‹Ή (Proportional Allocation)
λΉ„λ‘€ ν• λ‹Ήμ€ μ‚¬μš© κ°€λŠ₯ν•œ μžμ›μ„ μ—¬λŸ¬ λŒ€μƒ κ°„에 μƒλŒ€μ μΈ λΉ„μœ¨μ— λ”°λΌ ν• λ‹Ήν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. κ° λŒ€μƒμ˜ μš°μ„ μˆœμœ„λ‚˜ μš”ꡬ사항에 λ”°λΌ μžμ›μ„ ν• λ‹Ήν•˜κ²Œ λ©λ‹ˆλ‹€. μ΄λŠ” κ° λŒ€μƒμ˜ μ€‘μš”λ„λ‚˜ ν•„μš”μ— λ”°λΌ μžμ›μ„ λ‹€λ₯΄κ²Œ ν• λ‹Ήν•¨μœΌλ‘œμ¨ μ„ ν˜Έλ„λ₯Ό κ³ λ €ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ—¬λŸ¬ κ°€μƒ λ¨Έμ‹ μ— CPU μ‹œκ°„을 λΉ„λ‘€μ μœΌλ‘œ ν• λ‹Ήν•˜λŠ” κ²ƒμ΄ λΉ„λ‘€ ν• λ‹Ήμ˜ μΌλ‘€μž…λ‹ˆλ‹€. μ€‘μš”ν•œ κ°€μƒ λ¨Έμ‹ μ— λ” λ§Žμ€ μžμ›μ„ ν• λ‹Ήν•˜κ³ , μƒλŒ€μ μœΌλ‘œ μ€‘μš”ν•˜μ§€ μ•Šμ€ κ°€μƒ λ¨Έμ‹ μ—λŠ” μ μ€ μžμ›μ„ ν• λ‹Ήν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

 

μ μ ˆν•œ ν”„λ ˆμž„ ν• λ‹Ήμ€ νŽ˜μ΄μ§€ λΆ€μž¬λ₯Ό μ΅œμ†Œν™”ν•˜κ³  μŠ€ν”„λž˜μ‹±μ„ λ°©μ§€ν•˜λŠ” λ° λ„움이 λ˜λ©°, μ΄λ₯Ό μœ„ν•΄ λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜κ³Ό μ „λž΅μ΄ μ‚¬μš©λ©λ‹ˆλ‹€.

 

 


 

νŽ˜μ΄μ§•μ˜ 이점

  1. λ‚΄λΆ€ λ‹¨νŽΈν™” κ°μ†Œ: νŽ˜μ΄μ§•μ€ κ³ μ • 크기의 νŽ˜μ΄μ§€λ‘œ λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜λ―€λ‘œ, ν• λ‹Ήλœ νŽ˜μ΄μ§€ 크기에 λ”± 맞게 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜μ–΄ λ‚΄λΆ€ λ‹¨νŽΈν™”λ₯Ό κ°μ†Œμ‹œν‚΅λ‹ˆλ‹€.
  2. μ™ΈλΆ€ λ‹¨νŽΈν™” κ°μ†Œ: νŽ˜μ΄μ§•μ€ νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜κ³ , νŽ˜μ΄μ§€λ“€ κ°„μ—λŠ” 독립적이기 λ•Œλ¬Έμ— μ™ΈλΆ€ λ‹¨νŽΈν™”λ₯Ό κ°μ†Œμ‹œν‚΅λ‹ˆλ‹€. νŽ˜μ΄μ§€λ“€μ€ 물리 λ©”λͺ¨λ¦¬μ— μ—°μ†μ μœΌλ‘œ μœ„μΉ˜ν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ, λΆˆμ—°μ†μ μΈ 곡간을 효과적으둜 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. λ©”λͺ¨λ¦¬ 곡유 및 보호: νŽ˜μ΄μ§•μ€ νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ 톡해 가상 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό 물리 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜λ―€λ‘œ, 각 ν”„λ‘œμ„ΈμŠ€λŠ” 독립적인 가상 μ£Όμ†Œ 곡간을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ λ©”λͺ¨λ¦¬ 곡유 및 λ³΄ν˜Έκ°€ μš©μ΄ν•΄μ§‘λ‹ˆλ‹€.
  4. μœ μ—°ν•œ λ©”λͺ¨λ¦¬ 관리: νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ—, ν”„λ‘œμ„ΈμŠ€μ˜ ν¬κΈ°λ‚˜ ꡬ쑰에 상관없이 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•  수 μžˆμ–΄ μœ μ—°ν•œ λ©”λͺ¨λ¦¬ 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

 


 

계측적 νŽ˜μ΄μ§• (Hierarchical Paging)

계측적 νŽ˜μ΄μ§•μ€ νŽ˜μ΄μ§• 기법을 ν™•μž₯ν•˜μ—¬ νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ μ—¬λŸ¬ 레벨둜 λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 일반적으둜 2λ‹¨κ³„λ‚˜ 3λ‹¨κ³„μ˜ κ³„μΈ΅μœΌλ‘œ λ‚˜λˆ„μ–΄μ§‘λ‹ˆλ‹€. μ΄λŸ¬ν•œ 계측 ꡬ쑰λ₯Ό 톡해 전체 νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ μœ μ§€ν•˜λŠ” 데 ν•„μš”ν•œ 곡간을 κ°μ†Œμ‹œν‚€κ³ , νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ˜ 일뢀λ₯Ό μ μž¬ν•˜κ³  μœ μ§€ν•˜λŠ” 데 νš¨μœ¨μ„±μ„ λ†’μž…λ‹ˆλ‹€.

계측적 νŽ˜μ΄μ§•μ˜ μ΄μ μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  1. 곡간 νš¨μœ¨μ„±: μ „체 νŽ˜μ΄μ§€ ν…Œμ΄λΈ”을 μœ μ§€ν•˜κΈ° μœ„ν•œ κ³΅κ°„이 μ€„μ–΄λ“€μ–΄ λ©”λͺ¨λ¦¬ μ ˆμ•½μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  2. λΉ λ₯Έ νŽ˜μ΄μ§€ ν…Œμ΄λΈ” μ ‘κ·Ό: νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ˜ 일뢀λ₯Ό μ μž¬ν•˜λ―€λ‘œ, λΉ λ₯Έ νŽ˜μ΄μ§€ ν…Œμ΄λΈ” 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  3. μœ μ—°ν•œ λ©”λͺ¨λ¦¬ 관리: 계측적 ꡬ쑰λ₯Ό 톡해 λ©”λͺ¨λ¦¬ ν• λ‹Ή 및 ν•΄μ œλ₯Ό 효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

계측적 νŽ˜μ΄μ§•μ€ νŽ˜μ΄μ§• 기법을 λ”μš± 효율적으둜 ν™œμš©ν•˜κ³ , λŒ€κ·œλͺ¨ λ©”λͺ¨λ¦¬ μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•  수 μžˆλŠ” νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ˜ 크기와 κ΄€λ ¨λœ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.

 

'Computer Science > Operating System' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

15 Partitioning & Formatting  (0) 2024.01.07
14 File System  (1) 2024.01.07
12 Paging (νŽ˜μ΄μ§•)  (1) 2024.01.07
11 Swapping (Feat. λ©”λͺ¨λ¦¬ ν• λ‹Ή)  (1) 2024.01.07
10 Deadlock (ꡐ착 μƒνƒœ)  (0) 2024.01.06

λŒ“κΈ€