본문 바로가기

컴퓨터공학/운영체제

가상메모리의 이해 - 페이징 기법

반응형

virtual Memory 4GB를 physical Address 로 바꾸기 위해서 가장 흔히 쓰는 페이징 기법에 대해 소개한다.

 

페이징의 공간은 4KB, 128MB, 1GB 다양하게 쓰지만 리눅스에서는 고정적인 4KB를 사용한다

가상 메모리에 4KB 마다 각각의 페이지 번호를 두고 해당 페이지가 사용되면 실제 메모리에 할당되어 쓰인다

만약, 2KB 만 남게되도 나머지를 공란처리하고 고정적인 4KB로 맞춘다

 

페이징 테이블은 가상메모리 페이징의 번호에 따라 페이징 가상주소, 물리주소가 담겨있는데 이것은 프로세스 PCB에 있다.(프로세스 PCB에 있으니 실질적으로는 메모리에 있다는 말이다)

페이지번호 가상주소 물리주소
page1 000000h 0000h
page2 000005h 0005h
page3 00000Ah 000Ah

 

페이지는 4KB = 32bit로 구성되는데

0~11 bit는 페이지에서 변위를 나타낸다 .

12~31 bit는 페이지의 번호를 나타낸다.

데이터 또는 코드 페이지
apple page1-0
banana page1-1
soap page1-2
foo page1-3

변위는 페이징 테이블에 접근했을때 각 페이지번호 마다 적혀있는 물리적주소에 자신의 변위를 더하여 자신의 물리주소를 알수 있게 해주는 정보이다

 

 

추가적으로 프로세스가 구동 되었을때 해당 페이지 테이블의 base Address는 별도 레지스터(CR3)에 저장된다

CPU가 가상주소로 접근 시 MMU가 페이지 테이블의 base Address접근해서 물리 주소를 가져온다.

 

반응형

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

페이지폴트  (0) 2019.11.27
다중페이징시스템  (0) 2019.11.26
가상메모리  (0) 2019.11.25
교착상태와 기아상태  (0) 2019.11.25
세마포어  (0) 2019.11.25