SlideShare a Scribd company logo
1 of 11
박동진
2014.2.2
윈도우 메모리구조
Windows Memory
Architecture
1
1. 가상주소공간 과 가상메모리
2. MMU와 메모리사용
3. 페이징,힙,메모리 맵
4. 부록
목차
2
☞32비트는 4GB ,64비트는 4GB의 제곱 16엑사바이트
1. Virtual Address Space(가상주소공간)
3
4GB
커널영역에 접근하
지 못하게 막는 구역
사용자영역으
로써 2GB의크
기를 가진다
1-2 region 과 page
4
Region은 메모리 단위로써 x32
x64모두 64KB 크기이다
페이지는 최소단위로써 마찬가지로
4KB의 크기를 가지고있다
1-3 가상주소 상태와 함수
5
 가상주소의 영역을 예약
 사용중인것으로 간주
 플래그를 reserve로 지정
 예약된걸 R/W 위핸 작업
 매핑된다
 플래그를 commit으로 지
정
 더 이상 필요없을떄
 주소공간및 영역을 반환
 Commit-> reserve
 Reserve-> free
가상메모
리
(페이징파
일)
물리메모리
MMU
☞CPU가 가상메모리를 사용할떄마다 MMU에 요청
☞ 같은 물리주소로 다른주소에 접근이 가능
☞ 부하를 줄이기위해 처리단위를 생성->블록,페이지
2-1. MMU(Memory Management Unit)
6
CPU
가상 주소 공간의 가상 주소
는 MMU에 의해서 물리 주
소로 변환된다 (매핑)
프로그래머는 가상 주소 공
간상에서 데이터가 주메모
리상에 어떻게 존재하는지
를 의식할 필요가 없어진다
 화살표가 앞서말한 MMU
 같은곳은 DLL 같은공유자원
 페이지테이블은 메인메모리에존재
 PFN은 페이지 프레임 번호
 프레임은 가상주소가 물리메모리
에 위치한 곳(번호로 표현한다)
 MMU가 주소를 찾을수없을떄 페
이지폴트(Page Fault)라고함 즉 가
상주소에는 존재하나 물리주소에는
없을떄
2-2 가상메모리 실제메모리 사용
Thrashing
(쓰래싱)
3. 페이징, 힙, 메모리 맵
8
• 물리 메모리에서 사용되지 않고 있는 메모리 영역이 하드 드라
이브에 일시적으로 저장되는것
• 스왑파일과 같은말, 쓰래딩 위험이 높다.페이징
• 커널 힙오브젝트 사용 기본1MB 사이즈
• 작은 데이터를 쓸때 유용 페이지단위 할당 불필요
• 일반적동적할당과 같으나 그에 사용되는 힙을 직접컨트롤힙
• 하드에 저장된 파일을 직접 물리메모리에 매핑하는것
• EXE,DLL 이 이에포함된다
• 대용량 파일을 부분또는 한번에 읽고 포인터로 사용
• IPC내부에서 사용 같은 다수의 프로세스가 한파일에 접근가능
메모리 맵
부록-메모리 계층 구조
9
부록-프로그램 메모리 구조
10
감사합니다.
11

More Related Content

Viewers also liked

Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조Minchul Jung
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
comp.org Chapter 2
comp.org Chapter 2comp.org Chapter 2
comp.org Chapter 2Rajat Sharma
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기jbugkorea
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertowjbugkorea
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리중선 곽
 

Viewers also liked (7)

Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조Ch9 프로세스의 메모리 구조
Ch9 프로세스의 메모리 구조
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
comp.org Chapter 2
comp.org Chapter 2comp.org Chapter 2
comp.org Chapter 2
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertow
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
 

More from Dong-Jin Park

Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
윈도우 커널모드에서의 스레드동기화
윈도우 커널모드에서의 스레드동기화 윈도우 커널모드에서의 스레드동기화
윈도우 커널모드에서의 스레드동기화 Dong-Jin Park
 
윈도우 메모리맵파일
윈도우 메모리맵파일 윈도우 메모리맵파일
윈도우 메모리맵파일 Dong-Jin Park
 
취약점 점검도구 실습 보고서
취약점 점검도구 실습 보고서 취약점 점검도구 실습 보고서
취약점 점검도구 실습 보고서 Dong-Jin Park
 
