1) 정의
- Segmentation과정을 통해 변환된 선형주소 (Linear Address)를 통하여 물리 메로리에 접근하는 과정
2)물리메모리 접근과정
① CR3레지스터를 통하여 PDE(Page Directory) 접근
- CR3의 PFN(Page Frame Nuber)를 통하여 PDE(Page Directory Entry)주소를 얻습니다.
〮 PFN : 페이징기능은 실제 메모리를 4KByte(0x1000)단위로 나눈것 을 의미합니다
(ex : CR3의 PFN == 0x5 à 0x5000~0x5999의 물리적 메모리주소에 페이지 데릭토리를 가지는 것을 의미 )
〮 Windows는 프로세스의 스위칭이 일어날때마다 CR3레지스터의 PFN을 바꾸어줌으로써 가상메모리를 다른 물리메모리에 매핑시킬 수 습니다.
② PTE(Page Table Entry) 접근
- PDE에 접근 후 Linear Address의 Page( offset : 0x21 ~ 0x11 )을 PDE의 Index로 PTE(Page Directroy Entry)의 주소에 접근합니다.
|
설명 |
PFN(20bit) |
Page Table Entry의 위치를 나타냅니다 |
Avail(3Bit) |
Reserved |
G(Global) (1Bit) |
Task Switching이 발생하더라도 해당 주소의 TLB내용을 갱신하지 않습니다. |
PS(1bit) |
- 0 : Page Directory가 지시하는 메모리영역을 4MByte를 페이지로 사용 - 1 : Page Directory가 지시하는 메모리영역을 4KByte를 페이지로 사용 |
Dirty(1Bit) |
Page Directory는 항상 0을 가짐 |
Accessed(1Bit) |
PFN이 읽을때 cpu는 자동적으로 해당비트를 셋 |
PCD(1Bit) |
캐시관련(추후추가) |
PWT(1Bit) |
캐시관련(추후추가) |
User/Supervisor (1Bit) |
1 : 유저레벨과 커널레벨 모두 접근가능 0 : 커널레벨만 접근가능 |
Read/Write (1Bit) |
1 : Read/Write 0 : Read |
Present (1Bit) |
1 : 물리 메모리에 존재 0 : 물리메모리에 존재하지않음 |
③실제 물리 메모리 접근
- PDE에 접근 후 Linear Address의 offset( offset : 0x11 ~ 0x0 )을 PTE의 offset으로 실제 물리주소에 접근합니다.
|
설명 |
PFN(20bit) |
실제 메모리의 페이지 프레임번호를 나타냄 ( 0x1일경우 0x1000의 물리적 메모리 주소를 나타냄 |
Avail(3Bit) |
Reserved |
G(Global) (1Bit) |
CR4의 PGE플래그가 세트되어 있을 경우 운영체제에서 CR3레지스트리를 변경하여 메모리 변환에 사용되는 페이지 디렉토리를 변경해도 TLB내용에서 페이지의 정보를 리셋하지 않도록합니다. 프로세스의 메모리변환을 보다 효율적으로 만듬니다. |
Dirty(1Bit) |
Page Directory는 항상 0을 가짐 |
Accessed(1Bit) |
PFN이 읽을때 cpu는 자동적으로 해당비트를 셋 |
PCD(1Bit) |
캐시관련(추후추가) |
PWT(1Bit) |
캐시관련(추후추가) |
User/Supervisor (1Bit) |
1 : 유저레벨과 커널레벨 모두 접근가능 0 : 커널레벨만 접근가능 |
Read/Write (1Bit) |
1 : Read/Write 0 : Read |
Present (1Bit) |
1 : 물리 메모리에 존재 0 : 물리메모리에 존재하지않음 |
'Security > Windows System' 카테고리의 다른 글
커널진입(INT 2E,SYSENTER)-전체적인흐름 (0) | 2017.06.23 |
---|---|
커널진입(INT 2E,SYSENTER)-INT 2E(IDT : Interrupt Descriptor Table)편 (0) | 2017.06.23 |
ASLR(Address Space Layout Randomization) 끄기 /비활성화 (0) | 2017.06.20 |
Segmentation과 Paging(2) - 세그먼테이션 (0) | 2017.06.15 |
Segmentation과 Paging(1) - 세그먼테이션과 페이징 전체적인 흐름 (1) | 2017.06.14 |
댓글