운영체제 - Paging (1)

eucartio·2024년 5월 29일

운영체제

목록 보기
14/19

Paging

Concept Of Paging

  • Paging: 주소 공간을 Page라고 하는 고정된 크기의 일부로 쪼개는 것
  • Segmentation: Logical Segments(Code, Stack, Heap 등)의 다양한 크기
  • Paging을 통해 실제 메모리는 몇 개의 Page로 이루어진 Page Frame으로 쪼개진다.
  • 프로세스별 Page Table은 가상 주소를 실제 주소로 바꿀 수 있어야 한다.

Advantages Of Paging

  • Flexibility: 주소 공간의 추상화를 효과적으로 지원 가능
    • Heap과 Stack이 어떻게 사용되는지 가정할 필요가 없다.
  • Simplicity: 여유 공간 관리의 단순화
    • 주소 공간의 Page와 Page Frame은 동일한 크기이다.
    • Free List의 유지와 할당이 쉽다.

Example

  • 16 Byte의 Page Frame으로 구성된 128 Byte 실제 메모리
  • 16 Byte의 Page로 구성된 64 Byte 주소 공간

Address Translation

  • 가상 주소 내의 두 가지 요소
    • VPN: Virtual Page Number
    • Offset: Page 내의 Offset

Example

  • 가상 주소 21의 64 Byte 주소 공간 표현

  • PFN: Page Frame Number
  • Offset은 변화가 없고, VPN은 Page Table을 통해 PFN으로 주소 변환이 발생한다.

Page Table

  • 가상 Page실제 메모리에서 진행되는 위치를 기록
  • 프로세스별 구조
  • OS 메모리 영역에 저장

In The Page Table

  • Page Table은 가상 주소를 실제 주소로 변환하기 위한 자료 구조
    • 단순화 형태: Linear Page Table (=배열 형태)
  • OS는 VPN으로 배열을 인덱싱하고 페이지 테이블 항목을 찾는다.

Page Table Entries (PTE)

  • Page Frame Number (PFN)
  • Valid Bit
    • 주소 번역의 유효 여부 표현
  • R/W Bit (Protection Bit)
    • 해당 Page에 쓰기가 허용되는지 확인
  • User/Supervisor Bit
    • User Mode 프로세스의 Page 접근 가능 여부 확인
  • Present Bit
    • 해당 Page가 실제 메모리에 있는지 Disk에 있는지 표시
  • Accessed Bit (Reference Bit)
    • 해당 Page 접속 여부 표현
  • Dirty Bit
    • 해당 Page의 수정 여부 표시

Example: x86 Page Table Entry

PTE of x86 Architecture

0개의 댓글