2014 윈도우 메모리구조

11
박박박 2014.2.2 윈윈윈 윈윈윈윈윈 Windows Memory Architecture 1

Transcript of 2014 윈도우 메모리구조

Page 1: 2014 윈도우 메모리구조

1

박동진2014.2.2

윈도우 메모리구조

Windows Memory Architecture

Page 2: 2014 윈도우 메모리구조

2

1.가상주소공간 과 가상메모리

2.MMU 와 메모리사용

3.페이징 , 힙 , 메모리 맵

4.부록

목차

Page 3: 2014 윈도우 메모리구조

3

☞32 비트는 4GB ,64 비트는 4GB 의 제곱 16 엑사바이트

1. Virtual Address Space( 가상주소공간 )

4GB

커널영역에 접근하지 못하게

막는 구역

사용자영역으로써 2GB의크기를 가진다

 

프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능

운영체제 자체가 소유하고 있는 메모리 는 숨겨저있다

프로세스 A 와 B 가 같은 주소에 쓰기가능

Page 4: 2014 윈도우 메모리구조

4

1-2 region 과 page

Region64KB

Region 은 메모리 단위로써 x32 x64 모두 64KB 크기이다

페이지는 최소단위로써 마찬가지로 4KB 의 크기를 가지고있다

한 개의 리젼에서 16개의 페이지가 존재

10KB 할당이 필요하면 페이지 3

개를 할당

Page 5: 2014 윈도우 메모리구조

5

1-3 가상주소 상태와 함수

reserve

가상주소의 영역을 예약

사용중인것으로 간주

플래그를 reserve 로 지정

Commited

예약된걸 R/W 위핸 작업

매핑된다

플래그를 commit으로 지정

Release,Free

더 이상 필요없을떄주소공간및 영역을

반환

Commit-> reserveReserve-> free

VirtualAlloc() VirtualAlloc() VirtualFree()

Page 6: 2014 윈도우 메모리구조

6

가상메모리(

페이징파일 )

물리메모리

MMU

☞CPU 가 가상메모리를 사용할떄마다 MMU 에 요청☞ 같은 물리주소로 다른주소에 접근이 가능☞ 부하를 줄이기위해 처리단위를 생성 -> 블록 , 페이지

2-1. MMU(Memory Management Unit)

CPU가상 주소 공간의 가상 주소는 MMU 에 의해서 물리 주소로 변환된다 (매핑 )

프로그래머는 가상 주소 공간상에서 데이터가 주메모리상에 어떻게 존재하는지를 의식할 필요가 없어진다

Page 7: 2014 윈도우 메모리구조

화살표가 앞서말한 MMU 같은곳은 DLL 같은공유자원 페이지테이블은 메인메모리에존재 PFN 은 페이지 프레임 번호 프레임은 가상주소가

물리메모리에 위치한 곳 ( 번호로 표현한다 )

MMU 가 주소를 찾을수없을떄 페이지폴트 (Page Fault) 라고함 즉 가상주소에는 존재하나 물리주소에는 없을떄

2-2 가상메모리 실제메모리 사용

Thrashing( 쓰래싱 )

가상메모리 -> 페이지 테이블 -> 물리적 메모리 순으로 매핑된다

가상메모리가 메모리영역이 커서 효율적이긴 하지만 자꾸 쓰면 쓰수록 페이징과 매핑에 부히가 발생하기때문에 오히려 능률이 저하 버벅임 , 랙 발생

Page 8: 2014 윈도우 메모리구조

3. 페이징 , 힙 , 메모리 맵

8

• 물리 메모리에서 사용되지 않고 있는 메모리 영역이 하드 드라이브에 일시적으로 저장되는것

• 스왑파일과 같은말 , 쓰래딩 위험이 높다 .페이징

• 커널 힙오브젝트 사용 기본 1MB 사이즈• 작은 데이터를 쓸때 유용 페이지단위 할당 불필요• 일반적동적할당과 같으나 그에 사용되는 힙을 직접컨트롤힙

• 하드에 저장된 파일을 직접 물리메모리에 매핑하는것• EXE,DLL 이 이에포함된다• 대용량 파일을 부분또는 한번에 읽고 포인터로 사용• IPC 내부에서 사용 같은 다수의 프로세스가 한파일에 접근가능

메모리 맵

Page 9: 2014 윈도우 메모리구조

9

부록 - 메모리 계층 구조

Page 10: 2014 윈도우 메모리구조

10

부록 - 프로그램 메모리 구조

Page 11: 2014 윈도우 메모리구조

11

감사합니다 .