[운영체제] 6. 메모리 관리

nnm·2020년 6월 13일
0

운영체제

목록 보기
6/10
post-thumbnail

OS? Oh Yes! 책을 바탕으로 학습한 내용입니다.

메모리 관리 기법

  • 적재 기법(Fetch Strategy)
    프로세스에게 메모리를 언제 할당할 것인가?
  • 배치 기법(Placement Strategy)
    프로세스들을 메모리 공간 어디에 적재할 것인가?
  • 교체 기법(Replacement Strategy)
    메모리에 적재된 프로세스 중 어떤 것과 새 프로세스를 교체할 것인가?
  • 할당 기법(Allocation Strategy)
    프로세스에게 메모리를 얼마나 줄 것인가?

단일 프로그래밍

한 번에 하나의 프로세스만 적재하여 실행되고 종료되면 다음 프로세스를 적재하는 방식, 적재하려는 프로그램보다 메모리 공간이 작다면 일부분씩 적재하는 오버레이 방식을 사용해야한다.

다중 프로그래밍 : 고정분할

메모리를 같은 크기로 분할 해놓고 각 분할에 하나의 프로세스만을 수용하도록 하는 방식

  • 내부 단편화
    분할된 메모리 보다 프로그램의 크기가 작아 분할된 메모리 내에 낭비되는 공간이 발생하는 현상
  • 외부 단편화
    분할된 메모리 크기가 작아 프로세스를 수용하지 못하고 계속 낭비되는 공간이 발생하는 현상

다중 프로그래밍 : 가변분할

분할의 시기와 개수 그리고 크기가 사전에 정해진 바 없이 프로세스를 수용할 때 그 크기만큼 메모리 공간을 할당해 주는 방식

  • 최초적합(First-fit)
    free 리스트(가용 메모리 집합)의 첫 노드부터 시작하여 제일 먼저 발견되는 적재가능한 메모리 공간에 할당한다. 진행될수록 탐색 시간이 길어지기 때문에 순환 구조의 free 리스트를 만들고 다음 적재될 공간을 가리키는 포인터를 둔다. 이를 next-fit이라고 부른다.
  • 최적적합(Best-fit)
    free 리스트(가용 메모리 집합)의 전체를 탐색하여 적재가능하되 내부단편화가 가장 작은 메모리에 할당한다. 최적적합 결과 남는 메모리는 매우 작아 프로세스가 할당되지 못하게 되는데 이 공간을 홀(Hole)이라고 한다.
  • 최악적합(Worst-fit)
    free 리스트(가용 메모리 집합)의 전체를 탐색하여 적재가능하되 내부단편화가 가장 큰 메모리에 할당한다. 최적적합에서 발생하는 홀(Hole)을 억제하기 위해 고안된 방식

메모리 할당이 반복되면 메모리가 분할되고 홀(Hole)이 발생하여 가용 메모리가 부족하게된다. 따라서 남은 메모리 공간들을 병합이 요구된다.

  • 인접한 빈 공간의 병합
    반납된 메모리 위, 아래의 인접한 빈 공간과 병합하는 방식으로 프로세스가 메모리를 반납할 때 마다 실행된다.
  • 빈 공간 전부의 병합
    사용 중인 메모리 공간을 한쪽으로 밀어놓고 흩어져 있던 모든 빈 공간을 모아 하나로 만든다. 상당한 시간이 요구되며 주소공간이 바뀌는 만큼 수행중에 모든 프로세스들이 중지된다.
  • 버디 시스템
    프로세스의 적재 요구가 있을 때 내부 단편화가 가장 적은 2의 승수 크기로 분할하여 할당한다. 또한 반납시 해당 공간의 버디가 빈 공간일 때 병합하여 크기를 2의 배수로 늘려나간다.
    • 버디는 2의 승수로 나뉠때 같은 크기의 인접한 메모리 공간이다.
      ex) 512 - 512, 256 - 256
profile
그냥 개발자

0개의 댓글