메모리 구조 : OS 영역 & User 영역 (각 주소는 1 byte 단위)
물리 주소 (Physical address) : 실제 물리 메모리(RAM) 주소 (0번지부터 시작)
논리 주소 (Logical address) : CPU에 의해 생성되는 논리 주소 (각 프로세스는 독립적 & 연속된 논리 주소 가짐. 0번지부터 시작)
Adress binding : 논리 주소 → 물리 주소 변환(맵핑)
1. Compile time binding
2. Load time binding
3. Run time binding
- MMU(Memory Management Unit) 통해 맵핑
싱글 프로세스에서 메모리 할당
Memory overlay : `프로세스 크기 > 실제 물리 메모리` 일 때 프로세스를 작은 모듈로 나눔
→ 프로세스 실행 시 필요한 모듈만 실행
Virtual memory : 실제 물리 메모리 (RAM) & 하드 디스크 (SSD) 공간
Swap memory (swap 영역) : 하드 디스크 상 virtual memory 일부 (MMU에 의해 관리)
Swapping : RAM 용량 부족 시
- `메모리 → 하드 디스크`로 일시적으로 이동 (Swap Out)
- `하드 디스크 → 메모리`로 일시적으로 이동 (Swap In)
멀티 프로세스에서 메모리 할당
사용자 영역 분할 (OS 영역 분할 X)
단편화 (fragmentation) : 메모리에 빈 공간이 생기는 현상
- 외부 단편화 (external fragmentation) : 프로세스 외부에서 발생 (가변 분할시 발생)
- 내부 단편화 (internal fragmentation) : 프로세스 내부에서 발생 (고정 분할시 발생)
1. 가변 분할 : 프로세스 크기에 맞춰 분할 (연속 할당)
외부 단편화 발생 최소화 방법
1. First-fit : 첫번째로 발견한 빈 공간에 프로세스 할당
2. Best-fit : 빈공간 모두 확인 후 가장 작은 공간에 프로세스 할당
3. Worst-fit : 빈공간을 모두 확인 후 가장 큰 공간에 프로세스 할당
※ 조각 모음 : 메모리의 빈 공간 합침
2. 고정 분할 : 같은 크기로 분할 (비연속 할당)
장점 : 가변 분할보다 수월한 메모리 관리
내부 단편화 발생 최소화 방법
→ 분할하는 크기 조절하여 내부 단편화 최소화 시키기
'CS > Operating System' 카테고리의 다른 글
디스크 스케줄링 (0) | 2023.08.31 |
---|---|
요구 페이징 & 페이지 교체 알고리즘 (0) | 2023.08.31 |
프로세스 간 통신 & 임계 영역 (0) | 2023.08.31 |
Process Priority (0) | 2023.08.31 |
Process & Thread (0) | 2023.08.30 |