메모리
메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며, 보통 RAM을 일컫어 메모리라고도 함. CPU는 계산을 담당하고, 메모리는 기억을 담당함
메모리 계층
메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있음
- 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 용략 제일 적음
- 캐시 : L1,2 캐시를 지칭함. 휘발성, 속도빠름, 기억 용략 적음
- 주기억장치 : RAM을 지칭함, 휘발성, 속도 보통, 기억 용량 보통
- 보조기억장치 : HDD, SDD를 일컫으며 비휘발성, 속도 낮음, 기억 용량이 많음
캐시
데이터를 미리 복샣 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상(Bottle neck)을 줄이기 위한 메모리임.
이를 통해 데이터를 접근하는 시간이 오래 걸리는 경우를 해결하고 무언가를 다시 계산하는 시간을 절약 할 수 있음. 이때 적중율(Hit Rate)를 극대화 시키기 위해서 데이터 지역성의 원리를 이용함.
지역성 : 모든 코드나 데이터를 균등하게 Access 하지 않는다는 특성을 기본으로 한다. 즉, Locality란 기억 장치 내의 정보를 균일하게 Access 하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성인 것이다.
이 데이터 지역성은 대표적으로 시간 지역성(Temporal Locality)과 공간 지역성(Spatial Locality)으로 나뉜다.
- 시간 지역성 : 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성.
- ex) for문에서 i연산을 통해 반복해서 셈을 구하는 과정
- 공간 지역성 : 대부분의 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성
- ex) 배열 arr의 각 요소들에 연속적으로 접근할 때
캐시히트와 캐시미스
캐시에서 원하는 데이터를 찾았다면, 캐시히트라고 하며, 해당 데이터가 캐시에 없다면 주메모리로가서 데이터를 찾아오는 것을 캐시미스라고 함.
캐시 매핑
캐시가 히트되기 위해 매핑하는 방법을 말하며 CPU의 레지스터와 주 메모리간에 데이터를 주고받을 때를 기반으로 설명함. 레지스터는 주 메모리에 비하면 굉장히 작고 주 메모리는 굉장히 크기때문에 작은 레지스터가 캐시 계층으로써 역할을 잘하려면 매핑 방식이 중요함. 캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하게 되는데 이를 캐싱 라인 이라고 함.
- 직접 매핑(directed mapping)
- 메모리가 1~100, 캐시가 1~10이면 1: 1~10, 2: 1~20 이런 식으로 매핑함, 처리가 빠르지만 충돌 발생이 잦음
- 연관 매핑(associative mapping)
- 순서를 일치시키지 않고 관련있는 캐시와 메모리를 매핑함. 충돌이 적지만 모든 블록을 탐색해야 해서 속도가 느림
- 집합 연관 매핑(set associative mapping)
- 직접 매핑과 연과 매핑을 합쳐놓음
'CS 전공지식 > Operating System' 카테고리의 다른 글
[운영체제] 메모리 관리와 가상 메모리 (0) | 2024.06.03 |
---|---|
[운영체제] CPU 스케줄링과 알고리즘 (1) | 2024.06.03 |
[운영체제] Mutex(뮤텍스), Semaphore(세마포어), Deadlock(데드락) (0) | 2024.06.02 |
[운영체제] 멀티 스레드와 임계영역(Critical Section) (0) | 2024.06.02 |
[운영체제] 멀티 프로세스와 PCB (1) | 2024.06.02 |