Creative Commons License

Software Dev

프로그래밍기본
객체지향
프로젝트관리
알고리즘
데이타베이스

소프트웨어 개발에 필수적이고 필요한 주제에 대한 강의 및 공유

.

프로그래밍기본

닷넷 기반 개발도 결국 소프트웨어 개발입니다. 소프트웨어 개발을 위한 기본기를 다룹니다

가상 메모리

작성자 : 박종명
최초 작성일 : 2009-09-22 (화요일)
최종 수정일 : 2009-09-22 (화요일)
조회 수 : 3907

가상메모리 개념도를 그려 봤습니다

흔히 가상메모리를,
메모리로 사용되는 하드디스크 일부라고 생각하는데, 사실은 조금 다르죠

하드디스크 일부는 윈도우에서는 페이지피일(page file) 이라고 부릅니다(다른 os에서는 스왑(swap)파일)

가상메모리는 OS가 메모리를 관리하는 메커니즘 혹은 기법을 말합니다
(가상 주소 메커니즘 이라는 말이 더 와닿겠네요)

어쨋든, 가상메모리는 논리메모리라고도 할 수 있는데요,
실제 물리 메모리를 직접 핸들링하지 않고 각 프로세스 마다 논리 메모리(가상메모리)를 두어
MMU(Memory Management Unit)의 도움을 받아 논리(가상) 메모리 - 물리(실제) 메모리 매핑으로 이루어 집니다

32bit 시스템에서는 하나의 프로세스에 4G(0 ~ 2^32 -1) 만큼 주소공간 할당이 가능합니다
물론 하드디스크의 공간이 메모리처럼 사용되어야 하지요

빈번한 스왑(swap)은 성능에 좋지 않습니다
그렇기에 OS 에서는 스왑이 잘 일어 나지 않도록, 메모리를 블럭단위로 관리합니다
이는 캐쉬 메모리 알고리즘인 스페이셜 로컬리티(spatial locality) ,
즉 참조되는 주소 공간과 인접해 있는 공간이 자주 참조된다는 소프트웨어 특징이 적용된 셈입니다


∵Commented by 이재학 at 2009-09-22 오후 12:07:12  
음.. 좋아..
이름
비밀번호
홈페이지
PQ <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요