메모리 관리기법

개념
메인 메모리는 운영체제를 위한 영역과 실행 중인 프로그램을 위한 영역으로 구분됨. 다중 프로그래밍 시스템에서는 운영체제에 의해 동적으로 메모리의 사용자 영역을 여러 프로세스가 상주할 수 있도록 세분화하는 과정

I. 메모리 관리기법의 개요
     가. 메모리 관리기법의 정의

  • 메인 메모리는 운영체제를 위한 영역과 실행 중인 프로그램을 위한 영역으로 구분됨.
  • 다중 프로그래밍 시스템에서는 운영체제에 의해 동적으로 메모리의 사용자 영역을 여러 프로세스가 상주할 수 있도록 세분화하는 과정

 

Ⅱ. 메모리 관리기법의 종류 및 할당정책
    가. 메모리 관리기법의 종류

기법

설명

기법

반입 정책

  • 언제(When) 메모리로 적재할 것인지 결정하는 전략
  • 메인메모리에 적재할 다음 프로세스의 반입시기를 결정
  • 요구반입기법
  • 예상반입기법

배치 정책

  • 어디(Where)로 위치시킬 것인지 결정하는 전략
  • 디스크에서 반입한 프로세스를 메인 메모리의 어느 위치에 저장할 것인지를 결정하는 방법
  • 최초 적합
  • 최적 적합
  • 최악 적합

교체 정책

  • 메모리의 어느 영역(What)을 교체하여 사용할 것인지 결정하는 전략
  • 재배치 기법으로 메인 메모리에 있는 어떤 프로세스를 제거할 것인가를 결정
  • 프로세스 Swap In/Out
 

    나. 연속 메모리 할당 방식

정책

설명

단일 사용자

연속 메모리 할당

  • 메모리의 영역을 사용자를 위한 공간과 운영체제 상주를 위한 공간으로 구분하는 기법
  • 메모리를 운영체제 루틴이 들어있는 부분(모니터)과 사용자 프로그램이 들어있는 부분, 사용되지 않는 부분으로 구분 (그림 (a))
  • 사용자가 모든 메인 메모리에 대한 제어권을 가짐. (그림 (b))

- 사용자 프로그램이 주소를 잘못 지정하면 운영체체 파괴

- 운영체체 파괴 방지를 위한 프로세서 내 경계 레지스터 둠

- 사용자 프로그램이 메모리 참조할 때마다 경계 레지스터 검사 이후 실행

 

고정분할 다중프로그래밍

(MTF)

  • Multiprogramming with a Fixed number of Tasks
  • 메모리를 여러 개의 고정된 크기로 분할
  • 고정된 크기의 분할 영역에 프로세스가 각각 할당됨.
  • 물리주소는 분할 기준 레지스터(PBR) 값에 논리 주소를 더하여 생성됨.
  • 분할 영역보다 프로세스의 크기가 대부분 작으므로 내부단편화 발생

 

가변분할 다중프로그래밍

(MVT)

  • Multiprogramming with a Variable number of Tasks
  • 메인메모리의 사용자 공간 전체를 하나의 분할 영역으로 설정하고, 이후 프로세스의 움직임에 따라 분할 형태를 동적으로 변화시키는 기법
  • 내부단편화 문제를 해결할 수 있으나, 메모리 관리를 위해 커널 자료구조의 크기가 동적으로 변화되기 때문에 오버헤드 발생

 

중첩

(Overlay)

  • 프로세스의 크기가 실제 메모리 크기로 제한되는 문제점을 해결
  • 운영체제 영역과 메모리 공간의 일부 영역에 프로그램(작업) 실행에 필요한 명령어와 데이터를 저장
  • 중첩 구동기 영역에는 실행 기간동안 필요한 각종 사용자 코드 등을 적재하여 필요한 시기에 해당 프로그램을 불러들여 실행함.

 

 

 
    다. 분산 메모리 할당 방식

정책

설명

페이징 기법

  • 동일 크기의 프레임 분할
  • 페이지라고 불리는 프로세스 영역들이 프레임(페이지 프레임)이라고 불리는 고정크기 블록의 메모리 영역에 할당
  • 외부 단편화 없음, 내부 단편화 발생
  • 페이지가 작으면 내부 단편화 감소하나 페이지 테이블 유지 부담

(페이지 테이블: 논리메모리 페이지 번호와 물리메모리 프레임 번호 매핑)

세그먼트 기법

  • 사용자 관점에서의 메모리 할당 (서브루틴, 모듈 등의 크기 별 할당)
  • 컴파일러가 세그먼트를 작성, 동적(가변) 분할 기법
  • 프로그램은 코드, 데이터, Stack, 세그먼트로 구성
  • 세그먼트의 하드웨어 구성: 세그먼트 테이블은 메인 메모리에 존재
  • 외부 단편화 문제 발생
 

댓글