[CS] 메모리

팔랑이·2025년 2월 27일
0

CS

목록 보기
18/19

⛳️ 인프런 - cs 지식의 정석 강의를 듣고 학습한 내용입니다.


메모리 계층 구조

메모리는 속도와 저장 용량에 따라 계층적으로 구성된다.

  • 레지스터: CPU 내부에 존재하는 가장 빠른 메모리, 용량이 작고 휘발성
  • 캐시: L1, L2 캐시로 나뉘며, 레지스터 다음으로 빠름, 휘발성
  • 주기억장치(RAM): 실행 중인 프로그램이 사용하는 메모리, 속도 보통, 휘발성
  • 보조기억장치(HDD, SSD): 속도가 느리지만 용량이 크고 비휘발성

계층이 존재하는 이유

  1. 처리 속도 증가: 자주 사용하는 데이터는 빠른 메모리에 저장하여 접근 속도를 높임
  2. 비용 효율성: 고속 메모리는 비용이 비싸므로 계층을 두어 적절히 활용
  3. 자원의 효율적 사용: 자주 접근하는 데이터는 빠른 메모리에, 자주 사용하지 않는 데이터는 느린 메모리에 저장하여 낭비 방지

로딩창 이라는 것은?

하드디스크 또는 인터넷에서 데이터를 읽어 RAM으로 전송하는 과정을 대기


가상 메모리와 메모리 관리

가상 메모리(Virtual Memory)

  • 실제 물리 메모리를 추상화하여 더 큰 메모리를 제공하는 OS 기법
  • 프로세스마다 독립적인 가상 주소 공간을 가짐
  • MMU(Memory Management Unit)와 페이지 테이블을 통해 가상 주소를 물리 주소로 변환

가상 메모리의 필요성

  1. 주기억장치 효율적 관리: 필요할 때만 RAM을 사용하고, 나머지는 디스크로 이동
  2. 메모리 관리 단순화: 프로세스별 가상 주소 공간을 독립적으로 할당하여 충돌 방지
  3. 메모리 용량 및 안정성 보장: 한정된 물리 메모리 공간을 가상 메모리로 확장하여 부족 문제 해결

페이지 테이블과 TLB

페이지 테이블: 가상 주소와 실제 주소가 매핑되어 있는 테이블.

가상 주소에서 바로 페이지 테이블로 가지 않고 캐싱 계층인 TLB를 거치게 하여 속도를 향상시킨다.

  • 페이지(Page): 가상 메모리에서 사용하는 최소 단위
  • 프레임(Frame): 실제 물리 메모리에서 사용하는 최소 단위
  • TLB(Translation Lookaside Buffer): 페이지 테이블 캐싱을 통해 변환 속도를 높임

프로세스의 실행과 메모리 할당

프로세스 실행 과정

  1. 프로세스 실행 → 가상 주소 공간 할당
  2. MMU가 가상 주소를 물리 주소로 변환
  3. 프로세스 종료 시, 가상 주소 공간 해제
  4. 재실행 시, 새로운 가상 주소 공간 할당 (물리 주소는 변경될 수 있음)

페이지 폴트와 스와핑

가상 메모리는 실제 메모리보다 커 보이게 하는 것이기 때문에, 참조하려는 메모리 영역이 실제에는 없을 수도 있다. 이 때 페이지 폴트가 발생할 수도 있다.

페이지 폴트(Page Fault)

  • 프로세스가 필요로 하는 데이터가 물리 메모리에 없는 경우 발생
  • 운영체제가 디스크에서 해당 페이지를 불러와 메모리에 적재

스와핑(Swapping)

  • 메모리가 부족할 때, 사용하지 않는 프로세스를 하드로 이동
  • 필요할 때 다시 메모리로 불러오는 방식


스레싱(Thrashing)

  • 너무 많은 페이지 폴트가 발생하여 CPU가 지속적으로 스와핑만 수행하는 현상
  • CPU 이용률이 낮아지고 시스템 성능이 급격히 저하됨

해결 방법

1. 하드웨어 업그레이드

: RAM 증가, HDD → SSD 변경

2. 운영체제 최적화

  • 작업 세트(Working Set): 자주 사용하는 페이지를 미리 메모리에 적재
  • PFF(Page Fault Frequency): 페이지 폴트 발생 빈도에 따라 프레임 개수를 조절

페이지 히트와 페이지 미스

페이지 히트(Page Hit)

  • 요청한 페이지가 이미 메모리에 존재하여 즉시 접근 가능

페이지 미스(Page Miss)

  • 요청한 페이지가 메모리에 존재하지 않음

페이지 미스와 페이지 폴트의 차이

  • 페이지 미스: 요청한 페이지가 메모리에 없음
  • 페이지 폴트: 페이지 미스로 인해 디스크에서 데이터를 가져와야 하는 경우

페이지 미스가 발생해도 페이지 폴트가 발생하지 않는 경우

  1. 접근 권한 오류: 해당 페이지에 대한 접근 권한이 없을 때
  2. 프리페칭(Pre-fetching) 최적화: 미리 로드한 데이터가 덮어쓰기될 경우

페이지교체 알고리즘

은 정처기할때 많이 다뤄서 패스.
종류만 적어놓기

  • 오프라인알고리즘(LFD): 이론적으로는 가장 좋은 알고리즘
  • 이 외 LRU, LFU, FIFO, NUR
profile
정체되지 않는 성장

0개의 댓글