개발자는 기록이 답이다
기술 면접 대비 CS 핵심 요약 - 메모리 관리 전략 본문
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는 보호해야 하는 메모리 영역에 대한 접근을 제한해 메모리를 보호하는 역할을 한다.
1.4.2 연속 메모리 할당 (continuous allocation)( 중요도 ★☆☆ )
멀티 프로세스 환경에서 여러 프로세스를 메모리에 연속적으로 로드하는 방법이다
고정 분할 방식
- 메모리 영역을 분할한 뒤 각 영역에 프로세스를 할당하는 방식
- 이때 분할된 영역의 크기는 서로 다를 수 있으며, 분할된 크기는 고정된다.
- 그런데 이 방식은 메모리에 올릴 수 있는 프로세스 수와 각 프로세스 크기가 제한된다는 단점이 있고, 단편화(fragmentation)문제가 발생할 수 있다.
예를 들어 아래 그림의 (b)에서 8MB의 메모리 공간과 2MB의 메모리 공간을 합치면 프로세스 7에 공간을 할당할 수 있지만, 고정 분할때문에 할당하지 못한다. 이런 경우를 외부 단편화(external fragmentation)이라고 한다. 그리고 프로세스 3과 프로세스 4처럼 분할 된 크기보다 작은 프로세스가 할당되어 메모리 공간이 남는 경우를 내부 단편화(Internal fragmentation)이라고 한다.
가변 분할 방식
- 할당할 프로세스의 크기에 따라 메모리 공간을 분할하는 방식
- 메모리 할당 알고리즘을 이용해 가용 메모리 공간에서 프로세스가 로드 될 수 있는 메모리 공간을 찾는다
- 메모리 할당 알고리즘으로 최초 적합, 최적 적합, 최악 적합이 있다.
1. 최초 적합(first-fit)
가용 메모리 공간에서 프로세스 크기만큼 비어 있는 메모리 공간을 찾아 차례대로 프로세스를 로드
- 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
- 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
- 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
- 메모리 영역에서 프로세스 2의 할당이 해제된다
- 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 가장 먼저 18MB의 메모리 공간이 탐색된다. 그러면 더 이상 탐색을 진행하지 않고 프로세스 4를 해당 메모리 공간에 할당한다.
2. 최적 적합(best-fit)
할당하려는 프로세스 크기 이상인 가용 메모리 공간 중에서 가장 작은 공간에 프로세스를 할당하는 방식이다. 이 방식은 가용 메모리 공간을 모두 탐색해야 한다.
- 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
- 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
- 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
- 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
- 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 18MB와 6MB의 공간이 탐색된다. 이 중에서 가장 작은 6MB의 메모리 공간에 프로세스 4가 할당된다.
3. 최악 적합(worst-fit)
할당하려는 프로세스 크기보다 큰 가용 메모리 공간 중에서 가장 큰 공간에 프로세스를 할당하는 방식이다. 최적 적합과 마찬가지로 가용 메모리 공간을 모두 탐색해야 한다.
- 20MB의 프로세스 1이 56MB의 가용 메모리 공간에 할당된다
- 18MB의 프로세스 2가 36MB의 가용 메로리 공간에 할당된다
- 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
- 12MB의 프로세스 3dl 18MB의 가용 메모리 공간에 할당된다
- 6MB의 프로세스 4를 할당할 수 있는 가용 메모리 공간을 찾으면 18MB와 6MB의 공간이 탐색된다. 이 중에서 가장 큰 18MB의 메모리 공간에 프로세스 4가 할당된다.
'CS > 운영체제' 카테고리의 다른 글
운영체제 Ch.2 - 인터럽트(interrupt) (0) | 2023.10.16 |
---|---|
운영체제 Ch.1 - 운영체제와 컴퓨터시스템의 구조 (1) | 2023.10.16 |
기술 면접 대비 CS 핵심 요약 - 스케줄링 (0) | 2023.09.11 |
기술 면접 대비 CS 핵심 요약 - 스레드 안전, IPC, 좀비&고아 프로세스 (0) | 2023.09.10 |
기술 면접 대비 CS 핵심 요약 - 프로세스 동기화, 교착 상태 (0) | 2023.09.09 |