CS/면접을 위한 CS 전공지식 노트

[CH3.2] 메모리

hahahabbb 2024. 12. 20. 16:51

1. 메모리 계층

구성

  개념 휘발성 여부 속도(빠른 순위) 기억 용량(큰 순위) 가격(높은순위)
레지스터 CPU 안의 작은 메모리 O 1 4 1
캐시 L1, L2, (L3) 캐시 O 2 3 2
주기억장치(RAM) 데이터 임시 저장. 필요시 CPU 전달 O 3 2 3
보조기억장치 HDD, SSD X 4 1 4

 

캐시

  • 데이터를 미리 복사해 놓는 임시 저장소
  • 속도 차이에 따른 병목 현상 감축을 위한 메모리
  • 지역성의 원리(시간/공간) : 캐시 계층을 두는 것이 아닌 캐시 직접 설정 시

시간 지역성

  • 최근 사용한 데이터에 다시 접근하려는 특성

공간 지역성

  • 최근 접근한 데이터를 이루는 공간 혹은 그 공간에 접근하는 특성

 

캐시히트와 캐시미스

  • 캐시히트 : 캐시에서 원하는 데이터 찾음 ( 위치 가까움, 빠름 )
  • 캐시미스 : 해당 데이터가 캐시에 없어서 주 메모리에서 데이터 찾아오는 것 ( 느림 )

캐시매핑

  • 캐시가 히트되기 위해 매핑하는 방법
  • 직접 매핑(순서 일치), 연관 매핑(순서 일치X, 관련성 매핑), 집합 연관 매핑(순서 일치 O, 집합으로 저장) 

웹 브라우저의 캐시

  • 쿠키 : 만료 기한 있는 키-값 저장소
  • 로컬 스토리지 : 만료 기한 없는 키-값 저장소, 탭 닫아도 유지
  • 세션 스토리지 : 만료 기한 없는 키-값 저장소, 탭 닫으면 삭제됨

 

2. 메모리 관리

가상 메모리

  • 실제로 이용 가능한 메모리 자원 추상화
  • 가상 주소 --메모리관리장치(MMU)--> 실제 주소

스와핑

  • 메모리에 당장 사용하지 않는 영역은 하드디스크에 옮기고 하드디스크 일부분을 메모리처럼 불러와 사용하는 것

페이지 폴트

  • 프로세스 주소 공간에는 존재하지만 컴퓨터의 RAM에는 없는 데이터에 접근했을 경우 발생

페이지 폴트, 스와핑 과정

  1. 명령어가 접근한 가상 주소 페이지 없음(페이지 폴트)
  2. 트랩 발생 -> 운영체제에 전달
  3. 운영체제가 사용하지 않은 프레임 탐색
  4. 해당 프레임을 메모리에 가져와 특정 페이지와 교체(스와핑)
  5. 페이지 테이블 갱신 후 다시 시작

 

스레싱

  • 메모리의 페이지 폴트율(프로세스 양이 많은)이 높은 것
  • 성능 저하
  • 해결 방안 : 작업 세트, PFF

작업 세트

  • 프로세스의 과거 사용 이력인 지역성으로 결정된 페이지 집합 생성 후 미리 메모리에 로드

PFF

  • 상한선/하한선 생성으로 페이지 폴트 빈도 조절

 

메모리 할당

연속 할당

  • 메모리에 순차적으로 할당
  • 고정 분할 방식(메모리 미리 나누어 관리) / 가변 분할 방식(매 시점 동적으로 메모리 나눠 사용)

불연속 할당 (현재 사용)

  • 페이징 기법 : 동일한 크기의 페이지 단위로 나누어 메모리 서로 다른 위치에 할당
  • 세그멘테이션 : 페이지 단위 X , 세그먼트(의미 단위) O 로 나누는 방식
  • 페이지 세그멘테이션 : 세그먼트(의미 단위)로 나누어 동일 크기의 페이지 단위로 나누는 것

페이지 교체 알고리즘

오프라인 알고리즘

  • 추후 참조되는 페이지와 현재 할당하는 페이지를 바꾸는 알고리즘
  • 성능 비교에 대한 상한 기준 제공

FIFO : 가장 먼저 온 페이지를 교체 영역에 가장 먼저 놓기

LRU : 참조가 가장 오래된 페이지 변경 Ex) 5번째에 5번 페이지가 들어오면 가장 먼저 들어온 1번 페이지와 스왑

NUR ( = LRU 업그레이드 버전 = clock 알고리즘 ) : 시계 방향으로 돌면서 0 찾으면 해당 프로세스 교체, 해당 부분 1로 교체

LFU : 가장 참조 횟수가 적은 페이지 교체

 

 

'CS > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글

[CH3.1] 운영체제와 컴퓨터  (0) 2024.12.20
[CH2.5] HTTP  (2) 2024.12.18
[CH2.4] IP 주소  (0) 2024.12.13
[CH2.3] 네트워크 기기  (0) 2024.12.12
[CH2.2] TCP/IP 4계층 모델  (0) 2024.12.11