Memory
-
Memory hierarchy대학/컴퓨터구조 2023. 6. 13. 21:23
데이터를 모두 하드디스크에서 처리한다면 어떨까? 적은 가격에 많은 공간을 사용할 수 있겠지만, 속도가 매우 느릴 것이다. 반대로 모두 캐시에서 처리한다면? 매우 빠르겠지만, 비싸고 적은 공간만 사용할 수 있을 것이다. 그렇기에 메모리는 계층구조를 이루어 데이터가 이동하며 저장 및 사용되는데, 이때 사용되는 용어가 캐싱이다. 캐시메모리 - DRAM - Disk의 계층 구조에서 장치간 동작 속도의 차이가 큰데, 이 속도차이를 극복하기 위해 디스크부터 캐시로 데이터를 미리 로드하는 행위를 캐싱이라 하는데, 캐싱이 가능한 이유는 메모리의 Locality 특성 때문이다. Locality란, 같은 메모리 영역을 자주 접근하려는 경향, 그리고 접근한 메모리 근처의 메모리영역을 접근하려는 영향을 의미한다. 즉, 캐싱을..
-
Memory Management대학/시스템소프트웨어 2022. 12. 11. 18:58
프로세스는 CPU에 의해 위와 같은 가상 메모리 영역을 할당받게 되고, 이 가상 메모리는 MMU(Memory Management Unit)에 의해 실제 DRAM의 메모리 영역에 매핑된다. malloc으로 메모리를 할당받을 수 있고, realloc으로 메모리 영역을 확장할 수 있다. 하지만 경우에 따라 realloc시 메모리 영역을 통째로 복사해야 하는 경우가 생긴다. 이런 경우 성능저하 이슈가 생길 수 있는데, 이런 경우를 줄이기 위해 메모리 공간을 할당부터 관리까지 세심한 노력이 필요하다. 지금부터 그 노력의 흔적을 살펴보자. 메모리를 위와 같이 words 단위로 관리한다고 가정하자. (실제로 1word = 32B or 64B 이렇게 하고있긴 함) 만약 p = malloc으로 메모리 공간을 할당 받았는..