컴퓨터에서 데이터를 저장하고 접근하는 역할을 담당하는 하드웨어 장치입니다
메모리는 주로 주기억장치(RAM)와 보조기억장치(하드디스크, SSD 등)로 나뉩니다.
일반적으로 컴퓨터가 실행 중일 때, 필요한 데이터를 RAM에 저장하고, 작업이 끝나면 데이터를 보조기억장치에 저장하거나 삭제합니다.
주소 공간(address space)은 컴퓨터에서 메모리의 위치를 식별하는 체계입니다. 각각의 메모리 위치는 고유한 주소를 가지며, 이를 통해 CPU가 특정 데이터를 찾고 접근할 수 있습니다. 주소 공간은 물리적 주소 공간과 가상 주소 공간으로 나뉩니다.
물리적 주소 공간(Physical Address Space)
실제 RAM에서 메모리 셀의 위치를 가리키는 주소입니다. 하드웨어적으로 접근할 수 있는 메모리의 범위를 나타냅니다.
가상 주소 공간(Virtual Address Space)
운영체제가 프로세스마다 독립적인 메모리 공간을 제공하기 위해 사용하는 개념입니다. 가상 주소는 실제 물리적 메모리 주소와 매핑되어 사용됩니다. 운영체제는 페이지 테이블(page table)을 사용해 가상 주소와 물리 주소를 변환합니다.

1.레지스터(Register)
CPU 내에 있는 매우 빠른 메모리로, 즉각적인 연산을 위해 사용됩니다.
2.캐시(Cache)
CPU 가까이에 위치한 메모리로, 주로 사용되는 데이터를 임시로 저장하여 CPU가 빠르게 접근할 수 있게 합니다. 캐시는 L1, L2, L3 단계로 나뉘며, 단계가 높을수록 용량이 크고 속도는 느려집니다.
3.주기억장치(RAM)
컴퓨터가 현재 실행 중인 프로그램과 데이터를 저장하는 메모리입니다.
4.보조기억장치(SSD, HDD)
장기 저장소로, 큰 용량의 데이터를 저장하며 전원이 꺼져도 데이터가 보존됩니다.
운영체제는 메모리의 효율적 관리를 위해 여러 가지 기법을 사용합니다. 대표적인 방법은 페이징(paging)과 세그먼테이션(segmenting)입니다.
페이징
메모리를 일정한 크기로 나누어 관리하는 방식입니다. 프로그램의 논리 주소는 작은 페이지 단위로 나뉘어 물리 메모리에 적재됩니다.
세그먼테이션
프로그램을 논리적인 단위(세그먼트)로 나누어 메모리에 적재하는 방식입니다. 세그먼트는 크기가 다를 수 있으며, 프로그램의 코드, 데이터, 스택 등을 구분하여 관리합니다.