물리 메모리와 가상 메모리
- 물리 메모리
- CPU는 물리 메모리에 적재된 코드만을 실행할 수 있다.
- 가상 메모리
- 하드디스크 공간을 이용해 물리 메모리가 훨씬 커진 것처럼 사용하는 기술
- 실제 공간 : 하드디스크 + RAM
- 논리 메모리에 있는 프로세스를 실행할 때 필요한 부분만 물리 메모리에 로딩한다.
- 논리적인 주소와 물리적인 주소를 매핑(mapping)하는 작업을 이용해 가상 메모리 기법을 사용한다.
메모리 관리 전략
- 제한된 메모리를 효율적으로 사용하기 위한 관리 전략
논리 메모리와 물리 메모리
스와핑 (Swapping)
- 메모리와 HDD, SSD 등의 보조 기억장치간에 프로세스를 이동시키는 것
- 프로세스의 주소 공간을 일시적으로 디스크(보조 기억장치)로 내려놓는다.
- 너무 많은 프로그램이 메모리에 동시에 올라와 메모리를 적게 사용해 성능이 떨어지는 것을 방지
- swap out 후 메모리에 있는 프로세스들이 충분히 실행된 후에 다시 swap in 한다.
- 메모리 → 보조 : swap out
- 보조 → 메모리 : swap in
중기 스케줄러 (스와퍼, Swapper)
- 메모리에 적재된 프로세스의 수를 동적으로 조절한다.
- 프로세스에 할당된 메모리 주소 공간을 통째로 빼앗아 (프로세스 단위) 디스크의 스왑 영역으로 swap out 시킨다.
- 메모리 공간에 여유가 생기면, 필요한 프로세스의 메모리 주소 공간을 swap in 시킨다.
압축
- 단편화 : 메모리에 빈 공간이 생기는 경우
- 단편화 문제 해결 방법
- 더 많은 프로세스가 즉시 실행할 수 있으며, 이용 가능한 물리 메모리에 더 많이 할당되도록 하는 방법
- 메모리에 존재하는 단편화 영역을 한 곳으로 모은다.
- 효율적이지 않기에 좋은 방법은 아님
페이징
- 연속적으로 할당하지 않고, 페이지 단위로 나누어 프로세스를 올리는 방법
- 단점 : 내부 단편화가 발생할 수 있음
세그멘테이션
- 논리적 단위로 메모리를 나누며 세그멘테이션 테이블을 사용함
- 단점 : 외부 단편화가 발생할 수 있음
반응형