컴퓨터 구조/자료 구조

[컴퓨터 구조] - 가상메모리

Casteira 2023. 5. 16. 15:51

 

📌 - 가상메모리(VM)란?

실제 메모리 크기와 관계없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법

 

- 가상메모리는 한 개의 깔끔한 메커니즘을 사용해서 세 개의 중요한 기능을 제공한다.

  1. 메인 메모리 내 활성화 영역만 유지하고, 데이터를 디스크와 메모리 간의 필요에 따라 전송하는 방법을 사용
  2. 각 프로세스에 통일된 주소공간을 제공함으로 메모리를 단순화
  3. 각 프로세스의 주소공간을 다른 프로세스에 의한 손상으로부터 보호

📌 -  왜 알아야 하는가??

현재 프로그래머들이 가상메모리에 대해 개입하지 않아도 조용하고 자동으로 잘 동작하는데, 왜 이것을 이해해야 하는 것일까??

 

1 ) 가상메모리가 중심이다.

- 가상메모리는 모든 컴퓨터 수준에 스며들어 있으며, 어셈블러, 링커, 로더, 공유 객체, 파일, 프로세스를 설계하는데 중요한 역할 수행한다.

 

2) 가상메모리는 강력하다.

- 가상메모리는 응용에 메모리 블록을 생성하고 없애고, 메모리 블록을 디스크 파일의 부분으로 매핑하고, 메모리를 다른 프로세스들과 공유할 수 있는 강력한 기능을 준다.

 

3) 가상메모리는 위험하다.

- 응용프로그램은 변수를 참조하고 ,포인터를 역참조하고, malloc 같은 동적 할당 패키지로 호출할 때마다 가상메모리와 상호작용한다.

만일 잘못사용되면, 메모리 관련 버그로 고통을 겪을 수 있다.

 

📌 - DRAM 

CPU와 메인 메모리 사이에서의 캐시 메모리를 말하기 위해서는 SRAM 캐시라는 용어를 사용하고,

 

 

디스크(100,000배) = DRAM(10배) = SRAM

 

디스크의 큰 접근 시간 때문에 DRAM은 항상 write-through 대신에 write-back을 사용한다.

 

 

🚗 - write-through

  • CPU가 데이터를 사용하면 캐시에 저장되게 되는데, 데이터가 캐시 됨과 동시에 주기억장치 또는 디스크로 기입되는 방식
  • ⭕️ - 캐시와 메모리에 같이 업데이트 하기 때문에, 데이터 일관성을 유지할 수 있어 안정적임 
  • ❌ - 속도가 느린 주기억장치 또는 보조기억장치에 데이터를 기록할 때, CPU가 대기하는 시간이 필요하기 때문에 성능 떨어짐

🚚 - write-back(DRAM)

  • CPU 데이터를 사용할 때 데이터는 먼저 캐시로 기록되는데, 캐시 내에 일시적으로 저장된 후에 블록 단위에 캐시로부터 해제 되는 때에만 주기억장치, 보조기억장치에 기록되는 방식
  • ⭕️ - 캐시와 메모리를 같이 업데이트 하지 않기 때문에, 훨씬 빠르다.
  • ❌ - 속도가 빠르지만 캐시에 업데이트하고 메모리에는 바로 업데이트를 하지 않기 때문에, 캐시와 메모리의 값이 다른 경우가 발생할 수 있다.