1 분 소요

스와핑

  • 프로세스는 실행 중 임시로 예비 저장장치로 내보내어졌다가 다시 메모리로 돌아올 수 있다.
  • 스와핑 시간은 오버헤드이다.
  • 한 프로세스를 스왑 아웃 하고 싶다면 해당 프로세스는 휴지 상태에 있어야 한다.
    • 이중 버퍼링 (운영체제의 버퍼와만 입출력을 함) : 오버헤드

연속 메모리 할당 (Contiguous Memory Allocation)

  • 최초 적합
    • 처음으로 사용 가능한 공간을 할당
  • 최적 적합
    • 가능한 공간 중 가장 작은 공간을 할당
  • 최악 적합
    • 가능한 공간 중 가장 큰 공간을 할당
  • 최초 >= 최적 > 최악

단편화

  • 외부 단편화 : 유휴 공간들을 합치면 충분한 공간이 되지만 분산되어 있음
    • 압축(compaction)으로 해결
      • 메모리 모든 내용들을 한군데로 몰고, 자유 공간을 모아 큰 블럭을 만듬
      • 프로세스들의 재배치가 실행 시간에 동적으로 이루어지는 경우에만 사용 가능.
      • 비용 문제도 고려해야 함
    • 한 프로세스의 논리 주소 공간을 여러 개의 비연속적인 공간으로 나눔 (페이징, 세그멘테이션)
  • 내부 단편화 : 할당한 메모리 내부에 공간이 남음

세그멘테이션

  • 세그먼트라는 논리적 단위로 나눈다.
  • 외부 단편화가 발생할 수 있음.
  • 메모리 압축을 통해 외부 단편화를 최소화 시킬 수 있음.
  • 분할이 가변적이기 때문에 스와핑은 힘들 수 있다.
  • 페이징보다 공유가 간편함.
    • 페이징: 페이지 테이블의 공유 항목을 표시해야 함, 세그먼테이션: 공유한다고 선언만 하면 됨

페이징

  • 물리 메모리는 프레임이라 불리는 같은 크기 블록으로 나눈다.
  • 논리 메모리는 페이지라 불리는 같은 크기 블록으로 나눈다.
  • 내부 단편화가 발생할 수 있음.

페이지화된 세그멘테이션

  • 페이지와 세그멘테이션의 장점 결합
  • 세그먼트를 페이징한다 -> 세그먼트 안에 별도의 페이지 테이블 존재
  • 외부 단편화 해결
  • 분할공간이 많아져 관리가 힘들 수 있다.

카테고리:

업데이트: