ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

 κ°€μƒ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν”„λ ˆμž„ 할당을 μ–΄λ–»κ²Œ ν•˜λŠλƒκ°€ μ€‘μš”ν•˜λ‹€. 이에 ν”„λ ˆμž„ ν• λ‹Ή μ‹œ μ€‘μš”λ˜λŠ” 관점은 λ‹€μŒκ³Ό κ°™λ‹€.

 

  • μ΅œμ†Œ ν”„λ ˆμž„ 수 : ν”„λ‘œμ„ΈμŠ€μ— μ΅œμ†Œν•œμœΌλ‘œ ν• λ‹Ήλ˜λŠ” ν”„λ‘œμž„ μˆ˜λŠ” μ‹œμŠ€ν…œμ— 따라 κ²°μ •λ˜λ©°, 잘λͺ»λœ μ΅œμ†Œ ν”„λ ˆμž„ μˆ˜λŠ” 쒋지 μ•ŠλŠ” μ„±λŠ₯을 μ•ΌκΈ°ν•œλ‹€.

  • ν• λ‹Ή μ •μ±…

    • κ· λ“± ν• λ‹Ή : λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ κ· λ“±ν•˜κ²Œ ν”„λ ˆμž„μ„ ν• λ‹Ή λ°›λŠ”λ‹€.

    • 비둀적 ν• λ‹Ή : μš°μ„ μˆœμœ„μ— λΉ„λ‘€ν•˜μ—¬ ν”„λ ˆμž„μ„ ν• λ‹Ήν•œλ‹€.

  • Global, Local Allocation

    • Global Allocation : λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ νŽ˜μ΄μ§€ ꡐ체의 λŒ€μƒμ΄ 될 수 μžˆλ‹€.

    • Local Allocation : νŠΉμ • ν”„λ‘œμ„ΈμŠ€ νŽ˜μ΄μ§€μ— λŒ€ν•΄μ„œλ§Œ ꡐ체 λ””μƒμœΌλ‘œ μ„ μ • ν•œλ‹€.

 

μ“°λ ˆμ‹±

 μ΄μ „μ˜ λ‚΄μš©λ“€μ„ 보면, λ©”λͺ¨λ¦¬μ˜ λΆ€μ‘±μœΌλ‘œ 가상 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜μ–΄, page in/out을 μœ„ν•œ μ˜€λ²„ν—€λ“œκ°€ λ™λ°˜λœλ‹€. λ”°λΌμ„œ μ‚¬μš© κ°€λŠ₯ν•œ λ©”λͺ¨λ¦¬κ°€ 증가할 수둝 λ§Žμ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ©”λͺ¨λ¦¬μ— ν• λ‹Ήν•˜μ—¬ CPU Utilization을 κ·ΉλŒ€ν™” ν•  수 μžˆμ„ 것이라고 μƒκ°λœλ‹€.

 

Figure 1. Thrashing

 ν•˜μ§€λ§Œ κ·Έλ¦Ό 1을 보면 일정 μˆ˜μ€€κΉŒμ§„ CPU Utilization이 μƒμŠΉν•˜μ§€λ§Œ ν•œ 기점을 κΈ°μ€€μœΌλ‘œ 였히렀 CPU Utilization이 κ°μ†Œν•˜λŠ” μ“°λ ˆμ‹± ν˜„μƒμ΄ λ°œμƒν•œλ‹€. 이와 같은 μ΄μœ λŠ” ν•œλ²ˆμ— λ§Žμ€ μ–‘μ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ©”λͺ¨λ¦¬μ— ν• λ‹Ήν•˜λ”λΌλ„ μ‹œκ°„μ΄ 지남에 따라 page in/outκ³Ό 같은 μž‘μ—…μ„ λ™λ°˜ν•˜κ²Œ λœλ‹€. 즉, λ‹€μˆ˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ λΆ€ν„° page in/out μž‘μ—…μ„ μ§„ν–‰ν•˜κ²Œ 되면 결과적으둜 보쑰 μ €μž₯μž₯치의 I/O 처리둜 인해 CPU Utilization이 κ°μ†Œν•˜κ²Œ λœλ‹€.

 μ“°λ ˆμ‹±μ„ μ™„ν™”μ‹œν‚€κΈ° μœ„ν•΄μ„œλŠ” Local Replacementλ₯Ό μ‚¬μš©ν•˜κ³ , ν”„λ‘œμ„ΈμŠ€ λ‹Ή μ μ ˆν•œ ν”„λ ˆμž„μ„ ν• λ‹Ήν•΄μ£Όμ–΄μ•Ό ν•œλ‹€. μ μ ˆν•œ ν”„λ ˆμž„μ„ ν• λ‹Ήν•˜κΈ° μœ„ν•΄μ„œλŠ” 정적 ν• λ‹Ή 방식 λ³΄λ‹€λŠ” 동적 할당이 μ ν•©ν•˜λ‹€.

 

