Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
운영체제 Ch.4 - 메모리계층(memory hierarchy) 본문
메모리계층
메모리도 그냥 메모리만 있는게 아니라 계층적으로 이루어져 있습니다.
메모리 계층(memory hierarchy)은 레지스터, 캐시, 주기억장치, 보조기억장치로 구성되어 있습니다
- 레지스터:CPU내의작은메모리,휘발성,속도가장빠름,기억용량이가장적음.
- 캐시: CPU내의 L1, L2 캐시를 지칭합니다. 휘발성, 속도 빠름, 기억 용량이 적음.
- 주기억장치: RAM을 가리킵니다. 휘발성, 속도 보통, 기억 용량이 보통
- 보조기억장치: HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 기억 용량이 많습니다.
계층이 존재하는 이유
1. 더 빠른 접근과 처리속도가 증가
우리는 보통 많이 쓰는 것을 다시 많이 씁니다. 이 때문에 특정 데이터에 많이 접근하게 되는데 좀 더 작은 캐시 메모리에 해당 데이터가 있다면 더 빠르게 해당 데이터에 접근이 가능합니다. 그로인해 처리속도도 증가하게 됩니다.
- 매일 컴퓨터를 키고 웹 브라우징을 시작하면, 주로 다음과 같은 일련의 작업을 반복합니다.
- 컴퓨터를 켭니다.
- 웹 브라우저 (예: Chrome)를 실행합니다.
- 웹 페이지 (예: Naver)를 엽니다.
- 이러한 작업은 일상적인 습관처럼 반복되어, 같은 작업을 매일 수행합니다. 이로 인해 브라우징에 사용되는 데이터와 리소스는 자주 사용되는 것으로 간주됩니다. 이것이 캐싱의 핵심 아이디어입니다.
- 캐싱의 효율성: 반복적으로 수행하는 작업은 컴퓨터의 메모리에 캐시됩니다. 이것은 즉, 자주 사용되는 데이터와 리소스가 더 빠르게 액세스되고 사용되는 것을 의미합니다. 캐싱은 불필요한 데이터 로딩 시간을 절약하고 성능을 향상시킵니다.
- 메모리 용량: 캐싱으로 인해 많은 용량이 필요하지 않습니다. 캐시된 데이터는 주로 자주 사용되는 작업에 관련된 것이므로, 전체 메모리 용량에 대한 작은 부분만 차지합니다.
- 메모리 계층: 메모리 계층화는 메모리의 속도와 크기에 대한 효율적인 관리를 제공합니다. 작업 중에 필요한 데이터를 빠르게 찾기 위해 더 빠른 메모리 계층 (예: 캐시)와 큰 용량을 제공하는 하위 메모리 계층 (예: RAM)을 조합합니다. 캐시의 크기가 작더라도 자주 사용되는 데이터를 빠르게 액세스할 수 있습니다.
- 메모리 크기와 속도: 16MB의 캐시 메모리에서 원하는 데이터를 찾는 것은 16GB의 메인 메모리에서 찾는 것보다 빠릅니다. 캐시는 작은 용량이지만 매우 빠른 속도로 데이터에 액세스할 수 있어, 성능 향상에 기여합니다.
비용의 효율성
캐시메모리는 비싸고 램 등 아래로 갈수록 비용은 더 저렴합니다. 계층이 있고 캐싱 때문에 비용을 좀 더 효율적으로 쓸 수 있습니다.
자원의 효율적 사용
메모리 계층 구조는 자주 접근하는 데이터는 빠른 메모리에, 덜 접근하는 데이터는 느린 메모리에 저장하여 자원을 효율적으로 사용할 수 있습니다.
이렇게 하면 거의 접근하지 않은 데이터에 비싸고 빠른 메모리를 사용하지 않게 되어 자원을 낭비하지 않게 됩니다.
- 비싼 메모리 자원을 저렴한 SSD와 같은 저장 장치에 할당하는 것은 중요한 메모리 계층화의 한 부분입니다. 이렇게 하는 이유는 다음과 같습니다:
- 저렴한 저장 장치 활용: 메모리는 상대적으로 비싼 자원입니다. 따라서 모든 프로그램이 메모리에 상주할 필요가 없습니다. 메모리가 아주 비싼 경우, 메모리를 사용하지 않는 프로그램들을 위해 메모리 자원을 낭비하지 않기 위해 저렴한 저장 장치 (예: SSD)를 활용할 수 있습니다.
- 대용량 저장: SSD와 같은 저장 장치는 큰 데이터 양을 저장할 수 있으며, 저장 장치를 활용하면 메모리 용량을 초과하는 데이터도 처리할 수 있습니다.
- 자원 효율성: 메모리 계층화를 통해 자원을 효율적으로 활용할 수 있습니다. 자주 사용되는 데이터나 프로그램은 더 빠른 메모리에 상주하고, 드물게 사용되는 데이터는 저장 장치에서 가져오게 됩니다. 이것은 자원 효율성을 향상시키고 성능을 최적화하는 데 도움이 됩니다.
- 메모리 계층화는 컴퓨터 시스템의 중요한 디자인 요소 중 하나이며, 자원 효율성을 높이고 성능을 향상시키는 데 기여합니다. 이러한 접근 방식은 비용을 절약하면서도 빠른 응답 시간과 효율적인 자원 활용을 제공합니다.
ex) 로딩중
- 로딩 화면은 우리가 어떤 애플리케이션 또는 웹 페이지를 시작할 때 볼 수 있는 것입니다. 이 화면은 데이터가 아직 메인 메모리 (RAM)에 로드되지 않았음을 나타냅니다.
- 데이터를 메모리로 로드하는 과정은 종종 인터넷 또는 하드 디스크와 같은 외부 소스로부터 데이터를 읽어 메모리로 전달하는 것을 포함합니다.
- 이때, 로딩 화면을 볼 때, 그것은 운영체제가 데이터를 메모리로 로드하고 애플리케이션을 시작하는 데 노력하고 있음을 나타냅니다. 이 과정은 보통 시작할 때 필요한 데이터를 메모리에 사전로드하고 애플리케이션을 빠르게 실행하기 위한 것입니다.
로딩 화면을 보면, 운영체제가 뒷배경에서 데이터를 메모리에 로드하고 애플리케이션을 시작하려고 노력하고 있음을 알 수 있습니다. 이것은 사용자 경험을 향상시키는 중요한 메모리 계층의 한 부분입니다.
'CS > 운영체제' 카테고리의 다른 글
운영체제 Ch.6 - 페이지교체 알고리즘 : FIFO, LRU, NUR, LFU (1) | 2023.10.17 |
---|---|
운영체제 Ch.5 - 가상메모리와 스와핑, 페이지폴트 그리고 스레싱 (1) | 2023.10.17 |
운영체제 Ch.3 - 시스템콜(system call)과 modebit (1) | 2023.10.16 |
운영체제 Ch.2 - 인터럽트(interrupt) (0) | 2023.10.16 |
운영체제 Ch.1 - 운영체제와 컴퓨터시스템의 구조 (1) | 2023.10.16 |