저장소 logo 저장소

1. 페이징 개념

페이징(Paging)은 프로세스의 논리 주소 공간(Logical Address Space)을 같은 크기의 페이지(Page)로 나누고,
물리 메모리를 같은 크기의 프레임(Frame)으로 나누어 매핑하는 메모리 관리 방식 의미. [1][2][3]

이 방식에서는 프로세스의 각 페이지가 물리 메모리의 연속되지 않은 여러 프레임에 적재될 수 있음. [1][2][3]

즉, 프로세스는 논리적으로는 연속된 주소 공간을 사용하지만,
실제 물리 메모리에서는 분산된 위치에 저장될 수 있는 구조.


2. 논리 주소와 물리 주소

CPU가 생성하는 주소는 논리 주소(Logical Address)이며,
실제 메모리 하드웨어가 사용하는 주소는 물리 주소(Physical Address) 의미. [2]

실행 시간 주소 바인딩 환경에서는 논리 주소와 가상 주소(Virtual Address)를 같은 뜻으로 사용하는 경우가 많음. [2]

사용자 프로그램은 논리 주소를 기준으로 동작하고,
이 논리 주소를 물리 주소로 변환하는 작업은 MMU(Memory Management Unit)페이지 테이블(Page Table)이 담당함. [2][3]


3. 페이지 테이블과 주소 변환

페이징에서는 논리 주소를 보통 다음 두 부분으로 나누어 해석.

페이지 번호는 페이지 테이블의 인덱스로 사용되고,
페이지 테이블은 해당 페이지가 적재된 프레임 번호(Frame Number)를 저장함. [2][3]

이후 프레임 번호 + 오프셋을 결합하여 최종 물리 주소를 구함. [2][3]

정리하면 주소 변환 흐름은 다음과 같음.

  1. CPU가 논리 주소 생성
  2. 논리 주소를 페이지 번호 + 오프셋으로 분리
  3. 페이지 번호로 페이지 테이블 조회
  4. 대응되는 프레임 번호 확인
  5. 프레임 번호와 오프셋을 합쳐 물리 주소 생성

4. 페이징과 메모리 단편화

페이징의 장점은 외부 단편화(External Fragmentation)를 없애거나 매우 크게 줄인다는 점.
고정 크기 프레임 단위로 할당하므로, 연속된 큰 빈 공간을 찾기 위해 메모리를 재배치할 필요가 없기 때문. [1][3]

반면, 내부 단편화(Internal Fragmentation)는 발생 가능. [1][3]

이유는 프로세스 크기가 페이지 크기의 정확한 배수가 아닐 수 있기 때문.
이 경우 마지막 페이지 내부에 사용되지 않는 공간이 남을 수 있음. [1][3]

즉,


5. 왜 중요한가

페이징은 프로세스를 반드시 연속된 물리 메모리 공간에 배치하지 않아도 되므로
메모리 할당이 쉬워지고, 현대 운영체제의 가상 메모리 구조를 이해하는 기본 개념이 됨. [1][2][3]

면접에서는 다음 두 가지를 연결해서 설명하면 정리가 잘 됨.


핵심 정리

페이징

  • 논리 주소 공간을 페이지, 물리 메모리를 프레임으로 나누는 방식
  • 각 페이지는 물리 메모리의 비연속적인 프레임에 저장 가능

주소 변환

  • 논리 주소는 페이지 번호와 오프셋으로 구성
  • 페이지 테이블이 페이지 번호를 프레임 번호로 변환

단편화

  • 외부 단편화는 없거나 매우 크게 완화됨
  • 내부 단편화는 마지막 페이지에서 발생 가능

참고 자료

  1. KOCW, 운영체제 강의자료
    https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/7.pdf
  2. University of Wisconsin-Madison, CS 537 Notes, “Paging”
    https://pages.cs.wisc.edu/~bart/537/lecturenotes/s16.html
  3. University of Illinois Chicago, Operating Systems Notes, “Logical Versus Physical Address Space” / “Paging”
    https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/8_MainMemory.html
  4. Johns Hopkins University, Operating Systems Slides, “Paging”
    https://www.cs.jhu.edu/~yairamir/cs418/os5/tsld022.htm

« Deadlock
Segmentation »