주기억장치 할당기법

개발(공부) 자국·2021년 9월 29일
1

주기억장치의 메모리는 한정되어 있기 때문에 효율적으로 관리하기 위해서 반입 전략, 배치 전략, 교체 전략 등을 사용한다.

이 때 배치 전략에 해당하는 단계로 주기억장치로 프로세스를 할당할 때의 기법을 알아보려고 한다.

단일 분할 할당 기법

주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법이다.

프로그램이 운영체제에 영향을 주지 않기 위해 운영체제와 프로그램의 영역을 구분하는 경계 레지스터를 사용한다.

→ 하나의 프로세스만 동작할 수 있는 기법이다.

오버레이 기법

주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법이다.

  • 하나의 프로그램을 여러 개의 조각으로 분할 한 후 필요한 조각을 차례로 주기억장치에 적재한다.
  • 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 덮어씌워 적재한다.

스와핑 기법

하나의 프로그램 전체를 주기억장치에 할당하여 사용하다가 필요에 따라 다른 프로그램과 교체하는 기법이다.

  • 프로그램이 보조기억장치로 이동되는 것을 Swap Out, 프로그램이 주기억장치로 이동되는 것을 Swap In이라고 한다.
  • 가상기억장치의 페이징 기법으로 발전되었다.

다중 분할 할당 기법

다중 분할 할당 기법을 알아보기 전에 이 두가지에 대해서 먼저 알아보자

  • 외부 단편화
    분할 된 영역이 할당될 프로그램보다 작아서 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남아있는 분할된 전체 영역
  • 내부 단편화
    분할된 영역이 할당될 프로그램보다 커서 프로그램이 할당된 후 사용되지 않고 남아 있는 빈 공간

고정 분할 할당 기법 = 정적 할당 기법

운영체제가 주기억 장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법이다.

  • 프로그램 전체가 주기억 장치에 위치해야 한다.
  • 프로그램의 크기는 다양한데 고정된 크기로 나누다보니 외부단편화나 내부단편화가 일어나 낭비되는 영역이 많다.
  • 프로그램의 크기를 미리 알고 있어야 한다.
  • 다중 프로그래밍을 위해 사용되었으나 지금은 사용하지 않는다.

가변 분할 할당 기법 = 동적 할당 기법

단편화를 줄이기 위한 것으로 프로그램을 주기억 장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법이다.

  • 주기억장치를 효율적으로 사용할 수 있고 다중 프로그래밍 정도를 높일 수 있다.
  • 프로세스 크기의 제약이 적다.
  • 영역과 영역 사이의 단편화가 발생할 수 있다.

정리

  • 주기억장치에 프로그램을 올려서 프로그램을 실행한다.
  • 이때 주기억장치에 프로그램을 할당하는 방법이 하나만 넣는 단일 할당기법과 여러 프로그램을 할당하는 다중 분할 할당기법이 있다.
  • 단일할당기법으로 할당하면 안정적이기는 하나 낭비가 많고 하나의 프로그램만 실행할 수 있는 점이 있다.
  • 다중분할할당기법으로 할당하면 여러 프로그램을 같이 실행 시킬수 있게 되는데 이때 여러 프로그램을 넣기 위해서 영역을 동일하게 미리 설정하는 고정분할 방법과 실행할때 측정해서 넣는 가변분할 방법이 있다.
  • 고정분할 할당기법에서는 단편화로 인한 낭비가 많아 효율적으로 주기억장치의 메모리를 활용하지 못한다.
  • 가변분할 할당기법에서는 고정보다는 단편화가 적지만 영역간에 단편화는 생길 수 있다.
profile
기록을 중요하게 생각하는 사람입니다. 학습한 내용을 정리한 것이라 잘못된 정보가 있을 수 있습니다. 잘못된 정보는 언제든 말씀해 주시기 바랍니다.

0개의 댓글