SlideShare a Scribd company logo
가상메모리
가상 메모리
• 보조기억장치를 위해 메인메모리를 캐시처럼 사용
• 다중 프로그램들 간의 메모리를 효율적이고 안정적으로
공유할 수 있도록 허용
• 물리적 메모리 크기보다 큰 프로그램을 쉽게 실행할 수 있
음
• 코드 재배치를 제공함으로써 프로그램 로딩을 단순화함
(즉, 코드는 메인메모리 어디에서든 로딩이 가능)
• 지역성의 원칙
• 프로그램은 접근한 메모리 주소에 다시 접근할 확률이 높
음
• 각 프로그램은 고유의 주소 공간을 가짐 – 가상 주소
공간
• 실행시간동안 각 가상 주소는 물리적 주소로 변환되어야
함 (메인메모리 주소)
물리적 메모리를 공유하는 두 프로그램
• 한 프로그램의 주소 공간은 페이지 (모두 같은 크기)
또는 세그먼트 (가변 크기)로 분할됨
• 각 페이지 (메인메모리와 보조기억장치 모두)의 시작 위치
는 프로그램의 페이지 테이블에 포함되어 있음
주소 변환
• 가상 주소는 하드웨어와 소프트웨어를 통해 물리적
주소로 변환됨
• 각 메모리는 가상 메모리 주소에서 물리 메모리 주소
로 변환을 요청함
• 가상 메모리 미스 (즉, 페이지가 물리 메모리에 없으면)가
발생하면 페이지 폴트라고 함
주소 변환 메커니즘
캐시에서 가상 주소
• VA를 PA로 변환하기 위해 추가적인 메모리 접근이 필
요함
• 이는 메모리 (캐시) 접근을 매우 비싸게 만듬
• 하드웨어는 TLB (Translation Lookaside Buffer)를 사용
• 최근에 사용된 주소 사상을 보관하여 페이지 테이블 검사
를 회피하기 위한 작은 캐시
주소 변환 가속화
Translation Lookaside Buffers (TLBs)
• 다른 캐시와 같이, TLB도 연관, 세트 연관 또는 직접
사상으로 구성됨
• TLB 접근 시간은 캐시 접근 시간보다 짧음 (TLB들은
캐시보다 작기 때문)
• TLB는 보통 512 엔트리보다 적음
VA Virtual Page # Physical Page # Dirty Ref Access
메모리 계층에서의 TLB
• TLB 미스 – 페이지 폴트 또는 단순 TLB 미스?
• 만약 페이지가 메인 메모리에 로드 되었다면, TLB 미스는 페이지 테이
블을 TLB로 가져와서 처리할 수 있음 (하드웨어 또는 소프트웨어)
• 찾고 변환 정보를 TLB로 로드하는데 10 사이클이 소모됨
• 만약 페이지가 메인 메모리에 없다면 페이지 폴트가 발생
• 페이지 폴트를 처리하기 위해 1,000,000 사이클이 소모됨
• TLB 미스는 페이지 폴트보다 많이 발생함
TLB 이벤트 정리
TLB Page Table Cache 가능
Hit Hit Hit 예 – 이상적인 경우
Hit Hit Miss 예 – TLB가 히트하면 페이지 테이블 검사
하지 않음
Miss Hit Hit 예 – TLB 미스라도 페이지 테이블에 PA가
있음
Miss Hit Miss 예 – TLB 미스라도 페이지 테이블에 PA가
있고 캐시에는 데이터가 없음
Miss Miss Miss 예 – 페이지 폴트 발생
Hit Miss Miss 불가능 – 페이지가 메모리에 없으면 TLB
변환이 이뤄지지 않음
Miss Miss Hit 불가능 – 페이지가 메모리에 없으면 데
이터가 캐시에 없음
TLB 미스 처리하기
• 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이
지 테이블의 유효 비트 존재)
• TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이
클 마지막에 발생함
• 다음 사이클은 예외 처리를 해주어야 함
TLB 미스 처리하기
• 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이
지 테이블의 유효 비트 존재)
• TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이
클 마지막에 발생함
• 다음 사이클은 예외 처리를 해주어야 함
가상 메모리 설계 매개변수
가상 메모리 설계 매개변수
두 머신의 TLB 매개변수
가상 주소 캐시
• 가상 주소 캐시는 캐시 미스가 발생했을 때만 주소 변환을 요
청함
• 그러나
• 데이터를 공유하는 두 프로그램은 같은 물리 주소에 대해 다른 가상
주소를 가짐 – 따라서 캐시에 한 공유 데이터에 대한 두 카피가 존재하
고 TLB의 두 엔트리가 필요함 – 이는 일관성 이슈 문제로 이어짐
• 같은 물리 주소로 캐시 엔트리를 업데이트해야 하고 그렇지 않으면 메모리가 일관
성이 없어짐
변환 시간 줄이기
• TLB 접근으로 캐시 접근을 오버랩할 수 있음
• 낮은 순서 비트가 캐시 인덱스로 사용되고 높은 순서 비트가 TLB 접근
에 사용될 때 작동함
하드웨어/소프트웨어 경계
• 가상에서 물리 주소로 변환할 때 하드웨어가 사용되는 부분
• TLB가 최근 변환으로 캐시
• TLB 접근 시간은 캐시 히트 시간 중 일부임
• TLB 접근을 위해 파이프라인에 추가적인 스테이지를 할당함
• 페이지 테이블 저장소, 폴트 감지 그리고 업데이트
• 페이지 폴트 결과는 OS에 의해 처리
• 하드웨어는 Dirty와 참조 비트를 페이지 테이블에서 지원해야 함