동적 ν• λ‹Ή

Figure 2. Locality in a memory-reference pattern.

  κ·Έλ¦Ό 2λ₯Ό 보면 μ‹€ν–‰ μ‹œκ°„μ— 따라 Localityκ°€ 성립함을 μ•Œ 수 μžˆλ‹€. localityλ₯Ό ν™œμš©ν•˜μ—¬ ν”„λ ˆμž„μ„ ν• λ‹Ήν•˜λŠ” 것은 λΆˆκ°€λŠ₯ν•˜λ‹€. μ™œλƒν•˜λ©΄ κ·Έλ¦Ό 2의 경우 기둝된 데이터λ₯Ό 톡해 localityλ₯Ό 확인할 수 μžˆμ§€λ§Œ λ™μž‘ 쀑인 κ³Όμ •μ—μ„œ Localityλ₯Ό νŒλ‹¨ν•œλ‹€λŠ” 것은 μ–΄λ €μš΄μΌμ΄λ‹€.  λ”°λΌμ„œ Locality와 μœ μ‚¬ν•˜κ²Œ 과거의 νŽ˜μ΄μ§€ 할당에 따라 ν”„λ ˆμž„μ„ ν• λ‹Ήν•˜λŠ” working set이 λ“±μž₯ν•˜μ˜€λ‹€.

 

 working set은 일정 μ‹œκ°„λ™μ•ˆ μ‚¬μš©λœ νŽ˜μ΄μ§€μ˜ 수λ₯Ό κΈ°μ€€μœΌλ‘œ 차후에 ν”„λ ˆμž„ ν• λ‹Ήμ˜ 수λ₯Ό κ²°μ •ν•œλ‹€. 예λ₯Ό λ“€μ–΄ μ΄μ „μ˜ 5ms λ™μ•ˆ ν”„λ‘œμ„ΈμŠ€ A의 μ‚¬μš©λœ νŽ˜μ΄μ§€κ°€ 5개라면, ν• λ‹Ήλ˜λŠ” ν”„λ ˆμž„μ˜ μˆ˜λŠ” 5둜 κ²°μ •λœλ‹€.

 

Page-Fault Frequency

Figure 3. Page-fault frequency.

 νŽ˜μ΄μ§€ λΆ€μž¬λŠ” ν• λ‹Ήλœ ν”„λ ˆμž„μ˜ μˆ˜κ°€ 적을 수둝 νŽ˜μ΄μ§€ λΆ€μž¬ λΉ„μœ¨μ΄ 컀진닀. μ΄λŠ” ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ ν”„λ ˆμž„ μˆ˜μ— λ°˜λΉ„λ‘€ν•¨μ„ μ˜λ―Έν•œλ‹€. κ·Έλ¦Ό 3κ³Ό 같이 lower bound와 uper boundλ₯Ό μ„€μ •ν•˜μ—¬ 각 bound에 따라 ν”„λ ˆμž„μ„ κ°μ†Œμ‹œν‚€κ±°λ‚˜ 증가 μ‹œμΌœ νŽ˜μ΄μ§€ λΆ€μž¬λ₯Ό 쀄인닀.

 

 

728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€