3.2.1 메모리 계층
메모리 계층
- 크기가 작을수록(상위계층) 속도가 빠르며 용량이 작다.
- 레지스터: CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적음
- 캐시: L1, L2 캐시를 지칭
- 주기억장치: 메모리 즉 RAM 지칭
- 보조기억장치: HDD, SDD 지칭
메모리 계층이 있는 이유?
캐시
- 데이터를 미리 복사해놓은 임시저장소
- 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리
- 메모리와 CPU 사이의 속도차이가 너무 커서 그 중간에 레지스터 계층을 두어 속도 차이를 해결한다.
- 속도 차이를 위해 만든 계층을 캐싱 계층이라 한다.
지역성의 원리
1. 시간 지역성
2. 공간 지역성
- 최근 접근한 데이터를 이루고 있는 공간 혹은 그 가까운 공간에 접근하는 특성
캐시히트와 캐시미스
- 캐시히트: 캐시에서 원하는 데이터를 찾은 것
- 캐시미스: 해당 데이터가 캐시에 없다면 주 메모리로 가서 데이터를 찾아오는 것
1. 캐시매핑
- 캐시가 히트되기 위해 매핑하는 방법
- CPU의 레지스터와 주 메모리(RAM) 간에 데이터를 주고 받을 때를 기반으로 설명
2. 웹 브라우저의 캐시
- 쿠키
- 로컬 스토리지
- 만료기한이 없는 키-값 저장소
- 웹 브라우저를 닫아도 유지되고 도메인 단위로 저장, 생서
- 클라이언트에서만 수정 가능
- 세션 스토리지
- 만료기한이 없는 키-값 저장소
- 탭 단위로 세션 스토리지를 생성, 탭을 닫을 때 해당 데이터가 삭제
- 클라이언트에서만 수정 가능
3. 데이터베이스의 캐싱 계층
- 데이터베이스 위에 레디서 데이터 베이스 계층을 '캐싱 계층'으로 두어 성능을 향상
3.2.2 메모리 관리
- 운영체제의 대표적인 할일 중 하나
- 컴퓨터 내의 한정ㅇ된 메모리를 극한으로 활용하는 것
가상 메모리
- 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 사용자들에게 매우 큰 메모리로 보이게 만드는 것
- 가상 메모리는 가상 주소와 실제 주소가 매핑되어 있음
- 프로세스의 주소 정보가 들어있는 '페이지 테이블'로 관리
스와핑
- 당장 사용하지 않는 영역을 하드디스크로 옯겨 필요할 때 다시 RAM으로 불러와 올리고, 사용하지 않으면 다시 하드디스크로 내림을 반복하여 RAM을 효과적으로 관리하는 것
- 가상 메모리에는 존재하지만 실제 RAM에는 없는 데이터에 접근할 때 발생하는 페이지 폴트를 방지하기 위함
페이지 폴트
- 프로세스의 주소 공간에는 존재하지만 지금 이 컴퓨터의 RAM에는 없는 데이터에 접근했을 경우 발생
스레싱
- 메모리의 페이지 폴트율이 높은 것 -> 심각한 성능 저하를 초래
- 메모리에 너무 많은 프로세스가 동시에 올라가면 스와핑이 많이 일어나서 발생
- 페이지 폴트 발생 ▶️ CPU 이용률 낮아짐 ▶️ 더 많은 프로세스를 메모리에 올림 ▶️ 악순환 반복... => 스레싱 발생
운영체제에서 스레싱을 해결하는 법
1. 작업세트
- 프로세스의 과거 사용 이력인 지역성을 통해 결정된 페이지 집합을 만들어서 미리 메모리에 로드
2. PFF
- 페이지 폴트 빈도를 조절하는 방법
- 상한선과 하한선을 만들어, 상한선을 도달하면 페이지를 늘리고 하한선에 도달하면 페이지를 줄임
메모리 할당
- 시작 메모리 위치, 메모리의 할당 크기를 기반으로 할당
연속 할당
- 프로세스를 순차적으로 공간에 할당하는 것
- 고정 분할 방식: 메모리를 미리 나누어 관리
- 가변 분할 방식: 매 시점 프로그램의 크기에 맞게 동적으로 메모리를 나눠 사용
불연속 할당
- 페이지: 동일한 크기의 페이지 단위로 나누어 메모리의 서로 다른 위치에 프로세스를 할당
- 세그멘테이션: 의미단위인 세그먼트로 나눈다.
- 페이지드 세그멘테이션: 공유나 보안을 의미 단위의 세그먼트로 나누고, 물리적 메모리는 페이지로 나누는 것
페이지 교체 알고리즘
오프라인 알고리즘
- 먼 미래에 참조되는 페이지와 현재 할당하는 페이지를 바꾸는 것
FIFO
- 가장 먼저 온 페이지를 교체 영역에 먼저 놓는 방법
LRU
- 참조가 가장 오래된 페이지를 바꾸는 것
- 해시 테이블과 이중 연결 리스트로 구현
LFU
- 가장 참조 횟수가 적은 페이지를 교체 (많이 사용되지 않은 것)
[참고자료]