More Related Content

Similar to 가상메모리

Rankwave moment™ desc3
Rankwave moment™ desc3Rankwave moment™ desc3
Rankwave moment™ desc3
Sungwha Shim
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
안정적인 서비스 운영 2013.08
안정적인 서비스 운영   2013.08안정적인 서비스 운영   2013.08
안정적인 서비스 운영 2013.08
Changyol BAEK
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03
Changyol BAEK
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템tcaesvk
 
웹수집(Web Crawling)
웹수집(Web Crawling)웹수집(Web Crawling)
웹수집(Web Crawling)
wang inyoung
 
Microsoft pp lpdf
Microsoft pp lpdfMicrosoft pp lpdf
Microsoft pp lpdf
HYUNWOO KIM
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infra
Je Hun Kim
 
Rankwave MOMENT™ (Korean)
Rankwave MOMENT™ (Korean)Rankwave MOMENT™ (Korean)
Rankwave MOMENT™ (Korean)
HyoungEun Kim
 
Introduction to scalability
Introduction to scalabilityIntroduction to scalability
Introduction to scalabilitypolabear
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
JangHyuk You
 
Hybrid & Logical Data Warehouse
Hybrid & Logical Data WarehouseHybrid & Logical Data Warehouse
Hybrid & Logical Data Warehouse
Heungsoon Yang
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
JooHyung Kim
 
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XpressEngine
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server
정현 윤
 
Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114
Daeyong Shin
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
NAVER D2
 

Similar to 가상메모리 (20)

Rankwave moment™ desc3
Rankwave moment™ desc3Rankwave moment™ desc3
Rankwave moment™ desc3
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
안정적인 서비스 운영 2013.08
안정적인 서비스 운영   2013.08안정적인 서비스 운영   2013.08
안정적인 서비스 운영 2013.08
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03
 
NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템NDC 2015 마비노기 듀얼 패치 시스템
NDC 2015 마비노기 듀얼 패치 시스템
 
웹수집(Web Crawling)
웹수집(Web Crawling)웹수집(Web Crawling)
웹수집(Web Crawling)
 
Microsoft pp lpdf
Microsoft pp lpdfMicrosoft pp lpdf
Microsoft pp lpdf
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infra
 
Rankwave MOMENT™ (Korean)
Rankwave MOMENT™ (Korean)Rankwave MOMENT™ (Korean)
Rankwave MOMENT™ (Korean)
 
Introduction to scalability
Introduction to scalabilityIntroduction to scalability
Introduction to scalability
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
 
Hybrid & Logical Data Warehouse
Hybrid & Logical Data WarehouseHybrid & Logical Data Warehouse
Hybrid & Logical Data Warehouse
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
 
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server
 
Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114Bottled water 요약 설명 20151114
Bottled water 요약 설명 20151114
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 

