라이프프_LIFE IS A PROJECT

메모리 관리 기법 종류와 내부 단편화/외부 단편화 [정보처리기사 필기] 본문

정보처리기사

메모리 관리 기법 종류와 내부 단편화/외부 단편화 [정보처리기사 필기]

라이프프 2024. 5. 5. 15:45

메모리 관리 기법

1. 반입 기법(Fetch)

보조기억장치의 프로그램 또는 데이터를 주기억장치로 언제 적재할지 결정

  • 요구 반입: 실행중인 프로세스 요청이 있을때 적재
  • 호출(예상) 반입: 사전에 미리 예측하여 적재

 

2. 배치 기법(Placement)

주기억장치 어디에 위치시킬지 결정

  • 최초 적합(First-fit): 첫번째에 배치 시키는 방식
  • 최적 적합(Best-fit): 단편화를 가장 작게 남기는 영역에 배치
  • 최악 적합(Worst-fit): 단편화를 가장 많이 남기는 영역에 배치

 

3. 할당 기법(Allocation)

주기억장치에 어떤 방법으로 할당할지 결정

  • 연속 할당: 실행을 위한 프로세스를 주기억장치 공간 내 인접하게 연속 저장(단일 분할, 다중 분할)
  • 분산 할당: 하나의 프로세스를 여러개 조각으로 나누어 주기억장치 내 분산 배치(페이징, 세그멘테이션)

 

4. 교체 기법(Replacement)

주기억장치 모든 영역 사용중일 때 어느 영역을 교체해서 사용할지 결정

  • FIFO(First In First Out): 가장 오래있던 페이지부터 교체
  • LRU(Least Recently Used): 가장 오랫동안 사용되지 않은 페이지 교체
  • LFU(Least Frequently Used): 사용된 횟수 중 참조 횟수가 가장 적은 페이지 교체
  • OPT(OPTimal Replacement): 앞으로 사용하지 않을 페이지 교체, 가장 이상적이나 현실성 없음
  • NUR(Not Used Recently): LRU와 유사한 알고리즘으로 최근 사용하지 않은 페이지 교체
  • SCR(Second Chance Replacement): FIFO의 단점 보완해 참조비트를 둬서 참조비트가 1인 경우 한번 더 기회를 주는 방식

메모리 단편화(Memory Fragmentation)

메모리 공간을 연속적인 형태로 할당해서 사용하게 되고, 메모리의 공간은 작은 조각으로 나뉘어집니다.

이렇게 작은 조각으로 나뉘어지면서 실제로는 사용가능한 메모리가 있지만 할당을 하기에는 충분하지 못한 남는 공간이 발생하게 됩니다, 그리고 이를 메모리 단편화라고 합니다.

 

내부 단편화

출처: https://velog.io/@tlsdnxkr/posts

메모리를 할당할 때 필요한 공간보다 더 큰 메모리가 할당되면서 해당 공간에 남는 부분이 생기는 것이 내부단편화입니다. 위 그림에서는 7K의 프로세스를 위해 10K 메모리가 할당이되어 3K의 남는 공간, 즉 내부 단편화가 발생하게 됩니다.

 

외부 단편화

출처: https://velog.io/@tlsdnxkr/posts

메모리가 할당, 해체되는 과정을 거치면서 메모리에는 사용하지 않는 작은 메모리들이 생겨납니다. 실제 메모리에 공간이 없는 것은 아니지만, 실제 할당이 필요한 프로세스보다 작은 단위의 메모리들이 남게되고 이를 외부 단편화라고 합니다.

위 그림처럼 7K의 프로세스를 메모리에 적재하려고 할때 작은 메모리들의 합은 3K + 1K + 5K = 7K가 되지만, 모두 파편화되어 떨어져 있기 때문에 7K의 프로세스를 위해 할당해줄 수 없게 됩니다.

 

결론적으로 내부 단편화는 프로세스를 적재하고 남은 공간이 생길 때, 외부 단편화는 적재하고자 하는 프로세스가 남아 있는 자투리 메모리의 각 크기보다 클 때 발생하게 됩니다.