반응형
3.2.1 메모리 계층
캐시
캐시는 데이터 접근 속도를 높이기 위해 사용되는 고속 메모리다.
1. 지역성의 원리
- 시간 지역성: 동일 데이터나 명령이 짧은 시간 내 반복 참조.
- 공간 지역성: 특정 데이터 참조 시 인접 데이터도 참조 가능성 높음.
2. 캐시 히트와 캐시 미스
- 캐시 히트: 요청 데이터가 캐시에 존재, 메모리 접근 불필요.
- 캐시 미스: 요청 데이터가 캐시에 없어, 메모리에서 데이터 로드.
3. 캐시 매핑
캐시와 메모리 간 데이터 저장·검색 방식.
매핑 방식 | 설명 | 장점 | 단점 |
직접 매핑 | 메모리 주소를 특정 캐시 블록에 매핑 | 구조 단순, 구현 쉬움 | 충돌 발생률 높음 |
연관 매핑 | 메모리 블록이 캐시 어디든 저장 가능 | 충돌 거의 없음 | 탐색 속도 느림, 비용 증가 |
집합 매핑 | 직접·연관 매핑 절충, 블록을 집합으로 나눔 | 충돌 감소, 적정 비용 | 구조 복잡, 성능은 중간 수준 |
웹 브라우저 캐시
웹 성능 향상을 위해 데이터 저장소를 활용.
1. 쿠키
- 클라이언트와 서버 간 데이터 저장·교환.
- 특징: 만료 시간 있음, 요청 시마다 서버로 전송.
- 사용 예: 사용자 로그인 정보, 트래킹.
2. 로컬 스토리지
- 브라우저에 데이터 영구 저장.
- 특징: 만료 시간 없음, 서버와 무관.
- 사용 예: 설정값 저장, 캐시 데이터.
3. 세션 스토리지
- 세션 단위 데이터 저장.
- 특징: 브라우저 탭 닫으면 삭제.
- 사용 예: 임시 폼 데이터, 진행 상태 저장.
분류 | 데이터 유효 기간 | 데이터 크기 제한 | 서버 전송 여부 |
쿠키 | 설정된 만료 시간까지 | 4KB | 항상 전송 |
로컬 스토리지 | 영구 저장 | 5~10MB | 전송 안 함 |
세션 스토리지 | 브라우저 탭 닫힐 때까지 | 5~10MB | 전송 안 함 |
3.2.2 메모리 관리
가상 메모리
물리적 메모리보다 큰 주소 공간을 제공하여 메모리를 효율적으로 관리.
1. 스와핑 (Swapping)
- 프로세스 전체를 메모리에서 디스크로 옮기거나 반대로 이동.
- 메모리 부족 시 공간 확보를 위해 사용.
- 단점: 디스크 접근으로 속도 저하.
2. 페이지 폴트 (Page Fault)
- CPU가 요청한 데이터가 메모리에 없을 때 발생.
- 운영체제가 디스크에서 필요한 페이지를 메모리로 가져옴.
스레싱 (Thrashing)
프로세스가 페이지 폴트 처리에만 CPU 시간을 소모해 작업 효율이 급격히 저하되는 현상.
1. 작업세트 (Working Set)
- 프로세스가 일정 시간 내 사용하는 페이지 집합.
- 작업세트 크기를 관리해 스레싱 방지.
2. PFF (Page Fault Frequency)
- 페이지 폴트 발생 빈도를 기준으로 메모리 할당 조정.
- 폴트 발생 빈도가 높으면 페이지 추가, 낮으면 제거.
메모리 할당
1. 연속 할당
- 고정 분할 방식
- 메모리를 고정 크기로 나눔.
- 장점: 관리 쉬움.
- 단점: 내부 단편화 발생.
- 가변 분할 방식
- 필요에 따라 메모리 크기를 동적으로 할당.
- 장점: 메모리 활용도 높음.
- 단점: 외부 단편화 발생.
2. 내부 단편화
- 할당된 메모리에서 사용되지 않는 공간.
- 고정 분할 방식에서 자주 발생.
3. 외부 단편화
- 사용 가능한 메모리가 조각나서 큰 프로세스가 메모리에 할당되지 못하는 현상.
4. 불연속 할당
- 페이징
- 메모리를 고정 크기인 페이지로 나눔.
- 외부 단편화 없음.
- 세그멘테이션
- 메모리를 가변 크기 세그먼트로 나눔.
- 사용자 관점에서 프로그램 구조 반영.
- 페이지드 세그멘테이션
- 세그먼트를 다시 페이지로 나누어 결합한 방식.
페이지 교체 알고리즘
알고리즘 | 설명 | 장점 | 단점 |
오프라인 알고리즘 | 미래의 접근 패턴을 기반으로 최적의 페이지 교체. | 가장 적은 폴트 발생. | 실제 구현 불가능. |
FIFO | 가장 오래된 페이지를 교체. | 구현 간단. | 오래된 페이지 문제. |
LRU | 가장 오랫동안 사용되지 않은 페이지 교체. | 실제 사용 패턴 반영. | 구현 복잡, 오버헤드. |
NUR | 최근 참조·수정 여부로 교체. | 효율적, 간단. | 성능은 LRU보다 낮음. |
LFU | 참조 횟수가 가장 적은 페이지 교체. | 참조 패턴 반영. | 오래된 데이터 문제. |
반응형
'SW개발 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
3.4 CPU 스케줄링 알고리즘 (1) | 2025.01.15 |
---|---|
3.3 프로세스와 스레드 (0) | 2025.01.15 |
3.1 운영체제와 컴퓨터 (1) | 2025.01.15 |
참고. 네트워크 기기 (1) | 2025.01.10 |
2.5 HTTP (1) | 2025.01.07 |