본문 바로가기
Operation System

Paging and Segment

by orioncsy 2023. 5. 3.

Paging and Segment

개념

가상 메모리

  • 프로세스의 물리적인 주소보다 더 큰 가상의 물리적 주소를 활용하여 실제 메모리보다 큰 주소값들을 사용해서 활용성을 높이는 것
  • 물리 주소는 Frame으로 나뉘고, 논리적 주소는 page나 segment로 나뉜다.

단편화

  • 데이터를 저장하고 그 사이에 존재하는 빈 공간이 발생하는 현상
  • 외부 단편화
    • 메모리 할당, 해제가 반복되면서 메모리에 저장된 데이터 사이에 존재하는 빈 공간 존재
  • 내부 단편화
    • 메모리를 할당할 때 프로세스가 필요한 양보다 더 크게 할당되어 메모리 공간이 남는 현상

Page

  • 고정 분할 기법
  • 논리적으로 같은 크기로 메모리를 분할한다.
  • page mapping을 위해 page table 생성
  • 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 해결
  • page 크기가 정해져 있기 때문에 이보다 작은 메모리를 적재하면 내부 단편화 발생 가능
  • page 크기를 줄인다면 page mapping 과정이 잦아지게 되기 때문에 비효율적이다.

Segment

  • 가변 분할 기법
  • 서로 크기가 다른 논리적인 단위로 메모리를 분할한다.
  • 미리 분할하지 않고 메모리가 적재될 때 빈 공간을 찾아 할당
  • mapping을 위해 segment table이 필요
  • 필요한 크기만큼 할당하기 때문에 내부 단편화 문제는 해소
  • 프로세스 메모리를 해제하면 외부 단편화 발생 가능

Memory Pool

  • 필요한 메모리 공간의 크기와 개수를 사용자가 미리 지정하여 할당받고 사용 후 반납하는 방식
  • 필요한 크기만큼 할당하기 때문에 내부 단편화가 존재하지 않는다.
  • 미리 메모리 공간을 할당하고 해제하기 때문에 외부 단편화를 예방할 수 있다.
  • 할당을 해놓고 사용하지 않는다면 메모리 누수가 발생할 수 있다.

Reference

https://junghyun100.github.io/메모리단편화/

'Operation System' 카테고리의 다른 글

OS  (0) 2023.05.10
Race Condition  (0) 2023.05.06
CPU Scheduling  (0) 2023.05.02
IPC  (0) 2023.04.30
Interrupt  (0) 2023.04.27