[CS] 메모리

눈치없어·2025년 5월 7일

메모리 계층

계층저장소속성속도용량비휘발성
1레지스터CPU 내부, 가장 빠름가장 빠름매우 작음X
2캐시 (L1~L3)CPU와 메모리 중간 속도 계층빠름작음X
3주기억장치 (RAM)휘발성 주 메모리보통보통X
4보조기억장치 (SSD, HDD)비휘발성, 장기 저장소낮음

속도가 빠를수록 비싸고 용량은 작음. 계층화된 이유는 성능과 경제성의 균형 때문


캐시

  • 느린 저장 장치 접근 시간을 줄이기 위해 데이터를 미리 저장해두는 임시 저장소
  • 속도 차이를 줄여 병목 현상을 방지하는 역할

지역성의 원리

  • 시간 지역성: 최근에 사용된 데이터를 곧 다시 사용할 가능성 (e.g., 반복문 내 변수 접근)
  • 공간 지역성: 인접한 데이터에 접근할 가능성 (e.g., 배열 순차 접근)

캐시히트와 캐시미스

용어설명
캐시 히트필요한 데이터가 캐시에 있어 바로 가져옴 (빠름)
캐시 미스캐시에 없어 메모리나 디스크에서 읽어옴 (느림)

📌 캐시매핑 방식

방식설명장단점
직접 매핑메모리 주소 → 고정된 캐시 위치빠르지만 충돌에 취약
연관 매핑어느 캐시든 자유롭게 매핑충돌 적지만 느림
집합 연관 매핑캐시를 그룹화하여 매핑적절한 속도와 유연성

웹 브라우저의 캐시

종류특징용량저장 위치
쿠키만료기한 有, 서버도 설정 가능~4KB서버/클라이언트
로컬 스토리지만료기한 無, 탭 닫아도 유지~5MB클라이언트
세션 스토리지탭 단위, 탭 닫으면 삭제~5MB클라이언트

데이터베이스의 캐싱 계층

  • 레디스(Redis) 같은 인메모리 DB를 메인 DB 앞단에 두어 읽기 성능을 향상시킴
  • 자주 요청되는 데이터를 빠르게 응답할 수 있도록 구성


메모리 관리

운영체제는 컴퓨터 자원 중 메모리를 효율적으로 할당하고, 최대한 활용하며, 충돌 없이 여러 프로그램을 실행할 수 있도록 관리함


가상 메모리

실제 RAM보다 더 큰 메모리처럼 보이도록 하는 추상화된 메모리 시스템

  • 주소 구분
    - 가상 주소(Logical Address): 사용자에게 보이는 주소
    - 실제 주소(Physical Address): 실제 메모리(RAM)의 주소
  • 변환 방법: MMU (Memory Management Unit)가 가상 주소 → 실제 주소로 변환
  • 페이지 테이블로 주소 변환 관리, TLB를 통해 속도 향상

TLB
메모리와 CPU 사이에 있는 주소 변환을 위한 캐시.
페이지 테이블에 있는 리스트를 보관하며 CPU가 페이지 테이블까지 가지 않도록 해 속도를 향상시킬 수 있는 캐시 계층


페이지 폴트 & 스와핑

페이지 폴트: 가상 메모리엔 있지만 실제 메모리에 없는 데이터에 접근 시 발생
스와핑: RAM에서 당장 필요 없는 페이지를 디스크로 내보내고 필요한 페이지를 RAM으로 불러오는 과정

페이지: 가상 메모리의 최소 단위
프레임: 실제 메모리의 최소 단위


스레싱

과도한 스와핑으로 CPU 사용률이 저하되고 시스템 성능이 급감하는 현상

  • 원인: 너무 많은 프로세스를 동시에 메모리에 올릴 때 발생
  • 해결책:
    - 작업 세트(Working Set): 자주 사용하는 페이지 묶음을 미리 올림
    - PFF(Page Fault Frequency): 페이지 폴트 빈도에 따라 프레임 수 조절

메모리 할당

📌 연속 할당

  • 메모리를 연속된 공간에 할당
  • 고정 분할: 메모리를 미리 고정 크기로 분할 → 내부 단편화 발생
  • 가변 분할: 동적 크기로 할당 → 외부 단편화 발생

단편화
내부 단편화: 공간은 있는데 프로그램보다 커서 낭비
외부 단편화: 공간이 흩어져 있어 사용 불가

📌 불연속 할당

  • 메모리를 나눠 불연속적으로 배치
  • 페이징(Paging): 동일한 크기의 페이지 단위로 나눠 주소 매핑
  • 세그멘테이션(Segmentation): 의미 단위(함수, 데이터 등)로 나눔
  • 페이지드 세그멘테이션: 세그먼트 내에서 페이지 단위로 나눔

페이지 교체 알고리즘

  • 오프라인 알고리즘: 이상적 기준 (실제로 사용 불가)
  • FIFO(First In First Out): 가장 먼저 들어온 페이지 제거
  • LRU(Least Recently Used): 가장 오랫동안 사용하지 않은 페이지 제거
  • NUR(Not Used Recently): 최근 사용 여부만 판단 (Clock 방식)
  • LFU(Least Frequently Used): 가장 사용 횟수가 적은 페이지 제거



참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 3-2)

profile
dock 사이즈 다르잖아

0개의 댓글