본문 바로가기
CS/Operating System

메모리 주소 & 메모리 할당

by JHyun0302 2023. 8. 31.
728x90

메모리 구조 : 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) 통해 맵핑

 

 

 

 

MMU를 이용한 논리 주소 → 물리 주소

 

 

 

 

 

 


싱글 프로세스에서 메모리 할당

 

 

 

Memory overlay : `프로세스 크기 > 실제 물리 메모리` 일 때 프로세스를 작은 모듈로 나눔

                                  → 프로세스 실행 시 필요한 모듈만 실행

 

 

 

 

 

 

 

Virtual memory : 실제 물리 메모리 (RAM) & 하드 디스크 (SSD) 공간

 

 

 

Swap memory (swap 영역) : 하드 디스크 상 virtual memory 일부 (MMU에 의해 관리)

 

 

 

Virtual & Swap memory

 

 

 

 

 

 

Swapping : RAM 용량 부족 시

  • `메모리 → 하드 디스크`로 일시적으로 이동 (Swap Out)
  • `하드 디스크 → 메모리`로 일시적으로 이동 (Swap In)

 

Swap In / Out

 

 

 

 

 

 


멀티 프로세스에서 메모리 할당

 

사용자 영역 분할 (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