개인정보보호를 위한 기업
개인정보보호를 위한 기업 개인정보보호를 위한 기업
개인정보보호를 위한 기업 Dong-Jin Park
 
엔터프라이즈 금융 보안 조사 보고서
엔터프라이즈 금융 보안 조사 보고서엔터프라이즈 금융 보안 조사 보고서
엔터프라이즈 금융 보안 조사 보고서Dong-Jin Park
 
파일 암호화 복호화 프로그램 프로젝트
파일 암호화 복호화 프로그램 프로젝트파일 암호화 복호화 프로그램 프로젝트
파일 암호화 복호화 프로그램 프로젝트Dong-Jin Park
 
네트워크 공격 실습 보고서
네트워크 공격 실습 보고서네트워크 공격 실습 보고서
네트워크 공격 실습 보고서Dong-Jin Park
 
솔라리스 OS 로그 분석
솔라리스 OS 로그 분석솔라리스 OS 로그 분석
솔라리스 OS 로그 분석Dong-Jin Park
 
리버싱 실습 보고서
리버싱 실습 보고서리버싱 실습 보고서
리버싱 실습 보고서Dong-Jin Park
 

More from Dong-Jin Park (13)

Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
윈도우 커널모드에서의 스레드동기화
윈도우 커널모드에서의 스레드동기화 윈도우 커널모드에서의 스레드동기화
윈도우 커널모드에서의 스레드동기화
 
윈도우 메모리맵파일
윈도우 메모리맵파일 윈도우 메모리맵파일
윈도우 메모리맵파일
 
취약점 점검도구 실습 보고서
취약점 점검도구 실습 보고서 취약점 점검도구 실습 보고서
취약점 점검도구 실습 보고서
 
개인정보보호를 위한 기업
개인정보보호를 위한 기업 개인정보보호를 위한 기업
개인정보보호를 위한 기업
 
엔터프라이즈 금융 보안 조사 보고서
엔터프라이즈 금융 보안 조사 보고서엔터프라이즈 금융 보안 조사 보고서
엔터프라이즈 금융 보안 조사 보고서
 
파일 암호화 복호화 프로그램 프로젝트
파일 암호화 복호화 프로그램 프로젝트파일 암호화 복호화 프로그램 프로젝트
파일 암호화 복호화 프로그램 프로젝트
 
네트워크 공격 실습 보고서
네트워크 공격 실습 보고서네트워크 공격 실습 보고서
네트워크 공격 실습 보고서
 
보안 Vs 성능
보안 Vs 성능보안 Vs 성능
보안 Vs 성능
 
솔라리스 OS 로그 분석
솔라리스 OS 로그 분석솔라리스 OS 로그 분석
솔라리스 OS 로그 분석
 
DB 설계 과제
DB 설계 과제DB 설계 과제
DB 설계 과제
 
Ddos조사
Ddos조사Ddos조사
Ddos조사
 
리버싱 실습 보고서
리버싱 실습 보고서리버싱 실습 보고서
리버싱 실습 보고서
 

