메모리란?
- 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치
- 메모리는 크게 내부 기억장치인 주 기억장치와 외부 기억장치인 보조 기억장치로 분류
주 기억장치
DRAM, CPU 안에 있는 레지스터 (register) 와 캐쉬 (cache memory) 등
외부 기억장치
SSD, HDD 등
가상 메모리란?
- 애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 올라감
- 애플리케이션의 나머지는 디스크에 남게 됨
- 디스크가 RAM의 보조 기억장치처럼 작동됨
빠르고 작은 기억장치(RAM)을 크고 느린 기억장치(디스크)와 병합하여, 하나의 크고 빠른 기억장치(가상 메모리)처럼 동작하게 됨.
- 가상 메모리를 구현하기 위해서는 컴퓨터가 특수 메모리 관리 하드웨어를 갖추고 있어야만 함.
MMU (Memory Mangement Unit)
가상주소를 물리주소로 변환하고 메모리를 보호하는 기능
페이지 란?
- 어떤 프로세스를 일정크기를 나눈 크기
페이지 테이블이란?
- CPU 에서 실행한 프로그램이 필요한 데이터를 RAM 에서 가져올 때 가상 주소와 물리 주소로 CPU 에게 알려주는 역할
- 가상 주소와 물리 주소를 매핑하는 테이블
가상 주소란?
프로그래머가 쓰는 주소 공간
process 와 address space 에 담겨있다.
물리 주소란?
실제 주소
하드웨어가 실제 접근할 수 있는 주소
요구 페이징 이란?
- CPU 가 요청할 때 프로세스의 데이터를 메모리에 올리는 것
- 처음부터 모든 데이터를 메모리로 적재하지 않음.
페이지 폴트 (page faults) 이란?
- 어떤 페이지에 접근하려고 했을 때 해당 페이지가 실제 물리 메모리에 부재할 때 뜨는 인터럽트
- 페이지 볼트가 발생하면 운영체제가 이를 해결 한 뒤, 다시 동일한 명령을 수행하는 식으로 동작함.
가상 메모리란 무엇인가요?
* 모든 프로세스에게 메모리를 할당하기에는 메모리의 크기가 한계가 있어서 사용하는 방법입니다.
프로세스에서 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관하는 기법을 가상메모리 라고 합니다.