가상메모리

  • 2. 가상 메모리 • 보조기억장치를 위해 메인메모리를 캐시처럼 사용 • 다중 프로그램들 간의 메모리를 효율적이고 안정적으로 공유할 수 있도록 허용 • 물리적 메모리 크기보다 큰 프로그램을 쉽게 실행할 수 있 음 • 코드 재배치를 제공함으로써 프로그램 로딩을 단순화함 (즉, 코드는 메인메모리 어디에서든 로딩이 가능) • 지역성의 원칙 • 프로그램은 접근한 메모리 주소에 다시 접근할 확률이 높 음 • 각 프로그램은 고유의 주소 공간을 가짐 – 가상 주소 공간 • 실행시간동안 각 가상 주소는 물리적 주소로 변환되어야 함 (메인메모리 주소)
  • 3. 물리적 메모리를 공유하는 두 프로그램 • 한 프로그램의 주소 공간은 페이지 (모두 같은 크기) 또는 세그먼트 (가변 크기)로 분할됨 • 각 페이지 (메인메모리와 보조기억장치 모두)의 시작 위치 는 프로그램의 페이지 테이블에 포함되어 있음
  • 4. 주소 변환 • 가상 주소는 하드웨어와 소프트웨어를 통해 물리적 주소로 변환됨 • 각 메모리는 가상 메모리 주소에서 물리 메모리 주소 로 변환을 요청함 • 가상 메모리 미스 (즉, 페이지가 물리 메모리에 없으면)가 발생하면 페이지 폴트라고 함
  • 6. 캐시에서 가상 주소 • VA를 PA로 변환하기 위해 추가적인 메모리 접근이 필 요함 • 이는 메모리 (캐시) 접근을 매우 비싸게 만듬 • 하드웨어는 TLB (Translation Lookaside Buffer)를 사용 • 최근에 사용된 주소 사상을 보관하여 페이지 테이블 검사 를 회피하기 위한 작은 캐시
  • 8. Translation Lookaside Buffers (TLBs) • 다른 캐시와 같이, TLB도 연관, 세트 연관 또는 직접 사상으로 구성됨 • TLB 접근 시간은 캐시 접근 시간보다 짧음 (TLB들은 캐시보다 작기 때문) • TLB는 보통 512 엔트리보다 적음 VA Virtual Page # Physical Page # Dirty Ref Access
  • 9. 메모리 계층에서의 TLB • TLB 미스 – 페이지 폴트 또는 단순 TLB 미스? • 만약 페이지가 메인 메모리에 로드 되었다면, TLB 미스는 페이지 테이 블을 TLB로 가져와서 처리할 수 있음 (하드웨어 또는 소프트웨어) • 찾고 변환 정보를 TLB로 로드하는데 10 사이클이 소모됨 • 만약 페이지가 메인 메모리에 없다면 페이지 폴트가 발생 • 페이지 폴트를 처리하기 위해 1,000,000 사이클이 소모됨 • TLB 미스는 페이지 폴트보다 많이 발생함
  • 10. TLB 이벤트 정리 TLB Page Table Cache 가능 Hit Hit Hit 예 – 이상적인 경우 Hit Hit Miss 예 – TLB가 히트하면 페이지 테이블 검사 하지 않음 Miss Hit Hit 예 – TLB 미스라도 페이지 테이블에 PA가 있음 Miss Hit Miss 예 – TLB 미스라도 페이지 테이블에 PA가 있고 캐시에는 데이터가 없음 Miss Miss Miss 예 – 페이지 폴트 발생 Hit Miss Miss 불가능 – 페이지가 메모리에 없으면 TLB 변환이 이뤄지지 않음 Miss Miss Hit 불가능 – 페이지가 메모리에 없으면 데 이터가 캐시에 없음
  • 11. TLB 미스 처리하기 • 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이 지 테이블의 유효 비트 존재) • TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이 클 마지막에 발생함 • 다음 사이클은 예외 처리를 해주어야 함
  • 12. TLB 미스 처리하기 • 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이 지 테이블의 유효 비트 존재) • TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이 클 마지막에 발생함 • 다음 사이클은 예외 처리를 해주어야 함
  • 13. 가상 메모리 설계 매개변수
  • 14. 가상 메모리 설계 매개변수
  • 15. 두 머신의 TLB 매개변수
  • 16. 가상 주소 캐시 • 가상 주소 캐시는 캐시 미스가 발생했을 때만 주소 변환을 요 청함 • 그러나 • 데이터를 공유하는 두 프로그램은 같은 물리 주소에 대해 다른 가상 주소를 가짐 – 따라서 캐시에 한 공유 데이터에 대한 두 카피가 존재하 고 TLB의 두 엔트리가 필요함 – 이는 일관성 이슈 문제로 이어짐 • 같은 물리 주소로 캐시 엔트리를 업데이트해야 하고 그렇지 않으면 메모리가 일관 성이 없어짐
  • 17. 변환 시간 줄이기 • TLB 접근으로 캐시 접근을 오버랩할 수 있음 • 낮은 순서 비트가 캐시 인덱스로 사용되고 높은 순서 비트가 TLB 접근 에 사용될 때 작동함
  • 18. 하드웨어/소프트웨어 경계 • 가상에서 물리 주소로 변환할 때 하드웨어가 사용되는 부분 • TLB가 최근 변환으로 캐시 • TLB 접근 시간은 캐시 히트 시간 중 일부임 • TLB 접근을 위해 파이프라인에 추가적인 스테이지를 할당함 • 페이지 테이블 저장소, 폴트 감지 그리고 업데이트 • 페이지 폴트 결과는 OS에 의해 처리 • 하드웨어는 Dirty와 참조 비트를 페이지 테이블에서 지원해야 함