2023. 3. 11. 16:46ㆍCS
물리적 메모리란?
RAM(Random Access Memory)이라고도 하는 물리적 메모리는 프로세서에서 빠르게 액세스할 수 있는 데이터를 저장하는 컴퓨터의 실제 하드웨어이다.
프로그램이 실행되면 명령과 데이터가 물리적 메모리에 로드되어 프로세서가 빠르게 액세스할 수 있게 된다.
그러나 물리적 메모리에는 한계가 있다.
메모리는 가격이 비싸고, 컴퓨터에 설치할 수 있는 양이 제한되어 있다.
또한 최신 프로그램은 특히 대용량 데이터 또는 멀티미디어 파일로 작업할 때
많은 메모리를 필요로 하게 된다.
따라서 프로그램에 필요한 모든 데이터를 저장할 수 있는 물리적 메모리가 충분하지 않은 경우
운영 체제는 프로그램이 물리적으로 사용 가능한 것보다 더 많은 메모리에 액세스할 수 있도록 하는 방법을 찾게 되고,
이를 위한 방법이 바로 가상 메모리이다.
가상 메모리란?
가상 메모리는 프로그램이 물리적으로 사용 가능한 것보다 더 많은 메모리에 액세스할 수 있도록 운영 체제에서 사용하는 기술이다.
프로그램이 데이터를 저장하는 데 사용할 수 있는 주소 범위인 각 프로그램에 대한
가상 주소 공간을 생성하여 이를 수행하게 된다..
프로그램은 물리적 메모리에 액세스하고 있다고 생각하지만
실제로는 물리적 메모리 또는 스토리지가 지원하는 가상 메모리에 액세스하고 있다.
가상 주소 공간은 고정 크기의 메모리 블록인 페이지로 나뉘어 관리된다.
프로그램이 현재 물리적 메모리에 없는 페이지에 액세스하면 페이지 오류가 발생하게 되고,
운영 체제는 필요한 페이지를 디스크에서 물리적 메모리로 가져오게 된다.
이를 페이지 스와핑이라고 한다.
운영 체제에는 가상 주소를 물리적 주소에 매핑하는 페이지 테이블이라는 테이블이 있다.
프로그램이 가상 주소에 액세스할 때 프로세서는
먼저 해당 물리적 주소를 결정하기 위해 페이지 테이블을 참조한다.
페이지가 현재 실제 메모리에 없는 경우 운영 체제는 페이지를 저장하기 위해
실제 메모리에서 사용되지 않은 페이지 프레임을 찾아야 하며
제거된 페이지의 내용을 다시 디스크에 기록해야 한다..
이 프로세스를 페이지 교체라고 한다.
가상 메모리의 장점과 단점
가상 메모리의 주요 이점 중 하나는 여러 프로그램이 각각 자체 가상 주소 공간을 사용하여 동시에 실행될 수 있다는 것이다.
이는 프로그램이 서로의 메모리 사용량을 알 필요가 없다는 것이다.
또한 가상 메모리는 물리적으로 사용 가능한 것보다
더 큰 주소 공간을 관리할 수 있도록 하여 운영 체제의 메모리 관리를 단순화 시켜준다.
그러나 이렇게 좋아보이기만 하는 가상 메모리도 단점은 있다.
프로그램이 현재 물리적 메모리에 없는 페이지에 액세스하면
디스크에서 페이지를 가져오는 동안 지연이 발생하게 된다.
page fault latency 라고 하는 이 지연으로 인해 실제 메모리에 없는 페이지에 자주 액세스하는 경우
프로그램 속도가 크게 느려질 수 있다.
따라서 운영 체제는 성능에 미치는 영향을 최소화하기 위해 페이지 스와핑 및 페이지 교체를 신중하게 관리해야 한다.
정리
요약하면, 가상 메모리는 프로그램이 물리적 메모리 또는 저장소가 지원하는
가상 주소 공간을 사용하여 물리적으로 사용 가능한 것보다 더 많은 메모리에
액세스할 수 있도록 하는 메모리 관리 기술이다.
페이지 테이블을 사용하여 가상 주소를 물리적 주소에 매핑하고
필요에 따라 물리적 메모리 안팎으로 페이지를 교환하는 운영 체제에서 관리하게 된다.
가상 메모리는 컴퓨터의 유용성을 향상시킬 수 있지만
신중하게 관리하지 않으면 성능에 부정적인 영향을 미치게 된다.
프로그램 전체가 메모리에 올라가는 게 아니라
필요한 페이지들만 메모리에 올라가게 되는 것이다!
'CS' 카테고리의 다른 글
HTTP GET vs POST? (0) | 2023.03.17 |
---|---|
트랜잭션의 연산 중 ROLLBACK 이란? (0) | 2023.03.16 |
거품 정렬(Bubble Sort)이란? (0) | 2023.03.15 |
프록시란(proxy)? (0) | 2023.03.14 |
Q. 로깅을 이용한 데이터베이스의 회복에 대해서 간략히 설명해주세요 (0) | 2023.03.09 |