2014 윈도우 메모리구조

  • 2. 1. 가상주소공간 과 가상메모리 2. MMU와 메모리사용 3. 페이징,힙,메모리 맵 4. 부록 목차 2
  • 3. ☞32비트는 4GB ,64비트는 4GB의 제곱 16엑사바이트 1. Virtual Address Space(가상주소공간) 3 4GB 커널영역에 접근하 지 못하게 막는 구역 사용자영역으 로써 2GB의크 기를 가진다
  • 4. 1-2 region 과 page 4 Region은 메모리 단위로써 x32 x64모두 64KB 크기이다 페이지는 최소단위로써 마찬가지로 4KB의 크기를 가지고있다
  • 5. 1-3 가상주소 상태와 함수 5  가상주소의 영역을 예약  사용중인것으로 간주  플래그를 reserve로 지정  예약된걸 R/W 위핸 작업  매핑된다  플래그를 commit으로 지 정  더 이상 필요없을떄  주소공간및 영역을 반환  Commit-> reserve  Reserve-> free
  • 6. 가상메모 리 (페이징파 일) 물리메모리 MMU ☞CPU가 가상메모리를 사용할떄마다 MMU에 요청 ☞ 같은 물리주소로 다른주소에 접근이 가능 ☞ 부하를 줄이기위해 처리단위를 생성->블록,페이지 2-1. MMU(Memory Management Unit) 6 CPU 가상 주소 공간의 가상 주소 는 MMU에 의해서 물리 주 소로 변환된다 (매핑) 프로그래머는 가상 주소 공 간상에서 데이터가 주메모 리상에 어떻게 존재하는지 를 의식할 필요가 없어진다
  • 7.  화살표가 앞서말한 MMU  같은곳은 DLL 같은공유자원  페이지테이블은 메인메모리에존재  PFN은 페이지 프레임 번호  프레임은 가상주소가 물리메모리 에 위치한 곳(번호로 표현한다)  MMU가 주소를 찾을수없을떄 페 이지폴트(Page Fault)라고함 즉 가 상주소에는 존재하나 물리주소에는 없을떄 2-2 가상메모리 실제메모리 사용 Thrashing (쓰래싱)
  • 8. 3. 페이징, 힙, 메모리 맵 8 • 물리 메모리에서 사용되지 않고 있는 메모리 영역이 하드 드라 이브에 일시적으로 저장되는것 • 스왑파일과 같은말, 쓰래딩 위험이 높다.페이징 • 커널 힙오브젝트 사용 기본1MB 사이즈 • 작은 데이터를 쓸때 유용 페이지단위 할당 불필요 • 일반적동적할당과 같으나 그에 사용되는 힙을 직접컨트롤힙 • 하드에 저장된 파일을 직접 물리메모리에 매핑하는것 • EXE,DLL 이 이에포함된다 • 대용량 파일을 부분또는 한번에 읽고 포인터로 사용 • IPC내부에서 사용 같은 다수의 프로세스가 한파일에 접근가능 메모리 맵

Editor's Notes

  1. 16비트 시절의 윈도우 OS는 메모리 구조가 상당히 위험했다 커널과 사용자가 같은 메모리를 참조하기때문에 언제든지 커널이 손상되거나 오류나 발생할수있었다 그래서 MS는 프로세스별로 독립된 가상주소공간이라는 메모리를 할당했다 어플리케이션이 사용가능한 최대주소공간 이 가장주소공간은 영역이 분할되어있으며 이를 파티션이라 한다 크게 유저,커널 파티션이 각각2GB씩 차지하고있다 //the 8-TB user-mode partition looks greatly out of proportion to the 16,777,208- TB kernel-mode partition. 반면, 리눅스에서는 각 응용프로그램이 4GB의 가상 주고 공간을 갖는 것은 같지만, 3GB의 사용자공간과 1GB의 커널공간을 갖게 된다. 커널 공간은 모든 프로세스들이 공유하게 된다.
  2. 1.        VirtualProtect / VirtualProtectEx : 메모리 페이지의 접근 등급을 변경하는API 2.        VirtualLock / VirtualUnlock : 특정 영역을 잠근다. 특정영역에 대한 사용을 중지 시키는 API 3.        VirtualQuery / VirtualQueryEx : 특정 영역의 메모리 정보를 얻는 API. 메모리 영역의 접근 등급, 상태 등을 구조체 MEMORY_BASIC_INFORMATION 를 통하여 알 수 있다.
  3. 페이지 테이블(Page Table)은 프로세스의 페이지 정보를 저장하고 있으며, 하나의 프로세스는 하나의 페이지 테이블을 가진다. 테이블은 다음과 같이 색인과 내용으로 구성되어 있다. 색인 : 페이지 번호. 내용 : 해당 페이지에 할당된 물리 메모리(프레임)의 시작 주소. 이 시작 주소와 페이지 주소를 결합하여 물리 메모리 주소를 알 수 있다. 페이지 테이블 엔트리(Page Table Entry, PTE) : 페이지 테이블의 레코드
  4. l        메모리 맵 파일의 용도 및 특징 A.       EXE 파일과 DLL 파일을 로드하여 프로세스를 실행할 때 시스템에 의해 사용한다. B.       대용량의 가상 메모리 영역 할당 또는 대용량 파일의 처리에 적합하다. C.       파일의 입출력 또는 버퍼 관리 등을 하지 않고 데이터 파일의 참조가 가능하다. D.       동일한 메모리 맵 파일을 이용하여 프로세스간 데이터를 공유가 가능하다.