운영체제 - 메모리 관리 전략

yejz0715·2022년 4월 29일
1

CS

목록 보기
6/6
post-thumbnail

메모리 관리 배경

  • 메모리 용량이 증가함에 따라 프로그램의 크기 또한 계속 증가하고 있기 때문에 메모리는 언제나 부족하여 제한된 물리 메모리의 효율적인 사용과 메모리 참조 방식을 제공하기 위한 전략이다.
제한된 물리 메모리(Ram) - 각 프로세스는 독립적인 메모리 공간을 갖고, 
운영체제나 다른 프로세스의 메모리 공간에 접근할 수 있는 제한이 걸려있다.
(운영체제만 운영체제 메모리 영역과 사용자 메모리 영역 접근에 제약을 받지 않음 )

- 단편화: 메모리 공간을 비 효율적으로 사용되어 낭비되는 현상

  • 프로세스들이 메모리에 적재되고 제거되는 일이 반복되어 메모리 틈 사이에 사용하지 못할 만큼의 작은 공간들이 늘어나는 것
  • 단편화로 생기는 현상
    • 총 메모리 공간은 충분하지만 실제 사용X
    • 실제 사용 가능한 메모리 공간이 줄어들어 시스템 성능 저하를 일으킬 수 있음
    • 사용할 수 있는 메모리 공간을 찾아야 함
    • 페이지 교체 자주 함
    • Swapping
  • 외부 단편화 : 메모리 공간 중 사용하지 못하게 되는 일부분 (Ram 에서 사이사이 남는 공간들)
    • 세그멘테이션에서 나타나는 문제점으로 동적 메모리 할당 해제를 자주 할 경우
  • 내부 단편화 : 프로세스가 사용하는 메모리 공간에 표함된 남는 부분 (메모리 100B / 프로세스 a 98B 사용하면 남는 2B )
    • 페이징 기법에서 나타나는 문제점으로 한 페이지를 너무 크게 할 경우

- swapping

메모리 관리를 위해 사용되는 기법으로 Round Robin과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치로 내보내고 다른 프로세스에 메모리를 할당할 수 있다.

주기억장치(Ram)으로 불러오는 과정을 Swap in
보조기억장치로 내보내는 과정을 Swap out

메모리 관리 방법

페이징(Paging)

  • ‘하나의 프로세스가 사용하는 메모리 공간이 연속적이어야 한다’ 는 제약을 없앤 메모리 관리 방법
  • 외부 단편화를 해결하기위해 나온 개념이다.
  • 크게 물리 메모리와 논리 메모리로 분리 된다. 물리 메모리는 ‘Frame’ 이라는 고정 크기로 분리되어 있고, 논리 메모리(프로세스가 점유하는 메모리)는 페이지라는 고정 크기의 블록으로 분리된다. 이는 페이지 교체 알고리즘으로 교체된다.
  • 페이징 기법을 사용함으로써 논리 메모리는 물리 메모리에 저장될 때, 연속되어 지정될 필요가 없고 물리 메모리의 남는 프레임에 적절히 배치됨으로써 외부 단편화를 해결할 수 있지만,
  • 하나의 프로세스가 사용하는 공간은 여러개의 페이지로 나뉘어서 관리되고(논리메모리에서) 개별 페이지는 순서에 상관없이 물리 메모리에 있는 프레임에 mapping 되어 저장하다보니 내부 단편화가 늘어 난다는 단점이 있다.
ex) 메모리 공간: 400MB -> 물리메모리(Frame): 100MB
프로세스가 메모리 등록할때 사용할 수 있는 적정량 논리메모리(Page) :220MB
100 100 100(20....80)내부 단편화 늘어남.. 

세그멘테이션(Segmentation)

  • 페이징기법의 문제점을 해결하기 위해 메모리를 같은 크기로 나누는 것이 아닌 서로 다른 크기의 논리적 단위인 세그먼트로 분할하는 메모리 관리 기법.
  • 프로세스에 할당된 메모리가 분리되어 분리된 세그먼트가 디스크립터 테이블에 저장
  • 단점: 가변적인 크기의 세그먼트들이 메모리에 적재되고 제거되는일이 반복되어 외부 단편화의 문제가 생김
메모리에 배치하는 건 페이징기법과 동일하다.

ex) 메모리 공간: 400MB 
프로세스가 메모리 등록할때 필요한 메모리 :220MB
 세그먼트로 50, 50, 120 크기로 배치 -> 가변적인 크기
profile
포기하지말자!

0개의 댓글

관련 채용 정보