개발자는 기록이 답이다

기술 면접 대비 CS 핵심 요약 - 메모리 관리 전략 본문

CS/운영체제

기술 면접 대비 CS 핵심 요약 - 메모리 관리 전략

slow-walker 2023. 9. 12. 23:16

2023.09.11 - [CS] - 기술 면접 대비 CS 핵심 요약 - 스케줄링

 

기술 면접 대비 CS 핵심 요약 - 스케줄링

2023.09.08 - [CS] - 기술 면접 대비 CS 핵심 요약 - 프로세스 상태, 멀티 프로세스 vs 멀티 스레드 기술 면접 대비 CS 핵심 요약 - 프로세스 상태, 멀티 프로세스 vs 멀티 스레드 2023.09.06 - [CS] - 기술 면접

strong-park.tistory.com

 

 

📕본 포스팅은 "기술면접 대비 CS 전공 핵심 요약집" 책을 공부하면서 정리한 내용입니다


 

1.4 메모리 관리 전략

 

다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 한다

메모리 공간을 더 효율적으로 활용하기 위한 여러 방안

연속 메모리 할당, 페이징, 세그멘테이션 등 작동 방식과 장단점 이해 필요

 

1.4.1. 논리 메모리와 물리 메모리( 중요도 ★☆☆  )

 

  • CPU가 프로세스를 처리할 때 보는 주소값(논리 주소 / 가상 주소)과 실제 메모리의 주소값(물리 주소)은 다름
  • 프로세스가 보는 메모리 영역 :  논리 메모리 영역(logical memory address space) / 가상 메모리 영역(virtual  memory address space)
  • 실제로 사용되는 메모리 영역(RAM) : 물리 메모리 영역(physical memory address space)

 

CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 주소 값이 다르므로 논리 주소를 물리 주소로 변환해야 함

이러한 동작을 하는 하드웨어 장치 - 메모리 관리 장치 (MMU, Memory Managemnet Unit)

 

  • MMU는 CPU에 위치하며, CPU에서 메모리에 접근하기 전에 MMU를 거쳐 논리 주소에 해당하는 물리 주소를 얻는다.
  • MMU는 보호해야 하는 메모리 영역에 대한 접근을 제한해 메모리를 보호하는 역할을 한다.

MMU 동작 방식

 

 

1.4.2 연속 메모리 할당 (continuous allocation)( 중요도 ★☆☆  )

 

멀티 프로세스 환경에서 여러 프로세스를 메모리에 연속적으로 로드하는 방법이다

 

고정 분할 방식

  • 메모리 영역을 분할한 뒤 각 영역에 프로세스를 할당하는 방식
  • 이때 분할된 영역의 크기는 서로 다를 수 있으며, 분할된 크기는 고정된다.
  • 그런데 이 방식은 메모리에 올릴 수 있는 프로세스 수와 각 프로세스 크기가 제한된다는 단점이 있고, 단편화(fragmentation)문제가 발생할 수 있다.

 

예를 들어 아래 그림의 (b)에서 8MB의 메모리 공간과 2MB의 메모리 공간을 합치면 프로세스 7에 공간을 할당할 수 있지만, 고정 분할때문에 할당하지 못한다. 이런 경우를 외부 단편화(external fragmentation)이라고 한다. 그리고 프로세스 3과 프로세스 4처럼 분할 된 크기보다 작은 프로세스가 할당되어 메모리 공간이 남는 경우를 내부 단편화(Internal fragmentation)이라고 한다.

고정 분할 방식 예

 

가변 분할 방식

  • 할당할 프로세스의 크기에 따라 메모리 공간을 분할하는 방식
  • 메모리 할당 알고리즘을 이용해 가용 메모리 공간에서 프로세스가 로드 될 수 있는 메모리 공간을 찾는다
  • 메모리 할당 알고리즘으로 최초 적합, 최적 적합, 최악 적합이 있다.

1. 최초 적합(first-fit)

 

가용 메모리 공간에서 프로세스 크기만큼 비어 있는 메모리 공간을 찾아 차례대로 프로세스를 로드

최초 적합 예

  1. 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
  2. 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
  3. 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
  4. 메모리 영역에서 프로세스 2의 할당이 해제된다
  5. 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 가장 먼저 18MB의 메모리 공간이 탐색된다. 그러면 더 이상 탐색을 진행하지 않고 프로세스 4를 해당 메모리 공간에 할당한다.

 

2. 최적 적합(best-fit)

 

할당하려는 프로세스 크기 이상인 가용 메모리 공간 중에서 가장 작은 공간에 프로세스를 할당하는 방식이다. 이 방식은 가용 메모리 공간을 모두 탐색해야 한다.

최적 적합 예

  1. 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
  2. 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
  3. 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
  4. 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
  5. 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 18MB와 6MB의 공간이 탐색된다. 이 중에서 가장 작은 6MB의 메모리 공간에 프로세스 4가 할당된다.

 

3. 최악 적합(worst-fit)

 

할당하려는 프로세스 크기보다 큰 가용 메모리 공간 중에서 가장 큰 공간에 프로세스를 할당하는 방식이다. 최적 적합과 마찬가지로 가용 메모리 공간을 모두 탐색해야 한다.

최악 적합 예

  1. 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
  2. 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
  3. 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
  4. 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
  5. 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 18MB와 6MB의 공간이 탐색된다. 이 중에서 가장 큰 18MB의 메모리 공간에 프로세스 4가 할당된다.