[운영체제] 페이징(Paging)이란? 페이지 테이블이란?

블로그 이사합니다

아래에서 확인 가능합니다.

https://code-lab1.com/%ED%8E%98%EC%9D%B4%EC%A7%95/

 

[운영체제] 페이징(Paging)이란? 페이지 테이블이란? - 코드 연구소

페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.

code-lab1.com

 

 

페이징(Paging)이란?

페이징
페이징

페이징이란 논리주소의 메모리를 고정된 크기의 페이지(Page)로 나누어 관리하는 기법이다.

페이징은 아래와 같은 특징들을 갖고 있다.

  • 물리주소 공간(Physical address)은 연속적이지 않을 수 있다(noncontiguous)
  • 페이지는 모두 같은 크기를 가진다.
  • 물리주소 공간을 페이지와 같은 사이즈로 나눈 것들을 프레임(Frame)이라고 한다.
  • 페이지 사이즈(=프레임 사이즈)는 하드웨어에 의해 정해진다.
  • 페이지의 크기는 일반적으로 2의 제곱수를 사용한다. 일반적으로 4KB(2^12) ~ 1GB(2^20) 
  • 페이지 테이블(page table)을 이용해 논리주소에서 프레임을 가리키는 물리주소로 매핑한다.
  • 외부 단편화는 발생하지 않으나, 내부 단편화는 발생한다.

단편화에 대해서 잘 모른다면 다음 포스팅을 참고하자.

 

[운영체제] 내부 단편화, 외부 단편화란? | 외부단편화 해결 방법

내부 단편화 (Internal Fragmentation) 내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다. 예를 들어 아래

code-lab1.tistory.com

페이지 테이블(Page Table) 이란?

페이지 테이블은 논리주소의 페이지를 물리주소의 프레임으로 매핑시켜주는 정보를 담고 있는 테이블이다. 

페이지 테이블은 다음과 같은 특징들을 갖고 있다.

  • 페이지 테이블은 per-process 데이터 구조이다. 즉, 모든 프로세스가 페이지 테이블을 가지고 있다.
  • 페이지 테이블은 메인 메모리에 저장된다.
  • Page Table Base Register(PTBR)가 페이지 테이블을 가리키고 있다.
  • Page Table Length Register(PTLR)가 페이지 테이블의 사이즈를 가리키고 있다.
  • 이러한 레지스터들의 내용은 PCB에 저장되어 있다. 따라서 문맥교환(context switching)이 일어날 때 교체된다.
  • 모든 data/instruction 접근은 두 번의 메모리 접근이 필요하다 -> 페이지 테이블에 접근하는 overhead가 존재한다.
    • 한 번은 페이지 테이블 접근, 한 번은 실제 physical 메모리 접근
  • 두번의 메모리를 접근해야 하는 문제는 fast-lookup hardware cache라고 불리는 associative memory 혹은 translation look-aside buffers(TLBs)를 이용해 해결할 수 있다. 

PCB와 문맥교환에 대해 잘 모르겠다면 다음을 참고하자.

 

[운영체제] 프로세스 제어 블록(PCB : Process Control Block)란? | Context Switching이란?

프로세스 제어 블록(Process Control Block)란? 프로세스 제어 블록(이하 PCB)은 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 쉽게 말하면 운영체제가 프로

code-lab1.tistory.com


 

반응형

댓글

Designed by JB FACTORY