카테고리 없음

[운영체제] 메모리 관리 전략

물리 메모리와 가상 메모리

  • 물리 메모리
    • CPU는 물리 메모리에 적재된 코드만을 실행할 수 있다.
  • 가상 메모리
    • 하드디스크 공간을 이용해 물리 메모리가 훨씬 커진 것처럼 사용하는 기술
    • 실제 공간 : 하드디스크 + RAM
    • 논리 메모리에 있는 프로세스를 실행할 때 필요한 부분만 물리 메모리에 로딩한다.
    • 논리적인 주소와 물리적인 주소를 매핑(mapping)하는 작업을 이용해 가상 메모리 기법을 사용한다. 

메모리 관리 전략

  • 제한된 메모리를 효율적으로 사용하기 위한 관리 전략

논리 메모리와 물리 메모리

스와핑 (Swapping)

  • 메모리와 HDD, SSD 등의 보조 기억장치간에 프로세스를 이동시키는 것
  • 프로세스의 주소 공간을 일시적으로 디스크(보조 기억장치)로 내려놓는다.
  • 너무 많은 프로그램이 메모리에 동시에 올라와 메모리를 적게 사용해 성능이 떨어지는 것을 방지
  • swap out 후 메모리에 있는 프로세스들이 충분히 실행된 후에 다시 swap in 한다.
  • 메모리 → 보조 : swap out
  • 보조 → 메모리 : swap in

중기 스케줄러 (스와퍼, Swapper)

  • 메모리에 적재된 프로세스의 수를 동적으로 조절한다.
  • 프로세스에 할당된 메모리 주소 공간을 통째로 빼앗아 (프로세스 단위) 디스크의 스왑 영역으로 swap out 시킨다.
  • 메모리 공간에 여유가 생기면, 필요한 프로세스의 메모리 주소 공간을 swap in 시킨다.

압축

  • 단편화 : 메모리에 빈 공간이 생기는 경우
  • 단편화 문제 해결 방법
  • 더 많은 프로세스가 즉시 실행할 수 있으며, 이용 가능한 물리 메모리에 더 많이 할당되도록 하는 방법
  • 메모리에 존재하는 단편화 영역을 한 곳으로 모은다.
  • 효율적이지 않기에 좋은 방법은 아님

페이징

  • 연속적으로 할당하지 않고, 페이지 단위로 나누어 프로세스를 올리는 방법
  • 단점 : 내부 단편화가 발생할 수 있음

세그멘테이션

  • 논리적 단위로 메모리를 나누며 세그멘테이션 테이블을 사용함
  • 단점 : 외부 단편화가 발생할 수 있음
반응형