메모리
- 데이터의 상태나 명령어 등을 기록하는 장치
- 주기억장치인 RAM을 보통 메모리라고 함
메모리 계층
- 레지스터, 캐시(L1, L2, L3), RAM, 디스크(HDD/SDD)로 이루어져 있음
- 속도 : 레지스터 > 캐시 > RAM(메모리) > 디스크(저장장치)
- 용량 : 레지스터 < 캐시 < RAM(메모리) < 디스크(저장장치)
캐시
- 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리
- 실제로 메모리와 CPU 사이의 속도 차이가 크기 때문에 그 중간에 레지스터 계층을 둬 속도 차이를 해결하는데 이렇게 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 캐싱 계층이라고 함
웹 브라우저의 캐시
쿠키 : 만료기한이 있는 키-값 저장소
로컬 스토리지 : 만료기한이 없는 키-값 저장소, 도메인 단위로 저장 및 생성
세션 스토리지 : 만료기한이 없는 키-값 저장소, 탭 단위로 생성
가상 메모리
- 메모리 관리 기법 중 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 실제 메모리보다 많아보이게 만드는 것
- 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 변환
(가상 주소 : 프로세스가 참조하는 주소) (물리 주소 : 실제 메모리 주소)
- 메인 메모리를 디스크의 캐시로 사용함으로써 효율적으로 사용가능
- 각 프로세스가 완전히 동일한 포맷의 가상 주소 공간을 가짐으로써 메모리 관리를 단순화시킴
메모리 할당
- 프로그램이나 데이터를 주기억장치에 할당하는 기법
연속 로딩 기법 (단일, 다중 분할 할당)
분산 로딩 기법 (페이징, 세그먼테이션)
단일분할 할당
- 한 순간에 하나만 주기억장치를 사용하는 기법
- 초기 운영체제에서 사용하던 기법
- 오버레이 기법과 스와핑 기법을 사용
(오버레이 기법 : 프로그램의 메모리가 주기억장치보다 클 때의 문제를 해결하기 위한 기법)
(스와핑 기법 : 주기억장치에 적재한 하나의 프로그램과 보조기억장치에 적재한 다른 프로그램의 메모리를 교체하는 기법)
다중분할 할당
- 주기억장치를 여러개의 고정 크기로 분할하여 사용하는 기법
- 프로그램이 분할 영역보다 크면 분할 영역을 사용할 수 없어서 빈 공간으로 남은 전체 영역을 사용하는 외부 단편화가 발생
- 분할 영역보다 크기가 작은 프로그램을 적재하였을 때 내부 단편화가 발생
- 초기 다중 프로그래밍을 위해 사용했던 방법