상세 컨텐츠

본문 제목

메모리 (메모리 계층, 웹 브라우저의 캐시, 가상 메모리, 메모리 할당)

카테고리 없음

by 둥근돔 2023. 11. 7. 12:07

본문

메모리 계층 구조

 

메모리 관련 3가지 주요 특성인 용량, 접근 속도, 비용간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조.

메모리 계층은 레지스터, 캐시, 메모리(RAM), 하드디스크(저장장치)로 구성되어 있다.

위로 갈수록 속도가 빠르고, 아래로 갈수록 용량이 커진다.

 

레지스터 : CPU 내부의 작은 메모리로, 휘발성이며 속도가 가장 빠르고, 기억 용량이 가장 적다.

캐시 : L1, L2, L3 캐시를 지칭하고 휘발성이며, 속도가 빠르나 기억 용량이 적다.

주기억장치(메모리) : RAM을 가리키고 휘발성이며, 속도와 기억 용량은 보통이다.

보조기억장치(디스크) : HDD, SDD를 일컬으며 비휘발성이다. 속도는 낮으며 기억 용량이 많다.


웹 브라우저의 캐시

  • 작은 저장소인 쿠키, 로컬 스토리지, 세션 스토리지 존재
  • 사용자의 커스텀한 정보나 인증 모듈 관련 사항들을 웹 브라우저에 저장해서 추후 서버에 요청할 때 자신을 나타내는 아이덴티티나 중복 요청을 방지 ex) 자동 로그인

쿠키

  • 만료기한이 있는 키-값 저장소
  • 4KB까지 데이터를 저장할 수 있고 만료기한을 정할 수 있다.

로컬 스토리지

  • 만료기한이 없는 키-값 저장소
  • 10MB까지 저장 가능
  • 웹 브라우저를 닫아도 유지되고 도메인 단위로 저장, 생성된다.
  • HTML5을 지원하지 않는 웹 브라우저에서는 사용 불가능하며 클라이언트에서만 수정 가능

세션 스토리지

  • 만료기한이 없는 키-값 저장소
  • 탭 단위로 세션 스토리지 생성
  • 탭을 닫을 때 데이터가 삭제
  • 5MB까지 저장 가능
  • HTML5을 지원하지 않는 웹 브라우저에서는 사용 불가능하며 클라이언트에서만 수정 가능

가상 메모리

  • 실제 물리적인 메모리 공간외에 하드 디스크에 파일 형태로 따로 준비하는 가상의 메모리 공간으로, 부족한 시스템 메모리를 보조해주는 역할을 한다.
  • 실제 메모리 공간이 가득차서 용량이 부족하게 되면, 실제 메모리에 저장되어 있는 내용 중 당장 사용되지 않는 내용들을 미리 준비된 하드 디스크의 페이징 파일로 옮겨 실제 메모리에 여유 공간을 확보한다.
  • 후에 페이징 파일에 옮겨둔 내용이 필요하면 다시 실제 메모리로 옮겨서 사용한다.

메모리 할당

  • 메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리의 할당 크기를 기반으로 할당
  • 연속 할당과 불연속 할당으로 나뉜다.

연속할당

  • 메모리에 연속적으로 공간을 할당하는 것
  • 고정 분할 방식과 가변 분할 방식으로 나뉜다.

고정 분할 방식

  • 메모리를 미리 나누어 관리하는 방식
  • 내부 단편화 발생

가변 분할 방식

  • 매 시점 프로그램의 크기에 맞게 동적으로 메모리를 나눠 사용
  • 내부 단편화 발생 X
  • 외부 단편화 발생 O

최초적합 : 위에서부터 바로 보이는 공간에 바로 할당

최적적합 : 가장 크기에 맞는 공간부터 채우고 나머지를 할당

최악적합 : 가장 크기가 큰 공간에 부터 채우고 나머지 할당

 

내부단편화 & 외부단편화란?

내부단편화

  • 메모리를 나눈 크기보다 프로그램이 작아서 들어가지 못하는 공간이 많이 발생하는 현상 -> 들어갈 수 있는 공간보다 프로그램이 작아서 공간이 남아버리는 것

외부단편화

  • 메모리를 나눈 크기보다 프로그램이 커서 들어가지 못하는 공간이 많이 발생하는 현상 -> 들어갈 공간보다 들어갈 것이 더 커서 들어가지 못하고 남아버리는 것

불연속 할당

  • 현대 운영체제에 쓰는 방법
  • 메모리를 동일한 크기의 페이지로 나누고 프로그램마다 페이지 테이블을 두어 이를통해 메모리에 프로그램을 할당