가상메모리란?
가상 메모리는 실제 존재하지 않는 허황의 공간입니다. 운영체제는 다양한 리소스를 최대한 효율적으로 사용할 수 있도록 많은 방법을 가지고 있습니다. 특히 이 가상메모리는 내 컴퓨터에 메모리 장치가 용량이 4G인데, 이보다 더 큰 5G 리소스를 사용하는 프로그램을 실행시킬 수 있도록 도와줍니다.
정말 어마어마 하지 않나요? 내 컴퓨터에 실제 있지도 않은데 말이죠..
이러한 기술을 가지고 물리적 메모리의 용량이 제한되어 있는 문제점을 해결하고 운영체제 사용자에게 더 큰 성능을 제공합니다.
가상메모리 지원 운영체제의 성능 차이 발생 이유는?
우리가 어떠한 프로그램을 실행하고 있다고 가정해봅시다. 이 프로그램은 내 컴퓨터에 장착되어 있는 4G 용량이상의 리소스를 지금 막 사용을 하려고 합니다. 이때, 가상 메모리를 사용하려면 실제 존재하지 않는 가상의 주소 일부를 물리적 메모리의 실제 주소로 변환하는 과정이 필요합니다.
아무래도 물리적 메모리의 실제 주소로 바로 접근하여 리소스를 사용한다면 더욱이 빠르겠지만, 실제로는 존재하지 않는 가상메모리를 사용함으로써 가상의 주소를 실제주소로 변환하는 과정을 거쳐야 합니다. 불필요하고 없던 과정을 하나 더 거치기 때문에 느려지는 현상이 발생합니다.
이러한 문제점이 바로 운영체제의 성능 차이를 발생시키는 이유입니다. 이런 문제점은 데이터 접근 시간(DAT, Data Access Time) 으로 표현되며 이 값에 의해 성능 차이가 발생합니다. DAT는 메모리 계층 구조에서 내가 처리하려는 데이터까지 소요되는 시간입니다.
변환 과정에서 DAT 영향은?
앞서 설명한 것과 같이 가상의 메모리 주소를 실제 물리적 메모리 주소로 변환하는 것은 DAT에 영향을 주고, 그것은 곧 컴퓨터의 성능에 직결됩니다.
항상 그렇듯 물리적 메모리 주소에 직접 적근하는 것이 DAT가 가장 빠르며, 그다음으로는 중앙처리장치에 있는 캐시 시 메모리와 보조기억장치인 하드 디스크 등 이러한 장치로 갈수록 DAT는 느려집니다.
따라서 가상 메모리를 사용하여 변환 과정을 거치는 것보다는 실제 물리적 메모리의 용량이 커서 바로바로 직접 접근할 수 있는 경우가 DAT가 가장 빠릅니다.
DAT 빠른 순서에서 느린 순서는?
DAT 빠른 순서는 캐시 메모리, 물리적인 메모리, 하드 디스크 순으로 속도가 빠르고 느려집니다.
앞서 설명한 것과 같이 캐시 메모리는 중앙처리 장치에 속해있습니다.
따라서 메모리에 빠르게 접근할 수 있다는 장점이 있습니다.
실제 넉넉한 용량의 물리적 메모리는 캐시 메모리보다는 느린 속도이지만 가상메모리보다는 빠릅니다.
하드디스크는 최저 속도를 나타냅니다. 이는 곧 DAT가 가장 느리다는 것이며 데이터를 가져오는 속도가 느리다는 것을 의미합니다.
직접사상이란?
메모리 매핑 방식은 여러가지가 있습니다. 대표적으로 직접사상 방식과 연관사상 방식이 있습니다.
직접이란 단어는 곧 "Direct" 를 의미하며 가상의 메모리 주소를 실제 물리적 메모리 주소로 1:1로 맵핑하는 간단하고 빠른 기법입니다.
따라서 결과적으로 데이터를 가져오려는 가상의 주소 공간은 물리적인 메모리 공간에 직접 매핑하기 때문에 가져오는 속도가 빠릅니다.
모든 게 장점으로 보이지만 예기치 못한 상황으로 인해 주소 충돌이 발생할 수 있습니다. 만약 두 개의 가상의 메모리 주소가 실제 물리적 메모리 주소에 동시에 맵핑된다면 충돌이 발생할 수 있는 여지가 있습니다.
연관사상이란?
직접사상과 반대의 개념인 연관사상은 가상의 메모리 주소를 실제 물리적 주소로 맵핑할 때 캐시 메모리를 사용하는 기법입니다. 이 기법을 사용하면 가상의 주소를 캐시 메모리 여러 공간에 해당 주소를 맵핑할 수 있습니다.
따라서 직접사상과 다르게 가상의 주소가 한곳의 실주소에 동시 맵핑 되는 문제를 없앨 수 있습니다.
다만, 이러한 맵핑 과정이 쉽지 않기 때문에 속도가 저하되는 문제점이 발생합니다.
충돌은 방지할 수 있기때문에 신뢰성이 높아지지만 추가적인 일이 발생하기 때문에 속도가 저하하는 문제점이 발생합니다.
직접 연관사상이란?
직접 연관사상(Direct Set Associative Mapping)은 직접사상과 연관사상의 특징을 결합한 가상메모리 관리 방식입니다.
이 방식은 가상주소를 캐시 메모리의 일부 라인에만 매핑합니다.
가상주소가 여러 실주소와 매핑될 수 있으며, 동시에 직접사상처럼 간단하고 빠른 접근이 가능합니다.
직접 연관사상은 매핑의 유연성과 성능의 균형을 제공하는 중간적인 방식으로 사용됩니다.
가상메모리와 관련된 여러 개념을 설명해 보았습니다.
가상메모리는 운영체제에서 사용되는 중요한 기술로, 물리적인 메모리의 한계를 극복하고 성능을 향상합니다.
가상메모리를 효과적으로 관리하기 위해 다양한 매핑 방식이 사용되며, 이를 이해하는 것은 운영체제와 메모리 관리에 대한 이해를 높일 수 있습니다.